传递给directx顶点/索引缓冲区

时间:2016-08-25 17:39:24

标签: directx vertices copying

我有一个关于directx的基本问题(我正在使用d3d9), 在看了一些教程后,我想创建一个基本的3D程序,我似乎没有得到一件事。

每次我想要将模型绘制到1个顶点缓冲区时,是否需要复制顶点/索引? 或者我可以将多个模型加载到1个顶点/索引缓冲区中吗? 或者我是否需要为每个模型制作多个顶点/索引缓冲区?

1 个答案:

答案 0 :(得分:0)

你可以随意做,如果你看IDirect3DDevice9::DrawIndexedPrimitive,你会发现BaseVertexIndexStartIndex,它允许你偏移到顶点和索引缓冲区,所以是的,您可以在同一缓冲区中打包几个几何,这对于减少对SetIndicesSetStreamSource的调用量非常有用。如果您的顶点步幅发生变化,您仍然需要使用字节偏移量和新步幅调用后者。

除非您处理动态几何图形,否则通常会将数据复制一次到缓冲区并在帧中重复使用它们。