Post-Processing Stack
How to configure ECS-driven post-processing with ACES, bloom, vignette, grain, and exposure.
Reference Scenes
Current examples:
Nevo-base/game/levels/outside.json
Nevo-base/game/levels/nevo_image1.jsonPost-processing is not a global config file. It is an ECS entity with a stack marker and effect components.
Minimal ACES Stack
{
"id": 5,
"components": [
{
"type": "Transform",
"data": {
"position": [0.0, 0.0, 0.0],
"rotation": [0.0, 0.0, 0.0, 1.0],
"scale": [1.0, 1.0, 1.0]
}
},
{
"type": "PostProcessingSystem",
"data": {
"enabled": true,
"priority": 0
}
},
{
"type": "ACES",
"data": {
"enabled": true,
"exposure": 1.0
}
}
]
}The PostProcessingSystem component marks the entity as a stack. Effects on the same entity provide settings.
Outside Scene Stack
outside.json uses:
PostProcessingSystemACESVignetteBloomAutoExposure
Example settings:
{
"type": "Bloom",
"data": {
"enabled": true,
"threshold": 0.8,
"intensity": 4.0,
"radius": 4.0,
"iterations": 8
}
}{
"type": "AutoExposure",
"data": {
"enabled": true,
"targetLuminance": 0.18,
"minExposure": 0.25,
"maxExposure": 4.0,
"adaptationSpeed": 1.0
}
}Effect Defaults
| Effect | Neutral/default behavior |
|---|---|
ACES | Enabled by default, exposure 1.0. |
ColorAdjustment | Disabled, neutral brightness/contrast/saturation/gamma. |
Vignette | Disabled, intensity 0. |
ChromaticAberration | Disabled, intensity 0. |
FilmGrain | Disabled, intensity 0. |
Bloom | Disabled, intensity 0. |
ColorGradingLUT | Disabled, intensity 1, no texture. |
AutoExposure | Disabled. |
Keep v1 defaults neutral unless you intentionally want a stylized look.
Runtime Behavior
The render path captures scene color/depth into an offscreen target, restores the previous framebuffer/render target, then draws the fullscreen post-process pass.
ImGui, debug UI, gizmos, picking overlays, and editor overlays render after post-processing and should not be post-processed.
If post-process setup or application fails, rendering falls back to the direct path.
NVEditor Preview
The Game panel uses active-camera post-processing.
The Scene viewport preview is optional:
Window > Scene Post ProcessingFXbutton in the Scene viewport overlay
Leave Scene viewport post-processing off when you need neutral scene inspection; turn it on to preview the final runtime look.
