Announcement

Collapse
No announcement yet.

Vraydisplacement not working with UVW Map

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

  • Vraydisplacement not working with UVW Map

    Hello,
    Thanks for the update - had been waiting for displacment for some time. Unfortunately my intial testings are showing me that it does not work with UVW Map.... Which makes it unsuable really. I checked results against Vray GPU - Vray GPU works fine.

    Vantage is ignoring he UVW Map when applying the displacement...

    Thanks
    Attached Files

  • #2
    Ok I've got it working... But it looks like there is a limit as it starts breaking after a certain size and ignores the mapping... What are the known limitations for this implementation? Perhaps im trying to do something thats not possible such as using displacment on a large plane?
    Last edited by rita_sobral; 07-12-2023, 01:21 PM.

    Comment


    • #3
      I am sorry, what do you mean by "UVW Map" ?

      Greetings,
      Vladimir Nedev
      Vantage developer, e-mail: vladimir.nedev@chaos.com , for licensing problems please contact : chaos.com/help

      Comment


      • #4
        UVW Map modifier in Max - It looked like that at first but actually I think I was just using a very large plane hence it did not look like it was working. I am guessing the way its implement VrayDisplacement is that it is not updating on view like Vray GPU but is actually just pre subdividing the mesh up to a limit on import? The limit is based on the tesselation settings in Vantage? Would that be correct?

        Comment


        • #5
          Yes, that's mostly correct.
          The displacement is view dependent, however it's updated only on scene load and animation scrubbing.
          Also, all triangles of a particular mesh are subdivided the same number of times, there is no per-triangle tessellation level.

          Greetings,
          Vladimir Nedev
          Last edited by vladimir.nedev; 07-12-2023, 02:38 PM.
          Vantage developer, e-mail: vladimir.nedev@chaos.com , for licensing problems please contact : chaos.com/help

          Comment


          • #6
            Dam thats unfortunate - was really hoping for something similar to how Vray GPU does it.

            I would of thought doing it similar where triangles are subdivided based on how far from the camera would be possible? Otherwise this current method becomes unusable after a certain size of asset/mesh. I know you are prioritsing speed (real-time) but something like meshes update 1 second or so after you stop moving the camera in Vantage could of been possible? For me, in Vray GPU interactive renderer I wait maybe less than a second for the meshes to update when I use the 'view navigation' option in the interactive renderer. It's just the time to fist pixel in Vray GPU when you first hit render is terrible hence why Vantage has a huge advantage in that regard.

            Comment


            • #7
              Ok so if I pre-sub divide a large area in Max and then add Vraydisplacement modifer on top this does help with larger objects and adding in the desired level of detail. I just need to get used to this workflow but actually, this is probably very usable as I was doing this anyway using the standard displace modifier from max but now I am offsetting some of the strain to Vantage instead of doing it all in Max!

              Comment


              • #8
                it starts breaking after a certain size and ignores the mapping
                Maybe there wasn't enough memory. It would show an error in the log (there is a new red icon in the lower left corner of the window if there are errors).

                If you have a large plane with only two triangles or similar, these big triangles may hit the tessellation limit for the selected global tessellation level, so yeah, using a more detailed base mesh may help in this case.

                The displacement is view dependent, however it's updated only on scene load and animation scrubbing.
                There is also a trick for updating it relative to the current arbitrary camera position - clicking the auto-update button on the right of the timeline twice - toggling it updates meshes.

                We're not updating the meshes on every move because as you can imagine this would cause stuttering. We already have a high quality offline engine, V-Ray GPU. The Vantage engine strives to be much faster, that's the whole point of having a different engine.
                Nikola Goranov
                Chaos Developer

                Comment


                • #9
                  npg coming back to this one, I've been trying to use displacement on larger areas and scenes with large objects and I can't seem to get displacement quality anywhere close to Vray GPU or CPU and sometimes hitting memory limits on an RTX 4090. Even when pre-subdividing those meshes...

                  I understand why this is and the differences in how this is currently implemented but I would love to see meshes tessellated based on the initial camera angle, this works great for GPU/CPU. With the option to update meshes on the next frame or hit the auto-update button as you suggest whilst previewing to allow you to continue previewing in real time until you want to re-update the meshes. This would no doubt save a lot of memory which I can see is already causing a lot of support with errors... whilst increasing the quality 10x or more on heavier scenes or large objects/landscapes where displacement falls apart currently.

                  I am also concerned that when you support Vray Blend Material the displacement will not work well with its current implementation - especially when blend materials can be used a lot for large landscapes with each material potentially using displacement.

                  Cycles for Blender also does this well with its adaptive displacement you can just double press the tab key and it updates the meshes to the current angle in the viewport and works really well allowing you to maintain low resources and enhancing displacement quality.

                  Considering you have the technology built into core Vray GPU already it would at least make sense to me to explore additional options that would make Vantage even better.

                  Thanks!

                  Comment


                  • #10
                    I am a bit confused. Does this not update the tessellation in your scene?
                    There is also a trick for updating it relative to the current arbitrary camera position - clicking the auto-update button on the right of the timeline twice - toggling it updates meshes.
                    The distance is relative to the mesh bounding box, not the nearest surface, so if it's something like a fence or house surrounding the camera it may not change the level (significantly).

                    Could you post examples of quality issues?
                    Nikola Goranov
                    Chaos Developer

                    Comment


                    • #11
                      To answer your question, yes, but it does not help/solve the issues I am facing.

                      I'll list some of these below. But most of it comes down to the difference between Vantage and GPU/CPU implementation as Vlad says:

                      Also, all triangles of a particular mesh are subdivided the same number of times, there is no per-triangle tessellation level.
                      • In Vantage the whole mesh is subdivided equally regardless of how far or close part of the mesh is to the camera. On large surfaces or objects especially if you need a variety of camera angles this can really affect the quality of your work and is also not very memory efficient. In some cases, the displacement will never look good.
                        • GPU/CPU prioritizes subdivision based on depth so a single mesh can have a higher subdivision closer to the camera than the back of the mesh which is farther away from the camera or even out of sight in a lot of cases. This allows for much higher quality and better memory consumption.
                      • I see very high memory consumption compared to Vray GPU 1-3x more in some cases causing even RTX 4090 with 24gb of Vram to crash Vantage on medium scenes
                      • Issues with meshes breaking/black triangles in Vantage as it has to spread the subdivision over the whole object meaning fewer triangles where they might be needed in view of camera
                      • Issue when used with UVWRandomizer with stochastic tiling turned on - your implementation is not reading the tile blur amount on the map causing massive breaking of mesh

                      I really hoped Vantage displacement worked the same as Vray GPU/CPU as I think overall its implementation is the best on the market compared to all other render engines it's very efficient and looks great. So far this implementation is only a little bit better than just using 3dsMax displace modifier and in some cases that is better as you can fine-tune, throw a pro-optimizer on it, and works perfectly with stochastic tiling.

                      Building dynamic meshes on scene load (like VRAY GPU/CPU) based on the current camera, and then the ability to re-build/update meshes at the click of a button based on a new camera angle would allow for much higher quality work and far less memory consumption - it would also still allow for realtime previewing and navigating the scene until you want to update the meshes. Outputting a render or an animation this would automatically at render time and between frames.


                      Attaching an example of some of the issue.

                      Click image for larger version

Name:	displacment.png
Views:	153
Size:	2.29 MB
ID:	1198834





                      Comment


                      • #12
                        Here is an actual real-world example... Simple Archviz scene

                        Both are rendered at 4k with full-size textures. The only displaced elements are a couple of planes (sand and gravel) and the wood facades.I also had to trim a large part of the meshes to even open the scene with displacement enabled in Vantage.

                        Used memory:
                        Vray GPU == 8.97gb
                        Vantage == 17.32gb

                        1.93x memory usage in Vantage with Medium tesselation you can also see the texture-breaking in the sand in places.


                        Vantage would sometimes struggle to even open the scene and would throw the error attached.



                        GPU

                        Vray GPU

                        Vantage

                        Vantage

                        Click image for larger version

Name:	Screenshot 2024-01-03 211430.png
Views:	94
Size:	11.3 KB
ID:	1198844

                        Comment


                        • #13
                          Final comparison because this is where Vantage falls apart... Large terrains. When you want a good balance of foreground, mid and background displacement. This is just a quick example.

                          Both are rendered at 1080p with full-size textures. Single displaced mesh (large) 2.5k square.

                          Used memory:
                          Vray GPU == 2.06gb
                          Vantage == 5.07gb

                          2.46x memory usage in Vantage with medium tesselation.


                          ​The foreground displacement quality is pretty bad for Vantage where as Vray GPU is much better due to the dynamic displacement.

                          GPU

                          GPU


                          Vantage

                          Vantage

                          Comment


                          • #14
                            Thanks for the detailed feedback. The tile tearing should be fixed in the next release. Until then the workaround is to set tile blend to 0.
                            Nikola Goranov
                            Chaos Developer

                            Comment


                            • #15
                              No problem, thanks. I don't want to sound ungrateful, as the current implementation does work ok in some instances mainly when the scene is much smaller and you are only using displacement on one or two objects - but this is very limiting even on a 4090...

                              I have been testing this quite heavily and given the constraints of varying GPUs and not everyone being able to afford an RTX 4090 or 6000 and given that with Vray GPU you can have far better quality exactly where you need it and with half the memory consumption. It's tough to appreciate the displacement currently in Vantage in my opinion.

                              Dynamic sub-division on scene load like Vray GPU would solve all these problems and open far greater possibilities with Vantage in the future allowing bigger and better scenes with a lot more detail at half the cost. And as I said previously you could still have the benefits of real-time scene exploration until you want to update the meshes at the click of a button.

                              Comment

                              Working...
                              X