|
|
加载了.x文件之后,我想取得每个三角形面片的顶点坐标,应该怎么做啊?
我这样做为什么错了?总是在访问到某个点的时候提示内存非法访问。。。郁闷死了!
LPDIRECT3DVERTEXBUFFER9 meshpVB = NULL;
LPDIRECT3DINDEXBUFFER9 meshpIB = NULL;
HRESULT hr = g_pCopyMesh->GetVertexBuffer( &meshpVB );
hr = g_pCopyMesh->GetIndexBuffer( &meshpIB );
WORD* mesh_pIndices = NULL;
D3DVERTEX* mesh_pVertices = NULL;
hr = meshpIB->Lock(0, 0, (void**)&mesh_pIndices, 0);
hr = meshpVB->Lock(0, 0, (void**)&mesh_pVertices, 0);
DWORD dwNumFaces = g_pCopyMesh->GetNumFaces();
for( DWORD index=0; index<dwNumFaces; index++ )
{
WORD a = mesh_pIndices[3*index+0];
WORD b = mesh_pIndices[3*index+1];
WORD c = mesh_pIndices[3*index+2];
D3DXVECTOR3 v0 = mesh_pVertices[a].p;
D3DXVECTOR3 v1 = mesh_pVertices.p;
D3DXVECTOR3 v2 = mesh_pVertices[c].p;
}
...........................
常常在访问某个mesh_pVertices的时候提示非法内存访问。。。
谢谢高手帮我看看啊!
|
|