Нормальный задний буфер + рендеринг в глубину текстуры в OpenGL (FBOs) - PullRequest
1 голос
/ 12 марта 2011

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

Как мне это сделать? Я попытался создать FBO и привязать к нему только текстуру глубины (GL_DEPTH_COMPONENT), но это не сработало; ни один из цветов не появился.

1 Ответ

2 голосов
/ 12 марта 2011

Нет, ты не можешь.FBO, к которому вы выполняете рендеринг, может быть как основным, так и закадровым.Вы не можете смешивать их каким-либо образом.

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

Edit-1.

В качестве альтернативы, если у вас уже есть глубина в основном FB, вы можете сначала скопировать свою глубину, а затем выполнить рендеринг в основной FB, тем самым сохраняя видеопамять на дополнительном буфере рендеринга цвета.

PS Blittingделается через glBlitFramebuffer.Чтобы это работало, вы должны настроить GL_READ_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER и glDrawBuffer () для каждого из них.

...