先看一张来自用Unity引擎开发的游戏《杀出重围:堕落 Deus Ex:The Fall》的截图(这是我用ipad截的,android上也有这游戏)。
我试图为我们的游戏项目也加入类似上图中的泛光效果,但是很不幸的事发生了,原本可以跑60帧以上的游戏一下子降低了10+帧,画面出现明显跳帧(复杂Shader对现在的移动平台来说性能消耗还是相当大的)。
经过仔细研究发现,杀出重围中的这种效果并不是真正的Bloom,而是在光源处放置一透明公告板面片(Billboard),通过这个面片中心点是否被阻挡来控制淡入淡出。事实上Unity里已经自带了这样的一套解决方案,就是灯光组件(Light Component)下的镜花(Lens Flare)效果。
只需要创建一个镜花(Lens Flare)资源,并将其添加到灯光组件下即可。镜花(Lens Flare)的设置嘛,使用单张纹理就可以了,并不是做真正的镜花不需要多张来偏移。Zoom和Fade就是控制塔是否在遮挡时缩放和透明化淡入淡出的。
至于效果么就看各位美术大大怎么去发挥了。虽然我觉得经常会有些角度变得很爆,颜色太厚重,毕竟是假的泛光效果嘛。效率的方面,因为是比较大的透明面片,透明面片在移动平台还是挺耗的,主要是会大量增加屏幕上可视像素的重绘。比起真的泛光效果(Bloom Effect)来说还是效率高了不少。至少能在模拟出这种效果的同时让帧数能维持在60帧以上。

本文探讨了如何在移动平台上实现类似《杀出重围:堕落 Deus Ex:The Fall》中的伪泛光效果,避免了传统Bloom Effect对性能的影响。通过在光源处放置透明公告板面片并控制淡入淡出,利用Unity的镜花(Lens Flare)功能,实现了高效且接近真实的效果。虽然可能会在某些角度显得过于厚重,但相比真实的Bloom Effect,这种方法能保持游戏在60帧以上的流畅运行。
4689

被折叠的 条评论
为什么被折叠?



