我被告知,在计算机图形学中,屏幕刷新次数多(在这个场景中,它每秒显示60次)。屏幕被清除并绘制为每秒60次。
我的问题是,我如何能看到图像显示60次每秒,但我看不到清晰的颜色,也是显示60次每秒?或者这与我们的眼睛怎么看,或者我们的大脑如何解读我们所看到的东西有关?
发布于 2017-12-12 15:07:37
您正在将屏幕(物理显示)与帧缓冲区(由显示控制器读取的内存)混淆。框架缓冲区可能会在每个帧周期开始时被清除,但这不会改变显示。事件的顺序如下:
glClear或等效设置帧缓冲区为清晰的颜色。glDraw或类似的电话在清晰的颜色之上画更多的东西。eglSwapBuffers或等效的队列将完成的帧绘制在显示器上。正在绘制的框架缓冲区从未显示在屏幕上;只有当它完成时才能显示。双缓冲或三缓冲为您提供多个帧缓冲区的副本,因此应用程序可以使用一个,而显示则使用另一个。这和你的眼睛和大脑无关。
它实际上要复杂得多,因为现在大多数GL实现都不是即时模式,所以当调用上面提到的函数时,没有真正的工作发生。事实上,清除缓冲区甚至可能根本不会发生:如果每个像素都被绘制到,那么就没有必要这样做。当清除框架缓冲区需要很长时间时,游戏就会因为不调用glClear而进行得更快。今天,调用glClear更为重要,因为它让实现知道新框架何时开始,但它可能会比只编写每个像素更聪明。
https://computergraphics.stackexchange.com/questions/5976
复制相似问题