GPU渲染流程学习_02_阴影

1:投射阴影

               如果我们想要一个物体向其他物体投射阴影,就必须把该物体加入到光源的阴影映射纹理的计算中(从而让其他物体在对阴影映射纹理采样时可以得到该物体的相关信息,并接收阴影)。在unity中,这个过程是通过为该物体执行LightMode为ShadowCaster的Pass来实现的。如果使用了屏幕空间的投影映射技术,unity还会使用这个Pass产生一张摄像机的深度纹理。


2:接收阴影

              如果我们想要一个物体接收来自其他物体的阴影,就必须在Shader中对阴影纹理映射(包括屏幕空间的阴影图)进行采样,把采样结果和最后的光照结果相乘来产生阴影效果。


3:产生阴影的过程的理解

                假设放一个摄像机与光源重合,那么场景中该光源的阴影区域就是那些摄像机看不到的地方。计算并得到他的阴影映射纹理(shadowmap),本质上也是一张深度图。
       通过摄像机(Main Camera)的深度图计算出屏幕像素的三维位置,然后转换为世界坐标位置-->光源坐标位置,与光源空间的阴影映射纹理比较,如果某一个像素的摄像机的深度图中记录的深度大于光源空间下的阴影映射纹理,则说明该像素在阴影下。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值