|
我在我的D3D程序中实例化一个CD3DMesh* 的3D模型,按照DXSDK中Pick例子中的方法,检测出摄像机与模型的距离。
具体实现如下:
创建:
CD3DMesh->Create(d3dDevice,_T("*.x"))
setFVF(d3dDevice,D3DVERTEX:FVF);
d3dDevice->CreateVertexBuffer(dwNumVertices*sizeof(D3DVERTEX),D3DVSAGE_WRITEONLY,D3DVERTEX:FVF,D3DPOOL_MANAGED,m_pVB,NULL))
渲染:(每帧执行)
Pick(); //Pick例子中的函数,我没改动过
CD3DMesh->Render(d3dDevice);
如果载入的模型比较小,程序执行时没问题,但是如果载入的模型比较大时,就会出现一个问题:程序测出的主人公(摄像机)与模型的距离不正确,测出的距离是
主人公与另一个面的距离(如图),但是当主人公进入模型内部后,检测出的距离是正确的。
请问这是为什么?谢谢! |
|