simvx.graphics.renderer.vertex_layouts¶
Single source of the 3D mesh vertex-buffer binding layouts (vertex stream split, D5).
Every mesh pipeline declares its vertex input from the constants below; no pass
hand-rolls stride/attribute tables. The streams (one GPU buffer each, uploaded
by MeshRegistry from a :class:~simvx.graphics.types.VertexStreams):
====== ======================================== ====== ================= binding contents stride shader locations ====== ======================================== ====== ================= 0 position float3 12 B 0 1 normal float3 + uv float2 20 B 1, 2 2 tangent float4 + colour unorm8x4 28 B 3, 4, 5 + uv2 float2 (optional) 3 joints uint16x4 + weights float4 24 B 3, 4 (skinned only) ====== ======================================== ====== =================
Locations 0/1/2 are the stable ShaderMaterial user ABI. The extras stream’s locations 3/4/5 overlap the skin stream’s 3/4: no pipeline consumes both today (skinned pipelines do not read tangent/colour/uv2); a combined variant is a future decision, not a latent bug.
Depth-only passes (shadow, point shadow, depth prepass, pick) declare
- data:
POSITION_ONLY_BINDINGSand bind just the position buffer, so their vertex fetch touches 12 bytes per vertex instead of 32.
Module Contents¶
Data¶
API¶
- simvx.graphics.renderer.vertex_layouts.__all__¶
[‘POSITION_BINDING’, ‘SHADING_BINDING’, ‘SHADING_UV_BINDING’, ‘EXTRAS_BINDING’, ‘SKIN_BINDING’, ‘MES…
- simvx.graphics.renderer.vertex_layouts.POSITION_BINDING: simvx.graphics.gpu.pipeline.VertexBinding¶
(0, 12, ((0,),))
- simvx.graphics.renderer.vertex_layouts.SHADING_BINDING: simvx.graphics.gpu.pipeline.VertexBinding¶
(1,)
- simvx.graphics.renderer.vertex_layouts.SHADING_UV_BINDING: simvx.graphics.gpu.pipeline.VertexBinding¶
(1,)
- simvx.graphics.renderer.vertex_layouts.EXTRAS_BINDING: simvx.graphics.gpu.pipeline.VertexBinding¶
(2,)
- simvx.graphics.renderer.vertex_layouts.SKIN_BINDING: simvx.graphics.gpu.pipeline.VertexBinding¶
(3,)
- simvx.graphics.renderer.vertex_layouts.MESH_BINDINGS: tuple[simvx.graphics.gpu.pipeline.VertexBinding, ...]¶
()
- simvx.graphics.renderer.vertex_layouts.SKINNED_MESH_BINDINGS: tuple[simvx.graphics.gpu.pipeline.VertexBinding, ...]¶
()
- simvx.graphics.renderer.vertex_layouts.POSITION_ONLY_BINDINGS: tuple[simvx.graphics.gpu.pipeline.VertexBinding, ...]¶
()
- simvx.graphics.renderer.vertex_layouts.POSITION_UV_BINDINGS: tuple[simvx.graphics.gpu.pipeline.VertexBinding, ...]¶
()