|
在这个简短教程中,我们将概述创建简单 分层材质 的过程,该材质包含两个材质层:铬合金和雪。最终的分层材质会自动将雪置于对象的顶部表面,从而在两种材质之间有效地进行切换。材质之间的混合将总是检查顶部表面,这意味着即使您旋转对象,雪也总是停留在顶部。
创建材质层时,通常将层创建为材质,然后将节点网络复制/粘贴到新函数中。但是,为了节省时间,我们先在函数内构建层。
简单铬合金
铬合金纹理
T_ExampleLayers_Metal_1_BC.png[/img]T_ExampleLayers_Metal01_N.png[/img](右键单击并选择“另存为”)(右键单击并选择“另存为”)
在第一个材质层中,我们将创建一个相当简单的铬合金,其表面有少许腐蚀或瑕疵。为了帮助说明一些可编辑性,我们还将创建一些输入来控制整体外观。
在 内容浏览器 中,单击 新增(Add New)按钮并选择 材质与纹理(Materials Textures)> 材质函数(Material Function)。
将新函数命名为 Layer_Chrome。
双击 该函数,以在材质编辑器中将其打开。
在材质图区域中 右键单击 以打开快捷菜单,搜索 Make 并选择 建立材质属性(Make Material Attributes)。
将新的 建立材质属性(Make Material Attributes) 节点连接到 输出结果(Output Result)。
铬合金层网络
此材质层的网络相当简单。为了加快构建速度,它已进行拆分。使用的两个纹理分别是 T_ExampleLayers_Metal_1_BC.png[/img](用于底色及粗糙度)和 T_ExampleLayers_Metal01_N.png[/img](用于法线贴图),这两个纹理均可从本页顶部下载。
请单击以查看标准资源文件大小的图片,或者右键单击并选择“另存为”(Save As)
此材质层已拆分为注释块,说明如下:
底色(Base Color)- 此部分的网络非常简单。我们已设置线性插值,该插值在铬合金底色与非常深的灰色之间进行混合。底色实际上是名为 Tint 的函数输入。这个输入设置为 Vector3,从而允许我们将颜色输入到函数中,并更改铬合金颜色。我们使用 T_ExampleLayers_Metal_1_BC 纹理的红色通道在这两者之间驱动插值。
金属色(Metallic)- 因为我们要创建金属,所以将“金属色”(Metallic)设置为 1。
粗糙度(Roughness)- 我们是在创建铬合金,因此粗糙度通常非常低。但是,我们要在较暗的区域稍稍加大粗糙度,以使材质整体看起来有一定的深度。实际上,除了仅仅在 0.2 与 0.4 之间插值之外,此网络与用于底色(Base Color)的网络相同。
可定制的法线(Customizable Normal)- 此网络仅仅接收切线空间法线贴图,并分隔控制着大量贴图细节的绿色和红色通道。我们将每个通道乘以从另一个函数输入提供的值。此输入设置为标量类型,名为 Normal Multiplier,其默认值为 1.0。产生的结果将通过“附加矢量”(AppendVector)节点附加到一起,然后附加到法线贴图的蓝色通道。这样,用户就能够通过更改“法线乘数”(Normal Multiplier)值来调整法线的高度。
完成后,务请保存材质层函数。
简单的雪
雪纹理
T_Cave_Ice_Tiling_D.png[/img]T_Cave_Ice_Noise_N.png[/img](右键单击并选择“另存为”)(右键单击并选择“另存为”)
现在,我们创建雪效果材质层:
在 内容浏览器 中,单击 新增(Add New)按钮并选择 材质与纹理(Materials Textures)> 材质函数(Material Function)。
将新函数命名为 Layer_Snow。
双击 该函数,以在材质编辑器中将其打开。
在材质图区域中 右键单击 以打开快捷菜单,搜索 Make 并选择 建立材质属性(Make Material Attributes)。
将新的 建立材质属性(Make Material Attributes) 节点连接到 输出结果(Output Result)。
雪层网络
下图是雪材质层的简单明细。这个层使用 T_Cave_Ice_Tiling_D.png[/img] 和 T_Cave_Ice_Noise_N.png[/img],这两个纹理均可从本页顶部下载。
请单击以使用完整资源文件大小,或者右键单击并选择“另存为”(Save As)
底色(Base Color)- 这可能是此网络中唯一相对复杂的部分,这仅仅是因为使用了 FuzzyShading 材质函数。此函数的效果仅仅是避免材质在接收到光线时变得太暗。这有点像光线穿过纤维状表面。因此它是用于天鹅绒、苔藓或本例中的雪的完美选择。首先,我们处理底色(Base Color)纹理 (T_Cave_Ice_Tiling_D.png[/img]),通过对它进行 0.3 幂运算来消除一定的对比度。
接着,我们将结果插入 FuzzyShading 材质函数,该函数可从材质编辑器的“函数”(Functions)选项卡拉取。将 核心暗度(Core Darkness) 设置为 0,将 幂(Power) 设置为 1,并将 边缘亮度(EdgeBrightness) 设置为 0.5。最后,我们将整体结果乘以非常淡的蓝色 (R=0.8, G=0.9, B=0.95),产生一种冰冷的颜色投射效果。
金属色(Metallic)- 这是非金属表面,所以将“金属色”(Metallic)设置为 0。
粗糙度(Roughness)- 我们希望雪在受到光线直射时发出一点光亮,因此使用 _Cave_Ice_Tiling_D.png[/img] 纹理的红色通道来驱动 0.6 与 0.3 之间的插值。
法线(Normal)- 此设置也相当基本。我们希望降低切线空间法线贴图的效果,这可通过成倍增强蓝色通道来实现。加强蓝色会降低法线贴图高度的整体外观。
完成后,请保存结果!
分层材质
现在,我们可以使用目前为止生成的层来创建分层材质。我们将稍微增大空间以进行实例定制,使得雪总是出现在表面的顶部。
在 内容浏览器 中,单击 新增(Add New)按钮并从快捷菜单中选择“材质”(Material)。
将新函数命名为 Mat_SnowyChrome。
双击 该材质,以在材质编辑器中将其打开。
从 内容浏览器 拖放上述步骤中创建的 Layer_Chrome 和 Layer_Snow 材质层。
在 细节(Details)面板中,启用 使用材质属性(Use Material Attributes)。
在“函数”(Functions)面板中,拖入 MatLayerBlend_Simple 函数和 World_Aligned_Blend 函数。我们将使用 MatLayerBlend_Simple 来处理从铬合金到雪的过渡,并使用 World_Aligned_Blend 根据表面的方向加强层混合效果。
分层材质网络
以下是 Mat_SnowyChrome 网络的明细以及每个注释区域的说明。
请单击以查看标准资源文件大小的图片,或者右键单击并选择“另存为”(Save As)
铬合金设置(Chrome Setup)- 在此处,我们已引入铬合金材质层,并将 2 个材质参数与之相连。第一个是标量参数 Chrome Normal,用于驱动 法线乘数(Normal Multiplier) 输入。第二个是矢量参数 Chrome Tint,用于驱动 色调(Tint) 输入。这些参数可以用来改变法线贴图的强度,以及稍后进行实例化时更改铬合金颜色。
雪设置(Snow Setup)- 这是最简单的操作:我们只需要雪材质层。
全局一致混合设置(World Aligned Blend Setup)- 在这部分网络中,我们首先将 混合清晰度(Blend Sharpness) 设置为 10。然后,我们将标量参数 雪偏差(Snow Bias) 连接到 混合偏差(Blend Bias) 输入。这样,在将此材质实例化时,就可以编辑雪覆盖范围。
材质层混合(MatLayerBlend)- 仅包含用于驱动混合的节点。基本材质为铬合金。顶部材质为雪。World_Aligned_Blend 负责处理过渡。
完成后,请记得保存材质!
分层材质实例化
我们已使用参数来设置此材质,这些参数进而驱动材质层的各个方面,现在,我们可以将此材质实例化并进行编辑。此过程在 UE4 中非常简单。
如果您创建项目时已包括“起步内容”,那么您有可应用新材质的一组椅子和桌子。否则,请随意添加您自己的资产或 BSP。
右键单击 Mat_SnowyChrome 材质,并选择 创建材质实例(Create Material Instance)。可以接受默认资源文件名称。
将新实例从 内容浏览器 拖放到场景中的某个对象上。
双击 该实例,并根据需要任意更改其属性。您可以更改铬合金的颜色、铬合金法线贴图的深度以及该实例顶部的积雪量。
|
|