Удаление нескольких текстур одновременно с помощью glBlitFramebuffer - PullRequest
0 голосов
/ 30 января 2019

У меня есть небольшое приложение OpenGL, и я ищу оптимальный способ для одновременной записи нескольких буферов текстур.

Допустим, у меня есть два кадровых буфера (fbo1, fbo2), каждый из которыхсодержат два текстурных буфера.И у меня есть целевое fbo (fbo3) с четырьмя буферами текстуры.И я хочу скопировать все текстуры от fbo1 и fbo2 до fbo3.

В настоящее время я делаю это отдельно для каждой текстуры, например,

glBindFramebuffer(GL_READ_FRAMEBUFFER, fbo1)
glReadBuffer(GL_COLOR_ATTACHMENT0)
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo3)
glDrawBuffer(GL_COLOR_ATTACHMENT0)

glBlitFramebuffer(0, 0, width, height, 0, 0, ds_width, ds_height, GL_COLOR_BUFFER_BIT, GL_LINEAR)

glBindFramebuffer(GL_READ_FRAMEBUFFER, 0)
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0)

Как этообычно делается?И это вообще выполнимо?

1 Ответ

0 голосов
/ 30 января 2019

Обычно это не делается, потому что люди обычно не копируют кучу кадров кадрового буфера.В самом деле, если это так, это убедительно говорит о том, что вы, вероятно, делаете что-то не так.

Единственный способ сделать это - это то, что вы сделали здесь (хотя ненужное повторное связывание кадровых буферов может уйти): каждый раз меняйте буферы чтения / отрисовки и мигайте.

...