【发布时间】:2016-05-21 20:53:23
【问题描述】:
我看到了不同的意见。 目前,我只关心颜色数据。
在Chapter 28. Graphics Pipeline Performance 中,它说:
避免多余的颜色缓冲区清除。如果每个像素都保证 被您的应用程序覆盖在帧缓冲区中,然后避免 清除颜色,因为它会消耗宝贵的带宽。
在How does glClear() improve performance?中,引用自Apple's Technical Q&A on addressing flickering (QA1650):
您必须为屏幕上的每个像素提供一种颜色。在 在绘图代码的开头,最好使用 glClear() 初始化颜色缓冲区。全屏清除您的每一个 开始时的颜色、深度和模板缓冲区(如果您正在使用它们) 帧的帧数通常也可以提高您的应用程序的性能。
在那篇文章中有一个答案:
通过发出 glClear 命令,您是在告诉硬件您这样做了 不需要以前的缓冲区内容,因此不需要复制 颜色/深度/从帧缓冲区到较小的图块内存。
对于这个答案,我的问题是: 如果没有混合,为什么我们需要从帧缓冲区中读取颜色数据。 (目前,我只关心颜色数据)
但无论如何,一般来说,我是否需要调用 glClear(GL_COLOR_BUFFER_BIT)
【问题讨论】:
标签: opengl