在利用NxOgre添加地形的时候遇到了问题,不知道改如何添加地形,使用模型?还是直接读取高度图?因为是刚刚接触到NxOgre对于这些问题很是迷茫,苦苦找不到解决的问题。在网上搜索有关资料也很少,最近在GameRes论坛里面发现了一篇有关于用PhysX转化地形为trianglemesh的文章,所以转过来看看,希望对我以及和我遇到同样问题的朋友有所帮助!
NxActor * CPhysX::CreateTerrainMesh(const NxVec3& pos,const NxU32 length, const NxU32 width,IDirect3DVertexBuffer9* vb,IDirect3DIndexBuffer9* ib)//,const NxReal stride)
{
NxVec3* fsVerts = NULL;
WORD* fsFaces = NULL;
//初始化平面 verts
NxU32 nbVerts=length*width;
fsVerts = new NxVec3[nbVerts];
VertexPNUVT* vCol = 0;
vb->Lock(0,0,(void**)&vCol,0);
for(DWORD i=0;i<nbVerts;i++)
{
memcpy(&fsVerts[i], &vCol[i], sizeof(D3DXVECTOR3));
}
vb->Unlock();
NxU32 nbFaces = (length-1)*(width-1)*2;
fsFaces = new WORD[nbFaces*3];