阴影衰减和计算

工程源码: git工程源碼
作者原文(英文版):URP英文网址
(1)阴影痤疮和渗透
在这里插入图片描述
这是产生阴影渗透和痤疮的根本原因:

shadowBias 的偏移的大小: 基于斜率 slope 来动态算出偏移的大小
影物飘离

(2)软阴影的实现: PCSS 相关的逻辑 和SDF
不想再详细的说了

(3)关于阴影遮罩shadowMask对光源数量的限制:
场景中的灯光的个数:
(1)ShadowMask: 最多支持4个mixed的
(2)单帧最多64个 非dirLight, (场景可以支持更多) ,会按照重要性排序,多余的会被忽略

在这里插入图片描述
在这里插入图片描述
(三)阴影平坠 Shadow Pancaking
平坠对使用 正交投影阴影的 方向光有效
对有固定位置的other光源并不适用

(四)阴影的衰减:

阴影的衰减 要插值两次

第一次: 用着色点在世界空间中的位置 和 maxShadowDistance 的比例
即: 超过maxShadowDistance就衰减为0,所以先算出此点在全局中的强度(这里只考虑 Quality中设置为distance shadowMask的情况, 其实和shadowMask 的计算也区别不大)
第二次: 由shadowMap采样算出的强度(此处 比如取4个点 ,每个点的值 在阴影内为1,不在阴影内为0, 加权求平均)

MixBakedAndRealtimeShadows: 混合baked和实时的阴影强度:包含第三次和第四次

第三次: 算出 shadowMask中的阴影强度(烘焙强度)

shadow = lerp(烘焙强度, 实时阴影强度, 全局强度)

第四次: 应用灯光强度和 第三次算出的shadow做插值

return lerp(1.0, shadow, 灯自身的强度)

最后的总结: 感觉每啥可说的, 最近脑子跟不上了,稍微整理一下。。
(1)感觉很明白的。过几天再来个相似的东西,就有点懵了, 宏观上感觉知道,
(2) 细节上混乱不清了,是在自我欺骗吗 哈哈哈哈哈哈。。。。。
思考,一定要思考 , 而不是麻木不仁的感觉“这看懂了,这会了,这不难,这很简单”的错觉

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值