Votes
0
Product:
Character Creator 2
Version:
2.0 Beta 1
Status:
Released in 2.0
Issue 1997
Ambient Occlusion is applied incorrectly - Should only affect ambient type lighting
MAJOR ISSUE:
The Ambient Occlusion map should NOT affect direct lighting sources, such a point, point, or directional lights.
It should only affect non-shadow casting lighting, such as Ambient, GI, and IBL lighting.

Assume this applies to both Character Creator 2 and iClone 7.

It was discussed at great length in this forum thread:
http://forum.reallusion.com/310082/MajorIssue-Ambient-Occlusion-Should-NOT-Impact-Diffuse-Lighting


EXAMPLE FROM CC2:
-----------------------------------
See the two "face" pictures, attached.

When the AO map is totally black, the face becomes totally black.
That is wrong. The face should still be lit by the direct lights in the scene.

We know it's not a normal AO map, but it demonstrates the issue very clearly.


MORE INFORMATION:
-----------------------------------
The following are some additional highlights from the discussions in the forum. Thank You to all the great contributors. A couple of you will recognize your contributions which I included in this entry.


REFERENCE A:
-----------------------
The problem seems to be an issue of where in the rendering sequence the AO is applied.
WRONG - Add all lighting together first, then multiply by AO map.... (a+b+c+d) x AO
RIGHT - Multiply ambient light by AO map first, then add other light sources to that result.... (a x AO) + b + c + d

This logical view is substantiated by a post in an Unreal Engine thread: (Post #11)
https://forums.unrealengine.com/showthread.php?6536-NO-Ambient-Occlusion-WHY&p=310195&viewfull=1#post310195
See the example picture attached to this Issue.


REFERENCE B:
-----------------------
This is a quote from the Allegorithmic PBR Guide, Vol. 2 dealing with AO.
https://www.allegorithmic.com/pbr-guide

The ambient occlusion (AO) map defines how much of the ambient environment lighting is accessible to a surface point. It only affects the diffuse contribution and should not occlude the specular contribution. Some engines such as Unreal Engine 4 have an option for screen space reflection to simulate local reflections. The best combination is to use AO with screen space reflections. In Substance PBR shaders, the ambient lighting (generated by the environment map) is multiplied by the AO. The AO map is supplied by a texture sampler in the PBR shader and is an optional channel as shown in figure 29. The AO should not be baked into texture maps, but only supplied as its own channel to the shader.


REFERENCE C:
----------------------

Another great resource comes from ILM (Industrial Light and Magic).
https://renderman.pixar.com/view/production-ready-global-illumination
This is a SIGGRAPH Course from ILM from 2002 where Ambient Occlusion was unveiled for the first time.
It took almost 10 years for the term "Ambient Occlusion" to become common inside the VFX industry, with some confusion at first.
OS: Windows 7
Attachment:
  • Ambient occlusion 01.jpg
  • Ambient occlusion 02.jpg
  • Ambient occlusion examples in Unreal engine.jpg
  •  1
  •  5814
Submitted byjustaviking
1
COMMENTS (1)
GOETZIWOOD STUDIOS
"../..The face should still be lit by the direct lights in the scene."
.. and receive specular/reflection.

Also:
- The Substance appearance editor has features to produce ambient occlusion calculation. But the result is unfortunately baked into the Base Color or Albedo map channel. The result should be baked into a map in the AO slot instead and used properly.
- SSAO improperly affect Diffuse/Direct Lighting as well. This should only affect Indirect/Ambient Lighting (Ambient, IBLs, GI).
1