Vixen
02b45cc4
csharp
public sealed class TracedScreenProbeGather

Fills 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 Settings

    How this gather was told to trace.

  • public IrradianceField? FarField

    Where a ray that ran out of budget terminates, or null for the sky alone.

  • public ScreenSpaceTrace? ScreenTrace

    The trace order's first stage: rays against the frame's own depth, or null for none.

Methods (3)

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