Работает ли мипмаппинг с GL_DEPTH_COMPONENT?

Я пытаюсь использовать мипмэппинг, чтобы получить уменьшенную версию текстуры типа GL_DEPTH_COMPONENT. Я включаю MIP-карты, подобные этому:

glGenerateMipmap(GL_TEXTURE_2D);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);

И использовать его в шейдере следующим образом:

texture2D(reference_view, coord, 5.0).bgr;

Поскольку 5.0 является уровнем MIP-карты, к которому я хочу получить доступ.

Это отлично работает для текстур rgba, однако я не могу заставить его работать с текстурой компонента глубины. Он вообще поддерживается в opengl?


person Jan Rüegg    schedule 22.08.2014    source источник


Ответы (2)


У меня все-таки получилось! Была некоторая проблема с порядком привязки текстур.

Так что ответ: ДА!

person Jan Rüegg    schedule 22.08.2014

Нет, OpenGL не поддерживает мип-отображение GL_DEPTH_COMPONENT. Но это не должно быть настоящей проблемой.

Это хорошая идея, чтобы пересмотреть причину, по которой вы хотите мипмапить GL_DEPTH_COMPONENT. На практике это никогда не должно быть хорошей идеей. В ситуациях, когда требуется линейная интерполяция значений глубины, лучший способ добиться этого — использовать фрагментный шейдер.

person user2983367    schedule 22.08.2014
comment
Ах, очень плохо. Я делаю что-то похожее на дисперсионное отображение теней, и здесь это было бы очень удобно. - person Jan Rüegg; 22.08.2014
comment
Кстати, я нигде не смог найти спецификации OpenGL... откуда вы знаете, что он не поддерживается? Откуда вы взяли эту информацию? - person Jan Rüegg; 22.08.2014