将数据发送到顶点着色器时,directX中的速度更快。
struct VertexInputType
{
float4 data : DATA; // x,y - POSITION, z - distance, w - size
}
vs
struct VertexInputType
{
float2 pos : POSITION;
float distance : DISTANCE;
float size : SIZE;
}
一个疯狂的猜测是,第一个更快,因为它包装在128位寄存器中。但我认为有更好的答案。
答案 0 :(得分:2)
如果您正在考虑CPU和GPU之间的内存传输: 如果这些都来自同一个缓冲区对象那么它应该无关紧要。第二个是对着色器已知的数据的解释,它与正在传输的实际数据无关。如果在案例2中使用多个顶点流,它可能具有不同的性能,但这种差异与着色器中使用的格式无关。
如果您担心顶点缓存效率: 在这两种情况下,每个顶点将存储和检索16个字节,因此这里也没有区别。