在directx8 和 8.1的sdk当中,计算mesh包围盒的算法存在一个bug
函数是: D3DXComputeBoundingBox
正确的使用方式是:
LPD3DXMESH pxmesh=pMesh->GetSysMemMesh();
BYTE* pPoints;
if (D3D_OK!=pxmesh->LockVertexBuffer(D3DLOCK_READONLY,&pPoints)) return false;
DWORD dwNumVer=pxmesh->GetNumVertices()+1;
// 注意,这里必须加1
DWORD dwFVF=pxmesh->GetFVF();
D3DXComputeBoundingBox(
pPoints,
dwNumVer,
dwFVF,
pMin,
pMax
);
pxmesh->UnlockVertexBuffer();
这个bug在dx9当中得到了修正。
DirectX8 和 8.的个bug
最新推荐文章于 2025-04-26 19:53:27 发布