public interface IPostProcessTargetA node whose parameters a post-process volume may lay an opinion over.
Remarks
The seam a volume reaches the frame through. PostProcessVolumeSystem folds the volumes the camera is inside into one PostProcessOverlay; Apply walks the frame and hands it to every node that implements this. Which fields a node takes is the node's own business — a tonemap takes the grade and the exposure compensation, a bloom takes the intensity and the threshold, and neither has to know the other exists.
Implemented downstream, in Vixen.Rendering.PostFx — the same direction ISceneRendererFactory already sends knowledge, and for the same reason: the compositor cannot name those node types without a reference cycle.
⚠ Applied over the node's authored value, never over last frame's. A node that accumulated would drift — two frames standing still inside one volume would apply the same offset twice, and walking out would not undo it. So an implementation keeps what the document gave it and treats the overlay as an overlay: Blended.Over(authored), every frame, from the same starting point.
⚠ Every node that wants a field gets it, and no name matching happens. A frame with two !Bloom nodes has both brightened by a volume that says the bloom is stronger here, which is what "in this room the glow is stronger" means. Matching by node name was the other option and it is worse: it makes a volume depend on what a document happened to call its nodes, so renaming a node in a compositor would silently unwire every volume in every level.
Methods (1)
void Apply(in PostProcessOverlay overlay)Takes whatever of this frame's overlay applies to this node.
Used by (8)
- BloomRendererVixen.Rendering.PostFx
- DepthOfFieldRendererVixen.Rendering.PostFx
- FogRendererVixen.Rendering.PostFx
- GraphicsCompositorVixen.Rendering
- LensFlareRendererVixen.Rendering.PostFx
- LocalExposureRendererVixen.Rendering.PostFx
- TonemapRendererVixen.Rendering.PostFx
- VignetteRendererVixen.Rendering.PostFx