Announcement

Collapse
No announcement yet.

Open EXR metadata from 3dsmax

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

  • #16
    If the frame buffer is in memory (e.g. you have selected the "Memory frame buffer" option for the VFB), then all the data is kept in memory anyways, so V-Ray just overwrites the tiled OpenEXR file with a scanline one at the end of the frame.

    Best regards,
    Vlado
    I only act like I know everything, Rogers.

    Comment


    • #17
      Hi Vlado,

      I tried the exr settings, and they all seem to work with the exception of the extra attributes. I tried a couple of different ways, but none actually added any extra attributes for some reason. I tried using the examples:

      int_attr=53;float_attr=3.14;vec4_attr=(1, 2, 3, 4)

      I also tried it with vray for maya's multichannel exr manually through the GUI, but the attributes dont seem to make it into the exr. Am i doing something wrong, or the feature has a bug?

      (i'm using nuke to get a metadata listing, and a command line app i wrote, so maybe those are checking at the wrong place?)



      Code:
        sdata.params.vfb.extraAttribStr = extraAttributes.empty() ? NULL : extraAttributes.ptr(); // Additional metadata attributes
      http://www.spot3d.com/vray/help/maya...#image_options

      Comment


      • #18
        Can you tell me exactly how you are setting them?

        [EDIT] Nevermind, there was a bug there. Should be fine for the next build tomorrow.

        Best regards,
        Vlado
        Last edited by vlado; 21-04-2011, 01:00 PM.
        I only act like I know everything, Rogers.

        Comment


        • #19
          You are too fast I was just pasting my response in

          Thanks man!

          Comment


          • #20
            For the record, with what version was access to extra meta data introduced (on the max end that is)

            Regards,
            Thorsten

            Comment


            • #21
              The C++ API is there since V-Ray 2.0.

              Best regards,
              Vlado
              I only act like I know everything, Rogers.

              Comment


              • #22
                I shaved the beard to inject metadata into tiled EXRs bufferless renders.
                Lele
                Trouble Stirrer in RnD @ Chaos
                ----------------------
                emanuele.lecchi@chaos.com

                Disclaimer:
                The views and opinions expressed here are my own and do not represent those of Chaos Group, unless otherwise stated.

                Comment


                • #23
                  So bumped into a strange issue that i never saw during my tests. In our production scenes, whatever exr settings i force via our render element only get applied on the second render after max start+file open. The first time it renders with defaults.

                  And this only happens in production scenes, simple empty repro scene doesn't do it of course

                  Vlado i sent a file along with the plugin to support@ in case its a bug

                  Comment


                  • #24
                    I was just looking for a way to add metadata to an EXR and realized i started this post 7 years ago. Does anyone have a simple max script example I could look at? (Not being a coder myself) I was hoping i could run it as some kind of script callback. We are just trying to embed an animation"version" numbers into the metadata so when showing a director a Nuke comp, we can see what a file "version"

                    Comment


                    • #25
                      Here you go Fred,

                      Code:
                      fn changeMetadata = (
                      
                          re = maxOps.GetCurRenderElementMgr()
                          theElemCount = re.numrenderelements()
                      
                          theOptionReNum = ""
                      
                          for n = 0 to (theElemCount - 1) do
                          (
                              if ((re.getrenderelement n).elementname == "VRayOptionRE") then
                              (
                                  theOptionReNum = n
                              )    
                          )    
                      
                          -- FRED, ADD IN YOUR CODE HERE AFTER LOCAL STR=
                      
                          local str="testMetaData='"+(maxfilename as string) + "';"; 
                          print str; 
                          (re.getRenderElement theOptionReNum).exr_metadata=str; 
                      
                      )
                      
                      callbacks.addScript #preRenderFrame "changeMetadata()"
                      
                      -- if it misbehaves, run the following command in the listener to remove your old, broken callback:
                      -- callbacks.removeScripts #preRenderFrame
                      I'm using "testMetaData='"+(maxfilename as string) + "';" to add in my max file name as metadata, it appears as exr/testmetadata in nuke, I think it gets a bit pissy about commas and the ; symbol in there so the two things to swap right away are the name of the metadata key and then the maxfilename code - if you're adding in version numbers into your filenames you can use things like filterstring or substring to grab the relevant bit of your make file. Alternatively since vray embeds the render filename into your exrs already, you could max a nuke expression to go into the text gizmo to pull a key from the metadata and format the text in a similar handy way.

                      Comment

                      Working...
                      X