Unity游戏图形渲染效果系列之阴影篇(一)

本文将从阴影产生的原理去讲解和剖析阴影过程,分享常用的几种阴影产生的方式,以及阴影的几种锯齿解决方法及优化方案。

本章一将做一些阴影效果分享和原理讲解并实现最基本的阴影。

本文分以下几个章节

(一)阴影原理和最基本的阴影实现

(二)阴影的抗锯齿优化

(三)多种阴影的生成方式


一.效果分享





相信大家从这两幅图的阴影效果就可以看出来,图一的阴影是最基本的阴影,图二的阴影是稍微处理过后的阴影 效果就比图一好很多 几乎看不到锯齿效果了。关于为什么会有锯齿以及解决锯齿的多种方案,后续都会一一提出来,下面我们来讲解基本阴影原理。


二.阴影产生的过程和原理

如下图所示,AB是地面,BC是遮挡物,在太阳D的照射下产生了阴影AB,其中光照方向为CD方向。其中我们的眼睛摄像机在位置E处,视觉方向为点到E的方向。

从该图可以分析到阴影的原理很简单,也就是要从太阳光的方向看被墙BC挡住的地方就是有阴影的,换句话说也就是在太阳空间视角下点F到D的距离大于B-C点到D 的距离,那么判定是否处于阴影范围就是通过在太阳空间下对比两者的深度。下面来说下实现的具体步骤:

1.应用阶段在D点生成一个ShadowCamea,选择正交相机,使其方向为太阳光照的方向。需要每帧计算使其方向始终处于光照方向以便动态更新。(我们通常说的光照方向是点到太阳的方向,这儿按图方向描述)

2.使用ShadowCamera渲染场景生成一个生成该camera空间下的深度图,这里要注意ShadowCamera渲染的纹理图大小和相机的可视范围大小,原则上 shadow渲染范围越小,肯定深度信息就越精确,就越不容易产生锯齿,反正如果渲染范围大了,肯定要用阴影抗锯齿算法处理。

3.在E处 也就是我们的maincam

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值