一、特效方式实现
1.1 Billboard特效片实现
采用这种方式的体积光实现简单,性能好,但是对于角度有特殊的要求,只适合某些场景使用
1.2 ShadowGun实现
ShadowGun是2011年的一个使用Unity开发的移动平台的第三人称射击游戏。
ShadowGun中把体积光归于是雾的一种应用。
雾和体积光有非常多类似的地方,一个大面积的体积光从视觉上来看和雾非常像,它们有一个共性的感性认识,就是其可见度和距离视角的远近有关。
因此,ShadowGun用简单网格+Alpha Blending的方法来模拟雾和体积光。
一旦玩家离网格面太近,它就会淡出,而且网格面的顶点会被拉开(因为即使是完全透明的Alpha曲面仍会消耗大量渲染时间)。
顶点颜色
alpha
决定哪些顶点是可移动的,哪些顶点是不可移动的(在我们的示例中,带有
alpha
为
0
的顶点不可移动,那些带有
alpha
为
1
的顶点可移动)。
顶点法线确定运动方向。
然后
Shader
计算到
Camera
的距离,并适当处理表面淡入
/
淡出。
ShadowGun中很多Shader就是都是通过网格来模拟光照效果,它们的frag</