材质输入

本文我们一起来探讨一下在制作材质时,有哪些可用的输入。 通过对这些输入填写值(通过常量,参数和贴图),您可以定义您能想象到的任意物理表面。

并不是所有的输入都能在不同的混合模式和着色模型组合下进行使用。 对一些材质类型来说,我们会指定哪些输入在该类型下可用,这样您就可以了解,对于您创建的每种类型材质来说,使用了哪些输入。

输入和材质设置

对于您创建的某些类型的材质来说,有些输入是不起作用的。 比如说,在开发光照功能时-有一个被应用到光照上的材质-您仅能对该材质使用Emissive Color(自发光颜色),其它输入均不可用,因为其它的输入(如金属色或粗糙度),均不适用于该材质。 基于这个原因,您应了解重要的一点,就是要弄清楚您正在创建的是哪种类型的材质,而不必过于担心输入。 三个产生主要影响的属性为:

  • Blend Mode (混合模式)- 该模式控制了您的材质如何混合进材质后方的像素。

  • Shading Model (着色模型)- 它定义了材质表面的光照是如何进行计算的。

  • Material Domain (材质域)- 该属性控制了该材质使用的场合,例如该材质是否会成为表面,光照函数或后期处理材质的一部分。

幸运地是,虚幻引擎4使得您面对给定类型的材质时,不必猜测哪些输入可用。 当您变更材质中的设置时,您将会注意到您的可用输入将会更新,而您不需要的输入将会被禁用。

底色

底色(Base Color)无非定义材质的整体颜色。它接收 Vector3 (RGB) 值,并且每个通道都自动限制在 0 与 1 之间。

如果是从现实世界获得的,那么这是使用偏振滤光器拍摄时获得的颜色 (偏振在校准时会消除非金属材质的镜面反射)。

BaseColor_QS.png

金属色

金属色(Metallic)输入实际控制表面在多大程度上“像金属”。非金属的金属色(Metallic)值为 0, 金属的金属色(Metallic)值为 1。对于纯表面,例如纯金属、纯石头、 纯塑料等等,此值将是 0 或 1,而不是任何介于它们之间的值。创建受腐蚀、落满灰尘或生锈金属之类的混合表面时, 您可能会发现需要 介于 0 与 1 之间的值。

Metallic_21.png

高光

不应连接 高光(Specular)输入,在大多数情况下,应将其保留为默认值 0.5。

它是介于 0 与 1 之间的值,并用于调整 非金属 表面上的当前镜面反射量。它在金属上没有效果。

Specular_21.png

粗糙度

粗糙度(Roughness)输入实际控制材质的粗糙度。与平滑的材质相比,粗糙的材质将向更多方向散射所反射的光线。 您可根据反射的模糊或清晰度或者镜面反射高光的广度或密集度加以 确定。粗糙度 0(平滑)是镜面反射,而粗糙度 1(粗糙)是完全无光泽或漫射。

粗糙度是一个属性,它将频繁地在对象上进行贴图,以便向表面添加大部分物理变化。

点击查看完整尺寸

自发光颜色

因为 自发光颜色 输入发光,所以其可控制您材质的哪一部分发光。 理想状态下,可使用蒙板贴图(除需要发光的区域外,大部分均为黑色)。

支持将大于1的值作为HDR光照。

点击查看完整尺寸

透明度

透明度 输入在使用 半透明混合模式 时使用。 它允许您输入一个0和1之间的值:

  • 0.0 代表完全的透明。

  • 1.0代表完全不透明。

在使用次表面着色模型之一时,不透明和蒙板混合模式同时使用不透明度。

点击查看完整尺寸

透明度主要适用于 半透明添加型 以及 调制材质

透明度蒙板

Opacity Mask (透明度蒙板)与透明度类似,但仅在使用蒙板混合模式时可用。 和透明度一致的地方是,一般输入的值在 0.0和1.0之间,但 不同于 透明度,不同色调的灰色无法在结果中观察到。 在蒙板模式下,材质要么完全可见,要么完全不可见。 当您需要如铁丝网,铁丝网围栏及其它定义了复杂固态表面的材质时,此蒙板是最佳的解决方案。 不透明的部分将仍遵从光照。

您可以使用基础材质节点的 Opacity Mask Clip Value (透明度蒙板剪辑值)来控制剪辑发生处的截断点。 请查阅蒙板混合模式文档 以获得更多详细信息。

点击查看完整尺寸

法线

Normal (法线)输入会采用法线贴图,这是通过打乱每个单独像素的”法线“,或其朝向以对表面提供惊人的物理细节。

Axes.png

上图中 ,两把武器使用的都是同样的静态网格物体。 下方那把武器拥有高度细节的法线贴图,它提供了海量的额外细节,使观看者误以为表面包含了大量的多边形,而实际进行渲染的数量要远小于此值。 这样的法线贴图往往是通过高分辨率模型包来进行创建的,例如Pixologic ZBrush。

NormalNetwork.png

世界位置偏移

World Position Offset (世界位置偏移)输入使得网格物体的顶点可由材质在世界空间内进行控制。 这对于使目标移动,改变形状,旋转以及一系列其他特效来说,都很有用。 它对于环境动画也很好用。

点击查看完整尺寸

上图的节点网络会让您的目标同时旋转并上下起伏,犹如舞蹈一般!

当您使用世界位置偏移来将您的目标扩展出其初始边界时,请记住渲染器仍会使用到这些初始边界。 这就意味着您可能会看到剔除和阴影功能报错。 您可以查看网格物体的属性,然后设置其 Scale Bounds (缩放边界)属性为补偿,尽管这有可能影响性能并导致投影的错误。

世界位移以及多边形细分乘数

World Displacement (世界位移)的运行原理和World Position Offset(世界位置偏移)非常相似,但它使用的是多边形细分顶点而不是网格物体基础顶点。 为启用该项,材质的Tessellation(多边形细分)属性必须被设置为除 None (无)外的任意值。

Tessellation Multiplier (多边形细分乘数)控制沿表面方向的多边形细分数量,使得在需要时能添加更多的细节。 为能在World Displacement(世界位移)中启用该项,材质的Tessellation(多边形细分)属性必须被设置为除 None (无)外的任意值。

点击查看完整尺寸

当您使用世界位移来将您的目标扩展出其初始边界时,请记住渲染器仍会使用到这些初始边界。 这就意味着您可能会看到剔除和阴影功能报错。 您可以查看网格物体的属性,然后设置其 Scale Bounds (缩放边界)属性为补偿,尽管这有可能影响性能并导致投影的错误。

次表面颜色

Subsurface Color(次表面颜色)输入仅在着色模型 属性被设置为Subsurface(次表面)时才可被启用。 该输入可以让您添加颜色到您的材质,以模拟在光照穿过表面时的颜色转换。 例如,人类角色的皮肤上可能会有红色的次表面颜色,以模拟其皮肤下的血液流动。

点击查看完整尺寸

环境遮挡

环境遮挡主要用来模拟表面缝隙中发生的自投阴影。 一般来说,这种输入会与某些类型的环境遮挡贴图进行连接,而这些贴图常常是在3D模型包内进行创建的,例如 Maya, 3ds Max或ZBrush。

NormalNetwork.png

折射

折射输入会采用模拟表面折射率的贴图或值。 这对于玻璃表面和水面很有帮助,这些表面会对穿过它们的光线进行折射。

点击查看完整尺寸

常见折射率
空气 1.00
水面 1.33
冰面 1.31
玻璃表面 1.52
钻石表面 2.42

透明图层

透明图层着色模型可以用于更好地模拟在材质表面具有薄半透明膜的多层材质。 除此之外,透明图层着色模型也可以用于金属或非金属表面。 实际上,它是特别用于对无颜色金属的二级平滑颜色膜进行建模的。 一些透明图层材质的示例包括了丙烯酸或漆的透明图层,以及对金属表面的着色膜,诸如易拉罐或车漆。

Clearcoat.png

透明图层着色模型在主材质节点上打开了两个新的材质输入。

透明图层 : 透明图层的数量,0为标准着色模型,1为完整透明图层模型。 这对蒙板很有用。

透明图层粗糙度 : 透明图层的粗糙度。 近似值对于小的值是准确的。 支持非常粗糙的透明图层,但相比真实世界中的内容,这样不是特别准确。