Guides

Rendering pipeline

Clustered Forward+ rendering, GPU-driven decals, and the Particular particle engine.

This page is a stub. The rendering pipeline is one of the larger subsystems in the engine and full documentation is being written. Email me if you’d like specific sections prioritized.

Meep’s rendering layer sits on top of Three.js and adds the systems Three doesn’t provide:

  • Clustered Forward+ lighting — thousands of dynamic point lights without the per-fragment cost of unclustered forward rendering.
  • GPU-driven decals — persistent battle damage and environmental detail layered onto static geometry, up to 1M+ instances.
  • The Particular particle engine — a zero-allocation system compiled into four shaders to eliminate state-switching overhead. Full lighting, soft particles, automatic atlassing.
  • Path tracing — a pure-JS path tracer using the engine’s internal BVH, for offline lightmap baking and reference renders.
  • Massive terrain — chunk-based, auto-culled, up to 256 layers (vs Unity’s 4).

Where to start in the source

Until this page fills out, the rendering code lives under src/engine/graphics/. The Forward+ clustered lighting implementation is in render/forward_plus/, particles in particles/particular/, decals in ecs/decal/v2/, and the path tracer in sh3/path_tracer/. Each subdirectory has its own README or SPECIFICATION.md — read those first.