Direct3D网格
创建网格
我们可以用D3DXCreateMeshFVF函数创建一个"空"网格对象 ,空网格对象是指我们指定了网格的面片总数和顶点总数,然后由该函数为顶点缓存、索引缓存和属性缓存分配大小合适的内存,之后即可手工填入网格数据。
HRESULT WINAPI D3DXCreateMeshFVF(DWORD NumFaces,DWORD NumVertices,DWORD Options,DWORD FVF,LPDIRECT3DDEVICE9 pD3DDevice,LPD3DXMESH* ppMesh
);
NumFaces:网格将具有的面片总数,该值必须大于0
NumVertices:网格将具有的顶点总数,该值必须大于0
Options:创建网格时所使用的创建标记,枚举D3DXMESH,一些常用的标记如下
D3DXMESH_32BIT 网格将使用32位索引
D3DXMESH_MANAGED 网格数据将被存储于托管内存池中
D3DXMESH_WEITEONLY 指定网格数据为只读
FVF:存储在该网格中的顶点的灵活顶点格式
pDevice:设备指针
ppMesh:所创建的网格对象的指针
也可以用函数D3DXCreateMesh函数来创建空网格,在该函数中并未指定FVF,而是用一个D3DVERTEXELEMENT9类型的结构数组来描述顶点数据的布局方式。
HRESULT WINAPI D3DXCreateMesh(DWORD NumFaces,DWORD NumVertices,DWORD Options,CONST D3DVERTEXELEMENT9 *pDeclaration,LPDIRECT3DDEVICE9 pD3DDevice,LPD3DXMESH* ppMesh
);HRESULT WINAPI D3DXDeclaratorFromFVF(DWORD FVF,D3DVERTEXELEMENT9 pDeclarator[MAX_FVF_DECL_SIZE]
);