глубина / трафарет FBO для нескольких семплов и спецификации OpenGL - PullRequest
2 голосов
/ 12 января 2012

спецификации OpenGL 4.2 (раздел 3.3.1) четко гласят, что:

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

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

Это идет вразрез со спецификациями или я что-то упустил?

1 Ответ

3 голосов
/ 13 января 2012

Ну, посмотрим. Раздел 4.4.4 гласит:

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

Среди множества правил, упомянутых «ниже»:

Значение RENDERBUFFER_SAMPLES одинаково для всех подключенных буферов рендеринга; значение TEXTURE_SAMPLES одинаково для всех прикрепленных текстур; и, если прикрепленные изображения представляют собой смесь буферов рендеринга и текстур, значение RENDERBUFFER_SAMPLES совпадает со значением TEXTURE_-SAMPLES.

Так что, если ваш буфер глубины / трафарета не является мультисэмплированным, а ваш цветной буфер мультисэмплирован, то ваш FBO не будет полным. И вы не можете выполнить рендеринг в неполный объект кадрового буфера.

Так что да, вам нужно не только убедиться в том, что они имеют мультисэмплинг, они должны использовать то же самое количество выборок.

...