GAMES 202 - 学习笔记(03)

本文介绍了实时阴影渲染中的Shadow Mapping技术,包括其原理、问题及解决方案。接着深入探讨了Shadow Mapping背后的数学原理,并讨论了Percentage Closer Filtering (PCF)与Percentage Closer Soft Shadows (PCSS)如何实现软阴影效果,特别是PCSS如何通过自适应滤波窗口大小来模拟真实世界的阴影变化。
摘要由CSDN通过智能技术生成

GAMES 202 - 学习笔记(03)


原课程视频链接以及官网
b站视频链接: https://www.bilibili.com/video/av887241709/.
课程官网链接: https://sites.cs.ucsb.edu/~lingqi/teaching/games202.html.

上节课遗留的微积分部分课程不会再单独进行复习了,转而在每一节涉及到微积分的地方再进行解释,课程接下来会先主要介绍 Real-Time Shadows 这个话题

Real-Time Shadows

在这里插入图片描述

Recap: Shadow Mapping

课程首先回顾了 Shadow Mapping 的原理以及存在的问题和解决方案。

Shadow Mapping 是针对点光源制作阴影的技术。它是两趟(2-pass) 的算法:

  1. 第一趟从光源出发,记录从光源看向场景的深度 D l D_l Dl
    在这里插入图片描述

  2. 第二趟从实际相机位置出发,看向场景,在着色过程中查看每个点能否被光源照亮,即比较 D v < D l D_v < D_l Dv<Dl,注意此时 D v , D l D_v,D_l Dv,Dl 应处于同一空间
    在这里插入图片描述

它是图像空间算法,因为需要知道的是光源到场景的深度就可以做 Shadow Mapping,它也存在一些问题,比如自遮挡走样问题
在这里插入图片描述
在这里插入图片描述
通过在 Shadow Mapping 的两趟中,对光源处所获得的深度进行可视化,可以得到如下结果:
在这里插入图片描述
在这里插入图片描述
Shadow Mapping 存在的问题:

自遮挡(Self occlusion): 是由于深度精度问题导致的。由于从光源处看向场景,会把场景的一块区域(图中红色线段区域)离散成光源处成像平面的像素,这时再与之比较,很有可能发生自遮挡问题:
在这里插入图片描述
解决办法是,两趟的比较结果在一定范围内不计算阴影,添加一定的 bias,但是这同样会引来其他问题,即阴影出现断裂:
在这里插入图片描述
学术界也提出方法来解决这个问题,但是由于实现多了一些复杂计算和存储,所以没有得到广泛的应用:
在这里插入图片描述
走样问题:由于深度缓冲分辨率导致的,可以采用 Cascaded Shadow Maps (该方法提供了不同分辨率的深度纹理)等方法来解决
在这里插入图片描述

The math behind shadow mapping

课程接下来讲了一下 Shadow Mapping 背后的数学原理:

首先在实时渲染(RTR)中,我们都考虑不等式为近似相等。在实时渲染中,有一个重要的近似为:
∫ Ω f ( x ) g ( x ) d x ≈ ∫ Ω f ( x ) d x ∫ Ω d x ⋅ ∫ Ω g ( x ) d x \int_{\Omega} f(x) g(x) \mathrm{d} x \approx \frac{\int_{\Omega} f(x) \mathrm{d} x}{\int_{\Omega} \mathrm{d} x} \cdot \int_{\Omega} g(x) \mathrm{d} x

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值