最近社区技术文章很活跃,我也来贡献一个,虽然是14年写的文章,不过在官方roadmap看到了lpv的新特性,激动的是EPIC还没有放弃LPV的优化,期待ing。其次最近也研究出来采用LPV+后期几乎调整出一个大概的Lightmass的效果,过段时间附上分享文档。
lpv全称Light Propagation Volumes,中文称为光能传递,是一种实时生成光照环境的光照方案。当然虚幻4对于lpv官方说明地址是:https://docs.unrealengine.com/latest/INT/Engine/Rendering/LightingAndShadows/LightPropagationVolumes/index.html,不过个人觉得没多大用。在探究lpv之前,我想解释一下,游戏中的光照可能会是多种多样,复杂的先不说,方便新手和初识的人理解,在游戏中应用的光照常见的有2种,一种是以静态构建为光照贴图,一种则是完全的事实产生光照信息,
1》先说下前者,以虚幻引擎为例,虚幻3采用lightmass静态全局光构建,将光照信息写入场景,这种光照优点在于在用于打开产品时,计算机不需要实时计算光照环境,而只需要挂载构建好的光照数据即可,缺点则是无法提供逼真的光影环境,以及对于复杂场景的构建消耗的计算机硬件会随,举个简单的例子,一棵树经过lightmass后,投影写入地面,当树木被摧毁后,那么地上的影子则还是原来的形状,此处补充一点:只是举个例子,当然现在静态光可以用动态阴影。当然这不是重点。构建后的的光照,一般地图文件会大一些,因为包含了场景所有的光照数据。就相当于用3dmax进行效果图渲染。
2》在说下后者,实时动态全局光照,听名字就能看出,这种光照会实时的更新光影数据,让场景看起来更加逼真,这时我要补充一点,在游戏场景中,直接放入一个定向光,投影会是黑色的,导致这种情况是因为默认给的灯光是直接光照,而我们现实生活中则还有光子反弹、光的折射等各种光学变化,而实时动态全局光照(后面简称实时GI)正式为了要求而实现这些光学变化。复杂的成像原理就不多说了,随后给几个图就明白了,虚幻4在之前刚公布时,是svogi,一种实时gi算法,而后来放弃采用了lpv方法,最开始我们见到的lpv实时gi,则是这项技术的发明者crytek,大家对这家公司肯定很熟悉,著名cryengine曾经红遍大江南北。而虚幻4的lpv技术并不是来自epic,而是微软的工作室Lionhead为开发神鬼寓言:传奇而单独开发的技术,后被集成在虚幻4中,大家看到无论现在的虚幻4也好,寒霜或者是u3d5,都开始给自己产品整合实时gi,那么实时gi的好处在于无需花费大量时间和过多的计算机性能开销,就可取得逼真的光照效果,拥有静态光照所没有的复杂光照,缺点是现在实时gi的技术还不是绝对成熟,实现的细节丰富程度还达不到静态所呈现的效果。 在后面将会着重分析下lpv这套实时gi方案。
那么有了一个简单的介绍之后,我们本期的主人公登场lpv登场了。本篇文章仅限初学者和初级爱好者,对于什么更高级的人士诸如图形工程师神马的,可以洗洗睡了,lpv在虚幻4中开启的方式,我在本板块的虚幻4两套光照算法切换的帖子里已经说明了,各位对号入座好了。首先我着重的细说一下lpv,并会配上一些图来讲解一下。首先来看这么一张图: