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
Arnold 0.2 roughness
Vray 0.8 roughness
Arnold 0.8 roughness
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:
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...)?
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
Arnold 0.2 roughness
Vray 0.8 roughness
Arnold 0.8 roughness
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:
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 :
- part 1 : https://blog.selfshadow.com/2018/05/...aceted-part-1/
- part 2 : https://blog.selfshadow.com/2018/06/...aceted-part-2/
- part 3 : https://blog.selfshadow.com/2018/08/...aceted-part-3/
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...)?
Comment