Render Graph And WebGL2 Plumbing

Render settings foundation

Refactor the current forward path into named passes and reusable buffers before layering in shadows, skybox, and anti-aliasing. This page exposes the browser-side render-graph flags alongside the scene lighting presets that now live in stable world space.

Capability probe

The probe runs in this browser and mirrors the same broad capability gates the editor uses before enabling render-graph features.

Context Loading… Waiting for probe.
WebGL2 Loading… Waiting for probe.
Framebuffers Loading… Waiting for probe.
Vertex Arrays Loading… Waiting for probe.

Resolved path

Loading…

Waiting for saved settings and capability probe.

Guardrail summary will appear here.

Feature flags

These toggles are stored in browser localStorage and applied when the editor initialises a new renderer.

Pass orchestration
Render graph
Requires framebuffer targets

Refactors the current forward frame into named scene, post, and present passes so later layers have stable insertion points.

Loading current setting…

Scene pass
Dedicated scene target
Depends on render graph

Moves the main scene draw off the default framebuffer and into a reusable color + depth target before present.

Loading current setting…

Post pass
Reusable post-process target
Depends on render graph

Keeps post effects on their own framebuffer target so anti-aliasing and later screen-space work do not mutate the scene pass directly.

Loading current setting…

Geometry plumbing
Vertex arrays
Requires WebGL2 or OES_vertex_array_object

Caches attribute layouts for geometry and line buffers so the renderer does not repeat pointer setup every frame on supported devices.

Loading current setting…

Material rollout
Expanded material schema
Schema rollout flag

Enables base-color tint, reflection strength, alpha mode, and sidedness fields so the richer forward material model can read the full record instead of the legacy subset.

Loading current setting…

Stored in this browser and consumed by the editor on load.

World-space lighting

Sun, fill, sky, ground bounce, ambient response, exposure, and tone mapping now resolve from a scene-level environment model instead of hardcoded view-space light directions.

Orbiting the camera should only change derived shader-space light vectors, not the world-space sun direction itself.
Ambient Scene ambient

Loading ambient environment…

Sun World-space sun

Loading sun rig…

Fill World-space fill

Loading fill rig…

Back World-space back light

Loading back-light rig…

Sky Sky dome

Loading sky environment…

Ground Ground bounce

Loading ground response…

Output Exposure and tone map

Loading output transform…

Foundation

This is the baseline needed before shadows, skybox, and anti-aliasing can layer in without turning the forward path into a special-case nest.

Reusable targets Color, depth, and post buffers move into dedicated helpers.

The renderer allocates framebuffer-backed color, depth, and post-process targets once, resizes them coherently, and reuses them across frames instead of rebuilding ad hoc state in the draw loop.

Named scene pass Scene rendering stops drawing straight to the default framebuffer.

The forward frame is split into explicit scene, post, and present stages so later work can attach without branching the main scene draw every time a new visual layer lands.

VAO cache Geometry and line buffers get reusable vertex array state.

Geometry, shadow, and line paths can bind a vertex array object once and avoid repeating attribute pointer setup every frame on supported devices.

Guarded rollout Unsupported devices remain on the legacy forward fallback path.

Feature flags and runtime capability checks keep the old path intact when framebuffer targets or vertex arrays are missing, incomplete, or intentionally disabled.