14.2 几何体信息
下面列出了在处理网格的顶点和索引时一定会用到的 ID3DX10Mesh方法:
n HRESULT ID3DX10Mesh::GetIndexBuffer(ID3DX10MeshBuffer
**ppIndexBuffer);
该方法通过ppIndexBuffer参数返回一个包含索引数据的ID3DX10MeshBuffer对象指
针。
n UINT ID3DX10Mesh::GetVertexBufferCount();
返回网格中的顶点缓冲区的数量。一个网格可以使用多个顶点缓冲区,每个顶点缓冲区可以
被绑定到不同的输入槽上(回顾第 5章的练习 2)。例如,用一个顶点缓冲区来存储位置元
素,用另一个顶点缓冲区来存储颜色元素。由 D3D10_INPUT_ELEMENT_DESC数组描述的
网格顶点格式指定了是否使用多个输入槽。也就是,当 D3D10_INPUT_ELEMENT_DESC数
组的元素被绑定到不同的输入槽时,多顶点缓冲区会被启用。
n HRESULT ID3DX10Mesh::GetVertexBuffer(UINT iBuffer,
ID3DX10MeshBuffer **ppVertexBuffer);
第一个参数指定了将要获取的顶点缓冲区的编号。如果网格包含 个顶点缓冲区,那么顶
点缓冲区的编号为 0 到 − 1。第二个参数会返回一个包含顶点缓冲区数据的
ID3DX10MeshBuffer对象指针。
n UINT ID3DX10Mesh::GetVertexCount();
该方法返回网格中的顶点数量。
n UINT ID3DX10Mesh::GetFaceCount();
该方法返回网格中的(三角形)平面数量。
n UINT ID3DX10Mesh::GetFlags();
该方法返回网格创建时指定的标志值。返回值可能是 0、1或以下两个标志值(这些标志值
可以用按位或运算符组合起来):
° D3DX10_MESH_32_BIT:网格使用 32 位索引。如果未指定该标志值,则网格使
用 16位索引。