这段时间刚好看了一些OGRE的源码,对OGRE的渲染流程做了一些笔记,可能对题主有些帮助。
本人自学引擎开发不满一年,有一些概念理解不是很透彻,也有可能完全理解偏了,如果笔记里有错误,恳请指出,这对我来说也是一个学习的机会。
另外,
@oz01的答案基本可以看做下表流程的一个概括说明。
在他的基础上再补充几点:
1. 在OGRE中,开发者可以通过实现各种监听器的接口来实现游戏逻辑,它们遍布在OGRE的整个渲染过程中,一般来说主要的游戏逻辑都在「帧开始」事件中实现。
2. 正如
@oz01所说的,一般游戏逻辑的处理顺序是:
处理用户输入用户输入反馈到游戏场景中的对象
根据用户输入计算场景对象的物理反馈(作为一个渲染引擎,OGRE没有涉及这一步,需要开发者自己实现)
更新场景对象的空间变换
将场景对象所绑定的可渲染对象加入到渲染队列,这个过程涉及对可渲染对象的裁剪、分类以及排序
此外,游戏的其他逻辑(如战斗逻辑更新、服务器消息处理等)根据需求的不同,可能分布在这个流程的每一个步骤中。
3. 游戏逻辑处理完毕后,就是渲染的过程了,简单来说就是遍历渲染队列,设置渲染状态,提交几何图元
如果小图看不清楚,可以直接点击下面的链接查看大图:
http:// images2015.cnblogs.com/ blog/628546/201601/628546-20160128205241223-522174856.png