关于对数深度的一些知识

Posted hpugisers

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于对数深度的一些知识相关的知识,希望对你有一定的参考价值。

这些知识忘了在哪粘贴的,希望原作者看到可以留言

OpenGL渲染时,顶点着色器输出的w值为是

W = -Z;

而深度值是 

D = Z * ( n + f ) / ( n - f )  + 2.0 * f  * n / (n-f)

顶点着色器中的值通过除以w转换为归一化的设备坐标,因此深度值变成了:

Dndc=D / W = D / -Z = -D / Z 

= (f+n)/(f-n) + 2.0 *f*n/(f-n) / Z;

让 a =  2.0 *f*n/(f-n) ; b =  (f+n)/(f-n) ;
则 
Dndc= a * (1.0/Z) + b;

所以深度值与Z的倒数呈线性关系

对于对数深度,在顶点着色器中输出

vFragDepth = 1.0 + gl_Position.w; (不支持写入深度时改为  gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;  gl_Position.z *= gl_Position.w;)

在片元着色器中写入深度

gl_FragDepthEXT = log2( vFragDepth ) * logDepthBufFC * 0.5;

其中logDepthBufFC为Uniform变量

logDepthBufFC = 2.0 / log2(f + 1.0).

关于深度可以参考这篇文章https://www.cnblogs.com/dojo-lzz/p/11250164.html

以上是关于关于对数深度的一些知识的主要内容,如果未能解决你的问题,请参考以下文章

对数变换

关于深度学习编译器,这些知识你需要了解一下

语音中的关于语音识别的一些知识

「深度学习一遍过」必修26:机器学习与深度学习基础知识汇总

「深度学习一遍过」必修26:机器学习与深度学习基础知识汇总

「深度学习一遍过」必修26:机器学习与深度学习基础知识汇总