public sealed class IndirectDiffuseRendererThe indirect diffuse a surface receives, read out of the irradiance field.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
The consumer half of docs/plan/19 § L2. Everything under it — the bricks, the borders, the dilation, the refinement, the filler — exists to answer one question per shaded pixel, and this is where the question gets asked.
A screen-space pass rather than a term inside the shading models, for now. Adding a compose slot to ForwardPlus and Deferred would put an unbound slot in every material in every project until each named a filler; this reads the same field through the same protocol with none of that reach. What comes out is a buffer a shading pass multiplies by albedo, which is what a payload stored over π is for.
It binds no part of the field itself. The pool, the index volume and their samplers live in the frame's set 0, put there by IrradianceFieldRenderer, because the field belongs to the frame rather than to this pass. What this owns is the depth, the normals and its own intensity. The pair has to agree on one thing and only one: the compose-slot prefix those names are written under.
Irradiance in rgb, sun visibility in a. Both come out of the same probe and the same two fetches, so keeping them apart costs nothing — and combining them would cost the thing that matters, because a shading pass multiplies the first into the ambient term and the second into the direct one.
Fields and properties (6)
public required string DepthThe depth it reconstructs world positions from.
public required string NormalsThe normals it asks the probe about.
public string SourceThe shader behind the field slot — what the lookup actually reads.
public Matrix4x4 InverseViewProjectionClip space back to world space, for turning a depth into a position.
public float IntensityA multiplier on the result.
public float ScaleWhat fraction of the frame it runs at.
Methods (3)
public IndirectDiffuseRenderer()The indirect diffuse a surface receives, read out of the irradiance field.
protected override Int2 TargetSize(Int2 frame)The size the effect's own target is, given the frame's.
protected override void Configure(CompositorFrame frame, ParameterCollection parameters, IList<ResourceBinding> bindings)Fills in this frame's parameters and bindings.
Used by (3)
- IndirectDiffuseImageTestsVixen.Graphics.Golden.Tests
- PostEffectFactoryVixen.Rendering.PostFx
- PostEffectTestsVixen.Rendering.PostFx.Tests