public sealed class TracedIrradianceFillerFills 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 § L2's filler A, written where it can be checked. The shipping version is a compute shader that does N bricks a frame; this is the same arithmetic with nothing between it and a closed form. That is the arrangement DistanceFieldTracer already has with its Raven port, and it exists for the same reason: a shader can only be compared against something, and this is the something.
The directions are a Fibonacci spiral, not a random set. Even coverage of the sphere, no seed, and therefore two fills of one scene agree to the bit — which is what lets a test assert an exact number rather than a tolerance around a stochastic one. It is the same choice, for the same reason, as the sign vote in the distance-field bake.
Validity comes from the field's sign, with the backface vote behind it — and which of those two answers depends on how good the field is. A negative sample is "inside", so a probe the field calls solid is invalid before any ray is cast. Against an exact field that is the end of it: sphere tracing stops where the field crosses zero on the way down, and the gradient there always opposes the ray, so no ray can report a backface. The vote — doc 19 § L2's stated mechanism — earns its place against a sampled field, where an over-reported step lands past a thin wall and the surface it then finds is seen from behind. The probe's own position says nothing about that, so something else has to.
The storage does not know this exists. A brick filled here and a brick filled by an offline cube capture are the same brick, which is the property doc 19 § 3 builds the whole platform commitment on — and it is why this is a separate type reading the field through its public surface rather than a method on it.
Fields and properties (2)
public IrradianceFillSettings SettingsHow this filler was told to trace.
public int CursorWhich indirection cell the next budgeted fill starts at.
Methods (4)
public TracedIrradianceFiller(IDistanceField geometry, IRadianceSource radiance, IrradianceFillSettings? options = null)Builds a filler over a scene's geometry and its lighting.
public int Fill(IrradianceField field)Fills every brick of a field.
public int Fill(IrradianceField field, int budget)Fills a bounded number of bricks, carrying on from where the last call stopped.
public IrradianceProbe Trace(Vector3 position, IrradianceProbe previous)What one probe sees from where it stands.
Used by (14)
- ArenaIlluminationThirdPersonShooter
- CapturedIrradianceFillerTestsVixen.Rendering.Tests
- CompositorBuilderVixen.Rendering
- IndirectDiffuseImageTestsVixen.Graphics.Golden.Tests
- IrradianceConvergenceTestsVixen.Rendering.IrradianceFields.Tests
- IrradianceFieldRendererVixen.Rendering
- IrradianceFillDeviceTestsVixen.Graphics.Golden.Tests
- IrradianceRepairDeviceTestsVixen.Graphics.Golden.Tests
- IrradianceShadingDeviceTestsVixen.Graphics.Golden.Tests
- ReflectionTraceDeviceTestsVixen.Graphics.Golden.Tests
- ScreenProbeTraceDeviceTestsVixen.Graphics.Golden.Tests
- TracedIrradianceFillerTestsVixen.Rendering.IrradianceFields.Tests
- TracedReflectionTestsVixen.Rendering.Reflections.Tests
- TracedScreenProbeGatherTestsVixen.Rendering.ScreenProbes.Tests