相关疑难解决方法(0)

对数深度缓冲线性化

如何线性化对数深度缓冲区?

片段着色器中线性深度缓冲区的可视化

  float n = 1.0; // camera z near
  float f = 27000000.0; // camera z far
  float z = texture( DepthTex, TexCoord ).x;
  float d = (2.0 * n) / (f + n - z * (f - n));
  FragColor=vec4(d,d,d,1);
Run Code Online (Sandbox Code Playgroud)

球体顶点着色器

vec4 ClipCoords(vec3 position,mat4 matrix)
{
   vec4 clip = matrix * vec4(position,1.0f);
   clip.z =((2.0f * log(1.0f * clip.z + 1.0f) / log(1.0f * 27000000.0f + 1.0f)) - 1.0f) * clip.w;
   return clip;
}
 gl_Position = ClipCoords(position,matrix);
Run Code Online (Sandbox Code Playgroud)

左侧显示了对数深度缓冲线性或者更确切地说,它的缺乏,而右边显示linarization不log …

opengl zbuffer

3
推荐指数
1
解决办法
3213
查看次数

标签 统计

opengl ×1

zbuffer ×1