我正在努力理解OpenGL .C代码中的某些要点:
glutInitDisplayMode()
和glClear()
对这个缓冲区有什么作用?glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glClear(GL_COLOR_BUFFER_BIT);
OpenGL中有几种缓冲区。您提到的颜色缓冲区包含render target
的颜色分量。渲染目标可以是屏幕外缓冲区或窗口的一部分,也可以是窗口的后缓冲区,具体取决于。
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB)
初始化当前窗口的渲染目标。 GLUT_DOUBLE
表示双重缓冲以避免闪烁。 GLUT_RGB
表示,我们需要存储颜色,没有alpha通道。
glClear(GL_COLOR_BUFFER_BIT)
表示仅清除缓冲区的Color分量。您可能会问有什么区别。原因是,渲染目标可以拆分为多个缓冲区,例如,颜色缓冲区和深度缓冲区。仅当您调用glClear(GL_DEPTH_BUFFER_BIT)
时,才会清除深度缓冲区,也可以通过glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
组合它们以立即清除颜色和深度分量。