UE4笔记-材质(1)
1,ue4中的材质:是可以应用到网格物体上的资源,用它可控制世界场景中物体的外观。当穿过场景的光照接触到表面后,材质被用来计算该光照如何与该表面进行互动。这些计算是通过对材质的输入数据来完成的,而这些输入数据来自于一系列图像(贴图)以及数学表达式,以及材质本身所继承的不同属性设置。
2,材质属性:
1)与该材质关联的物理材质 。物理材质(Physical Material)提供了物理属性的定义,例如碰撞(弹力)以及其他基于物理的方面会保留多少能量。物理材质(Physical Material)对材质的外观没有影响。
2)材质
材质域(Material Domain):指定如何使用这些材质,某些材质的使用需要额外说明(例如贴花),以便渲染引擎加以考虑。材质域包括一下选项:
表面(Surface):该设置就是将材质用于对象表面的东西,这个也是最常用的设置。
延迟贴花(Deferred Decal):制作贴花时使用这个设置。
光源函数(Light Function):在创建与光源函数配合使用的材质时使用此设置。
后期处理(Post Process):如果材质将用后期处理材质则使用此设置。
混合模式(Blend Mode):通俗的说就是当前材质如何与其它已存在的颜色的进行混合,混合模式包括一下几种:
不透明(Opaque):最终颜色 = 源颜色。
遮罩(Masked):最终颜色 = 如果OpacityMask > OpacityMaskClipValue,则为源颜色,否则该像素将被丢弃。一般与主材质节点上的Opacity Mask搭配使用,用于实现材质中的一部分要么显示,要么不显示的效果,例如铁丝网,围栏。
半透明(Translucent):最终颜色 = 源颜色 不透明度 + 目标颜色 (1 - 不透明度)。
添加(Additive):最终颜色 = 源颜色 + 目标颜色。
调制(Modulate):最终颜色 = 源颜色 x 目标颜色。
贴花混合模式(Decal Blend Mode):此属性定义了如何通过贴花材质通道操作GBuffer信道。只有材质域设置为 延迟贴花时这个选项才会被激活。
着色模型(Shading Model):着色模型决定了材质输入(如自发光、漫射、镜面反射、法线)如何组合以形成最终颜色。包括一下几个选项:
无光照(Unlit):材质仅由自发光(Emissive)和不透明度(Opacity)输入定义。它不对应光源。
默认光照(Default Lit):默认着色模型。非常适用于大部分实体对象。
次表面(Subsurface):用于次表面散射材质,如蜡和冰。一般与主材质节点上的此表面颜色(Subsurface Color)配合使用。
预整合皮肤(Preintegrated Skin):用于类似于人类皮肤的材质。激活次表面颜色(Subsurface Color)输入。
透明涂层(Clear Coat):用于模拟表面有半透明图层的材质,如镀膜的车漆。激活后一般与主材质节点上的透明图层粗糙度(Clear Coat Roughness)配合使用。
次表面配置文件(Subsurface Profile):用于类似于人类皮肤的材质。需要使用次表面配置文件才能正确工作。
双面(Two Sided):勾选之后就会生成双面材质。法线将被翻转到背面,这意味着将同时为正面和背面计算光照。这通常用于植物上,以避免多边形数量加倍。
贴花混合模式(Decal Blend Mode):这个贴花比较复杂,以后再说。
3,材质输入
1)底色(Base Color) 定义材质的整体颜色。它接收 Vector3 (RGB) 值,并且每个通道都自动限制在 0 与 1 之间。也可以弄一个Texture来给颜色(快捷键T)
2)金属色(Metallic)输入控制表面在多大程度上“像金属”。范围0~1。0非金属,1金属,默认值0.5。
3)镜面反射(Specular)一般在编辑 非金属 表面材质时,调整它反射光线的能力。对于金属材质这个值没用。 范围0~1。0完全不反射,1全反射 像镜面一样,默认值0.5。
4)粗糙度(Roughness)输入控制材质表面的粗糙或平滑程度。范围0~1。0表示非常光滑 镜面反射,1表示粗糙没有任何反射 表面无光。
5)自发光颜色(Emissive Color) 输入控制材质的哪些部分将发光。如果发光不够强可以乘上一个值(乘节点Multiply快捷点M)。
6)不透明度(Opacity)范围0~1。只有混合模式是半透明(Translucent)、叠加(Additive) 和 调制(Modulated)才会生效。
7)不透明度遮罩(Opacity Mask)只有混合模式是遮罩(Masked)时才会生效。材质要么可见要么不可见,可以用来定义复杂固体表面如铁丝网 围栏。有时候需要设置U方向和V方向的平铺量 可以用TexCoord节点(快捷键U)的UTiling和VTiling控制
8)法线贴图(Normal)把材质的法线贴图连上就行,蓝色的那个图。
9)世界场景位置偏移(World Position Offset)允许网格体的顶点在世界场景空间中由材质操控。实现使对象移动、改变形状、旋转和各种其他效果。可以结合时间节点(Time)和顶点法线方向节点(VertexNormalIws)做一些动画。
10)世界场景位移和曲面细分乘数
世界场景位移(World Displacement)允许曲面细分顶点在世界空间内有材质控制
曲面细分乘数(Tessellation Multiplier) 控制沿表面的曲面细分量,允许在需要的地方添加更多细节
11)次表面颜色(Subsurface Color)只有着色模型为次表面时才能被激活。用来模拟光照经过表面时颜色的变化。例如,人类角色的皮肤上可能有一种红色的次表面颜色来模拟其表面之下的血液。
12)环境遮挡 (Ambient Occlusion)用来帮助模拟在表面缝隙中发生的自我遮蔽。例如砖墙的贴图,这里个一个砖墙的occ贴图后可以看到砖缝中的遮挡阴影。如果没有occ贴图可能砖缝中就没有这种阴影。
13)折射(Refraction)输入接受一个纹理或数值,该纹理或值模拟表面的折射率。这对于像玻璃和水这样的物体很有用,这些物体会折射穿过它们的光。例如下边再加一个菲涅尔效果来玻璃球边缘的折射。
14)透明涂层着色模型 只有着色模型为Clear Coat时才会激活。可以用来更好地模拟在材质表面有一层薄的半透明薄膜的多层材质。除此之外,透明涂层着色模型也可以用于金属或非金属表面。事实上,它是专门设计来对非有色金属上 的第二类光滑彩色薄膜进行建模的。如易拉罐或车漆。
透明涂层(Clear Coat):透明涂层的层数,0代表标准着色模型,1是完全透明涂层模型。这对于遮蔽非常有用。
透明涂层粗糙度(Clear Coat Roughness):透明涂层的粗糙度。对于较小的值,我们的近似处理是准确的。此输入支持非常粗糙的透明涂层,但与其实际的世界场景对照物相比,这些涂层不会非常准确。
15)像素深度偏移(Piexl Depth Offset)将像素的深度沿着摄像机到该像素的方向向后推一个值。只是视觉上的往后推一个值。