Ogre中的frameRenderingQueued方法
函数调用流程:
1). 执行所有FrameListener的frameStarted();
2). 更新所有渲染目标(不交换buffer);
3). 执行所有FrameListener的frameRenderingQueued();
4). 交换所有渲染目标buffer;
5). 执行所有FrameListener的frameEnded();
加入frameRenderingQueued的原因在于渲染是由GPU来完成的,更新所有渲染目标这个操作返回时,GPU需要一定的时间来完成当前的渲染,这样当执行frameRenderingQueued时,相当于逻辑和GPU在并行
计算,CPU也没有闲着,这样就提高了效率,效率很重要。
这里还需要指出的一点是,由于frameRenderingQueued执行时,GPU已经在渲染上一帧内容了,因此写在frameRenderingQueued里的逻辑将在下一帧才能够在渲染中体现出来,一般来说,这个问题是无关
紧要的。
阅读(2033) | 评论(0) | 转发(0) |