Readonlymaterials: {Visual material classes, keyed by geometry kind.
Readonlypoint: typeof PointTSLMaterialReadonlyline: typeof LineTSLMaterialReadonlygsplat: typeof GSplatTSLMaterialReadonlymesh: typeof MeshTSLMaterialReadonlymeshPhysical: typeof PhysicalMeshTSLMaterialThe physical mesh family — three's MeshPhysicalNodeMaterial behind the Luxar
leaf-material surface. Its own key rather than a variant of mesh, because none
of the house contracts (codegen snapshots, per-epoch shading variant, blend-mode
defines) apply to it; picking still uses picking.mesh.
Readonlyenvironment: {Backend-specific scene-environment tooling (rendering/environment/).
Readonlypicking: {Picking material classes, keyed by geometry kind.
Readonlymega: typeof MegaShaderTSLMaterialThe single post-processing mega-shader material class.
Readonlyfactories: {Graph factories, for the ShaderSource.webgpu closures. Those closures
stay next to their GLSL twin (they carry shader-specific notes about
reading build-time uniforms) and pull the factory from here instead of
importing it, which is what actually cuts the eager edge.
Readonlypoint: {Readonlyline: {ReadonlycapsuleLine: {Readonlygsplat: {Readonlymesh: {Readonlymega: {ReadonlypickPoint: {ReadonlypickLine: {ReadonlypickCapsuleLine: {ReadonlypickGsplat: {ReadonlypickMesh: {Readonlybloom: {Readonlyfxaa: {
The already-loaded registry, for synchronous consumers.
Throws when the WebGPU path is active but
loadTslMaterials()has not resolved yet. This must not degrade to the GLSL implementations: aShaderMaterialdoes not render at all underWebGPURenderer(seeBROWSER_SUPPORT_POLICY.md), so a silent fallback would paint blank quads and read as a rendering bug rather than the wiring bug it is.