Build and update the THREE.BufferGeometry for a Mesh node.
Mesh is the only geometry type that draws a plain indexed
BufferGeometry + THREE.Mesh. The other three build an
InstancedBufferGeometry of quads and push per-element attributes through an
RGBA32F element texture, because they render per-element sprites whose size
and orientation are computed in the shader. A triangle is already geometry —
there is nothing to instance and no per-element extent to encode — so the
instanced-quad/element-texture stack is not a gap here, it is the wrong shape.
A direct consequence: mesh does not use the GPU buffer pool
(gpu-buffer-pool/pool-stats.ts must keep listing exactly the three instanced
types), and its color/aScalar data goes to vertex attributes rather than
a texture. Mesh is the first type to do that, which is why the dtype rules below
exist and why nothing in the shipped tree had hit them before.
Build and update the
THREE.BufferGeometryfor a Mesh node.Mesh is the only geometry type that draws a plain indexed
BufferGeometry+THREE.Mesh. The other three build anInstancedBufferGeometryof quads and push per-element attributes through an RGBA32F element texture, because they render per-element sprites whose size and orientation are computed in the shader. A triangle is already geometry — there is nothing to instance and no per-element extent to encode — so the instanced-quad/element-texture stack is not a gap here, it is the wrong shape.A direct consequence: mesh does not use the GPU buffer pool (
gpu-buffer-pool/pool-stats.tsmust keep listing exactly the three instanced types), and itscolor/aScalardata goes to vertex attributes rather than a texture. Mesh is the first type to do that, which is why the dtype rules below exist and why nothing in the shipped tree had hit them before.