glClear()如何提高性能?

Jon*_*ric 10 iphone opengl-es

Apple关于解决闪烁问题的技术问答(QA1650)包括以下段落.(强调我的.)

您必须为屏幕上的每个像素提供一种颜色.在绘图代码的开头,最好使用glClear()来初始化颜色缓冲区.在帧开始时全屏清除每个颜色,深度和模板缓冲区(如果您正在使用它们)通常也可以提高应用程序的性能.

在其他平台上,如果您要绘制每个像素,我总是发现它是一种清除颜色缓冲区的优化.(如果你要覆盖那种清晰的颜色,为什么要浪费时间填充颜色缓冲区?)

如何调用glClear()来提高性能?

Adi*_*cin 16

它很可能与基于图块的渲染有关,该渲染将整个视口划分为图块(较小的窗口,通常尺寸为32x32),并且这些图块保存在更快的存储器中.这个较小的内存和实际的帧缓冲之间的复制操作可能需要一些时间(内存操作比算术操作慢很多).通过发出glClear命令,您告诉硬件您不需要以前的缓冲区内容,因此它不需要将帧缓冲区中的颜色/深度/任何内容复制到较小的区块内存中.