Можно ли очистить только определенные текстуры в фреймбуфере с мульти-целевым рендерингом?

У меня есть объект framebuffer, в котором я использую Multi Target Rendering на N текстурах, привязанных к нему. В определенное время я хочу очистить содержимое некоторых из этих текстур, но не все из них. Если я позвоню

glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

каждая текстура, привязанная к FBO, будет очищена (я прав?). Есть ли способ сделать это на конкретных буферах/текстурах рисования?

Ответ 1

GL_COLOR_BUFFER_BIT в вызов glClear очистит все активные буферы цвета , как указано через glDrawBuffers. Таким образом, вы можете изменить буферы рисования перед выполнением ясного.

Но это ненужное состояние меняется. Вы можете просто вызвать glClearBuffer, который будет очистить конкретный буфер.