OpenGL中的颜色缓冲区是什么?

问题描述 投票:0回答:1

我正在努力理解OpenGL .C代码中的某些要点:

  • 这是什么颜色缓冲区?
  • 下面的代码中glutInitDisplayMode()glClear()对这个缓冲区有什么作用?
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glClear(GL_COLOR_BUFFER_BIT);
c opengl glut
1个回答
0
投票

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)组合它们以立即清除颜色和深度分量。

© www.soinside.com 2019 - 2024. All rights reserved.