虚幻引擎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的数值,显示从各向同性响应到完全的正各向异性响应。
“切线”输入可用于通过直接数值或切线纹理贴图指定光源方向性。在仅使用法线纹理时,光源方向性提供各向同性响应。但是,当与切线贴图结合时,就会得到对光源方向性的完全各向异性响应。
左图,使用法线和切线贴图的各向异性响应;中图,仅使用法线贴图的各向异性响应;右图,仅使用切线贴图的各向异性响应。
改进的基于物理的半透明效果
要创建某种透明材质来准确表现真实世界中的玻璃行为,例如有色玻璃和严重结霜的玻璃,以往总是有种种限制,只能通过变通方法或复杂的设置来实现。我们已经添加了一种全新的半透明着色模型来解决这个问题,它叫做薄半透明,使用一种基于物理的着色器,考虑了光线从空气射入玻璃、再从玻璃反射到空气的因素,能够在一个通道中同时渲染白色高光和背景对象。做到这一切的同时,它还在我们先前方法的基础上提高了半透明材质的质量和性能。
在创建有色玻璃之类的材质或任何半透明有色材质时,既要增加白色高光,又要给透过玻璃看到的背景染色。在先前版本的虚幻引擎中,只能通过分开对象和材质来伪造这类效果:一个用于处理白色高光,另一个用于背景染色。除此之外,这种设置的复杂性还要求将每个部分按正确的顺序混合。
薄半透明着色模型通过材质中一个基于物理的着色器,在一个通道中解决了这类问题。而且它也不需要过于复杂的变通方法或工作流程来实现这种效果。
稀薄半透明材质在一个通道中既能准确表现白色高光,又能正确地给背景染色。
要开始使用这种新的着色模型,请在你的材质细节面板中通过下列设置启用它:
- 着色模型设为薄半透明(Thin Translucent)
- 光照模式设为表面前向着色(Surface ForwardShading)
在材质图表中,添加一个薄半透明材质(Thin Translucent Material)输出表达式来驱动材质的透光颜色。下面的示例图表是一种非常简单的半透明材质。TransmittanceColor驱动透过材质的颜色。主材质节点上的“不透明度(Opacity)”输入控制允许透过材质的光线量。与默认光照半透明材质不同的是,如果不透明度设置为0,材质仍然可见,但不会阻止光线透过材质。
在下面的示例中,如果我们查看默认光照半透明材质与我们的新半透明模型的对比,差异是很明显的。传统模型依靠深度缓冲,它并不能对在其正后方的对象作出正确反应。此外,阴影区域也没有得到正确表现,使有色的半透明材质看起来就像无色透明的一样。
新的半透明模型考虑了这些因素,提供了白色高光和正确染色的背景表现。
礼包来了!给你的项目使用的免费内容包!
在我们继续改进引擎的同时,我们也需要能够展现这些更新和新功能的内容。我们Epic的团队已经创作了淋漓尽致地展现其中一些功能的内容,而最棒的是,你可以从虚幻引擎商城³下载它们,免费用在你自己的项目中!
https://docs.unrealengine.com/zh-CN/Engine/Rendering/RayTracing/PathTracer/index.htmlhttps://www.unrealengine.com/marketplace/zh-CN/product/automotive-material-packhttps://www.unrealengine.com/marketplace/zh-CN/profile/Epic+Games?count=20&sortBy=effectiveDate&sortDir=DESC&start=0https://www.unrealengine.com/marketplace/zh-CN/product/automotive-beach-scenehttps://quixel.com/megascans/home初探虚幻引擎5
全新iOS应用Live Link Face闪亮登场
精选免费商城内容 - 2020年7月
新的Niagara、Quixel和环境构建演示已发布
2020春季学生作品展示
虚幻开发者在PlayStation 5展示会上大放异彩
[官方直播预告] 第25期 | 光线追踪渲染与高质量输出
全新免费海滩场景和最新汽车材质包
虚幻引擎|点亮设计与创造者的漫长旅途
2020线上Unreal Fest
如需获得更多虚幻引擎4的授权合作方式和技术支持,请发送邮件至EGC-Business@epicgames.com咨询;如果你想来 Epic 工作,扫描下方二维码关注我们后点击菜单栏按钮“更多”并选择“招聘”,即可了解我们的最新招聘信息。Epic Games 欢迎你的加入!“虚幻引擎”微信公众账号是 Epic Games 旗下 Unreal Engine 的中文官方微信频道,在这里我们与大家一起分享关于虚幻引擎的开发经验与最新活动。