灯光的布局对于HMI场景中车模的展示效果有着举足轻重的地位。本篇内容将简单介绍ES3.1的相关知识,再深入了解Unreal引擎中车模的灯光以及灯光架构。
一、关于ES3.1
1.1 什么是ES3.1
ES3.1这个概念对于美术的同学可能比较陌生,ES3.1指的是OpenGL ES3.1,这是移动设备和嵌入式系统常用的图形API。我们可以理解为是一种渲染方式,或者是渲染算法,类似于换一个渲染器或者渲染管线。
Unreal引擎中启用ES3.1之后,由于算法不同,灯光效果会发生改变,如图1.1.1和图1.1.2所示。
图1.1.1 PC环境下的场景效果
图1.1.2 ES3.1环境下的场景效果
1.2 为什么要用ES3.1
市场上的量产车型项目中,使用Unreal引擎时都会选择OpenGL ES3.1(ES3.1)环境。主要是源于芯片算力限制、平台兼容性、开发成本与车规级稳定性需求的综合权衡,这个只需简单了解,不必深究。
我们在制作Unreal 项目的时候,需要与市场上普遍应用的开发环境相适配,所以选择ES 3.1作为开发环境进行项目制作。
1.3 怎么启用ES3.1
在界面顶部找到:设置——预览渲染级别——Android ES3.1,选择即为启用。待加载完成即可。
图1.3.1 启用ES 3.1
二、灯光的选择
从项目落地的角度出发,我们需要控制性能开销在一定的范围内,并且要保证帧率、发热量。灯光的使用会很大程度影响性能的开销,所以我们必须保证开销低的情况下去制作灯光架构。
2.1 可移动光源
一般工程里面会尽量避免使用可移动光源,可移动光源虽然效果好,但是需要以很大的性能开销为代价,满足不了性能的需求。可移动光源包括定向光源、点光源、聚光灯、矩形光源等多种光源的可移动模式,如图2.1.1所示。
图2.1.1 可移动光源
其中定向光源、点光源、聚光灯、矩形光源由于其光照的方向性或者衰减较强,如果不使用可移动性的话,只能通过静态烘焙的方式制作灯光效果。静态烘焙的灯光效果不在本篇灯光架构讨论范围内,所以本篇不会展开讨论。
2.2 Skylight
Skylight通常作为环境光的整体照亮,即可以调整默认的天空环境去使用,也可以选择HDRI之类的环境贴图来处理光照。Skylight既有360°环绕光照,又具备开销低的特性。非常适合在ES3.1的开发环境下使用。
图2.2.1 切换立方体贴图
2.3 HDRI Backdrop
HDRI Backdrop与使用HDRI贴图的skylight类似,但区别在于skylight上的HDRI贴图在环境中不可见。我们可以在设置——插件里面找到HDRI Backdrop,勾选启用并重启Unreal 引擎。
图2.3.1 启用HDRI Backdrop
启用HDRI Backdrop之后,可以在光源集合里面找到新增了一个HDRI背景,直接将其拖入到场景中,便可以完成调用。
图2.3.2 调用HDRI Backdrop
2.4 反射捕捉
反射捕捉有球体反射捕捉和盒体反射捕捉,两者在使用上并没有什么区别。反射捕捉并不属于光源的类别,属于视觉效果的类别中。所以它的性能开销也是很小的。反射捕捉与skylight相同的是:都可以切换指定的立方体贴图。所以我们可以通过HDRI贴图去控制环境中的反射效果,也可以通过修改HDRI贴图去强化类似腰线等结构的反射效果。
图2.4.1 视觉效果
三、灯光的搭配
3.1 反射捕捉+HDRI Backdrop
反射捕捉用来提供车身的高光反射。我们将反射捕捉放入场景中,调整大小到比车模稍大两三倍即可。
图3.1.1 调整反射捕捉的大小
然后在HDRI上画出和车身腰线匹配的高光弧线,以此构建车身的基础反射和腰线高光,如图3.1.2。
图3.1.2 绘制HDRI的高光
将HDRI填充进反射捕捉中,我们可以看到车身上已经有了不错的反射效果。但是车身的基础照亮还没有处理,所以看上去的效果还不是很正确。
图3.1.3 反射捕捉的照明效果
HDRI Backdrop用来提供车身的基础亮度和可视化背景,可以看到图3.1.3里面,天空背景的颜色都是黑色,和车身上的反射效果并不匹配。在我们给场景添加HDRI Backdrop,给上和反射捕捉相匹配的HDRI,车身上的基础照亮和天空的可视化背景也得到了完善。
图3.1.4 添加HDRI Backdrop
3.2 反射捕捉+Skylight+球体背景
如果我们需要将可视化背景和车身基础亮度的照射分开的话,就需要使用Skylight去提供车身的基础照明,另外通过制作背景模型去提供背景的可视化。需要注意的是,背景不能提供任何光照以及反射效果,如图3.2.1所示,仅启用背景模型时,车模上不会有任何被照亮或反射的效果。
图3.2.1 可视化背景不参与光照
反射捕捉和3.1所提及的内容相同,不再赘述。图3.2.2是仅开启反射捕捉的效果,相比图3.1.3的示例去掉了湖面等环境元素,但车身上的反射效果是一致的。
图3.2.2 仅反射捕捉
Skylight可以直接拖入场景当中,填充对应的HDRI即可满足基础的底色光照。对比图3.2.2与图3.2.3,很明显可以看出车身上的轮胎,塑胶件和车漆底色的照明效果发生了改变。
图3.2.3 添加Skylight
背景模型的使用需要看具体情况来选择,如果旋转的视角限制在很小的角度,或者固定视角,那背景可以使用一个面片填充贴图,用最简单的方式即可满足开发需求。当需要360°旋转甚至俯仰角度的旋转时,就需要一个球形的模型来作为背景支撑。与球形UV相对应的,不管是制作的渐变背景还是天空背景,我们的贴图样式都需要与HDRI的展开方式一致。
首先制作一个巨大的球形,并将其材质的着色模型修改成无光照,并勾选双面选项,这样我们从内部才能看到球形的背景模型。
图3.2.4 修改材质类型
然后我们将准备好的HDRI背景贴图导入材质编辑器,右键将纹理节点转换成参数,如图3.2.5所示。
图3.2.5 贴图转化为参数
在贴图参数的前面简单链接上几个节点控制HDRI贴图的旋转即可,如图3.2.6。
图3.2.6 控制HDRI旋转
我们也可以再增加多一些参数,结合上简单的运算,比如对比度、强度、亮度等,如图3.2.7所示,可以方便在Unreal 引擎中直接调整贴图展示的最终效果。
图3.2.7 简单的参数运算
图3.2.8 加上模型背景
3.3 添加地面反射
在完成了灯光制作之后,可能最终效果还稍显瑕疵,这时候我们可以通过添加地面反射的方式,为场景添加一些层次。如图3.2.8中,模型背景的效果比较素,车模与场景拉不开空间感。这时候就可以在地面增加对车模的反射,提升车模与场景的融合度,增加层次感,如图3.3.1。
图3.3.1 增加地面反射
本篇笔记说明了Unreal 引擎中选择ES3.1环境进行项目制作的缘由,介绍了Unreal引擎中各种灯光在ES3.1环境下的适配情况,并介绍两种灯光架构制作场景的打光。如果想了解更多关于Unreal HMI 3D解决方案的信息,欢迎发送邮件至mkt@eptcom.com联系我们。