Skip to content

Post-Processing

Post-processing effects are applied after the scene is rendered. Access them via scene.post.

local post = scene.post

Bloom adds a glow to bright areas of the image.

post.bloom_enabled = true
post.bloom_intensity = 0.5 -- glow strength, default 0.5
post.bloom_threshold = 1.0 -- brightness cutoff, default 1.0
post.bloom_radius = 0.5 -- blur spread, default 0.5

Tone mapping compresses HDR values to displayable range.

post.tonemap = "aces" -- "none" | "aces" | "neutral" | "filmic"
post.exposure = 1.0 -- exposure multiplier, default 1.0
ModeDescription
"none"No mapping — raw linear values
"aces"ACES filmic curve (industry standard)
"neutral"Neutral, minimal color shift
"filmic"Filmic S-curve, cinematic look

Adjust the overall color balance:

post.saturation = 1.0 -- 0 = grayscale, 1 = normal, >1 = vivid
post.contrast = 1.0 -- 1 = normal, >1 = punchier
post.temperature = 0.0 -- -1 (cool/blue) to +1 (warm/orange), 0 = neutral

SSAO darkens creases and corners where ambient light is occluded.

post.ssao_enabled = true
post.ssao_radius = 0.5 -- sample radius in world units
post.ssao_intensity = 1.0 -- darkening strength

SSAO is currently stubbed — values are stored but rendering is not yet wired.

Simulate camera lens blur based on distance from the focus point.

post.dof_enabled = true
post.dof_focus_distance = 5.0 -- meters from camera
post.dof_aperture = 2.8 -- lower = more blur

DOF is currently stubbed — values are stored but rendering is not yet wired.

Darken the edges of the frame for a cinematic look.

post.vignette_enabled = true
post.vignette_intensity = 0.3 -- 0 = none, 1 = heavy darkening
local post = scene.post
-- Warm, filmic tone mapping
post.tonemap = "aces"
post.exposure = 1.3
-- Subtle bloom on bright lights
post.bloom_enabled = true
post.bloom_intensity = 0.25
post.bloom_threshold = 1.2
-- Slightly desaturated, warm grade
post.saturation = 0.9
post.contrast = 1.1
post.temperature = 0.15
-- Ambient occlusion for depth
post.ssao_enabled = true
post.ssao_radius = 0.4
post.ssao_intensity = 0.8
-- Subtle vignette
post.vignette_enabled = true
post.vignette_intensity = 0.2