虚幻引擎4.25(及后续版本)中改进的着色模型

By Epic Games渲染团队 |
2020年7月6日
虚幻引擎4.25的发行为我们的材质系统带来了一些重大改进,包括增加一种正确的各向异性输入和一种新的基于物理的半透明着色模型,并更新了透明涂层模型。
在汽车、制造和建筑行业工作的人士长期致力于在他们的项目中实现高精度。这些着色器改进在降低这类材质设置的复杂度方面又迈进了一步,你不必使用过于复杂的材质逻辑或技巧就能获得理想的外观。

配合我们最近更新的免费汽车材质包使用,为你的场景和项目添加准确遵循物理定律的材质将变得前所未有地简单。请继续阅读下文,了解关于这些改进的更多信息,以及它们会如何影响项目的外观和感觉。

改进的透明涂层

虚幻引擎支持模拟透明涂层材料的多层着色器已有时日,正在继续改进现有模型,以生成更准确地遵循物理定律的结果。准确再现真实世界中复杂材质的能力对于某些行业和项目至关重要。例如,再现汽车漆面材质就是表现薄半透明表面的绝好例子,这种表面往往有不同的法线和粗糙度属性,还有底层表面的细节。
左图,虚幻引擎4.24汽车漆面;右图,虚幻引擎4.25汽车漆面。
先前的透明涂层模型适合配合环境光照使用,也就是说,它在配合利用天空和定向太阳光照的大型户外环境时效果最好。在这个发行版中,我们支持对精确(点、聚和定向)光源的正确定向响应,这类带有方向性的光源的衰减和菲涅尔效果最为明显。

虽然透明涂层模型往往与汽车漆面类材质关联,但也不局限于它们,它可以用于模拟任何在标准材质上面有一层稀薄半透明表面的多层材质,表现金属感和非金属感表面时效果都很好。

为了真正改进透明涂层模型,我们首先用编辑器中的路径追踪器来实现它。通过这种方法,我们得以生成地面真值参考,也就是用透明涂层模型生成准确遵循物理定律的地面真值表示,可以同时用于在传统光栅渲染路径和光线追踪渲染路径中改进它。

要设置和使用你自己的透明涂层材质,请导航到你的材质的细节(Details)面板,将着色模型(Shading Model)改为透明涂层(Clear Coat)。这会在主材质节点上启用两个输入:透明涂层(Clear Coat)透明涂层粗糙度(Clear Coat Roughness)
法线输入用于控制顶层的表面纹理。要设置和控制透明涂层下面的底层,你需要启用透明涂层启用第二法线(Clear Coat Enable Second Normal)的项目设置,它可在引擎(Engine)/渲染(Rendering)/材质(Material)设置下找到。
启用第二法线后,使用材质图表中的透明涂层底层法线(Clear Coat Bottom Normal)输出表达式设置和控制透明涂层表面层下方的法线贴图细节。
底层法线可以更准确地表现与顶层透明图层有不同几何或反射表面的复杂材质,例如下层的碳纤维或汽车漆的反光斑点。这种材质设置的更多示例可以在汽车材质包中找到。
左图,启用透明涂层底层法线;右图,禁用透明涂层底层法线。

增加的各向异性材质支持

在UE 4.25发行之前,要以正确的各向异性响应表现拉丝金属和其他相似的材质类型,只有通过在材质中伪造效果才能实现。在这个发行版中,我们添加了对设置和控制各向异性的测试版支持,可以提供准确遵循物理定律的光照响应。也就是说,你将能够通过一些简单易用的材质输入实时控制光源方向性,省去了伪造效果的麻烦。

例如,这个车轮上的旋转部件使用新的各向异性和切线材质输入,只需要极少的设置就能对光线作出自然的响应。
左图,标准各向同性响应;右图,正确的各向异性响应。
我们的各向异性模型使用GGX各向异性公式,支持精确光源,用于天空光照的基于图像光照(IBL),以及使用光线追踪或反射捕捉探头配合透明涂层和默认光照着色模型的反光。这个发行版支持的光源类型有限,但将来的引擎发行版将支持定向光源和矩形光源。目前,它们还是会使使用各向异性属性的材质产生各向同性响应。

启用项目设置标记使用各向异性BRDF(测试版)(Use anisotropic BRDF (Beta))会打开材质编辑器中主材质节点上的各向异性(Anisotropy)切线(Tangent)输入。 
在材质编辑器中通过项目设置可以打开主材质节点上的各向异性(Anisotropy)切线(Tangent)输入。当“粗糙度”输入的值大于0时,“各向异性”输入控制各向异性输入响应的正负粗糙度。
切线输入可用于指定所应用纹理的光源方向性。以上示例使用了一种拉丝金属切线贴图。各向异性输入控制各向异性响应的粗糙度。在下面的示例中,它从值0(无各向异性响应)变为值1(正各向异性响应)。请注意,各向异性响应可以使用-1到1的数值。
各向异性使用0到1的数值,显示从各向同性响应到完全的正各向异性响应。
“切线”输入可用于通过直接数值或切线纹理贴图指定光源方向性。在仅使用法线纹理时,光源方向性提供各向同性响应。但是,当与切线贴图结合时,就会得到对光源方向性的完全各向异性响应。
左图,使用法线和切线贴图的各向异性响应;中图,仅使用法线贴图的各向异性响应;右图,仅使用切线贴图的各向异性响应。

改进的基于物理的半透明效果

要创建某种透明材质来准确表现真实世界中的玻璃行为,例如有色玻璃和严重结霜的玻璃,以往总是有种种限制,只能通过变通方法或复杂的设置来实现。我们已经添加了一种全新的半透明着色模型来解决这个问题,它叫做薄半透明,使用一种基于物理的着色器,考虑了光线从空气射入玻璃、再从玻璃反射到空气的因素,能够在一个通道中同时渲染白色高光和背景对象。做到这一切的同时,它还在我们先前方法的基础上提高了半透明材质的质量和性能。
 
在创建有色玻璃之类的材质或任何半透明有色材质时,既要增加白色高光,又要给透过玻璃看到的背景染色。在先前版本的虚幻引擎中,只能通过分开对象和材质来伪造这类效果:一个用于处理白色高光,另一个用于背景染色。除此之外,这种设置的复杂性还要求将每个部分按正确的顺序混合。

薄半透明着色模型通过材质中一个基于物理的着色器,在一个通道中解决了这类问题。而且它也不需要过于复杂的变通方法或工作流程来实现这种效果。
稀薄半透明材质在一个通道中既能准确表现白色高光,又能正确地给背景染色。
要开始使用这种新的着色模型,请在你的材质细节面板中通过下列设置启用它:
  • 混合模式设为半透明(Translucent)
  • 着色模型设为薄半透明(Thin Translucent)
  • 光照模式设为表面前向着色(Surface ForwardShading)

在材质图表中,添加一个薄半透明材质(Thin Translucent Material)输出表达式来驱动材质的透光颜色。下面的示例图表是一种非常简单的半透明材质。TransmittanceColor驱动透过材质的颜色。主材质节点上的“不透明度(Opacity)”输入控制允许透过材质的光线量。与默认光照半透明材质不同的是,如果不透明度设置为0,材质仍然可见,但不会阻止光线透过材质。
在下面的示例中,如果我们查看默认光照半透明材质与我们的新半透明模型的对比,差异是很明显的。传统模型依靠深度缓冲,它并不能对在其正后方的对象作出正确反应。此外,阴影区域也没有得到正确表现,使有色的半透明材质看起来就像无色透明的一样。

新的半透明模型考虑了这些因素,提供了白色高光和正确染色的背景表现。

礼包来了!给你的项目使用的免费内容包!

在我们继续改进引擎的同时,我们也需要能够展现这些更新和新功能的内容。我们Epic的团队已经创作了淋漓尽致地展现其中一些功能的内容,而最棒的是,你可以从虚幻引擎商城下载它们,免费用在你自己的项目中!
 
 
  • 汽车材质包是一个高质量的汽车主题包,包含150多种材质和纹理,可随时用于你的下一个项目。它提供了各种各样的材质类型,可用于表现汽车漆面、金属、反光镜、皮革,等等。你可以在这里的博客中阅读更多关于这个内容包更新的信息。
 
  • 汽车海滩场景可以用来完美地展示你的最新汽车或产品设计。它包含来自Quixel Megascans库的高精度资源、材质和纹理。这个场景是为了表现电影式的摄像机运动和逼真外观而设计的,还启用了光线追踪功能,使光照的逼真度更上一层楼。你可以在这里的博客中阅读更多关于这个场景的信息。

    立即获取虚幻引擎!

    获取全球最开放、最先进的创作工具。
    虚幻引擎包罗万象,并提供完整的源代码访问权限,开箱即用,诚意十足。
    新闻
    初探虚幻引擎5
    揭开虚幻引擎5与其全新核心技术的神秘面纱。它们将帮助开发者解放潜能,为次世代游戏与其他产品带来更上一层楼的实时渲染细节。
    新闻
    活动
    2020线上Unreal Fest
    将于7月14日(周二)举办的线上Unreal Fest是一个为期一天的免费虚拟活动。它融合了Unreal Fest和Unreal Academy的精华,将推出一系列激动人心、内容丰富的演讲,任何人都能免费浏览。
    活动
    新闻
    Epic在线服务提供Epic账户和游戏服务
    利用跨平台对战、排行榜和成就系统,跨越多个商城和平台发展你的游戏社区,并接入全球最大的玩家社区。这一切通过一套免费的开发工具包就可实现。
    新闻