Feature Flags
WebGPU capabilities are controlled by seven feature flags. The master switch must be enabled for any other flag to take effect.WebGPU features are under active development. All feature flags default to off and are currently available to staff users for testing. When WebGPU is not enabled, the viewer uses WebGL automatically. Browser requirements: Chrome 113+, Edge 113+, or a browser with WebGPU support.
What Each Feature Enables
Compute Shaders
WhenwebgpuComputeShaders is active, point cloud processing operations run as GPU compute dispatches rather than CPU loops. This includes:
- Point sorting for correct transparency and depth ordering
- Attribute computation (intensity mapping, color interpolation)
- Spatial filtering (range, bounding box, custom filters)
Render Bundles
WhenwebgpuRenderBundles is active, the viewer records sequences of GPU draw commands into reusable bundles. On subsequent frames where the scene structure has not changed, the pre-recorded bundle is replayed instead of re-issuing individual draw calls. This reduces CPU-side overhead significantly for complex scenes with many objects.
Frustum Culling
WhengpuFrustumCulling is active, a compute shader tests each point against the camera’s view frustum (the visible pyramid) before rendering. Points outside the frustum are discarded on the GPU, avoiding the cost of processing and rasterizing invisible geometry. This is especially impactful when zoomed into a small region of a large point cloud.
Level of Detail
WhengpuLod is active, the viewer dynamically adjusts point density based on distance from the camera. Nearby regions retain full detail, while distant regions are rendered with progressively fewer points. The LOD computation runs entirely on the GPU, so the full dataset remains available for interaction — only the rendering density changes.
Performance Components
The WebGPU backend includes several specialized components that optimize rendering performance.WebGPU Scene Renderer
TheWebGPUSceneRenderer handles the full 3D scene rendering pipeline: geometry submission, material evaluation, lighting, and post-processing. It manages render passes, depth testing, and multi-target output for effects like picking and ID rendering.
Gaussian Splatting Renderer
TheWebGPUGSplatRenderer renders Gaussian splat datasets using GPU-accelerated sorting and splatting. It uses GPURadixSort to depth-sort splats every frame, then renders them as view-dependent 2D Gaussians. Pipeline compilation is handled asynchronously by GSplatPipelinePrecompiler to avoid frame hitches during initialization.
Browser Support
WebGL Fallback
When WebGPU is not available (unsupported browser, disabled flags, or GPU driver issues), the viewer automatically falls back to WebGL rendering. The fallback is seamless — the same data loads and the same panels appear, but rendering uses the WebGL pipeline instead. Key differences in fallback mode:Related
- Point Cloud Rendering — Octree indexing and chunk-based loading pipeline
- Visualization Modes — Coloring modes for point cloud data
- Point Cloud Panel — Panel configuration and interaction controls