Announcement

Collapse
No announcement yet.

Nuke Plugin for reading VRAY Cameradata from EXR released!

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Nuke Plugin for reading VRAY Cameradata from EXR released!

    Hey Guys,

    i have just compiled a nuke plugin which u can use to extract all camera information from a vray exr file.

    Find it here.
    http://www.fullblownimages.com/scripts.html



    Just plug the node named "PostlightCamera" into your read node and watch what happens

    It's only compiled for Nuke 5.2 win_x64 yet...let me know if u need it for other versions.
    EDIT: I just got the first crashreport. If u experience crashes too,please send me your exr if possible!
    EDIT2: crashes fixed

    cheers
    Oli
    Last edited by ultrasonic; 18-12-2009, 04:04 PM.
    OLIVER MARKOWSKI - Head of 3D at RISE | Visual Effects Studios

  • #2
    Only for Maya?

    I'm trying exr from max and nuke crash all time.
    www.oscarlorenzo.com

    Comment


    • #3
      Can u send me your exr? I think it's a problem when the data is not found, which should already be considered in the code,but maybe i missed something.

      I think the 3D-Max filesaver does not write camera data in the header.
      OLIVER MARKOWSKI - Head of 3D at RISE | Visual Effects Studios

      Comment


      • #4
        Heya,

        we got an in-house solution here, but always nice to see ppl share. Out of curiosity are you reading from the header yourself using the EXR libs (i remember you asking about that in another thread) or using nuke's built in metadata streams ?

        Regards,
        Thorsten

        Comment


        • #5
          Sorry

          It´s a problem of vray version, with 1.5 SP4a, work´s fine
          www.oscarlorenzo.com

          Comment


          • #6
            Originally posted by oscar lorenzo View Post
            Sorry

            It´s a problem of vray version, with 1.5 SP4a, work´s fine
            So you can confirm that this plug is working outside of my home? That would be cool

            Are you on Max? If yes, then i'm afraid that you have to wait for the next release that lets you choose what the world up vector is....for now it's only Y-up!
            OLIVER MARKOWSKI - Head of 3D at RISE | Visual Effects Studios

            Comment


            • #7
              I updated the plugin...there was a checkup missing which caused crashes when the attributes were not present!

              please download the archive again!
              http://fullblownimages.servebeer.com/scripts.html
              OLIVER MARKOWSKI - Head of 3D at RISE | Visual Effects Studios

              Comment


              • #8
                Originally posted by instinct View Post
                always nice to see ppl share.
                Yeah...i hope i can put my 2 cents of contribution to our little community! Since OpenEXR is free and other studios tend to release some of their tools I really hope that there will be many more studios following this road!

                Originally posted by instinct View Post
                Out of curiosity are you reading from the header yourself using the EXR libs (i remember you asking about that in another thread) or using nuke's built in metadata streams ?
                I am using the exr-libs, cause i needed to do some crazy math when converting the vray-transform matrix to euler rotation angles which i think would be a real stunt to do in nuke
                OLIVER MARKOWSKI - Head of 3D at RISE | Visual Effects Studios

                Comment


                • #9
                  I'd definately suggest using Nuke's Metadata system. For the following reasons:

                  - Remove dependency on external libs that are linked anyways by nuke
                  - Remove the need to compile OpenEXR for x64 wich is a real drag lol
                  - Prevent opening each file 2 times
                  - Prevent re-reading data that has already been read by nuke

                  Why do you convert the matrix to euler angles ? You can use the matrix and set it as the transform matrix for the camera directly instead of setting the transforms. The only thing you need to take care of is converting the matrix from z-up to y-up.

                  Kind Regards,
                  Thorsten

                  Comment


                  • #10
                    Hey Thorsten,

                    thanks for your feedback...sounds like i really should give this a try...haven't done anything with nukes metadata stuff yet.

                    Remove the need to compile OpenEXR for x64 wich is a real drag lol
                    You are so right!


                    cheerio
                    Oli
                    OLIVER MARKOWSKI - Head of 3D at RISE | Visual Effects Studios

                    Comment


                    • #11
                      Originally posted by instinct View Post
                      You can use the matrix and set it as the transform matrix for the camera directly instead of setting the transforms.
                      The only thing i found was an axis_knob which is not documented, so my search ended. Any chance u can tell me how to set nukes camera transform directly?!?
                      OLIVER MARKOWSKI - Head of 3D at RISE | Visual Effects Studios

                      Comment


                      • #12
                        Heya,

                        i assume you're inheriting from DD::Image::CameraOp, wich in turn inherits from DD::Image::AxisOp. The AxisOp provides the basic transformation and the CameraOp adds the camera specific methods/properties. The matrix of the CameraOp is accesible via yourOp::local_ ( Matrix4() )

                        The axis_knob is only providing the UI. When inheriting from CameraOp you can safely ignore it. If you want to add an axis_knob for overriding values you can refer to the "Knob Types" Topic in the NDK Docs.

                        Kind Regards,
                        Thorsten

                        Comment


                        • #13
                          thanks for this awesome tool! I'm sure when finished it will be incredibly useful.

                          Has anyone noticed a strange "update" issue? like you can see the curve editor try to update as you scrub through?

                          Also catching weird random flipping of the camera here and there... might be our cameras doing some sub frame weirdness though.

                          Anyone else experiencing this sort of thing?

                          thanks
                          B

                          Comment


                          • #14
                            Originally posted by shadevfx View Post
                            Anyone else experiencing this sort of thing?
                            Yes...i heard something like that over at the vfxtalk forums. can u post an exr sequence where the error occurs...even if its an all black render.

                            @thorsten: thx 4 the info...but i will try solving this issue via python to reduce maintainance issues like recompiling and stuff. I found the following on the Axis_knob, but no chance of setting its value from python
                            Code:
                            help(nuke.toNode("Axis1").knob('transform').value())
                            # Result: Help on Matrix4 object:  class Matrix4(object)
                              |  Matrix4
                              |  
                              |  Methods defined here:
                              |  
                              |  __mul__(...)
                              |      x.__mul__(y) <==> x*y
                              |  
                              |  __rmul__(...)
                              |      x.__rmul__(y) <==> y*x
                              |  
                              |  ----------------------------------------------------------------------
                              |  Data and other attributes defined here:
                              |  
                              |  __new__ = <built-in method __new__ of type object at 0x000000000601F84...
                              |      T.__new__(S, ...) -> a new object with type S, a subtype of T

                            thx in advance
                            Oli
                            Last edited by ultrasonic; 21-12-2009, 03:06 PM.
                            OLIVER MARKOWSKI - Head of 3D at RISE | Visual Effects Studios

                            Comment


                            • #15
                              Hey there,

                              am doing it completely using the NDK, both for performance and simplicity reasons. Having the project setup once re-compiles pretty fast usually :P Currently there is no way yet as of 5.2 to set Matrix values via python. This might change in future versions.

                              Regards,
                              Thorsten

                              Comment

                              Working...
                              X