pathtrace

The path tracer of the construct viewport: the engine, its snapshot of the scene and its sample budget.

Group construct

In the namespace construct.

Detailed description

The path tracer renders a snapshot of the scene, one sample at a time. construct::pathtrace::SubmitPlanner splits each sample into GPU submissions that fit the submit budget, so that no submission runs past the device's timeout.

Classes

Class What it is
CyclesAdaptiveCriterion Cycles' criterion (adaptive_sampling.h, E2): the error of a pixel is sum |I - A| / (1e-4 + sqrt(sum I)), with I the mean of all samples and A the mean of half of them. A pixel stops after the minimum samples when its error and its eight neighbors' are under the threshold, so a converged pixel beside a noisy one goes on, as Cycles' filter of the convergence mask does
IAdaptiveCriterion When adaptive sampling stops a pixel and a frame (rendering-revamp §RVR-6)
ISampleSequence Sequence of random numbers a path tracer draws its sample values from (rendering-revamp §RVR-3, §RVA-9)
IndependentSequence Independent PCG random numbers, the sequence before phase 6
KernelPipelineForge Path tracer's kernel pipeline, compiled by the driver on a helper device in a thread of its own (construct-owner-feedback row 6.4)
PathTracedEngine Path tracer behind the engine seam (rendering-revamp §RVA-3)
SceneBvh A bounding-volume hierarchy over the cluster boxes of a scene (rendering-revamp §RVR-8), built on the CPU with the binned surface area heuristic, refit in place when only the boxes move
SceneClusterBounds Cluster finder's bounds from the scene's own definitions (rendering-revamp §RVR-8): a leaf's box from its field, measured as a camera fit measures it (camera::leafBoxFromSlots), and a transform's map from its record, run on the leaf probe (eval::TransformProbe). No definition has C++ of its own here
SobolBurleySequence Owen-scrambled Sobol by hashing (Burley 2020), the default sequence
SubmitPlanner Splits a path trace into GPU submissions that each fit the submit budget, down to a tile of one sample
In this section