我有一个关于directx的基本问题(我正在使用d3d9), 在看了一些教程后,我想创建一个基本的3D程序,我似乎没有得到一件事。
每次我想要将模型绘制到1个顶点缓冲区时,是否需要复制顶点/索引? 或者我可以将多个模型加载到1个顶点/索引缓冲区中吗? 或者我是否需要为每个模型制作多个顶点/索引缓冲区?
答案 0 :(得分:0)
你可以随意做,如果你看IDirect3DDevice9::DrawIndexedPrimitive
,你会发现BaseVertexIndex
和StartIndex
,它允许你偏移到顶点和索引缓冲区,所以是的,您可以在同一缓冲区中打包几个几何,这对于减少对SetIndices
和SetStreamSource
的调用量非常有用。如果您的顶点步幅发生变化,您仍然需要使用字节偏移量和新步幅调用后者。
除非您处理动态几何图形,否则通常会将数据复制一次到缓冲区并在帧中重复使用它们。