有人会提供/指向我在HLSL和XNA中使用多个顶点流的解释或教程吗?我感兴趣的是它们如何被GPU存储/访问,自定义着色器中的流的优点或用途等。XNA - 顶点流?
我已经看到了几个使用多个顶点流实例化几何的例子,但是我我的头脑很难将我的头围绕在潜在的机制上。
更新
如果我有一个接受两个参数(borrowed from this tutorial)
InstancingVSoutput InstancingVS(InstancingVSinput input, float4x4 instanceTransform : TEXCOORD0, float4 color : TEXCOORD4)
{
InstancingVSoutput output;
float4 pos = input.Position;
pos = mul(pos, transpose(instanceTransform));
pos = mul(pos, WVP);
output.Position = pos;
output.Color = color;
return output;
}
它从我把这个从instanceTransform
和input
从独立的流被拉的例子似乎是一个顶点着色器。但是,在这种情况下,input
流是一个包含六个顶点的列表,而instanceTransform
来自包含翻译矩阵的大量元素流。这应该用于实例化几何。
我感到困惑了多少次这个shader得到执行 - 是VertexBuffer0.VertexCount * VertexBuffer1.VertexCount?这种事情的问题在于,一旦有人想出了它们,他们就不用费力地将精心编写的文档提交给社区,详细说明他们的发现。
Argh。
+1这有一定的帮助。查看我的更新。 – 2011-01-20 16:29:50