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

FeatureShipped (version)ReferenceLive demo
PBR/IBL scene (Cook-Torrance über-shader, image-based lighting)v0.5.0verve.glWebGL viewer
Tone-mapping (6 operators: Linear/Reinhard/Reinhard-ext/ACES/AgX/Uncharted2)v0.13.0post-processingtone-mapping
Vignettev0.13.0post-processingtone-mapping
SSAO (screen-space ambient occlusion)v0.14.0post-processingSSAO
SSR (screen-space reflections)v0.15.0post-processingSSR
DOF (depth of field)v0.16.0post-processingdepth of field
OIT (weighted-blended, order-independent transparency)v0.17.0post-processingOIT
Morph targets (blend shapes) — up to 32 influences, Hermite easing, TANGENT deltasv0.7.0 (32-influence + Hermite + TANGENT in v0.18.0)verve.glmorph targets · 16 morph targets
Skeletal skinning (GPU vertex skinning, keyframe clips)v0.5.9verve.glskinned + morph
Distance LOD (multi-level vmesh, camera-distance level select)v0.18.0verve.gldistance LOD
Points/sprites/billboardsv0.19.0gl-pointspoints & sprites
Fat lines (Line2 / LineSegments2)v0.20.0gl-linesfat lines
Decals (forward DecalGeometry)v0.21.0gl-decalsdecals
Orthographic projectionv0.22.0 (ortho-aware CSM fit: v0.23.1)gl-orthoorthographic projection
Clipping planes (up to 4 world-space half-spaces)v0.23.0gl-clipclip planes
Cascaded shadow maps (CSM, 4 cascades)v0.10.0 (ortho-aware cascade fit: v0.23.1)gl-clipcascaded shadow maps
Wireframe modev0.24.0gl-wireframewireframe 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-instancingGPU instancing
Custom shader materials (fragment + vertex injection hooks)v0.29.0–v0.31.0gl-materialcustom shader materials
KTX2/BC7 compressed texturesv0.32.0–v0.34.0gl-compressed-texturescompressed textures
S3TC (BC1/BC3) compressed texturesv0.35.0–v0.37.0gl-compressed-texturescompressed textures
Runtime reflection probes (scene cubemap capture + GGX prefilter → specular IBL)v0.44.0What's newreflection probe
Geometry compression (.vmesh v16 index codec, lossless)v0.45.0What's new
Vertex compression + GPU-resident quantized attributes (.vmesh v17, ~58% VRAM/stride)v0.46.0–v0.47.0What's new
Procedural diorama feature piece (server-authored params → client materialization)v0.47.0Oasis guideSolarpunk Oasis

Notes:

  • The gl-instancing demo 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-textures demo 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 verve CHANGELOG.md; the GL core is vendored at the v0.47.0 baseline this docs site currently tracks (reflection probes, geometry/vertex compression, and GPU-resident quantized attributes landed across v0.44–v0.47).