import Common; import VertexData; import MaterialParameter; struct InstanceData { float4x4 transformMatrix; }; struct Scene { StructuredBuffer instances; } layout(set=2) ParameterBlock pScene; [shader("vertex")] FragmentParameter vertexMain( uint vertexId: SV_VertexID, uint instanceId: SV_InstanceID, ) : PARAMETER{ InstanceData inst = pScene.instances[instanceId]; VertexAttributes attr = pVertexData.getAttributes(vertexId, inst.transformMatrix); return attr.getParameter(inst.transformMatrix); }