虚幻引擎:照片级工业产品渲染的探索与实践2023 年 12 月 11 日,在 2023 中国汽车设计大会上,虚幻引擎中国技术客户经理纪大伟谈到,UE 在渲染和材质表现上一直处于业内的领先地位,今年推出 UE5.3,发布了一整套新的材质系统—— Substrate。虚幻引擎的项目结合 Substrate 和 5.3 新功能,在原有的虚幻引擎高品质的实时渲染基础上再做提升。
纪大伟表示,如果想让 3D model 和贴图渲染真实,首先需要让它跟实际场景进行结合。怎么得到最线D 场景?推荐比较低成本的方式——做实体扫描。虚幻引擎在欧洲一家车企选了环境,做成实体的摄影测量和 3D 扫描,并拍了很多 HDR 用来照明,用八台相机同时拍摄,能够保证在同一个场景的同一个时间、不同角度拍到更加准确的光照信息。
什么是 Substrate?就是所谓物理真实的材质系统,它是 UE 5 的下一代材质。为了能够让它有更好的扩展性,希望它能从最高的电影级的品质覆盖到移动端,也有可能会用到车机的实时渲染上,具备非常好的扩展性。什么叫 Substrate Slab?从物理的角度来说,它相当于将材质和物理模型进行合并,再对它做一个切片,所以它会计算物体表面和表面之下介质部分的光照和渲染,会影响一个材质表面的反射和粗糙度,另外它会计算更深层的材质下层的,即介质吸收光线和散射光线的效果。为了模拟真实车漆的 flake 效果,虚幻引擎在 5.3 开发了两个新 feature,来达到极度真实的效果。
Substrate 中的介质会计算光线的漫反射和透明材质,并提供了计算半透光照的算法,能够在光线进入材质内部时准确计算出光线被材质反射多少、吸收多少,有多少产生了散热,从而得到准确的材质效果统。
与以前的材质相比,Substrate 有诸多优势。首先,Substrate 是以切片的方式存在,因此可以有任意多种组合,可以达到复杂、高表现力的材质效果。其次,传统的材质没有介质,只能计算表面,而 Substrate 有多层严格的分层架构,可以模拟更加复杂的效果。第三,当渲染需求苛刻,需要基于光线切入角度范围的颜色变化将细节表现在车漆上时,原有的材质无法做到,而 Substrate 可以实现。
车漆的视觉定义包括颜色和表面抛光两方面,最常见的车漆类型有 Solid paints、Metallic paints、Pearlescent paints。车漆的漆面构成有多个涂层,从下至上依次叠加,我们可以通过表面计算反射,并通过更深的光线吸收和散热计算表面下的细节材质表现。
当车漆和光线产生作用时,光线射入表面后,一部分被反射,一小部分穿透进入介质。由于介质中的颗粒密度很大,因此当光线进入颗粒后,在内部会产生散射,从而使得车漆会呈现出较好的颜色渐变效果,不只是简单的颜色表现。在 Substrate 中,利用漫反射和光线吸收、SSS、厚度等多个属性,可以准确计算出物理线D 渲染效果。
下面将主要介绍三种车漆的效果。第一种车漆为 Solid paints,下图为 Solid paints 结构拆分,灰色部分是底漆,中间部分是原有颜色的涂层,上面是表层。中间的图是三层合并的效果。在虚幻引擎中,我们通过 ABC 三个层依次进行实现。光线射入车漆表面时,首先影响 SlabA,一部分被反射,一部分进入 SlabB,对光线产生吸收,再进入 SlabC,最后反射到眼球,就能看到一个完整的车漆效果。
第二种车漆为 Metallic paints,国内许多厂商正在使用 Metallic paints 展现汽车外观。和以前相比,Metallic Paints 有金属颗粒,这些颗粒悬浮在颜色涂层的不同高度上开云网址,当有光线射入这些粉末时会产生不同的高光效果。可以通过 glints 的功能实现这一效果,glints 控制很灵活,可以在材质中通过密度或 UV 进行控制。
下图为引擎中实时渲染的 Metallic Paints,所呈现的是底漆和第二层颜色涂层对光线的吸收效果和散射效果,以及最上层 SlabA 表现出来的效果。其最大区别就是底漆加了金属效果,可以创建出多种颜色不同的 Metallic Paints。
第三种车漆为 Tripele layer paints。我们在做这种车漆时会先对真实的车漆进行物理扫描,扫描出 Sample 后进行拆解开云网址,在引擎中实现。这种车漆与前两种相比更加复杂,有多层反射,会有不同的颜色过渡。当光线是掠射角时,看到的颜色较深;当光线和表面垂直时,颜色是高亮的效果,因此对比度很强烈,会产生十分丰富的颜色变化。
下图是两种不同的颜色效果呈现。左边黄漆是加强版,底漆是黄色,密度很高,中间加了一层珠光带透明的黄色效果,最上面的 Clear Coat 是全透明的。右边岩浆红最上层的 Clear Coat 是淡红色。它的纯物理 Sample 拆解出来后有四层,在原有第二层和第三层里加了 Mid Coad。在引擎中,我们不会完全按照原有物理结构实现,因此将第一层和第二层做了合并,直接在 Slab C 下做金属银色地漆,在 Slab B 中追加对光线的吸收和散射,在 Slab A 里对清漆进行散射开云网址,产生带有红色的清漆效果。
最后是珠光漆,在引擎中实现相对复杂,因为珠光漆的颜色有渐变和过渡,可以实现双色漆效果。和 Metallic Paints 相比,珠光漆有一些在颜色涂层里添加了陶瓷颗粒,会产生类似珍珠粉一样的高光效果,从不同角度看,珠光漆在掠射角颜色更深,略微泛黄,当光线和表面垂直时接近白色。我们在引擎中通过一些技术实现光线渐变的属性,它会对光线的反映产生两种作用。一是当观察角度不同时,颜色会产生变化;二是当光线射入角度不同时,颜色也会产生变化,Slab 在编辑时可以通过曲线实现丰富的渐变效果。后续我们同样会曝露一些参数,方便调整更多效果。
(以上内容来自虚幻引擎中国技术客户经理纪大伟于 2023 年 12 月 11 日在 2023 中国汽车设计大会上发表的《照片级工业产品渲染的探索与实践》主题演讲。)