此篇清楚以后的更深层解析:深度图采样解析
深度图CameraDepthTexture,网上的介绍一大堆,很多人可能会使用深度图并且能够实现一定的效果。。。。然而,问题依然存在:
(1)他并不明白深度图中的深度是怎么比较的?
(2) 从深度图_CameraDepthTexture中采样出的深度,对应场景中哪个点?
例如:水的颜色是怎么样通过 深度 来确定的?!
下面来详细的讲解一下:
第一:深度图的形成:
(1)图中存的是像素d:[0,1];归一化的NDC坐标的Z值是[-1,1],将NDC坐标转化为[0,1]就是存在深度图中的值

(2)NDC坐标中的Z值是哪来的?!
坐标转换:从模型空间- 世界空间 - 视图空间 - 裁剪空间 - 屏幕空间
直接略过前两个空间,这里说一下 :从视图空间 - 屏幕空间这个转换
视图空间 - 乘以齐次裁剪矩阵- (齐次)裁剪空间
注意!!!
首先:从视图 - 裁剪: 此时并未进行“齐次除法”,不是归一化的坐标!!!在shader中vert着色器中,也只是转化到了这个阶段,并未在vert中进行归一化
然后:在frag中进行齐次除法归一化,
以上两步在 冯乐乐的 入门精要中已经说的很清楚了,附网址:
https://blog.youkuaiyun.com/linuxheik/article/details/79446780
(3)哪些物体会被存储到深度图中?!!!
看似很简单,但如果这个搞不清楚,在计算深度差值的时候,绝对是一

本文深入解析深度图采样,介绍深度图CameraDepthTexture。讲解深度图的形成,包括像素存储、坐标转换过程,指出哪些物体会被存储到深度图中,强调半透明的关键影响。还举例说明不同情况下深度计算的意义,最后提及_CameraDepthTexture和ZBuffer的区别。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



