Ogre程序加载mesh文件原理

本文介绍了OGRE游戏引擎如何通过SceneManager的createEntity方法从硬盘加载mesh模型,如'ogrehead.mesh'。OGRE通过resources.cfg配置文件指定资源路径,包括模型、纹理和其他素材。当加载带骨骼动画的模型时,需要额外处理才能播放动画。此外,.mesh文件包含了模型及材质信息,而.skeleton文件存储了模型的骨骼和动画数据。OGRE不仅查找FileSystem路径,还支持在Zip压缩包中搜索资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建模型实体

Entity* entObject = mSceneMgr->createEntity(“object”, “ogrehead.mesh”);

createEntity() (创建实体) 在当前场景中创建一个实体实例并返回它的对象指针,作为 SceneManager 类的一个成员函数,它有两个重载:

Entity * Ogre::SceneManager::createEntity (

const String & entityName, // 实体名称(同一场景中不能有相同的实体名称)

PrefabType ptype // 预制类型(不需要读取模型,直接在程序中创建简单几何体,

// 目前只有平面 PT_PLANE 一种预制类型)

) [virtual]

Entity * Ogre::SceneManager::createEntity (

const String & entityName, // 实体名称(同一场景中不能有相同的实体名称)

const String & meshName // 模型名称(需要从硬盘上读取的模型的文件名)

) [virtual]

这里用的是第二个重载,也就是从硬盘上读取模型,模型文件名 “ogrehead.mesh” ,这个文件在 OGRE\Samples\Media\models 目录下。查看一下这个目录,里面有一些 *.mesh 文件,还有一些 *.skeleton 文件 。

* .mesh 文件包含了静态模型和材质的信息,*.skeleton 文件对应一个同名的 *.mesh 文件,保存这个模型的骨骼和动画信息(如果有)。使用 createEntity() 方法,不管是不是带骨骼带动画的 *.mesh ,都一样读取,但是要想播放模型的动画,还需要做一些别的工作,如果现在你直接读取 ninja.mesh 这个带骨骼动画的模型,它不会动。

到了这里,还有一个问题,就是 OGRE 是怎么找到的这个 *.mesh 文件?它怎么知道这个 *.mesh 文件是

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值