public struct PostProcessOverlaySeveral volumes folded into one set of contributions.
Remarks
What the frame actually consumes. A PostProcessSettings is what one volume authors; this is what a stack of them comes to, and it is a different type because it carries a weight per field — see Blended for why that is unavoidable.
The fold is Add, applied in ascending priority order. Each call lays one volume over what is already there. The rule per field has three cases, and the third is the one that makes overlapping volumes work:
The volume has no opinion — nothing changes. Nothing underneath had one either — the field becomes the volume's value at the volume's weight, and the node will lerp from its own authored value. Both have one — the value lerps toward the new one by the new weight, and the weight lerps toward 1 by the same amount. That second half is what makes a half-faded volume over a fully-applied one come out half way between them rather than half way back to the document.
⚠ It is not commutative, and it must not be. Priority is what decides which volume is on top, so the fold is ordered and the caller sorts. Two volumes at the same priority resolve in whatever order the world walks, which is arbitrary — and that is the honest answer rather than a hidden tiebreak, because two volumes that both fully claim one field at one priority is a level-design mistake rather than a case to define.
Fields and properties (22)
public Blended? ExposureCompensationStops added to the exposure.
public Blended? LocalHighlightContrastHow much the local exposure brings highlights down.
public Blended? LocalShadowContrastAnd shadows up.
public Blended? BloomIntensityHow much of the bloom pyramid is composited.
public Blended? BloomThresholdLuminance above which a pixel blooms.
public BlendedColour? BloomTintWhat colour the glow is.
public Blended? ContrastContrast around middle grey.
public Blended? SaturationSaturation.
public BlendedColour? ColourFilterA multiplier on the image before the curve.
public Blended? TemperatureThe temperature the scene is graded against.
public Blended? TintGreen against magenta.
public Blended? HueShiftHue rotation, in degrees.
public Blended? FogDensityHow thick the fog is.
public BlendedColour? FogColourWhat colour it is.
public Blended? VignetteIntensityHow dark the corners go.
public Blended? VignetteSmoothnessHow abrupt that falloff is.
public Blended? GrainIntensityHow much grain there is.
public Blended? AberrationStrengthChannel offset at the screen edge.
public Blended? FlareIntensityHow bright the flare's ghosts are.
public Blended? MaximumDefocusHow wide the defocus may get.
public static PostProcessOverlay NoneNothing has an opinion, which is what a frame with no volumes folds to.
public readonly bool IsEmptyWhether any field carries a contribution.
Methods (1)
public void Add(in PostProcessSettings settings, float weight)Lays one volume's settings over this fold.
Used by (13)
- ArenaThirdPersonShooter
- BloomRendererVixen.Rendering.PostFx
- DepthOfFieldRendererVixen.Rendering.PostFx
- FogRendererVixen.Rendering.PostFx
- GraphicsCompositorVixen.Rendering
- IPostProcessTargetVixen.Rendering
- LensFlareRendererVixen.Rendering.PostFx
- LocalExposureRendererVixen.Rendering.PostFx
- PostEffectTestsVixen.Rendering.PostFx.Tests
- PostProcessVolumeSystemVixen.Rendering
- PostProcessVolumeTestsVixen.Rendering.Tests
- TonemapRendererVixen.Rendering.PostFx
- VignetteRendererVixen.Rendering.PostFx