03 — Scene settings
Subsystem diagram: scene-settings.html · Runtime look: 07 — Rendering · Feature list: 13 — Feature List (scene block)
Scene-wide render and input settings live in Babylon Scene (viewport N-panel) and serialize into the manifest scene object — not per-entity components.
Babylon Scene panel map
| Section | Manifest / runtime |
|---|---|
| Rendering — clear / ambient color | scene.clearColor, ambientColor |
| Environment | scene.environment — World texture, default studio IBL, skybox, intensity, rotation |
| Fog | scene.fog — linear / exp / exp² |
| Atmosphere | Physical sky addon — pick sun lamp; replaces env skybox when on |
| Post-processing | Bloom, tone mapping, SSAO, LUTs, … on active camera |
| Input Actions | scene.inputActions + defaultInputMap |
| Collision Layers | scene.collisionLayers — named layer list + N×N collision matrix |
| Large World Rendering | Floating-origin engine + Havok region (see runtime basics) |
| Export | Export Level, Validate, Live Link, Debug Build — 04 — Workflow |
Environment and skybox
- Default Environment — built-in studio IBL from CDN (
useDefault: true); needs network at runtime - World texture on active World Output → Background wins over default; copied to
env/on export (prefer.env,.hdrworks,.exrdoes not load in-browser) - Show Skybox / Skybox Ignores Fog — background visibility vs scene fog
- Atmosphere on forces skybox off in the manifest — the addon renders the physical sky instead
Intensity and Y-rotation for World textures come from Background/Mapping nodes; for default env from the panel fields. Runtime tuning: 07 — Rendering.
Atmosphere and post
Atmosphere uses a SUN lamp direction for time-of-day. Works best with Post-processing HDR tone mapping enabled. Author both in Blender Scene — behaviors should not create these at runtime.
Post attaches to the active camera; the scene needs an exported camera. Trace: trace-post · trace-atmosphere.
Input Actions (scene level)
The Input Actions subsection defines action maps, bindings, and Scene Default map name. First export seeds a built-in Player map if empty. Save/load .inputactions.json to share across scenes.
Gamepad rows use labeled button/axis/stick pickers (W3C standard mapping). LT/RT are axis bindings (not face buttons). For 2D actions use Stick (not four axis-half rows). Set Type = Value and Control Type = Vector 2 when scripts call ReadVector2(). Composite axis rows support Axis Half for 1D throttle — see 12 — Input › Choosing bindings and Axis half.
Detail: input-actions diagram · trace-input · 12 — Input.
Collision Layers (scene level)
The Collision Layers subsection defines a master list of named layers (up to 32) and a Unity-style collision matrix — row A, column B checked means layer A collides with layer B (toggles are symmetric). First export seeds a built-in Default layer that collides with everything if the panel is empty.
Per-object assignment is not here — add a Collision Layer component on each entity under Physics (see 02 — Components). The matrix is scene-only; objects pick one layer name from this list. Components store the layer name, so deleting or reordering rows here never retargets other objects' picks; renamed layers must be re-picked on their components (Validate flags stale names).
Runtime detail: 06 — Physics › Collision layers · Feature trace: 10 — Feature Traces.
Material-level NME (related)
Per-material overrides are not in the scene block — open Properties › Material › Babylon for Node Material Editor JSON, Scan NME (textures, parameters, gradients), and Extract Textures…. Trace: trace-materials.