Games202-lecture3-实时阴影和PCSS介绍

Games202-lecture3-实时阴影和PCSS介绍

Zh-Hui Programmer

大纲


Shadow Mapping

概况


Pass1: 从光源渲染一个深度


Pass2: 从相机渲染,然后把渲染点投影到Shadow Map比较深度


Shadow Mapping的一些问题

自遮挡问题

相机相当于把地面离散化为垂直于相机的小块,相机越平行于地面越严重。


走样的问题:锯齿


Shadow Mapping中的数学:从渲染方程解释

不等式


实时渲染把不等式看作是约等式

一个重要的约等式(SplitSum和RSM都有用到)。


Rendering Equation上可以把V项给拆出来

相当于先做Shading,再乘以一个Shadow因子。


什么情况下拆分是比较准的

基本上就是Glossy BRDF下的面光源不准。


Percentage Closer Soft Shadows (PCSS)

Percentage Closer Filtering (PCF)

最开始就是做抗锯齿的。

做法:在Shadow Map上对应点附近7x7比较深度后再做平均值(所有结果都是0或者1的)。

效果:没有锯齿,还有类似软阴影的效果。


PCSS分析

发现:软阴影和硬阴影是跟笔尖和纸的距离有关。


PCSS分析:不同遮挡物距离需要的Filter核的大小关系

貌似我们找的depth应该是黄色的那个线,而不应该是蓝绿线。


PCSS算法

  1. 第一步是通过ShadowMap计算遮挡物的平均深度(遮挡物的判断需要用深度比较一下)。
  2. 第二步计算Filter Size。
  3. 第三步就是PCF(面光源的ShadowMap是由面光源的中心生成的)。

PCSS算法:解释如何第一步找Blocker平均Depth大小

这个是启发式的(用ShadingPoint往面光源连线,取相交于ShadowMap的区域来计算遮挡物的平均深度);另外还可以用固定的5x5大小来找。

  • 标题: Games202-lecture3-实时阴影和PCSS介绍
  • 作者: Zh-Hui
  • 创建于 : 2025-01-20 16:26:56
  • 更新于 : 2025-03-22 22:09:50
  • 链接: https://hui1520.top/2025/01/20/Games202-Lecture3/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论