Announcement

Collapse
No announcement yet.

Denoiser output separate render elements

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

  • Denoiser output separate render elements

    Is it possible or will it be possible to export the render elements created by the denoiser as separate exrs. E.g the noiseLevel.
    http://goodbyekansasstudios.com/

  • #2
    Not for the moment, no. What exactly do you need it for? noiseLevel along with the rest of the render elements that the denoiser creates are all stored in multichannel images to (potentially) later use with the standalone denoiser tool (mostly to denoise animations).
    What render elements do you need separately and what would you use them for?
    Alex Yolov
    Product Manager
    V-Ray for Maya, Chaos Player
    www.chaos.com

    Comment


    • #3
      you can render a vrimg file and extract the separate channels with vrimg2exr afterwards

      Comment


      • #4
        Originally posted by yolov View Post
        Not for the moment, no. What exactly do you need it for? noiseLevel along with the rest of the render elements that the denoiser creates are all stored in multichannel images to (potentially) later use with the standalone denoiser tool (mostly to denoise animations).
        What render elements do you need separately and what would you use them for?
        We don't render multichannel but would still like to use the denoiser in Nuke. Im guessing they wanna do the same thing.

        Comment


        • #5
          Originally posted by Fido Film View Post

          We don't render multichannel but would still like to use the denoiser in Nuke. Im guessing they wanna do the same thing.
          The NUKE denoiser would sill require a multichannel image to work. Alternatively you would need to combine all channels from separate exrs into one flow so the denoiser plugin recognizes the channels it needs. The problem is that the noiseLevel alone won't do the trick, you would still need the rest of the channels that the denoiser creates. If you can describe some specific steps you would need to do for your workflow we can either think of a workaround or discuss with the devs on what can or cannot be done about it.
          Alex Yolov
          Product Manager
          V-Ray for Maya, Chaos Player
          www.chaos.com

          Comment


          • #6
            Originally posted by Fido Film View Post

            We don't render multichannel but would still like to use the denoiser in Nuke. Im guessing they wanna do the same thing.
            I can bump this one for us also.

            Being able to render into separate exr files for the standard render elements, and then have the denoiser element as a single multi-channel exr would be lovely.
            The same could be said for the new cryptomatte element, "object select" element and other elements that output multiple "channels".

            It could all be handled inside the compositing softwares merging the channels I guess (or post process extracting/merging from vrimg files) , but not having to might be more elegant

            Comment


            • #7
              Yes, the goal is to use it in nuke and merge all the channels there. So it would be nice to have the option to have all the passes separate or to be able to choose what will be in the multi exr and what will be a separate pass(exr). The reason is that with heavy multiexr the nuke scene can become slow so only use the renderpasses when needed.
              http://goodbyekansasstudios.com/

              Comment


              • #8
                Even though this is not possible in the UI at the moment, a simple script can be used to achieve this.
                The only render elements that are not accessible from the UI are the noiseLevel and the defocusAmount. So those two can be created with a post-translate python script in Maya, like so:
                Code:
                from vray.utils import *
                
                noiseL=create('RenderChannelGlossiness', 'noiseLevel')
                noiseL.set('alias', 142)
                noiseL.set('name', 'noiseLevel')
                
                defocusA=create('RenderChannelGlossiness', 'defocusAmount')
                defocusA.set('alias', 146)
                defocusA.set('name', 'defocusAmount')
                Just copy this to render settings > common tab > MEL/Python callbacks > Post Translate Python Script. This will append the two render elements to the scene.
                The rest of them can be created manually like so --> in the list below, I've written the output name on the left and the the UI-accessible name in brackets on the right (yes, most of the below is pretty obvious, but any guide ought to be exhaustive ) :
                Output Channel name How to create it
                worldPositions samplerInfo with Type = "Point" and Coordinate system = "World"
                worldNormals samplerInfo with Type = "Normal Vector" and Coordinate system = "World"
                diffuseFilter Diffuse
                reflectionFilter Reflection Filter
                refractionFilter Refraction Filter
                atmosphere Atmospheric Effects
                background Background
                lilghting Lighting
                globalIllumination GI
                reflection Reflection
                specular Specular
                refraction Refraction
                Note 1: The samplerInfo render element can be used for worldPositions and worldNormals with VRay 3.6. With older VRay versions you can use the additional vray outputs for the samplerInfor node which you can then plug in an extra tex render element (still valid for 3.6, but using the samplerInfo render element is easier).
                Note 2 : RGB, noiseLevel, defocusAmount, worldPositions, worldNormals, diffuse, reflectionFilter and refractionFilter are the channels needed for single pass denoising. If you're only going to do single-pass denoising in nuke, then you don't need the rest.
                Note 3 : atmosphere, background, GI, lighting, Reflection, Specular and Refraction are the extra channels you need to do multi-pass denoising (the option is called "Denoise render elements separately" in the Maya UI, the nuke plugin equivalent is to disable "single-pass" in the denoiser settings)
                Note 4 : Although the non-python part can be scripted in Maya, the whole setup can be done with a single post-translate python script, just mentioning

                With this setup, you can now render out to single-channel EXR files. Then you'll need to use the COPY node in Nuke to put all of your channels into a single flow (keep in mind notes 3 and 4 - you might not need to copy all of them). Then you can plug that flow into a VRayDenoiser nuke node.

                Hope this helps, let me know if that works for you.
                Last edited by yolov; 29-09-2017, 07:53 AM.
                Alex Yolov
                Product Manager
                V-Ray for Maya, Chaos Player
                www.chaos.com

                Comment


                • #9
                  This is awesome Alex! I vote for making this a sticky thread!

                  Comment


                  • #10
                    Originally posted by sharktacos View Post
                    This is awesome Alex! I vote for making this a sticky thread!
                    Try it out first and see if it works, then we'll see
                    Alex Yolov
                    Product Manager
                    V-Ray for Maya, Chaos Player
                    www.chaos.com

                    Comment


                    • #11
                      Thanks for your clear answer Yolov! will try it out
                      http://goodbyekansasstudios.com/

                      Comment


                      • #12
                        Thanks for a great answer Alex. We will try it out as well.

                        In my previous post I completely forgot the need for the auxiliary passes in the denoise.
                        That kind of negates parts of the idea with getting denoiser outputs in one single multichannel exr but having separate files for the other elements.
                        You might end up get duplicate data in the other elements(assuming that we also have those elements for other needs), or if you only get the two "specials" in an multichannel exr, you end up using the nuke copy anyway to merge in the rest of the channels.
                        So, you solution here seems to be the most efficient way to handle it.

                        If one didn't have additional use for the render-elements that makes up the denoiser, then it would still be lovely to get them out as a single multichannel exr, in a seperate-files-per-element setup.

                        Thanks again.

                        Comment

                        Working...
                        X