一、场景管理器
1.实现对对象的管理
1.1实现对对象的管理,扮演一个制造和摧毁对象的工厂。
1.2场景管理器当中有大量的创建,摧毁,赋值,获取和设置的函数。OGRE遵循一个原则,谁创建,谁摧毁。
2.管理场景
2.1实现高效的裁剪运算。
2.2被移动的场景节点会标识为已移动,只计算移动的节点,没被移动的节点保留其上一帧位置,节省大量时间。
2.3我们需要快速的丢弃摄像机中不可见的部分,OGRE有不同的场景管理器,用来快速遍历场景节点和测试节点的可见性。
3.八叉树场景管理器
3.1八叉树使节点的拣选变得简单而又迅速。
从根节点开始,如果视锥与立方体相交,则继续遍历子节点。
如果立方体全在视锥里,我们则不用深度遍历那个立方体。
4.BSP场景管理器
BSP 代表二叉空间分割,它是一种被多年前的老式射击游戏用来存储信息的技术。 BSP 分割层为多个凸部分并把它们按树形结构储存起来。在老式的显卡上,这使渲染和别的图形任务的执行变得更快。而今,BSP场景已经没有多年前使用的频繁了。
二、资源管理器
1.加载资源
它在程序的生命周期中一直加载着各种资源,读入资源以后,我们便可以通过通过文件名来创建实体,而不需要文件的路径。索引避免我们加载相同的模型两次。
addResourceLocation()
参数一:路径;参数二:定义文件的类型;参数三:加载文件到所在资源组的名称;参数四:加载的路径是否允许递归调用。
例如:
ResourceGroupManager::getSingleton().addResourceLocation("../../media/packs/chiropteraDM.pk3", "Zip",ResourceGroupManager::getSingleton().getWorldResourceGroupName(), true);