|
小弟想用DX10的D3DXComputeBoundingBox()函数计算一个模型的包围盒,但不知道为什么我计算的结果最大点和最小点是同一个点
恳请大家能指点一二!多谢!
- ID3D10Buffer* pvb;
- D3D10_BUFFER_DESC bufferdesc;
- bufferdesc.BindFlags=0;
- bufferdesc.ByteWidth=141824; //编译器给出的mesh顶点 总大小
- bufferdesc.CPUAccessFlags=D3D10_CPU_ACCESS_READ;
- bufferdesc.MiscFlags=0;
- bufferdesc.Usage=D3D10_USAGE_STAGING;
- pd3dDevice->CreateBuffer(&bufferdesc,NULL ,&pvb); //创建buffer
-
- BYTE* v = NULL;
- pd3dDevice->CopyResource(pvb,Aop_Mesh.GetVB10(0,0)); //拷贝mesh的顶点数据
- pvb->Map(D3D10_MAP_READ ,NULL,(void**)&v);
-
- D3DXComputeBoundingBox((D3DXVECTOR3*)v, Aop_Mesh.GetNumVertices(0,0),
- Aop_Mesh.GetVertexStride(0,0),
- &min,
- &max);
- pvb->Unmap();
复制代码
程序中的mesh类型是DX10的sdkmesh格式。感觉甚难用。。。。。。
哪位达人知道解决方法还请赐教! |
|