public sealed class TracedScreenProbeGatherFills screen probes by marching a distance field, on the CPU.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
Doc 19 § L3's gather, written where it can be checked — and deliberately only its first half. The shipping version traces the screen against the HZB before it ever touches a distance field, importance-samples the map against the BRDF and last frame's lighting, and filters spatially and temporally before anything resolves. None of that is here, and that is the point: one deterministic ray per octahedral texel is the arrangement with nothing between it and a closed form, and it is what the compute version's unfiltered output gets compared against — the same role TracedIrradianceFiller plays for § L2's filler, and the same reason it exists.
One ray per texel, at the texel's centre, with no jitter. Two gathers of one scene agree to the bit, so a test can assert an exact number rather than a tolerance around a stochastic one. Importance sampling changes which texel a ray serves and how much it counts, not what a texel means, so it belongs to the version that has a BRDF to sample against.
A probe standing inside geometry is invalid before any ray is cast — the field's sign says so, the same rule as the irradiance field's filler. A probe whose anchor shows the sky is invalid before that, because there is no surface to stand on at all.
Fields and properties (3)
public ScreenProbeGatherSettings SettingsHow this gather was told to trace.
public IrradianceField? FarFieldWhere a ray that ran out of budget terminates, or null for the sky alone.
public ScreenSpaceTrace? ScreenTraceThe trace order's first stage: rays against the frame's own depth, or null for none.
Methods (3)
public TracedScreenProbeGather(IDistanceField geometry, IRadianceSource radiance, ScreenProbeGatherSettings? options = null)Builds a gather over a scene's geometry and its lighting.
public int Fill(ScreenProbeAtlas atlas, IScreenSurface surface)Fills every probe of an atlas from what its anchor pixel shows.
public bool FillProbe(ScreenProbeAtlas atlas, Int2 probe, Vector3 position, Vector3 normal)Gathers one probe standing on one surface.
Used by (9)
- AdaptiveProbeTestsVixen.Rendering.ScreenProbes.Tests
- CornellBoxTestsVixen.Rendering.SurfaceCache.Tests
- ExitCriteriaTestsVixen.Rendering.ScreenProbes.Tests
- ReconstructedScreenSurfaceTestsVixen.Rendering.ScreenProbes.Tests
- ScreenProbeResolveDeviceTestsVixen.Graphics.Golden.Tests
- ScreenProbeTraceDeviceTestsVixen.Graphics.Golden.Tests
- ScreenProbeUpsampleImageTestsVixen.Graphics.Golden.Tests
- ScreenSpaceTraceTestsVixen.Rendering.ScreenProbes.Tests
- TracedScreenProbeGatherTestsVixen.Rendering.ScreenProbes.Tests