SciFi Bunk:材质实例

此文档说明在 SciFi Bunk 项目中构建环境时主材质和材质实例的使用方式。

Choose your operating system:

Windows

macOS

Linux

前言

此教程由社区成员 Liam Tart(PogoP)提供,授权转载于此。

Liam,感谢你!

此教程将说明如何使用主材质和材质实例快速有效地构建一套平铺材质,应用到场景中的模型上。使用平铺材质设置模型贴图后,你无需依赖高多边形模型的烘焙,可以快速修改场景的观感效果。

此教程基于 虚幻启动程序学习 选项卡中的 Sci-fi Bunk Room 场景编写。推荐下载此场景,在实际操作中了解材质实例的使用。

此教程将介绍如何设置有效主材质,将其实例化并用于制作各种不同的材质类型(如各种金属和塑料),然后再应用到模型上不同的材质 ID。主材质还使用大量开关,根据制作中的材质启用和关闭特定功能,如视差贴图和细节法线贴图。

在开始此教程之前,推荐阅读 材质 文档,初步了解材质和材质实例的工作原理。此教程将说明如何将这些概念应用到工作环境。

目标

设置主材质的目标是创建一个可被实例化的材质,并访问多个参数,以便快速对材质进行调整。你可以将所需的任意选项和特性放入主材质。作为基础,主材质允许选项输入指定的反射率、粗糙度、金属感和法线贴图,并添加反射色度、粗糙度以及金属感数值,对这些特性进行微调控制。

下方的截图展示了它如何灵活地设置场景,调整几项数值便可迅速改变场景的效果。

Material Instance Color: Orange

Material Instance Color: White

主材质设置

我们将从创建主材质开始介绍。场景中的所有材质均由主材质实例化而来,因此需要对其进行正确有效的设置,避免过度复杂。使用主材质的一个优点是 — 如果之后需要为材质添加更多特性,只需将其应用到主材质即可,特性将向下传递到实例。

下例为最终的主材质设置。此材质中的所有输入纹理和常量将被参数化,以便在实例化材质中访问。你可以在数值或贴图上点击右键选择 Convert to parameter 执行此操作,然后为其指定一个命名,便于在材质实例中进行快速修改。

此外, Static Switch 参数大量应用于此材质中,便于在特定设置之间进行选择(如细节法线贴图、视差贴图等)。此类设置可以关闭不需要的特性,降低最终材质实例的开销。可在此处阅读更多内容: Parameter Expressions

image_1.jpg

反射率设置

image_2.jpg

在这一部分中,你可以选择使用指定的反射率贴图或简单颜色值。通过指定一个简单值可以获得正确的反射率,并且迅速完成材质原型。接下来,你也可以将此数值转到 Photoshop 中使用,作为最终反射率贴图的基础。该步骤也适用于此教程中的 粗糙度设置 部分。

如之前所述,你可以使用此设置为基础色彩选择使用反射率贴图或颜色值,可以通过实例化材质中名为 UseDiffuseMap? 的静态切换参数在二者之间进行选择。如果此项设为 true,即可输入特定的反射率纹理。此纹理将添加一个 DiffTint 常量值,此值用于特定反射率贴图的着色。如未使用反射率贴图,可使用 DiffuseValue 定义反射率数值。

在 DiffMap 纹理输入的左边,一个节点已被插入 UV 槽。它连接到主材质的 Parallax 部分。你也可以添加 UV 平铺设置,在 UE4 中(而不在 3D 模型包中)控制材质平铺。

下例展现了该系统的灵活性。左图为使用单色的反射率贴图。中图为反射率贴图。右图为使用橘色着色的反射率贴图。该例展示了如何使用相同贴图在引擎中实现多种效果。

image_3_1.png

image_3_2.png

image_3_3.png

单色反射率贴图

反射率贴图

带色彩的反射率贴图

image_3.jpg

金属感设置

image_4.jpg

该设置非常简单,你可以选择使用金属感贴图或使用单一值来定义材质的金属感属性。

此设置十分实用。你可以选择使用单一值(便于平铺金属材质),也可选择指定金属感贴图,将材质的一部分设为非金属感,其他部分设为金属感。

下例为实际效果。左边材质使用的金属感值为 0,中间材质的值为 1,右边材质使用特定的金属感贴图。

image_5_1.png

image_5_2.png

image_5_3.png

金属感值 - 0

金属感值 - 1

金属感纹理贴图

粗糙度设置

image_6.jpg

和反射率设置相似,该设置可选择使用粗糙度贴图或单一值来定义整体粗糙度。这便于将粗糙度值快速指定到材质,之后可将此值转入 Photoshop,为材质创建独特的粗糙度贴图。

下例为实际效果。左边材质使用的粗糙度值为 1,中间材质的值为 0,右边材质使用特定的粗糙度贴图。

image_7_1.png

image_7_2.png

image_7_3.png

粗糙度值 - 1

粗糙度值 - 0

粗糙度纹理贴图

通过 UseDetailRoughness? 静态切换可使用插入 DetailTiling 常量的细节粗糙度贴图。该常量与 TexCoord 叠加,能够对细节粗糙度贴图进行平铺。此值也将插入细节法线贴图。它适用于这类材质 — 拥有需要近距离观察的纹理且平铺率极高。

下例为实际效果。左边的材质并未使用细节粗糙度/法线贴图,中间的材质使用平铺率为 1 的细节贴图,右边材质的平铺率为 4。

image_75_1.png

image_75_2.png

image_75_3.png

未使用法线贴图

带法线贴图,平铺设为 1

带法线贴图,平铺设为 4

遮挡设置

image_8.jpg

此设置使用静态切换参数选择使用遮挡贴图或单一值。多数材质使用的遮挡值为 1(即为简单的白色),而此设置可选择使用特定的环境光遮蔽贴图(视材质需要而定,例如材质用于一个独特的未包裹模型,此模型的部分区域无法接受到光照)。

自发光设置

image_9.jpg

你可以通过此设置选择材质是否自发光(默认设为 false,以便提升性能)。可使用另一个静态切换选择指定一个自发光贴图。如不使用指定的自发光贴图,可使用 EmissiveScale 参数设置自发光值。然而,指定自发光贴图时也将使用 EmissiveScale参数,以便更好地控制材质亮度。

下例为自发光设置的实际效果。左边材质的自发光值设为 0,中间材质的值设为 1,右边材质的值设为 2。

image_10_1.png

image_10_2.png

image_10_3.png

自发光值 - 0

自发光值 - 1

自发光值 - 2

法线设置

image_11.jpg

法线贴图设置看似较为复杂,实际却相当简单。此材质默认使用扁平法线贴图纹理,你可以添加开关将法线贴图关闭,转而使用常量值来代替,可节约纹理内存。

你还可以通过此设置将法线贴图和细节法线贴图组合。 DetailTiling 常量与 TexCoord 叠加,可以对平铺率进行控制。通过 DetailNormalStrength 可以控制细节法线贴图的强度。

视差设置

image_12.jpg

可通过视差设置使用 BumpOffset 节点,应用高度图后可使材质产生深度错觉效果。可在此处阅读更多内容 ( Bump Offset )。

此设置将被插入所有上文提及部分的 UV 槽中,意味着启用视差后所有贴图均会获得效果。

下例为视差的实际效果。左图禁用了视差,右图中视差设为 0.007。此处效果不甚明显,但在某些材质上效果更加显著。

Parallax Disabled

Parallax Enabled

材质实例

主材质设置完成后,可右键单击主材质并创建一个材质实例。

image_14.jpg

你可以将此材质命名并放入任意文件夹中。推荐按材质类型设置文件夹,如金属文件夹、塑料文件夹等。

双击新建的材质实例后将显示下图:

image_15.jpg

如图所示,在主材质中设置的所有参数化数值和静态切换均显示在材质实例中。使用 UseDiffuseMap? 之类的切换可输入自建漫反射/反射率贴图,还可启用与此相连的特定参数(如此例中的漫反射叠加选项)。

下图为 Sci-fi Bunk 场景的材质设置。此处使用诸多颜色和材质属性创建了一个平铺材质库,可轻松应用到场景中的模型上。

image_16.jpg

应用到模型

材质库设置完成后,你可以将这些平铺材质应用到模型。如下图所示,此模型不使用任何单独烘焙的法线贴图,而通过平铺材质来构建效果惊艳的表面。拥有以此方法构建的模型库后,你就可以了解使用材质实例的优点,即调整单一数值即可传播到整个场景。举例来说,如果想修改此场景中使用的木头纹理,只需在木头材质实例中进行一次修改即可,整个场景都会更新。相较于为数个单独的漫反射贴图重新设置纹理,这种方法更加快捷。

image_17.jpg

更多特性

基础主材质和材质库设置完成后,你可以轻松展开主材质添加更多特性。例如,在此材质设置中没有顶点绘制的选项。你可以添加一个基础插值函数,结合顶点绘制进行绘制(例如在材质表面绘制尘土)。可在此处阅读更多内容: 为2通道纹理混合创建材质

以上便是场景基础主材质设置的全部教学内容。请查看 Sci-fi Bunk 房间场景,确定具体的应用方法。祝你好运!

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消