Announcement

Collapse
No announcement yet.

Shading improvement thoughts

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

  • Shading improvement thoughts

    Hi guys!

    I'm an active Vray and corona user and we were recently discussing shading improvements that could be implemented to improve realism in our scenes, on the Corona forum. So I'd like to bring the discussion here and know your thoughts and insight on what you might consider useful. So here are some of the discussed subject :

    A better diffuse model

    Vray diffuse roughness is available since ages and does not seems to have received much attention since. It looks weird compared to competitors implementation. Here are some examples (compared to Arnold's Oren-Nayar implementation) :

    Vray 0.2 roughness Click image for larger version  Name:	index.php?action=dlattach;topic=13398.0;attach=78893;image.jpg Views:	1 Size:	519.4 KB ID:	1023212


    Arnold 0.2 roughness
    Click image for larger version  Name:	index.php?action=dlattach;topic=13398.0;attach=78905;image.jpg Views:	1 Size:	351.7 KB ID:	1023213


    Vray 0.8 roughness
    Click image for larger version  Name:	index.php?action=dlattach;topic=13398.0;attach=78899;image.jpg Views:	1 Size:	524.0 KB ID:	1023214


    Arnold 0.8 roughness
    Click image for larger version  Name:	index.php?action=dlattach;topic=13398.0;attach=78911;image.jpg Views:	1 Size:	350.3 KB ID:	1023215


    I think these renders speak by themselves. I'm not saying Arnold's implementation is the best out there but the Vray's one just looks completely wrong to me, unless you want to create a toon shader. So what's the point here?

    So far, Disney diffuse BRDF seems to present the most accuracy/user-friendliness ratio. Don't you think this should be addressed considering the results presented above?

    More info here: https://disney-animation.s3.amazonaw...f_notes_v2.pdf


    An energy preserving BSDF

    I recently stumbled upon a presentation from Sony Image Works explaining how they improved their shading model to be energy preservative. Even if it seems a bit cumbersome, they've made the distinction between energy conservation and energy preservation and it's finally a pretty way to focus on the incriminated phenomenon.

    Basically, single scattering micro-facets BRDFs loose significant amount of energy as surface roughness increase. I've made a quick furnace test in Vray and I was quite shocked to see that we are indeed loosing close to 60% energy at 0.0 glossiness. Even if we almost never use such extreme values and considering this is linear, we're still loosing 30% energy at 0.5 glossiness and 15% at 0.75 glossiness. That's still a huge amount IMHO! Not to mention that physically wise, it is just nonsense.

    Here is an example of multi scatter GGX implementation in Blender. As you can see, it's quite noticeable:
    Click image for larger version  Name:	index.php?action=dlattach;topic=13398.0;attach=96710;image.jpg Views:	1 Size:	52.7 KB ID:	1023216


    What's more, this affects every micro-faceted BRDF so diffuse, specular and transmission (including clear coat, thin surface etc etc..).

    Have a look at their presentation for more info: https://blog.selfshadow.com/publicat..._slides_v2.pdf

    Also, Stephen Hill made interesting Blog posts on the subject :
    Keeping micro details skipped by filtering

    Micro shadowing most of the time overlooked. If it's not that much an issue on close up shots, as soon as we move away, filtering comes to action and we're loosing all the micro détails when using bump/normal and micro-displacement maps, resulting in a flat/plasticy render. So translating bump/micro-disp/normal map to microfacets is a must have too (for me at least). It can also be declined to solve some artifacts introduced with normal mapping with BDPT algorithm (Bump/normal mapping is not reciprocal). And that's what bump to roughness does with no negative impact on render time. These examples speak by themselves :

    Bump to roughness :



    Normal to roughness :



    Regular bump :



    Bump to roughness :




    And i'll finish by a quote from the article :

    "We noticed a significant improvement on environment detail, especially surfaces such as concrete and marble,"

    "The benefits don't stop there, as previously mentioned, Cars 3 saw huge improvements in render times. Bump-Roughness is over 35% faster than bump alone"

    You can read the full article here, it's really informative: https://renderman.pixar.com/stories/cars-3
    Here is also a link to the paper: https://graphics.pixar.com/library/B...ness/paper.pdf

    So, that's it! What do you think about it guys? Do you think these change would be welcomed and if not, why (massive overhead, too complex, simply not useful etc etc...)?
    Last edited by CCOVIZ; 16-01-2019, 10:01 AM.

  • #2
    No feedback guys?

    Comment


    • #3
      I actually used the diffuse roughness for creating toonlike shaders in the past so 1+ for improving that one.
      For the rest I'd like to hear someting from the smarter ones.
      Last edited by Ihno; 29-01-2019, 02:56 AM.
      German guy, sorry for my English.

      Comment


      • #4
        Well, it seems that in each example you gave quality, realism, and usability are improved. These would certainly all be welcome additions, no?

        I guess the real question is how do these changes impact computational intensity/time?

        Great post! I'm surprised it's not getting more attention. Maybe just needs time.

        Comment


        • #5
          In V-Ray for Modo 3.6, the v-ray material has a "roughness model" option. You can choose between "gamma-based" (which is the old model) and "oren-nayar", which looks closer to your arnold renders. Is this missing in other versions of V-Ray?

          Diffuse roughness only works on CPU too. It would be nice to have it on V-Ray GPU.
          Click image for larger version  Name:	vray_modo_diffuse_roughness_options.png Views:	1 Size:	200.2 KB ID:	1024805
          Last edited by 1funk; 30-01-2019, 08:50 PM.
          Win10 Pro 64 / AMD Ryzen 9 5950X / 128GB / RTX 3090 + 1080 Ti / MODO
          I am the resurrection, and the life: he that believeth in me, though he were dead, yet shall he live - Jesus Christ

          Comment


          • #6
            There is only one roughness model in Vray for 3DS Max (the ugly gamma-based one), can't say for other software. That's even more embarrassing that they've already implemented it in another package and not in the max version...

            Comment


            • #7
              I found it in VRayPluginMtl of VRayNextUpdate 1 for 3dsMax.
              Click image for larger version

Name:	2019-02-01_152948.jpg
Views:	429
Size:	73.8 KB
ID:	1024936

              OakCorp Japan - Yuji Yamauchi
              oakcorp.net
              v-ray.jp

              Comment


              • #8
                hmmm good to know! It is just weird that it does not show up in standard Vray material TBH, especially considering that the Oren-Nayar model is way more accurate.
                Last edited by CCOVIZ; 01-02-2019, 03:47 AM. Reason: typo

                Comment


                • #9
                  Originally posted by CCOVIZ View Post
                  hmmm good to know! It is just weird that it does not show up in standard Vray material TBH, especially considering that the Oren-Nayar model is way more accurate.
                  My bet is that it will be available in one of the future updates. I would like to see that, because it is more realistic, I have to agree.
                  https://www.behance.net/Oliver_Kossatz

                  Comment


                  • #10
                    Very interested in the answer about micro details in bump!
                    Add Your Light LogoCheck out my tutorials, assets, free samples and weekly newsletter:
                    www.AddYourLight.com
                    Always looking to learn, become better and serve better.

                    Comment


                    • #11
                      Great discussion! I've never used Roughness in Vray, even when the particular material called for it, exactly because of this. It has always made my materials look strange, almost like toon shaded. Hopefully we can see some improvement there.
                      Max 2023.2.2 + Vray 6 Update 2.1 ( 6.20.06 )
                      AMD Ryzen 7950X 16-core | 64GB DDR5 RAM 6400 Mbps | MSI GeForce RTX 3090 Suprim X 24GB (rendering) | GeForce GTX 1080 Ti FE 11GB (display) | GPU Driver 546.01 | NVMe SSD Samsung 980 Pro 1TB | Win 10 Pro x64 22H2

                      Comment


                      • #12
                        +1 here for the roughness bump .. to balance closeup vs far shots is tedious now because of this

                        regarding the diffuse roughness, I don't use it too but I won't mind seeing improvement here.

                        -------------------------------------------------------------
                        Simply, I love to put pixels together! Sounds easy right : ))
                        Sketchbook-1 /Sketchbook-2 / Behance / Facebook

                        Comment


                        • #13
                          Well I guess nobody uses diffuse roughness because results are weird, that's the whole point of this request. And yes, There is so much to do in the micro details area. This paper is interesting too in that regard: http://www.cs.ucsb.edu/~lingqi/publi...er_glints3.pdf

                          Last edited by CCOVIZ; 04-02-2019, 08:41 AM. Reason: fixed youtube link

                          Comment


                          • #14
                            That's a good point about the diffuse roughness, it's been on my "to do" list to switch to the Oren-Nayar implementation since forever, it's probably time

                            Thanks for the other suggestions as well; we are looking into better filtering for bump and normal maps and we've done some experiments, but things are more complicated when applied in practice than what the papers are suggesting.

                            Better energy preservation for glossy materials is also on the "to do" list; the trick here is to do it without sacrificing performance. That's a good question though, if you had to choose between a X% slower render and better energy preservation, which would you choose? (Obviously depends on the X, but how much would be acceptable?) For Blender, someone mentioned about 2.5% slowdown, but it might be actually higher in V-Ray because the BRDF code is more critical to performance.

                            Best regards,
                            Vlado
                            Last edited by vlado; 04-02-2019, 09:05 AM.
                            I only act like I know everything, Rogers.

                            Comment


                            • #15
                              Glad to see you here Vlado,

                              So happy that both diffuse and filtering are already in the WIP train. For the energy preservation, I guess you're talking about the Heitz's Multiscatter model which solve the light interaction completely? What about energy compensation like in the links provided in the first post? It's probably less physically accurate but anyway, it's energy conservative, reciprocal and it provides really good results IMHO. The only drawback is that it needs to be precomputed and stored in a LUT. But I would be curious to see the performance hit of this, it could be totally worth it.

                              Also, you're talking about energy preservation for glossy materials but aren't all micro-faceted BRDFs concerned here? (so diffuse, transmission, thin surfaces etc.. ?)

                              Edit: Do we have to choose between the two? Enabling/Disabling the feature is not an option?
                              Last edited by CCOVIZ; 04-02-2019, 09:30 AM.

                              Comment

                              Working...
                              X