首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么框架之间的屏幕上看不到清晰的颜色?

为什么框架之间的屏幕上看不到清晰的颜色?
EN

Computer Graphics用户
提问于 2017-12-12 14:51:35
回答 1查看 101关注 0票数 2

我被告知,在计算机图形学中,屏幕刷新次数多(在这个场景中,它每秒显示60次)。屏幕被清除并绘制为每秒60次。

我的问题是,我如何能看到图像显示60次每秒,但我看不到清晰的颜色,也是显示60次每秒?或者这与我们的眼睛怎么看,或者我们的大脑如何解读我们所看到的东西有关?

EN

回答 1

Computer Graphics用户

回答已采纳

发布于 2017-12-12 15:07:37

您正在将屏幕(物理显示)与帧缓冲区(由显示控制器读取的内存)混淆。框架缓冲区可能会在每个帧周期开始时被清除,但这不会改变显示。事件的顺序如下:

  • 在新帧的开始,glClear或等效设置帧缓冲区为清晰的颜色。
  • glDraw或类似的电话在清晰的颜色之上画更多的东西。
  • eglSwapBuffers或等效的队列将完成的帧绘制在显示器上。
  • 当显示就绪后,将遵循这一过程。它读取框架缓冲区的内容,并在物理屏幕上显示它们。

正在绘制的框架缓冲区从未显示在屏幕上;只有当它完成时才能显示。双缓冲或三缓冲为您提供多个帧缓冲区的副本,因此应用程序可以使用一个,而显示则使用另一个。这和你的眼睛和大脑无关。

它实际上要复杂得多,因为现在大多数GL实现都不是即时模式,所以当调用上面提到的函数时,没有真正的工作发生。事实上,清除缓冲区甚至可能根本不会发生:如果每个像素都被绘制到,那么就没有必要这样做。当清除框架缓冲区需要很长时间时,游戏就会因为不调用glClear而进行得更快。今天,调用glClear更为重要,因为它让实现知道新框架何时开始,但它可能会比只编写每个像素更聪明。

票数 7
EN
页面原文内容由Computer Graphics提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://computergraphics.stackexchange.com/questions/5976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档