В OpenGL есть несколько видов буферов. Цветовой буфер, о котором вы говорите, содержит компоненты цвета render target
. Это зависит от цели визуализации. Это может быть внеэкранный буфер, фрагмент окна или задний буфер окна.
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB)
инициализирует цель визуализации текущего окна. GLUT_DOUBLE
означает двойную буферизацию, чтобы избежать мерцания. GLUT_RGB
означает, что нам нужна память для цветов без альфа-канала.
glClear(GL_COLOR_BUFFER_BIT)
означает, что очищается только компонент Color буфера. Вы можете спросить, в чем разница. Причины в том, что цель рендеринга может быть разделена на несколько буферов, например, буфер цвета и буфер глубины. Буфер глубины будет очищен только при вызове glClear(GL_DEPTH_BUFFER_BIT)
, вы также можете объединить их через glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
, чтобы очистить цвет и компонент глубины сразу.