public sealed class ReflectionProbeSelectorWhich probe lights a point, and how much of it.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
Kept apart from any render feature on purpose: choosing a probe is a question about positions and volumes, and everything hard about it — nesting, ties, fading at the edges — is decidable without a device, a frame or a descriptor set.
Selection is per object, and it costs an int. The cubes are one binding with a count, bound for the frame; the volumes are an array beside them in the per-frame block; and an object picks both with an index that ForwardLightingRenderFeature writes into the per-object block it already fills. Nothing extra is bound per draw.
What this used to say was that per-object selection needed a descriptor set per probe bound per draw. That is the shape to avoid rather than the shape to build — a set per object in all but name — and the obstacle was never the renderer. It was the compiler: Raven folded an array of textures into the uniform block, which no backend can express and both emitted anyway.
Fields and properties (1)
public IList<ReflectionProbe> ProbesThe probes this selector chooses between.
Methods (1)
public (ReflectionProbe Probe, float Weight)? Select(Vector3 position)The probe that applies at a point, and how much of it shows.
Used by (7)
- EnvironmentLightingTestsVixen.Rendering.Tests
- ForwardFrameTestsVixen.Rendering.Tests
- ForwardLightingRenderFeatureVixen.Rendering
- ForwardLightingTestsVixen.Rendering.Tests
- ObjectRecordTestsVixen.Rendering.Tests
- SceneLightingVixen.Rendering
- SceneLightingTestsVixen.Rendering.Tests