Cycles: add Path Guiding on CPU through Intel OpenPGL

This adds path guiding features into Cycles by integrating Intel's Open Path
Guiding Library. It can be enabled in the Sampling > Path Guiding panel in the
render properties.

This feature helps reduce noise in scenes where finding a path to light is
difficult for regular path tracing.

The current implementation supports guiding directional sampling decisions on
surfaces, when the material contains a least one diffuse component, and in
volumes with isotropic and anisotropic Henyey-Greenstein phase functions.

On surfaces, the guided sampling decision is proportional to the product of
the incident radiance and the normal-oriented cosine lobe and in volumes it
is proportional to the product of the incident radiance and the phase function.

The incident radiance field of a scene is learned and updated during rendering
after each per-frame rendering iteration/progression.

At the moment, path guiding is only supported by the CPU backend. Support for
GPU backends will be added in future versions of OpenPGL.

Ref T92571

Differential Revision: https://developer.blender.org/D15286
This commit is contained in:
Sebastian Herhoz
2022-09-21 17:58:34 +02:00
committed by Brecht Van Lommel
parent 6d19da0b2d
commit 75a6d3abf7
59 changed files with 2185 additions and 125 deletions

View File

@@ -56,6 +56,8 @@ BLACKLIST_GPU = [
# Inconsistent handling of overlapping objects.
"T41143.blend",
"visibility_particles.blend",
# No path guiding on GPU.
"guiding*.blend",
]