Какова цель GL_COLOR_BUFFER_BIT и GL_DEPTH_BUFFER_BIT? - PullRequest
14 голосов
/ 30 марта 2011

Как начинающий OpenGL, я хотел бы знать, что они делают и почему они необходимы.Например, при звонке

 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

Ответы [ 2 ]

13 голосов
/ 30 марта 2011

GL_COLOR_BUFFER_BIT и GL_DEPTH_BUFFER_BIT - это не функции, а константы. Вы используете их, чтобы указать glClear(), какие буферы вы хотите очистить - в вашем примере буфер глубины и «буферы, в настоящее время включенные для цветной записи». Вы также можете передать GL_ACCUM_BUFFER_BIT для очистки буфера накопления и / или GL_STENCIL_BUFFER_BIT для очистки буфера трафарета.

Фактические значения констант не должны иметь значения при использовании библиотеки - важная деталь реализации заключается в том, что двоичные представления для каждой константы не перекрываются друг с другом. Это та характеристика, которая позволяет вам передавать побитовое ИЛИ нескольких констант в один вызов glClear().

Проверьте glClear() документацию для получения более подробной информации.

1 голос
/ 16 июня 2016

Вызов glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) очищает буферы цвета и глубины OpenGL (или любой другой буфер или комбинацию буферов). OpenGL является конечным автоматом, поэтому рекомендуется начинать каждый кадр с чистого листа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...