2023-10-24 15:01:09 +02:00
|
|
|
import VertexData;
|
2023-11-09 22:15:51 +01:00
|
|
|
import MaterialParameter;
|
2023-10-24 15:01:09 +02:00
|
|
|
|
|
|
|
|
struct InstanceData
|
|
|
|
|
{
|
|
|
|
|
float4x4 transformMatrix;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct Scene
|
|
|
|
|
{
|
|
|
|
|
StructuredBuffer<InstanceData> instances;
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-08 23:27:21 +01:00
|
|
|
ParameterBlock<Scene> pScene;
|
2023-10-24 15:01:09 +02:00
|
|
|
|
|
|
|
|
[shader("vertex")]
|
2023-11-09 22:15:51 +01:00
|
|
|
VertexAttributes vertexMain(
|
2023-10-24 15:01:09 +02:00
|
|
|
uint vertexId: SV_VertexID,
|
|
|
|
|
uint instanceId: SV_InstanceID,
|
|
|
|
|
){
|
2023-11-08 23:27:21 +01:00
|
|
|
InstanceData inst = pScene.instances[instanceId];
|
2023-11-09 22:15:51 +01:00
|
|
|
VertexAttributes attr = pVertexData.getAttributes(vertexId, inst.transformMatrix);
|
2023-10-24 15:01:09 +02:00
|
|
|
return attr;
|
|
|
|
|
}
|