Announcement

Collapse
No announcement yet.

Vraydisplacement&Reflections=horrible Rendertimes?

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

  • Vraydisplacement&Reflections=horrible Rendertimes?

    Hi there,

    I just had a shot where I had a metallic object inside an organic Tube (SSS mat) with some vraydisplacement on it and render times gradually went through the roof:

    Starting at an easy 10 Minutes per frame up to 3-4 hours per frame.
    Once I turned of Vraydisplacement, render times were back to normal.

    So apart from rendering in layers (rendering the metallic object with a dummy-non-reflective material and Vraydisplacement in the surrounding object durned on and then rendering another pass with the metallic material but vray displacement turned off), which I just did, is there anything I could do to avoid this from happening?

    I watched some render nodes and I noticed that the memory got filled up pretty quickly and from there on render times went downhill.

    I figured that due to the reflections a huge amount more of the environment han what´s visible in the frame needed to be calculated, that´s why the Vraydisplacement slowed the rendering down that much.
    Am I on the right track?

  • #2
    Was it anything like your dynamic memory limit being hit? What was the map being used for your displacement?

    Comment


    • #3
      Was "Static Geometry" ticked inside the vray displacement modifier? If not try that. It uses more RAM but it renders faster at least from my experience.


      *edit* ignore my post. I somehow skipped the whole part about some renders nodes hitting max on Memory usage. Sorry!
      Last edited by Mokiki; 18-11-2014, 03:47 AM.
      Cheers,
      Oliver

      https://www.artstation.com/mokiki

      Comment


      • #4
        You could use a VRayOverrideMat on the tube and the metallic object. Then use a simple non-reflecting material for the GI and reflection rays.

        Also limiting your ray depth might help.
        Last edited by Rens; 18-11-2014, 04:04 AM.
        Rens Heeren
        Generalist
        WEBSITE - IMDB - LINKEDIN - OSL SHADERS

        Comment


        • #5
          How much RAM is occupied during the rendering?
          Is the Displacement View Dependent or not?
          What are the Edge Length and Max Subdivs value?
          What is the Reflection Depth value for the Reflective material?
          What version/service pack of V-Ray/Maya/OS you are using?
          Svetlozar Draganov | Senior Manager 3D Support | contact us
          Chaos & Enscape & Cylindo are now one!

          Comment


          • #6
            Sorry for the late reply, I was busy getting the project done. For now I went with a layered solution (like my own suggestion) and that worked very well. Turning off the Vraydisplacement for the metallic layer pass didn´t really affect the look and I got the correct alpha from the non-metallic layer with vraydisplacement turned on.

            But to answer your questions:

            Was it anything like your dynamic memory limit being hit?
            Looked like it. We have render nodes with 32 GB each and ram usage went up to 30 gb, afair.

            What was the map being used for your displacement?
            Procedural Noise maps in a composite map.

            You could use a VRayOverrideMat on the tube and the metallic object. Then use a simple non-reflecting material for the GI and reflection rays.
            I´ll have to look into that, not sure how this would work...

            Is the Displacement View Dependent or not?
            I think it was view dependent...

            What are the Edge Length and Max Subdivs value?
            edge length=2, max subdivs=256

            What is the Reflection Depth value for the Reflective material?
            I think I already lowered it to 2.

            The major hit came definitely from the vraydisplacement, so this is were the issue must have been...

            Comment


            • #7
              Right! So Max subdivs was probably quite high unless you're doing something very fine being driven by a bitmap. A lot of people find that it's less intensive to do some of the subdivision using a tesellate or turbosmooth before the vray displace and then use much less subdivs - you'd have to see what frame is closest and then do a few tests. I reckon chaos used 256 as a very high safety net so someone could take a single polygon plane and use a map to get an intricate surface from it with zero effort, but you'd probably be able to get away with a lot less.

              Second thing is apparently the composite map is disgusting in terms of calculation and render times - if it isn't too many layers of blending you could try using the vray comptex map or even one of the texture baking scripts to try and burn down your map to a single image - that'd probably give you much better results.

              Comment


              • #8
                I never go above 32 for displacement subdivs - usually keep it around 8 or 16 with a few levels of meshsmooth. makes a vast difference to memory usage and render times.
                Baking it all down to maps would help too - you'll be able to cut your memory use in half and drop the time down a fair bit.

                Comment


                • #9
                  Well, the thing I don´t get is why the render times are just that high with reflective materials in it. Rendering just the environment without the reflective objects, but vraydisplacement with my settings renders blazing fast, that is why I didn´t even bother optimizing my displacement.
                  I don´t bake textures, because...:
                  A) I use a lot of procedural noise maps for my texturing, which only need a uvmap set to XYZ and saves me the tedious process of unwrapping.
                  B) Unrwapped and with a bitmap as displacement I always get seams (unless using Ptex or special unwrapping methods, which is not an option..).

                  I already finished the project with my workaround, next time I´ll try optimizing subdivs to see if that helps with the memory problem...

                  Comment


                  • #10
                    I'd say that the displacement makes all the normals of your surface point in a far bigger spread of directions so it's almost like changing from mirror reflections to glossy ones - where you previously had rays going in quite parallel directions that could converge easily to a clean solution, they're now all pointing in a far wider range of directions so the amount of rays used before aren't enough to give the same noise threshold. Also vray is likely generating geo on the fly as the reflections are asking for it so there's a lot more loops. It'd be interesting to see if you could get similar results using ridiculously high tesselation on your object and just use the normal displace and compare render times.

                    If the displaced object wasn't using reflective materials it might have been a case of vray rendering the displace, trying to immediately dump the geo out of ram but then a reflective object "seeing" it and keeping it around longer than you'd like? It's kind of the trick that made displacement free in renderman - nothing was reflecting it so it went right in and out of ram.
                    Last edited by joconnell; 24-11-2014, 05:53 AM.

                    Comment


                    • #11
                      That brings me to an idea...wouldn´t it be possible to implement a checkbox in the vraydisplacement mod to say "visible in reflections", which would turn the displacement off for reflection/refraction rays somehow?
                      In most cases the reflections are so distortet/glossy anyways, that noone could tell the difference, but it would save me the trouble of rendering in different passes.
                      Last edited by ben_hamburg; 25-11-2014, 06:53 AM.

                      Comment


                      • #12
                        There was talk of turning off displacement when calculating undersampled GI and light cache - might be a thing?

                        Comment


                        • #13
                          A checkbox like "ignore for GI" in the dispMod might be fine.
                          Software:
                          Windows 7 Ultimate x64 SP1
                          3ds Max 2016 SP4
                          V-Ray Adv 3.60.04


                          Hardware:
                          Intel Core i7-4930K @ 3.40 GHz
                          NVIDIA GeForce GTX 780 (4096MB RAM)
                          64GB RAM


                          DxDiag

                          Comment


                          • #14
                            Originally posted by ben_hamburg View Post
                            That brings me to an idea...wouldn´t it be possible to implement a checkbox in the vraydisplacement mod to say "visible in reflections", which would turn the displacement off for reflection/refraction rays somehow?
                            Oh, if it could automatically convert it to a normal map... that would be a great feature. the phoenix ocean does something similar turning it into a normal map when you're far away but I dont know what controls that.

                            Comment

                            Working...
                            X