Repository navigation
v0.10.0
rocco v0.10.0
Built with the Roc nightly nightly-2026-10-11-7d256b9. Use the same nightly to run an app on these bundles.
What changed
Milestone 37, Post and Environment. A game now sets the whole look of the 3D view in one record, Scene.environment: the sky, the clear colour, the tone map, the exposure, fog and bloom.
Breaking: sky and clear moved into Scene.environment
Scene no longer has sky or clear fields. Set them in environment, starting from Environment.default:
import pf.Environment
{ ..Scene.empty, nodes, environment: { ..Environment.default, sky: my_sky } }Scene.empty holds Environment.default: no sky, a black clear colour, the ACES tone map, an exposure of 1, and fog and bloom off.
Look change: unlit surfaces, the sky and the clear colour are a little darker
The Main pass now draws into an HDR target, and a Post pass applies the tone map to everything in it. Lit surfaces look the same as before under ACES. Unlit surfaces, the sky and the clear colour now also go through the tone map, so they darken a little. To brighten the whole view, raise exposure. The Neutral tone map keeps a colour closest to its authored value.
New
tone_map:Aces(Stephen Hill's fit, the default),AgXorNeutral(Khronos PBR Neutral).exposure: a linear multiplier on every colour before the tone map.fog: linear fog by distance from the camera,{ color, start, end, amount }. Anamountof 0 turns it off. Fog mixes every mesh, glow and unlit surfaces included. The sky and the clear colour do not fog, so match the fog colour to the sky's horizon or toclear.bloom: a halo around light abovethreshold,{ strength, threshold, knee }. Astrengthof 0 turns it off and runs no bloom pass. The default threshold is 2, so a glow of about 3 blooms and a lit surface does not. Astrengthnear 0.2 is a good start.- The host clamps a bad value, such as an exposure at or below 0, and logs it once per run. The Bridge
sceneop shows the record. examples/glowturns bloom on. B toggles bloom and T cycles the tone map.- The primitive Sphere has 32 rings of 64 segments (was 16 by 32), so a large orb has a smooth outline.
See The environment in the guide and ADR 0026.