Shadow技术-起点

起因

项目的Shadow开始出现了问题,有2个BUG报到了我的身上

  1. 比较薄的Mesh出现了漏光(Light leaking)现象
  2. Cube旋转到一定角度,表面出现了“瑕疵”(Shadow Acne)

我开始意识到,确实需要一套比较完备、可控的阴影方案了

对Shadow的积累

目前我对Shadow技术的积累,仅限简单的Shadow Map原理和知道CSM大致的实现方式。
在看到前面两个BUG的时候,我大概知道是什么导致的,可以通过调整ShadowMap的尺寸以及两个bias参数来缓解这两个BUG,但是还是想借这个机会,“一劳永逸”的解决项目Shadow方案同时提升一下自己在Shaodw方面的积累

解决路线

传统手游项目对于静态物体大多使用烘焙阴影方案,动态物体可能使用Projector方式或者ShadowMap方式,配合Unity的Distance ShadowMask实现动静结合,还是非常不错的方案,效果和效率能达到一种完美的平衡(个人认为)
但是,由于项目的特殊需求,场景并不能使用烘焙方式来作为阴影解决方案(即使使用也可能需要实现一套Lightmap烘焙方案)。
目前项目使用的是传统的Shadowmap方式,基于Unity LWRP(4.0),Distance默认设置为25,1024尺寸
在这个配置下,无论如何调整bias都无法完美解决Light leaking、error Self-Shadow和Peter paning这三种问题
本质上,还是Shadowmap的精度问题。虽然可以通过提高Shadowmap

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值