3 3dsMax là một phần mềm 3D Editor rất mạnh , tại sao chúng ta không
tận dụng nó để làm level Editor trực tiếp cho Irrlicht.Cách làm của mình như
sau :
-
Xuất file khung cảnh trong Max sang dạng .X (bằng Panda
Exporter) chú ý chọn Sub frame hierarchy)
-
Như vậy sao khi ra file .X thì sẽ có kèm theo các bone
để làm neo (archor) giúp cho việc tách các phần tử Mesh ra làm nhiều phần con
một cách thuận lợi ! (các bone có tên như là group trong Max đã đặt tên)
-
Vậy trong Irrlicht ta có hàm như :
void
ConvertMeshBuffertoBullet(scene::IAnimatedMesh* mesh)
{
if (mesh)
{
scene::IAnimatedMeshSceneNode*
anode = mySmgr->addAnimatedMeshSceneNode(mesh);
for (u32 i=0;i<mesh->getMeshBufferCount();i++)
{
scene::SMesh*
pMesh = new scene::SMesh();
pMesh->addMeshBuffer(mesh->getMeshBuffer(i));
vector3df
pos =anode->getJointNode(i)->getAbsolutePosition();
scene::IMeshSceneNode*
Node = mySmgr->addMeshSceneNode(pMesh,0,-1,pos);
//chuyen node thanh dang vat ly theo yeu cau cu the
if (i==0)
::convertISceneNodeToRigidBody(Node,::btScalar(0),true);
else ::convertISceneNodeToRigidBody(Node,::btScalar(5),true);
}
anode->remove();
/xoa node tam
}
}