《Unity开发实战》——2.4节自定义镜头光晕效果

时间:2024-05-20 11:42:21

本节书摘来自华章社区《Unity开发实战》一书中的第2章,第2.4节自定义镜头光晕效果,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社区“华章社区”公众号查看

2.4 自定义镜头光晕效果
过去15年里,在户外环境玩过游戏的任何玩家都知道:镜头光晕(lens flare)效果用于模拟明亮的光照穿透玩家的视野。虽然这个技术现在已经用滥了,但仍然出现在各类游戏中。本节将练习创建镜头光晕效果。

2.4.1 准备工作
强烈建议读者用图片编辑器(Adobe Photoshop或GIMP)打开图片。示例代码中的0423_02_03文件夹中有本节需要用到的镜头纹理(lens texture)的源代码。

2.4.2 操作步骤
请按照下面的步骤创建一个新的镜头光晕纹理并应用到场景中:
1)通过菜单的Assets | Import | Package | Character Controller导入Unity自带的Character Controller(角色控制器)包。
2)再用同样的步骤导入Light Flares(光晕)包。
3)在Hierarchy视图中,用Create按钮添加一个Directional Light(方向光)效果到场景中。
4)选中你的摄像机,再通过菜单的Component | Camera Control | Mouse Look 选项,添加一个Mouse Look组件。
5)在Project视图中,找到Sun光晕(在Standard Assets | Light Flares目录下),复制(选中后按Ctrl+D)一份,重命名为“MySun”,如下图所示:
6)在Inspector视图中,点击Flare Texture让Project视图中与其对应纹理的文件位置显示出来,应该是一个叫做50mmflare的纹理。


《Unity开发实战》——2.4节自定义镜头光晕效果

9)要自己创建的话,(在Photoshop中)创建几个Circle(圆)形,添加不同的Layer Effects(层效果),如Gradient Overlay(渐变叠加)、Stroke(描边)、Inner Glow(内发光)和Outer Glow(外发光)。
10)通过编辑那张原始的图片或者绘制几条线,然后把线变模糊,就可以重新创建一个星形的光晕了。


《Unity开发实战》——2.4节自定义镜头光晕效果

13)在Project视图中选择Directional Light(方向光),在Inspector视图中把Flare的属性设置成MySun。


《Unity开发实战》——2.4节自定义镜头光晕效果

14)播放场景,绕着移动鼠标来回转,就可以看见镜头光晕就像摄像机对着光一样的效果。

2.4.3 实现原理
我们已经用Unity内置的镜头光晕纹理作为设计图,而后,当玩家的视线接近光的方向时镜头光晕纹理就会显示。

2.4.4 更多内容
光晕纹理可以为每个元素使用不同的布局和参数。如果你想了解更多关于Lens Flare effect的知识,可以查看Unity的文档:http://docs.unity3d.com/Documentation/Components/class-LensFlare.html