У меня заполненная текстура глубины, но, похоже, из нее не получается правильное значение.
код GLSL, фрагментный шейдер:
uniform sampler2D depth_tex;
uniform float viewport_w;
uniform float viewport_h;
void main()
{
vec2 coord = vec2(gl_FragCoord.xy);
float depth = texture2D(depth_tex, vec2(coord.x / viewport_w, coord.y / viewport.h)).r;
float c = material_amb * depth; // material_amb is preset by host
out_color = vec4(c, c, c, 1.0f);
}
Я ожидаю, что цвет модели будет изменяться глубиной вершин, но я не могу видеть все. Конечно, я могу видеть модель без умножения глубины. Тип текстуры глубины: GL_DEPTH_COMPONENT, GL_FLOAT. В чем проблема? Я думаю, что решение для получения значения глубины из текстуры является неправильным, но я не знаю причину. Где хранится значение глубины? И как я могу получить значение глубины?