Работи ли mipmapping с GL_DEPTH_COMPONENT?

Опитвам се да използвам mipmapping, за да получа намалена версия на текстура от тип GL_DEPTH_COMPONENT. Активирам mipmaps, подобни на това:

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 е нивото на mipmap, до което искам да имам достъп.

Това работи добре за rgba текстури, но изглежда не мога да го накарам да работи с текстурата на компонента за дълбочина. Дори поддържа ли се в opengl?


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


Отговори (2)


Все пак успях! Имаше някакъв проблем с реда на обвързване на текстурите.

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

person Jan Rüegg    schedule 22.08.2014

Не, OpenGL не поддържа mipmapping на GL_DEPTH_COMPONENT. Но това не би трябвало да е истинският проблем.

Добра идея е да преразгледате причината, поради която искате да направите mipmap GL_DEPTH_COMPONENT. На практика това никога не би трябвало да е добра идея. В ситуации, в които се изисква линейна интерполация на стойностите на дълбочината, по-добрият начин да се постигне това е чрез фрагментен шейдър.

person user2983367    schedule 22.08.2014
comment
Ах, жалко. Правя нещо подобно на variance shadow mapping и там би било наистина удобно. - person Jan Rüegg; 22.08.2014
comment
Между другото, никъде не можах да намеря спецификациите на OpenGL... откъде знаеш, че не се поддържа? Откъде взе тази информация? - person Jan Rüegg; 22.08.2014