我目前有执行以下操作的代码:
glClear(GL_COLOR_BUFFER_BIT | GL_DPETH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
我的问题是:清除(2)是否应移动到步骤4之后?
此顺序很好,因为为概念上进行渲染准备的渲染缓冲区更容易,例如将底漆放在画布上,而不是事后清理渲染缓冲区。但是我担心GPU可能会卡在每个空隙上并立即延迟其后的绘制命令,这意味着应该在GPU无关的情况下使用它,例如在等待下一帧开始之前。
最佳情况:此顺序很好,我很偏执,glClear()
不会以任何有意义的方式延迟其他opengl绘图命令。
最坏的情况:glClear()
最好是在渲染帧之后调用,因为没有其他opengl命令排队,因此存在停工时间。