Shadow Terminators

Normal/bump mapping can be used to add surface detail missing from the base geometry. However, this results in a shading normal Ns that deviates from the true geometric normal Ng of the surface. This can cause harsh shadow terminator effects, as seen below.

normal mapping applied include.image_alt_after

Left: no normal mapping applied, no harsh terminators, right: normal mapping applied, causing harsh terminators

Harsh Shadow Terminator Graph Visualization of the harsh shadow terminator. The x-axis represents the angle (in radians) between Ns and Ng, and the y-axis represents the angle (in radians) between Ns and the incoming light direction wi. The purple color represents no visibility, while the yellow color represents full visibility.

In order to mitigate these harsh termination effects, we provide a scene setting called shadow_terminator_fix that will soften the shadow terminators. There are four different options we provide, and they all have their tradeoffs.

Targeted Shadow Terminator

This terminator preserves the shape of the lobe. This means it maintains its highlights, while also softening the shadow terminators.

cap targeted terminator include.image_alt_after

Left: harsh terminator, right: targeted terminator

ice targeted terminator include.image_alt_after

Left: harsh terminator, right: targeted terminator

targeted terminator graph include.image_alt_after

You will see above that the shadow termination edge has softened, while also maintaining the existing visibility hemisphere.

Cosine Terminator

This terminator is based on Chang et al, “Taming the Shadow Terminator”. It has no effect on the unoccluded part of the hemisphere, which is important, but it does dampen the BRDF response for small deviations from the geometric normal.

cap cosine terminator include.image_alt_after

Left: harsh terminator, right: cosine terminator

ice cosine terminator include.image_alt_after

Left: harsh terminator, right: cosine terminator

cosine terminator graph include.image_alt_after

Sine Terminator

This terminator is a modification of Chang et al.

sine terminator graph include.image_alt_after

GGX Terminator

This terminator is based on Estevez et al, “A Microfacet-Based Shadowing Function to Solve the Bump Terminator Problem”.

cap ggx terminator include.image_alt_after

Left: harsh terminator, right: ggx terminator

ggx terminator graph include.image_alt_after