GL feature matrix
Guide: WebGL · Advanced WebGL · Image quality & post-processing · What's new — v0.18.1 → v0.41.0 · What's new — v0.42 → v0.47.
A scannable index over verve.gl's full three.js-parity surface — every capability below is shipped, with a version, a reference page, and a live demo. For prose ("how do I…") start with the WebGL guide; this page is for "does verve.gl support X, and where's the demo."
Both rendering backends — WebGPU (feature-detected via navigator.gpu) and a WebGL2 fallback — share one backend-agnostic binary draw-command stream computed in Zig/wasm; every feature below renders identically on both unless a row says otherwise. WGSL and GLSL shader twins are generated from the same Zig source.
Capability grid
| Feature | Shipped (version) | Reference | Live demo |
|---|---|---|---|
| PBR/IBL scene (Cook-Torrance über-shader, image-based lighting) | v0.5.0 | verve.gl | WebGL viewer |
| Tone-mapping (6 operators: Linear/Reinhard/Reinhard-ext/ACES/AgX/Uncharted2) | v0.13.0 | post-processing | tone-mapping |
| Vignette | v0.13.0 | post-processing | tone-mapping |
| SSAO (screen-space ambient occlusion) | v0.14.0 | post-processing | SSAO |
| SSR (screen-space reflections) | v0.15.0 | post-processing | SSR |
| DOF (depth of field) | v0.16.0 | post-processing | depth of field |
| OIT (weighted-blended, order-independent transparency) | v0.17.0 | post-processing | OIT |
| Morph targets (blend shapes) — up to 32 influences, Hermite easing, TANGENT deltas | v0.7.0 (32-influence + Hermite + TANGENT in v0.18.0) | verve.gl | morph targets · 16 morph targets |
| Skeletal skinning (GPU vertex skinning, keyframe clips) | v0.5.9 | verve.gl | skinned + morph |
| Distance LOD (multi-level vmesh, camera-distance level select) | v0.18.0 | verve.gl | distance LOD |
| Points/sprites/billboards | v0.19.0 | gl-points | points & sprites |
Fat lines (Line2 / LineSegments2) | v0.20.0 | gl-lines | fat lines |
Decals (forward DecalGeometry) | v0.21.0 | gl-decals | decals |
| Orthographic projection | v0.22.0 (ortho-aware CSM fit: v0.23.1) | gl-ortho | orthographic projection |
| Clipping planes (up to 4 world-space half-spaces) | v0.23.0 | gl-clip | clip planes |
| Cascaded shadow maps (CSM, 4 cascades) | v0.10.0 (ortho-aware cascade fit: v0.23.1) | gl-clip | cascaded shadow maps |
| Wireframe mode | v0.24.0 | gl-wireframe | wireframe mode |
| GPU instancing (base draw path; + multi-submesh, per-instance frustum culling, instanced shadows) | v0.6.4 (base); v0.25.0–v0.28.0 (normals fix, multi-submesh, culling, shadow) | gl-instancing | GPU instancing |
| Custom shader materials (fragment + vertex injection hooks) | v0.29.0–v0.31.0 | gl-material | custom shader materials |
| KTX2/BC7 compressed textures | v0.32.0–v0.34.0 | gl-compressed-textures | compressed textures |
| S3TC (BC1/BC3) compressed textures | v0.35.0–v0.37.0 | gl-compressed-textures | compressed textures |
| Runtime reflection probes (scene cubemap capture + GGX prefilter → specular IBL) | v0.44.0 | What's new | reflection probe |
Geometry compression (.vmesh v16 index codec, lossless) | v0.45.0 | What's new | — |
Vertex compression + GPU-resident quantized attributes (.vmesh v17, ~58% VRAM/stride) | v0.46.0–v0.47.0 | What's new | — |
| Procedural diorama feature piece (server-authored params → client materialization) | v0.47.0 | Oasis guide | Solarpunk Oasis |
Notes:
- The
gl-instancingdemo route is the shared card for all four instancing slices (non-uniform-scale normals, multi-submesh, culling, instanced shadow); the individual slice demos also exist at/examples/gl-instanced-multi,/examples/gl-instanced-cull, and/examples/gl-instanced-shadow. - Compressed-texture delivery picks BC7 → S3TC → PNG by capability; the
gl-compressed-texturesdemo forces the BC3 (alpha-cutout) path — see custom shader materials for the BC1 (opaque) path in the same cluster. - Versions are release tags from the upstream
verveCHANGELOG.md; the GL core is vendored at thev0.47.0baseline this docs site currently tracks (reflection probes, geometry/vertex compression, and GPU-resident quantized attributes landed across v0.44–v0.47).