Кто-нибудь знает, почему «глубина» (vertShader) отличается от «gl_FragCoord.z» (отображается из opengl)? Особенно с уменьшением z разница становится больше. Возможно ли, чтобы «глубина» была при более высоких значениях z более точной?
.vsh
out float depth;
void main (void) {
vec4 pos = mvpMatrix * vertex;
depth = ((pos.z / pos.w) + 1.0) * 0.5;
gl_Position = pos;
}
.fsh
in float depth;
void main(void) {
gl_FragDepth = depth;// or gl_FragCoord.z;
}