Announcement

Collapse
No announcement yet.

VRayDenoiser and worldPositions/worldNormals

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

  • VRayDenoiser and worldPositions/worldNormals

    Hello VRay Team!

    We have some interesting findings in regards to the worldPositions and worldNormals aovs that get created when using the VRayDenoiser aov.

    The worldPositions pass that gets created with VRayDenoiser is unfiltered. This does not work with materials that use transparency with the opacity channel in materials (leaves etc). Except if the opacity mode is set to clip, then the sampler seems to be able to "look through" transparent faces.
    Ah workaround for this is to manually add a VRaySamplerInfo aov with type:Point and coord system:World, name it worldPositions, and set it to filtered. This will override the worldPositions aov created by the denoiser or cause the denoiser not to create its own.

    There is a similar issue with these opacity shaders in the worldNormals aov. When no bump is plugged in, the result can appear black when transparency is used, but when a bump map is plugged in, it works, but only when it's filtered. It feels very inconsistent.


    Additionally the VRaySampleInfo does not allow the user to set the Output setting when the type:Point is selected. This means that a worldPositions aov created by the user uses the rgb channels while the worldPositions aov created by the denoiser uses xyz. This causes a lot of headaches in Nuke. Please allow the user to chose either to output color or vector data for the position pass.

    Attached Files

  • #2
    After further investigation we found that it seems completely random whether VRay uses the AOV generated by the denoiser vs the AOV generated by the user. This means that we now have to have duplicate aovs for worldposition and worldnormal aovs.
    The reason why we need to use the denoiser generated aovs is because to this day it is not possible to create all aovs that the denoiser requires. See https://forums.chaos.com/forum/v-ray...defocus-amount

    Are there any possible workarounds anyone from the Chaos Team could think of?

    Comment


    • #3
      Just so you know we are investigating the matter.

      EDIT: In the meantime, can't you use the defocusAmount from the VRayDenoiser, while you generate other elements through the SamperInfo?
      Last edited by hermit.crab; 26-01-2022, 06:04 AM.
      Aleksandar Hadzhiev | chaos.com
      Chaos Support Representative | contact us

      Comment


      • #4
        That's what we tried, but it seems to be random when the VRayDenoiser elements are used and when the user generated elements are used. We tried "overriding" the worldPositions and worldNormals pass but sometimes the worldPositions pass has XYZ channels instead of RGB which is an indicator that it's using the VRayDenoiser element and not the user generated SamplerInfo elements.
        We have not tested enough to figure out when it's using which element, we just know it's not consistent.

        Comment


        • #5
          Yes, I've already logged an issue about the duplication of worldNormals and worldPositions (internal bug-tracker: VMAX-11829). Two sets of elements are generated on the first production render and IPR, which shouldn't happen. Also, renaming the SamplerInfo elements works when only one set is available (renaming them post-duplication would require reverting to the original names so as to get rid of the second pair).
          Aleksandar Hadzhiev | chaos.com
          Chaos Support Representative | contact us

          Comment


          • #6
            Apologies but I don't understand. Are you saying there is a workaround for us right now that allows us to somehow use the SamplerInfo renderelement in combination with the Denoiser renderelement?

            Comment


            • #7
              Well, yes. When the SamplerInfo worldNormals and worldPositions correctly override the VRayDenoiser such, the VRayDenoiser uses them instead (the workaround you mentioned in the first place). This is evident in the results (especially around the edges of the opacity mapped objects). Using the defocusAmount from the VRayDenoiser, you can combine all channels into a single multichannel file, which you can afterwards denoise in Nuke. Isn't this what you wish?
              Aleksandar Hadzhiev | chaos.com
              Chaos Support Representative | contact us

              Comment


              • #8
                Yes that would be the ideal workflow, however this:
                When the SamplerInfo worldNormals and worldPositions correctly override the VRayDenoiser
                doesn't work.

                When I add a VRayDenoiser renderelement and a SamplerInfo renderelement and name it worldPositions, some times it works, but some times it doesn't. It is random. When looking at the aov in Nuke, sometimes the aov is the one from the VRayDenoiser, and sometimes it's the one from the SamplerInfo node.

                Comment


                • #9
                  When two sets are created only the VRayDenoiser elements are saved, however, as I already said, it happens only on the first render. Also, the overriding seems to work correctly in Standalone every time - try it out.
                  Aleksandar Hadzhiev | chaos.com
                  Chaos Support Representative | contact us

                  Comment

                  Working...
                  X