Несколько целей рендеринга в одном FBO с текстурами разного размера?

Могу ли я иметь текстуры разных размеров, прикрепленные к одному FBO, а затем использовать их для нескольких целей рендеринга? Нужно ли мне делать что-то особенное с glViewport, чтобы это произошло? Предположим, у меня есть текстура 1024x1024 для COLOR_ATTACHMENT0 и текстура 512x512 для COLOR_ATTACHMENT1, и я вызываю glDrawBuffers(2, {COLOR_ATTACHMENT0, COLOR_ATTACHMENT1}) (я понимаю, что синтаксис неверен, но вы поняли...), будет ли он отображать полную сцену в обоих вложениях? Я в основном думаю, что полезность этого будет заключаться в возможности рендеринга сцены в полном качестве и версии с пониженной частотой дискретизации за один раз, возможно, с определенными масками или чем-то еще, чтобы ее можно было использовать в композиторе эффектов / постобработке. Большое спасибо!


person Max Feldkamp    schedule 07.09.2013    source источник


Ответы (1)


Начиная с GL3.0 вы можете прикреплять текстуры разных размеров. Но вы должны знать, что визуализируемая область будет одной из самых маленьких текстур. Читайте здесь: http://www.opengl.org/wiki/Framebuffer_Object

person Michael IV    schedule 07.09.2013
comment
Фантастика! Отрисовывается ли вся сцена в полном объеме каждой текстуры? - person Max Feldkamp; 08.09.2013
comment
Кроме того, вы можете эффективно преобразовать в другой меньший или больший FBO для повышения или понижения частоты дискретизации. - person Michael IV; 08.09.2013