public sealed class ReflectionRendererTraced reflections over a real frame — doc 19 § L5 in the compositor.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
The node that turns the kernel's fixture contract into a frame's. The device tests hand ReflectionTrace a positions plane; a frame has no such thing — it has the depth it drew and the normals its G-buffer holds. This node points the kernel at both, switches it into reconstruction (the same Transform.UvDepthToWorld placement and the upsample lean on), and reuses the very same depth for the screen march, so SSR and reconstruction cannot disagree about which camera drew the frame.
The normals resource is a contract: world normal in xyz, roughness in alpha. A G-buffer that packs differently writes an adapter pass, not a different kernel.
The composed sources are the host's. The clipmap, the surface cache, the field and the miss probes each belong to whoever owns them, and each writes its names into Trace's parameters under ReflectionTrace.<source>.* — this node knows about ordering and the frame, nothing else, the arrangement every renderer node here keeps.
Fields and properties (23)
public string DepthThe frame resource the positions are reconstructed from and the screen march reads.
public string NormalsThe frame resource holding world normals in xyz and roughness in alpha.
public string TargetThe name this node publishes its answer under — radiance in rgb, validity in alpha.
public string? ColourThe frame resource a screen hit reflects, or null for no screen march at all.
public EffectSystem? EffectsWhere the kernel's variant is resolved from. Null dispatches nothing.
public ComputePipelineCache? PipelinesWhere the compute pipeline comes from. Null dispatches nothing.
public DescriptorAllocator? AllocatorWhere the descriptor sets come from. Null dispatches nothing.
public IGraphicsDevice? DeviceThe device the output is made on, or null to take the frame's.
public Matrix4x4 ViewProjectionThe camera that drew the frame — the forward matrix, for the screen march.
public Matrix4x4 InverseViewProjectionIts inverse, for the reconstruction. The host has both; inverting here would manufacture error.
public Vector3 CameraPositionWhere the camera stands.
public RenderView? ViewThe view whose camera drives the three above, or null for a host that sets them.
public float MaxDistanceHow far a mirror ray looks before deciding it escaped.
public float BiasHow far off its surface a mirror ray starts.
public float RoughnessThresholdThe roughness at and above which the field answers instead of the trace.
public float RoughnessBlendHow far below the threshold the cross-fade starts. Zero is the hard switch.
public int ScreenStepsHow many equal steps a screen ray takes.
public float ScreenThicknessHow deep behind a surface a sample still counts as inside it, in device depth.
public HiZPyramid? PyramidThe nearest chain the screen march skips by, or null for the fixed-step walk.
public float ScreenLinearThicknessHow deep the march's shell is in view units, where a perspective ray can say. Zero keeps the device-depth shell — forwarded to ScreenLinearThickness.
public ReflectionTraceFill? TraceThe kernel's driver — the composed sources are set here.
public string? SkippedWhy the last frame recorded nothing, or null.
public TextureHandle OutputThe published answer's texture — for a test's readback or a host's own composite.
Methods (2)
protected override void Build(GraphicsCompositor compositor, CompositorFrame frame)Declares this node's render-graph passes.
public void Dispose()Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Used by (6)
- ArenaThirdPersonShooter
- ArenaIlluminationThirdPersonShooter
- FrameDocumentTestsThirdPersonShooter.Frame.Tests
- PostEffectFactoryVixen.Rendering.PostFx
- PostEffectTestsVixen.Rendering.PostFx.Tests
- ReflectionRendererDeviceTestsVixen.Graphics.Golden.Tests