If you have a dielectric (non metallic) sphere with a large roughness value (say, 0.95), and put it in a lighting environment that has a constant onmidirectional lighting value (such as 0.5) Cook-Torrance ggx PBR renderers seem to be missing a darkening at glancing angles.

I thought this was a bug in my PBR implementation at first when comparing vs a mitsuba ggx render, but I've found the same issue in google filament (https://github.com/google/filament) as well as in substance.

For instance, below is the iray version from substance compared to the opengl version from substance. 0 metalness, 1 roughness, omnidirectional ibl of 0.5, albedo of (1,1,1).

enter image description here

Is this a known limitation of cook-torrance ggx based PBR? Can anyone explain why this limitation is here, and the reason for the difference?

I've noticed that it's much closer to the path traced "ground truth" at lower roughness values (like up to around 0.5-0.75), and that the most commonly interesting roughness values are near the lower end of roughness. 0.5 even looks almost "completely rough" for instance. Is the issue that the approximations used don't really try to make these less important higher roughness values look correct?

  • it's odd to see that in substance, the IBL color is interpreted different between the path traced and rasterized version, but that's unrelated :P – Alan Wolfe Sep 12 at 18:35
  • couldn't that be a result of some tonemapping postprocessing step? – ivokabel Sep 20 at 12:45
  • Nope, it doesn't have anything to do with tone mapping or any other post processing. Verified by doing other furnace tests, and comparing between different renderers which have explicit controls for those things. – Alan Wolfe Sep 20 at 14:04
  • That's strange. – ivokabel Sep 21 at 15:18

The problem is in the diffuse term, which can be seen by making the specular portion of IBL not be added into the result. The diffuse only render will not have the darkening, and of course, the specular can't make the diffuse darker. (Note, fresnel vs no fresnel is not the issue here).

The core problem is that lambertian diffuse is being used, which is view independent. There are other view independent diffuse terms which give results closer to the ground truth.

Two example diffuse terms are Burley (Disney) and Oren-Nayar.

Burley is talked about here: https://google.github.io/filament/Filament.md.html#toc4.5

An approach used in Titanfall is described here: https://www.gdcvault.com/play/1024478/PBR-Diffuse-Lighting-for-GGX

  • 1
    it's actually unclear if this is the whole story, and some thoughts that the path traced version may actually be incorrect. there is a twitter conversation here: twitter.com/Atrix256/status/1039943676552568832 . – Alan Wolfe Sep 12 at 20:36
  • Burley has an entire paper about the Disney Diffuse Model: disney-animation.s3.amazonaws.com/library/… However, the Disney Diffuse BRDF is not energy conserving. This might not be a problem in the questioners case but should be mentioned. The Titanfall approach is good, but I want to add a blog post series by Stephen Hill ( blog.selfshadow.com/2018/05/13/multi-faceted-part-1) which explains a different way to handle this problem – Tare Sep 13 at 11:33
  • @Alan Wolfe - Although Oren-Nayar may give a closer look to the ground truth, I think the main problem is in fact the Fresnel Issue. Fresnel issue guarantees that at glancing angles, more light reflects, this would mean at glancing angles we have more specular part and very low diffuse part thus giving the black ring. Atleast that's what makes sense to me. – gallickgunner Sep 14 at 14:06

This is not related to the edge but in https://eheitzresearch.wordpress.com/240-2/ you can clearly see that energy is lost for the microfacet stuff when roughness is increased. The issue is that the rougher the surface is, the more occlusion you get from the shadowing function.

There are a few "hacks" to boost the energy. One can be found in http://www.cs.cornell.edu/projects/layered-sg14/ section 5.3. Maybe the rasterized version uses one of these "hacks" and doesn't have that issue.

Also see 5.1 here https://blog.selfshadow.com/publications/s2015-shading-course/burley/s2015_pbs_disney_bsdf_notes.pdf.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.