Documentation
    Preparing search index...

    Variable MAX_SKINNING_JOINTSConst

    MAX_SKINNING_JOINTS: 48

    The most bones one skinned draw may use — the declared §62 capability behind RendererCapabilities.maximumSkinningJoints (RFC 0003 §5).

    48, a portability floor rather than a device query, and the arithmetic is the reason: the palette is uniform mat4 jointMatrices[N] in the vertex stage, WebGL 2 guarantees only MAX_VERTEX_UNIFORM_VECTORS ≥ 256 vec4s, a mat4 is four of them, and the skinned programs' other uniforms (two matrices, colours, §68's light set) need headroom — 48 × 4 = 192 vec4s leaves 64 for everything else on the worst conformant device. A constant rather than a getParameter read, deliberately: R-30b's recorded law binds (a capability query must be lazy if the alternative moves recorded transcripts), and a per-device limit is a negotiation the fixed-palette tier does not need — the unbounded path is a bone texture, deferred with its reasons in RFC 0003 (it needs the render-target format union widened and vertex texture fetch checked per device).

    A Skeleton over more bones is refused at setup — Mesh.skeleton throws UNSUPPORTED_GPU_FEATURE (§89) on assignment — following R-5/R-6's setup-time validation stance (§61: a backend may not throw from inside a frame). Splitting into per-palette submeshes and a CPU fallback are the named, not-taken alternatives (RFC 0003 open question 5, adopted).