材质入门

材质入门

常用属性

总览

首先,效果的最终呈现状态与设定的属性值有关,这里展示一些大致的效果:

image-20230406202701420

从左到右分别对普通材质设置了颜色、金属感、发光和光滑度属性。四种材质对应的文件资产如下:

image-20230406202913896

左边创建存放新地图的文件夹和一个存放材质的文件夹,右边是材质文件夹中已经创建好的四种材质。

创建材质

新建材质:资产管理器空白处右键点击新建材质

image-20230406222155704

材质图表分别如下:点击对应的属性,提升为参数即可显示引脚,从而对相应的属性进行设置。

颜色

image-20230406222006584

发光

发光:颜色值越大,发光越强

image-20230406222348611

金属

金属:设置该值可以使物体表面有金属光泽,取值范围为0-1,值越大,金属光泽越强。

image-20230406222621838

粗糙度

粗糙度:取值范围也是0-1,值越小越光滑,反之越粗糙。

image-20230406222749483

各向异性

再介绍一个Anisotropy(各向异性),该属性一般可以用来渲染头发。

专业解释,各向异性是物质的全部或部分性质随着方向的改变而发生变化,在不同的方向上呈现出差异的性质,就比如上面说到的头发,会随着不同的光照变化而发生一些光泽变化。

image-20230406223521747

这个圈会随着你拖动材质而不断变化,可以动手尝试下。把这个材质用到世界场景中

image-20230406223805913

这条光线会随着你方位的移动而发生方位上的移动,可以有很多应用场景和高阶玩法等你发现。

想要查看或修改物体应用的材质,可以双击物体查看细节窗口的材质属性

image-20230406224418037

木头材质

基础材质

作为初学者很难去构造一个复杂的材质,但UE拥有这非常丰富的资源库,甚至我们初始化的项目里都有许多默认资产,可以充分利用起来,快速构建自己想要的材质,下面我们创建一个木头材质。

1,新建一个材质,命名为M_Wood

image-20230406231355821

双击进去,这里介绍几个快捷键,后面可以用到,我们可以通过创建1-4n维向量来对某个属性进行赋值操作

image-20230406231437467

2,打开资产文件夹在All中搜索wood,可以看到相关的材质和纹理

image-20230406231635621

3,使用纹理给材质贴图,并设置相应的属性以达到木头材质效果

image-20230406232156944

主要分为三部分,纹理贴图、属性设置、和UV平铺。纹理贴图也就是表面样式、设置粗糙度让其看起来更像木头,设置UV平铺的值改变纹理之间的疏密,最后调整出你认为合适的木头材质即可。

如果我们想通过一个变量去修改UV,可以将TexCoord节点断开,使用一个常量乘以TexCoord节点,然后通过改变变量的方式改变UV,这个操作的意义好像没有这么大,但是可以形成一种思维,如果我们想要同时改变多维值时,可以通过一个变量去控制,而不用分别设置。

image-20230407205259131

通过引入一个变量和乘操作来同时控制UV,从而快速改变材质的纹理疏密。

材质实例

找到我们想要创建实例的材质,右键鼠标创建材质实例。

image-20230407205430806

生成一个材质实例

image-20230407205718740

点击实例查看,我们可以看到UV_Multi变量,可以对UV进行设置达到自己想要的结果

image-20230407210007880

通过对材质设置变量,这里我们明显发现,可以通过不断创建材质实例修改变量值来达到不同的纹理效果,而不用重复创建多个材质。

image-20230407210358068

上面两个实例的区别仅仅在于UV变量值不同,他们基于的材质都是相同的,最后呈现两种完全不同的结果。

纹理平移

蓝图如下:需要通过Append操作将X、Y偏移操作融合,对UV进行加法操作就是对纹理进行平移,随着值的不断变化,可以发现纹理在旋转。

image-20230407211339166

将木头材质再创建一个实例,可以看到已经有三个变量了,此时X、Y偏移我们都设为1

image-20230407211718350

当我们将X、Y偏移改为1.05,和上面图进行对比,可以看到尖角处分别向左、向上进行了平移。

image-20230407211902294

大理石材质

1,新建一个默认材质,命名为M_Marble,命名随意,最好符合特定的规范,方便自己辨认寻找。

image-20230407212314303

2,同样去初始化项目资产中寻找一些资源进行使用,注意搜索的文件夹范围,最好进行全局搜索

image-20230407212518624

3,通过纹理RGB乘三维向量来控制纹理颜色,注意进行乘法操作的两个变量必须是同维度的,否则蓝图会报错。

连接纹理,数字1加鼠标左键新建一个常量给材质来点粗糙度。

image-20230407213721469

这里,我们将最基础的颜色作为材质的底色,如果想要改变颜色,通过创建材质实例,修改变量值来改变纹理颜色即可。

image-20230407213828110

两种纹理颜色物体对比:

image-20230407213920322

颜色运算

RGB三维向量乘法

image-20230407214944698

RGB三维向量加法

image-20230407215211136

RGB三维向量减法

image-20230407215446711

RGB三维除法,这里不符合数学计算哈,明白计算规则即可。

image-20230407215708257

线性插值Lerp

调整颜色

Lerp线性插值:Alpha取0-1之间的值对应0-100等比例大小的数值,这里0,100也可以换为其它值,比如我们下面应用到颜色上。

image-20230407230925430

利用线性插值来调整颜色:

image-20230407231318614

image-20230407231358553

image-20230407231418908

我们也可以根据基础材质通过改变参数来创建不同的实例,这些实例的颜色可以从红色组件变到蓝色。下面就是两个不同参数的材质实例。

image-20230407231706442

融合纹理

原理和上面想用,只不过将颜色变成变成了纹理贴图。

image-20230408003402674

下面展示利用该材质生成的三个Alpha值不同的材质实例,并应用到场景物体上:三个Alpha值分别为0.1、0.5、0.9。

image-20230408003717360

法线贴图强度

两个注意点:参数命名尽量简单易懂,下面这个就是错误示例,使用默认值等到调参的时候是看不懂什么意思的,然后就是之前说的在进行运算的时候,参与运算的算子一定要是想用维度的。

image-20230408004808100

布尔参数

布尔值常用作开关和判断,有true / false两个值。比如下面这个例子通过增加静态布尔值来控制一个材质是否呈现金属状态。

image-20230408010005721

使用该材质创建两个实例,一个勾选isMetal变量、一个不勾选

image-20230408010124019

勾选了isMetal变量的比上面多了一层金属感,但由于纹理的原因可能不太明显,可是尝试其它纹理看看,可能会有更好的金属效果。

image-20230408010145931

材质实例应用到世界场景中来看,金属感明显体现出来了

image-20230408010352728

随机印痕

使用初学者包资源concrete纹理贴图创建最简单的混泥土材质

image-20230408010743184

边为直接应用初学者包资源里的一种混泥土材质,右边为应用上图的基本材质。

image-20230408011055785

想要生成一些随机早污点或者印记,可以借用现有的初学者材质资源image-20230408011518812

我们将上面生成随机污点的这部分蓝图复制到我们新创建的基础混泥土材质图表中

image-20230408011924589

要想任意改变杂点的分布或者疏密,我们需要将上面一些常量转换为参数应用到材质中,最后生成材质实例,通过修改参数改变杂点分布、疏密。

image-20230408012201832

创建两个实例,分别设置参数为0.2和0.8,让我们看看实际效果:中间为0.2,右边为0.8,杂点还是有区别的。

image-20230408012435217

超级主材质

纹理和UV平铺

下图中Roughness纹理连接到粗糙度哈,不是连接到Metalic,连接错啦!!!

image-20230408015618552

可以根据自己的需求,将纹理进行替换,将UV平铺结果进行调整

image-20230408015746000

增加着色

下图中Roughness纹理连接到粗糙度哈,不是连接到Metalic,连接错啦!!!

image-20230408020834220

Normal强度

下图中Roughness纹理连接到粗糙度哈,不是连接到Metalic,连接错啦!!!

image-20230408021038966

粗糙度控制

这里粗糙度的连接改过来了!!!)这里对目前存在的几个小模块进行了总览,简单来说,就是对前面每一节学习的内容通过变量控制的方式整合到一个材质中,最终通过调参来实现“万能材质“。

image-20230408021701968

当粗糙度过大的时候,就没有什么效果了,因此我们引入clamp进行一个范围的限制。

image-20230408022056476

这里的Clamp的默认最小值为0,默认最大值为1,我们也可以通过提升为变量来进行动态调控。

image-20230408022319639

金属效果

增加一个布尔变量来控制是否展示金属效果

image-20230408022837514

随机印痕

image-20230408023220926

这里可以继续增加参数控制UV平铺

image-20230408023508811

总览

上面设置完后,让我们看一下超级材质的蓝图总览:

image-20230408023735810

再看一下实例的变量汇总:

image-20230408024027610

万能材质和万能材质实例:

image-20230408024158620

应用万能材质的场景物体效果:

image-20230408024257063

混合法线贴图

image-20230408024641581

如果使用了某种过强的纹理,可以通过Lerp加参数的形式进行一个控制。

image-20230408025027065

Mixed Normal值为0的时候

image-20230408025117924

Mixed Normal值为1的时候

image-20230408025135390

纹理更加明显了!!!

材质资源

Quixel Bridge

Quixel网站:https://quixel.com/

image-20230408013720288

虚幻商城

直接去虚幻商城下载喜欢的资产,里面也会有需要高质量、精美的材质资源

image-20230408013000020

image-20230408013425899

过程资产

image-20230408025402878

image-20230408025430792

以上就是材质的基础教程啦,希望能给你带来一些帮助,后续我们还会出更多的教程,和我们一起学习UE和VR吧!!!