FBO + RTT с мультисэмплингом и глубиной / трафаретом - PullRequest
1 голос
/ 11 января 2012

В настоящее время я выполняю рендеринг через FBO + RTT с MRT, и я изучал возможность реализации сглаживания с помощью мультисэмплинга (вместо суперсэмплинга), но я немного озадачен спецификациями (я имею в виду спецификацию opengl 4.2 - так что мультисэмплированные текстуры в FBO поддерживаются) и то, что я читал вокруг .. в частности:

1)

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

оба метода выдают одинаковый результат?

2)

Я использую RTT, потому что мне нужно 4 цветовых вложения для многопроходного рендеринга. После того, как первая сцена была преобразована в текстуру, эта текстура затем подается в различные фрагментные шейдеры, которые получают доступ к своим данным с помощью обычного sampler2D.

следует ли использовать рендер-буферы вместо текстур, есть ли способ для фрагментного шейдера получить доступ к данным рендер-буфера?

3)

Я читал в спецификациях, что FBO с подключенным мультисэмплерным рендер-буфером не требуется глубина / трафарет, поскольку эта информация хранится в мультисэмплерном рендер-буфере (-ах)

означает ли это, что каждое цветовое вложение, к которому присоединен мультисэмплерный буфер визуализации, имеет свою собственную глубину / шаблон?

как насчет мультисэмплированных текстур как RT в FBO? Я не думаю, что они хранят информацию о глубине / трафарете ... я прав? Если я реализую мультисэмплинг с FBO + мультисэмплированной текстурой (ами), мне все еще нужен DEPTH_STENCIL_ATTACHMENT? если да, то как насчет мультисэмплинга на глубине?

4)

Мне нужен только 1 текстурный / рендер-буфер для сглаживания, в то время как другой ДОЛЖЕН сохранять неровные края. Я читал в спецификации, что при использовании FBO и мультисэмплинга каждый присоединяемый рендеринг должен иметь одинаковое количество сэмплов (хотя может варьироваться в размере).

Есть ли способ иметь только 1 из 2 RT мультисэмплирования? Вот что говорят спецификации, приписывая последний параметр в teximage2DMultisample (fixedsampledlocation):

If fixedsamplelocations is TRUE, the image will use identical
sample locations and the same number of samples for all texels
in the image, and the sample locations will not depend on the
internalformat or size of the image.

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

...