Announcement

Collapse
No announcement yet.

Gi and Glossy Optimisation on huge scene ?

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

  • Gi and Glossy Optimisation on huge scene ?

    Hi,

    I'm looking for Texture optimisations for GI and Glossy passes.
    explanation: I have a lot of textures in very High quality for a very long shot under the rain (several thousands frames). I would like to optimize drastically my GI and Glossy passes. Generally, I use override shader for GI and Reflection and use a "low" version of my Shader.
    But in this case, I don't think its a good idea. I have too much "complex" shaders, and too much maps, and I'm not sure to have a gain at the end. What I will gain in Glossy and GI, I will probably loose it in memory (which is allready a problem for me) and in scene maintenance.

    So I did a simple test. If I use the "global texture filter Scale" at 20, my gain is about 20% in glossy computation. That would be great to have a separated "global texture filter Scale" for GI and an other for Glossy, independant of the main Texture Scale.
    In fact, the best way in my point of view would be to force the mipmapping at a different level (lower) for GI or Glossy passes.

    So... is there a way to do that ?
    Or maybe someone has a better approach ?

    Furthermore, in my case, I see my objects from very near to very far. And, as I walk through in my scene, far objects become near etc...
    Generally, if render engine support it, I connect a distance tool to the map filter, to avoid distance flickering. for same reasons evoked above (lot of shaders etc..)
    maybe you have a different approach ? something more global ?

    PS: maps are in linear .exr

    Thanks in advance

  • #2
    Hi Fabien,
    Here my optimizations :
    - For textures, use .tx texture if you create 8Bits textures. .tx is like .exr mipmapped tiled, but in 8bits. If your "original" textures is in 8bits, do not convert them to exr (16bits), but .tx (8bits). You will win HDD access.
    - For GI, set your primary engine to IRMap, and secondary to LC. Bake the LC on a layer, with the "use LC for glossy rays". Bake the IR in another layer with the LC ( in file read mode).
    For the final shot, set the IR and LC to file read mode. With this, the render of the final shot will use the "use LC for glossy rays" of the LC.
    - For the bake of the IR and LC, in render global, disable "glossy effect", "displacement", and set the max depth to 1 or 2. You do not need all of this for the bake. And set the "GI Global texture filter scale" to 2 (it is on stable build, not in the official build which is too slow and old).
    - For more optimization of the GI, i have created a script in Python and PIL which analyse all shaders color slots, and calculate the average color of the color slot of all shaders (average color of the result of the texture connected to a color slot).
    When you have this, you can create a "low gi/reflection/refraction shader (without textures, with all colors average)" for each shaders, connected in the gi/reflection/refraction override of each corresponding shaders.
    With this, when you will bake you GI, you will not load textures, but use the average color (you will win memory and time), and for the final shot, the computation of the GI will be faster.

    - Proxies : do not use proxies is you do not use all of your memory. Use regular meshs, and when you hit all of your memory, start to convert "big mesh" into proxy.
    There is a lot of more optimizations
    Just with this optimization, i have divide the render time to 3 or 4.
    Last edited by bigbossfr; 21-02-2013, 06:57 AM.
    www.deex.info

    Comment


    • #3
      Hi Damien,
      (I'm Benoit, using Fabien's account
      - Unfortunately, lot of my maps are 16b ;(
      however, I'm gonna try .tx for other maps, but how do you convert it in .tx ? I mean, excepting the PRman's "txmake" command... I don't know how to do that for vray...
      - "For more optimization of the GI...." I know your script dude but in this particular case, I have too much data in my maps to simplify them in a simple color (lot of cameraMapping on full buildings, with different layers etc...)
      otherwise, that is probably what I would have done. however, I can try it on some parts of the scene.
      -For IR and LC bake... I'm wondering if it's gonna work... just because I have about 300 fast moving trees in the wind on all frames . That seems difficult to bake 4000 frames with cameraPath and so much moving objects ;( it should be fine for everything excepting trees. I will try it next week.
      - We are just getting the Stable build today... Vray is new in the company... I will have a look at this next week ("GI Global texture filter scale" and other stuff).
      - Proxies: at this time,everything is in proxy (instanced proxies) cause we are over our memory limit ;( ...

      thanks

      Comment


      • #4
        Originally posted by fabien Guiliani View Post
        So I did a simple test. If I use the "global texture filter Scale" at 20, my gain is about 20% in glossy computation. That would be great to have a separated "global texture filter Scale" for GI and an other for Glossy, independant of the main Texture Scale.
        You already have that in the latest nightly builds. There is a global "GI filtering multiplier" which affects both GI and glossy rays. The other suggestions from bigbossfr are also very valid (especially the one for the .tx files - it can really reduce memory usage a lot).

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

        Comment


        • #5
          You have maketx from OpenImageIO here : http://opensourcepack.blogspot.fr/20...mage-tool.html

          So, for the GI, you use brute force ?
          You can use BF for primary, and LC for secondary. With LC, you will get the "use LC for glossy rays". No need to bake if you do this, and you will have the optimization of the "use LC for glossy rays".

          After, the other tricks is to disable GI, create a Ambient light, connect a VRayDirt in the ambient light, and activate the "Environment Occlusion" of the VRay dirt.
          www.deex.info

          Comment


          • #6
            Also, you can limit the distance of the GI rays; especially for large exterior scenes it can reduce render times a lot.

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

            Comment


            • #7
              Same for reflection rays .
              www.deex.info

              Comment


              • #8
                thank you both !


                You already have that in the latest nightly builds
                That sounds perfect !

                You have maketx from OpenImageIO
                Of course! I had not thought to that. In fact I didn't know that Vray could used .tx
                Thanks.

                I will do different tests next week to optimize GI... I let you know..

                Thanks

                Comment


                • #9
                  I didn't see your post about rayLenght.
                  you can limit the distance of the GI rays
                  In my case it seems difficult to find a good max value.
                  Imagine you are walking in a straight street under the rain. the incident angle on the ground can search a really far object in reflection. without this reflection (with a cutOff color) the ground could seem weird.
                  In fact a "per object" or "per shader" max distance could be perfect to optimize.... but probably too much specific....
                  however I will try some value during my tests.

                  Comment


                  • #10
                    Originally posted by fabien Guiliani View Post
                    I didn't see your post about rayLenght.


                    In my case it seems difficult to find a good max value.
                    Imagine you are walking in a straight street under the rain. the incident angle on the ground can search a really far object in reflection. without this reflection (with a cutOff color) the ground could seem weird.
                    In fact a "per object" or "per shader" max distance could be perfect to optimize.... but probably too much specific....
                    however I will try some value during my tests.
                    Another tricks :
                    You can disable/enable "Generate Gi" and "Receive Gi" with objects properties. You can control the value, but not the rays distance. A rays distance in objects properties sets can be very great.
                    Last edited by bigbossfr; 21-02-2013, 11:12 AM.
                    www.deex.info

                    Comment

                    Working...
                    X