Hey EQ, thought you might like to see this
https://github.com/KhronosGroup/glTF/issues/915#issuecomment-460360473I wonder if this assessment is accurate? Seems to be the incorrect way of applying ao.
We're using glTF extensively here for model output, and it's taking off as a universal delivery format. But the realtime renderers are pretty inconsistent. Thus the interest in figuring out what the ground truth should be.
I'm working a lot with the Khronos and BabylonJS teams on export and rendering issues these days.
Anyhow, hope this helps you guys.
Replies
- AO affects ambient image-based diffuse lighting (ie: Sky lighting)
- AO does not affect direct diffuse lighting
- AO does not affect image-based reflections / specular
- AO does not affect direct reflections / specular
It looks like that list suggests AO is multiplied on IBL reflections in some of these engines, I would be somewhat dubious of that claim so you should double check. In general, this shouldn't happen for PBR reasons and most engines have some sort of screen space reflection technique instead of reflection occlusion. Though if we're being pedantic, nothing about AO is physically correct lol.We have a cavity input as well, which affects both ambient and direct lighting and has controls for diffuse and specular intensity respectively. Generally speaking this should be used for micro-occlusion rather than large scale occlusion.
Since pure metals have 0 diffuse, AO doesn't affect metals.