Home › Forums › Games202-高质量实时渲染 › 关于shadow map精度导致的问题
- This topic has 10 replies, 5 voices, and was last updated 4 years, 7 months ago by
JH.
-
AuthorPosts
-
-
zacks
Participant我的理解是红片上的点到光源的连线会被其他红线遮挡,这也是 Self Occlusion 的由来。你的理解中最大的问题在于,像素不是一个点,在光源视角下的 Shadow Map 中,每一个像素可以视作一个面向光源的面片,其深度等于面片中心点的深度,因此形成图中红色的面片。
当从摄像机视角做深度检测时,可能会从别的角度看到一个红色面片背后的点(如附件所示),因此在不加 Bias 的情况下,被视作被遮挡,从而产生 Self Occlusion。
-
我的理解也是没有遮挡,因为红片本来就是在光源视角下将深度离散化后的假想结果,如果把深度想象成不连续的,光源视角下的每个pixel都可以看作面朝光源的面片的深度值(面朝光源是因为同一面片深度一致,相当于一个pixel只有一个深度值)。换句话说,如果想象所有的面片像光源方向平行,应该是可以完美地填满整个shadow map的。
我还有一个问题,是不是可以认为更高分辨率的shadow map有利于改善self occlusion的问题?-
This reply was modified 4 years, 7 months ago by
JH.
-
我觉最直接的影响就是分辨率越高,瘢痕黑色的部分越细。理论上精度足够高黑色部分就会消失。
-
This reply was modified 4 years, 7 months ago by
-
我的理解是红片之间不会遮挡,因为是光源角度的深度图,肯定是不被遮挡的才能写进SM。
而且这个遮挡不遮挡不重要,因为计算阴影时候实际上是考虑红片遮挡真实平面,而不是红片之间的关系。 -
按我理解:
1. 红片仅仅是用来示意从点光源角度看地面时的离散化深度
2. 闫老师说的自遮挡是指光源角度生成的离散深度图在相机视角下计算阴影时离散的某些像素误判为在阴影中,也就是说地面自己遮挡自己这个说法是站在相机角度说的,跟相机角度看东西是否自遮挡毫无关系!光源角度给出的深度图是离散的这一特性给了相机角度进行shading时发生误判
3. 提高ShadowMap的分辨力,应该能减少自遮挡的现象到这里其实我有另一个问题:
既然是离散化导致的问题,那光源角度进行渲染时,片段着色器中对ShadowMap进行采样的时候使用双线形插值之类的算法来模拟连续深度图,是否也能改善自遮挡的现象?
-
原文笔误:也就是说地面自己遮挡自己这个说法是站在相机角度说的,跟光源角度看东西是否自遮挡毫无关系!
我的理解:光源角度看东西不存在自遮挡这种情况
-
我认为理论上说是会的,不过自遮挡的问题在离散化深度值的时候就已经产生了,双线性插值肯定比point sampler要好,但是改善的很有限。考虑一张分辨率较低的shadow map,可能某个深度连续变化的区域在shadow map上都是同一个值,而此时sample方式并不会改善自遮挡问题。
其实PCF的思想就是用更多邻近的pixel去判断单一pixel的visibility,也可以看作一种区域插值,只不过不是对于shadow map插值的,而是对于比较结果插值的。
-
-
AuthorPosts
- You must be logged in to reply to this topic.