standard constant
What the engine's mesh shader reads: position, normal, UV, tangent, colour.
One layout for everything rather than a permutation per attribute set. The
vertex layout is structural — it is taken from the shader's in
declarations — so a second layout means a second vertex shader and a second
pipeline for every lighting model. At 64 bytes a vertex this costs twice
what position/normal/UV did, which buys normal mapping and vertex colours
without multiplying the bundle.
Implementation
static const VertexLayout standard = VertexLayout([
position,
normal,
texcoord,
tangent,
color,
]);