NxOgre 笔记07

1. 凸面体与三角网格
   三角网格可以很完美地表现一个OGRE模型的物理外形。
   OGRE模型和Flour所生成的三角网格就外形而言完全等同,
   为了性能起见,一般使用凸面体做物理碰撞。
   NxOgre中凸面体最多256个顶点,作为一个大包装盒把要进行碰撞检测的对象包围起来。

2. Flour是一个可以把OGRE模型转换成NxOgre格式的小工具。
   包括,特殊的mesh、skeleton和heightfield。

3. 使用Flour生成.nxs文件

    flour convert in:Stairs.mesh, into:triangle, out:Stairs.nxs
    flour convert in:Barrel.mesh, into:convex, out:Barrel.nxs

4. BloodyMess使用自己的资源系统来处理所有类型的文档:文件夹、zip压缩文档、URL。

    NxOgre::ResourceSystem::getSingleton()->openArchive("media","file:media");
    NxOgre::ResourceSystem::getSingleton()->openArchive("media","file:D:/Projects/BloodyMess Tutorials/media");
    (注意:文件路径可以使用相对或绝对路径,"/" 也可以用 "//"替换)

5. 使用资源系统加载模型

    NxOgre::Mesh* convexMesh = NxOgre::MeshManager::getSingleton()->load("media:Barrel.nxs");
    NxOgre::Mesh* triangleMesh = NxOgre::MesnManager::getSingleton()->load("media::Stairs.nxs");

6. 使用已加载的模型,创建凸面体和三角几何

    NxOgre::Convex* convex = new NxOgre::Convex(convexMesh);
    NxOgre::TriangleGeometry* triangleGeometry = new NxOgre::TriangleGeometry(triangleMesh);

7. 将模型加入到场景

    // 使用Convex作为外形,创建一个OGRE3DBody。
    OGRE3DBody* convexBody = mRenderSystem->createBody(convex,NxOgre::Vec3(0,30,0),"Barrel.mesh");
    convexBody->setGlobalOrientation(NxOgre::Matrix33(NxOgre::Vec4(0,45,0,45)));

    // 通过TriangleGeometry,创建场景几何。
    mScene->createSceneGeometry(triangleGeometry,NxOgre::Matrix44(NxOgre::Vec3(0,5,0)));
    // 通过Entity,可视化创建的场景几何。
    Ogre::Entity *triangleEntity = mSceneMgr->createEntity("trianlgeEntity","Stairs.mesh");
    Ogre::SceneNode* triangleNode = mSceneMgr->getRootSceneNode()->createChildSceneNode();
    triangleNode->attachObject(triangleEntity);
    triangleNode->setPosition(Vector3(0,5,0));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值