Chinaunix首页 | 论坛 | 博客
  • 博客访问: 225299
  • 博文数量: 36
  • 博客积分: 482
  • 博客等级: 下士
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-03 12:14
个人简介

Hi-ho, Silver! 在一个商业英雄辈出的年代,让我们用技术做一次华丽的冒险。向Linus致敬,向Stallman致敬!

文章分类

全部博文(36)

文章存档

2013年(24)

2012年(1)

2011年(8)

2010年(3)

我的朋友

分类: C/C++

2011-09-05 15:19:49

Ogre中的frameRenderingQueued方法

函数调用流程:
1). 执行所有FrameListener的frameStarted();
2). 更新所有渲染目标(不交换buffer);
3). 执行所有FrameListener的frameRenderingQueued();
4). 交换所有渲染目标buffer;
5). 执行所有FrameListener的frameEnded();

加入frameRenderingQueued的原因在于渲染是由GPU来完成的,更新所有渲染目标这个操作返回时,GPU需要一定的时间来完成当前的渲染,这样当执行frameRenderingQueued时,相当于逻辑和GPU在并行
计算,CPU也没有闲着,这样就提高了效率,效率很重要。

这里还需要指出的一点是,由于frameRenderingQueued执行时,GPU已经在渲染上一帧内容了,因此写在frameRenderingQueued里的逻辑将在下一帧才能够在渲染中体现出来,一般来说,这个问题是无关
紧要的。
阅读(1989) | 评论(0) | 转发(0) |
0

上一篇:Ogre 启动过程

下一篇:SceneManager类型

给主人留下些什么吧!~~