5
私は対数奥行きバッファを使用しています。私のシェイダーでは、コードはhereと書いてあります。フラグメントシェーダで対数奥行きバッファ
void main()
{
vec4 vertexPosClip = gl_ModelViewProjectionMatrix * gl_Vertex;
gl_Position = vertexPosClip;
gl_TexCoord[6] = vertexPosClip;
}
:バーテックスシェーダで
私のアルゴリズムのいずれか(古典的な深度バッファでうまく動作SSAO)で今void main()
{
gl_FragColor = ...
const float C = 1.0;
const float far = 1000000000.0;
const float offset = 1.0;
gl_FragDepth = (log(C * gl_TexCoord[6].z + offset)/log(C * far + offset));
}
は、私が回復します私の断片の深さ。ここに私が使用する式があります:
const float C = 1.0;
const float far = 1000000000.0;
const float offset = 1.0;
//depth
z=(pow(C*far+offset,depth_in_depth_buffer)-offset)/C;
しかし、それは動作しません、アルゴリズムはもう働かないです。私が計算したzが正しい深さであるかどうか分かりますか?