ConstReadonlycorner: 0Unit-quad corner offset, from the shared geometry. Same slot as every other pipeline.
ReadonlyinstanceColor: 3Current straight-alpha RGBA (vec4).
ReadonlyinstancePosition: 1Particle centre in the node's local space (vec3).
ReadonlyinstanceRotation: 4Billboard rotation in radians — wide stream only (R-32).
ReadonlyinstanceSize: 2Current size in world units (float).
ReadonlyinstanceSoftness: 5Softness in [0, 1] — wide stream only (R-32).
Vertex attribute slots the particle pipeline binds, all fixed by
layout(location = …)in the vertex shader — the rule POSITION_ATTRIBUTE_LOCATION already establishes, so nogetAttribLocationand no per-program vertex array.Slot 0 is the shared corner quad, three floats per vertex, advancing per vertex (divisor 0); slots 1–3 are the interleaved instance stream, advancing once per particle (divisor 1).