灯光需求

类似刺客信条的开场CG动画,场景中打着酷炫的灯光,玩家在场景中行走可以感受到灯光很真实。

参考视频:http://www.iqiyi.com/w_19rqytbmvt.html

运行环境

安卓/IOS手机平台,所以对性能有一定要求。

初期原型

Unity实现刺客信条灯光的思路探究-LMLPHP

思路分析

1.引擎自带灯光组件,变换颜色,变换transform

2.lineRenderer画线组件,模拟灯光效果,linerenderer打到人物身上效果逼真么?

3.Mesh+shader或者粒子系统进行模拟

light beam/shaft

光束,光线

Unity实现刺客信条灯光的思路探究-LMLPHPUnity实现刺客信条灯光的思路探究-LMLPHPUnity实现刺客信条灯光的思路探究-LMLPHP

volumetric lighting(体积照明)

Unity实现刺客信条灯光的思路探究-LMLPHP

森林场景 巴克兔子,显示光线穿过树冠 [图片引用自:wikipedia]

体积照明

体积照明技术中使用 三维计算机图形学添加照明影响渲染场景。它可以让观众看到光束照射环境;通过一个开着的窗户看到阳光流体积的一个例子,也被称为黄昏的光线。这个词似乎已经被引进摄影,现在广泛应用于3D建模和rendering 尤其是在3d游戏领域。

体积照明的光源发出的光锥被建模为一个透明的对象,可以看作一个容器的“体积”。因此,光有能力影响一个实际的三维介质(如雾,灰尘,烟或蒸汽)在它的体积内就像在现实世界一样。

体积照明是如何工作的

体积照明需要两个组件:一个光空间阴影地图和一个深度缓冲。从相机的剪辑平面附近开始,整个场景是追踪和采样值累积到输入缓冲区。对于每一个样本,它决定如果样品由光源照亮正在处理使用阴影映射作为比较。只有点燃样品将会影响最终的像素颜色。

这个基本的技术,但需要更多的实时优化功能。优化体积光效果的方法之一是使照明体积比这更粗分辨率的图形上下文使用,这就产生了一些不好的混叠的工作,但是很容易touched up一个模糊。

您还可以使用模板缓冲区像 阴影体积技术

另一种方法也可以用来提供令人满意的,如果体积灯光效果不准确。模糊的算法功能发光物体远离中心的主要光源。一般来说,透明度是逐步减少与每一个模糊的步骤。特别是在更明亮的场景。注意:这需要在屏幕上有个光源。

volumetric light英文

volumetric light:https://en.wikipedia.org/wiki/Volumetric_lighting

light Probe

插件-Light Beams

Unity实现刺客信条灯光的思路探究-LMLPHP

主要功能

可以控制光fade的长度,光束强度,光的softness,纹理移动速度。单双面材质(shader model 3.0以上版本)

原理

Mesh (圆锥形或者bill飞机形)+ shader 控制纹理的参数模拟光束(Mesh不接受光照)

链接:https://www.assetstore.unity3d.com/en/#!/content/49640

可调节参数

Unity实现刺客信条灯光的思路探究-LMLPHP

可借鉴例子

暗影之枪

05-11 15:11