欢迎光临散文网 会员登陆 & 注册

虚幻引擎【UE5】材质宝典【初学者材质基础入门系列】

2023-04-05 06:31 作者:鸭嘎-嘎嘎嘎  | 我要投稿

【才开始学,笔记每天早上整理更新,不知道为啥这破网页晚上图放不上来】

材质介创建

面板右键创建材质

创建材质后命名,或者f2进行重新命名

材质添加

1.拖动材质球到物体

2.搜索材质并添加


材质编辑器

双击材质球打开材质编辑器

在预览窗口可以调整预览物体的形状

将网格物体放到材质浏览视口里的方法

在显示中可以关掉背景

节点可以在细节面板里调整参数

内容浏览器停靠在布局中

所有节点

打开实时更新,视口中所有操作都会同步

清理没有链接的节点

材质表达式节点

快捷键

按住ALT点击节点可取消连接

常量Constant(1+鼠标左键)

二维常量Constant 2Vector(2+鼠标左键)

Constant 3Vector(3+鼠标左键)

Constant 4Vecor(4+鼠标左键)

Add(A+鼠标左键)

凹凸贴图偏移BumpOffset(B+鼠标左键)

Divide(D+鼠标左键)

Power(E+鼠标左键)

材质函数调用MaterialFunctionCall(F+鼠标左键)

If(I+鼠标左键)

线性插值Lerp(L+鼠标左键)

乘Multiply(M+鼠标左键)

标准化Normalize(N+鼠标左键)

参数反向OneMinus(O+鼠标左键):用1减去参数

相位Panner(P+鼠标左键)

关联向量RelectionVector(R+鼠标左键)

标量参数ScalarParameter(S+鼠标左键)

纹理采样TextureSample(T+鼠标左键)

纹理坐标TextureCoordinate(U+鼠标左键)

向量参数VectorParameter(V+鼠标左键)

分离通道ComponentMask(Shift+C)

刷新节点预览(Space)

材质结果节点介绍

基础色

创建三维常量




如果有贴图可以直接拉进来连接

金属度

参数值0-1,数值越小金属度越不明显


粗糙度

参数值0-1,数值越大粗糙度越明显


高光度

参数值0-1,数值越大高光越明显


各向异性

参数值0-1,数值越大各向异性越明显

可以拉长高光


通过添加三维向量到切线来控制各向异性的方向

自发光颜色

参数值不限,数值越大发光越明显

自发光材质可以照明场景


不透明度

需要在细节面板中将混合模式改为半透明

参数值0-1,数值越小越透明

不透明蒙版

需要导入透明背景图

混合模式改为已遮罩

Normal法线

添加法线贴图,可直接拖入或者搜索


切线

让材质球在空间上产生位移

调整RGB来控制位置

Subsurface color次表面颜色

着色模型改为次表面

给基础色和次表面两个不同的颜色

不透明度为0时,透光效果非常好

Custom Data 0&Custom Data 1自定义输入端

在着色模型中选择要更改的材质类型

像素深度偏移

可以让网格物体在接触地面的位置进行像素偏移效果



材质分类

表面(Surface)

该设置将材质定义为将用于对象表面的东西;可以是金属、塑料、皮肤或任何物理表面。因此这是你大部分时间里都会用到的设置。

延迟贴花(Deferred Decal)

投射材质,制作贴花材质时,你将使用此设置。

光照函数(Light Function)

灯光闪烁,创建结合光照函数使用的材质时应使用此设置。

体积(Volume)

将材质的属性描述为3D体积时使用。

控制指数级高度雾和体积云

后期处理(Post Process)

如果材质将用作后期处理材质,则使用此设置。

需要配合后期处理体积一起用


材质运算

基础材质连接

自发光

StaticSwitchParameter

StaticSwitchParameter(静态开关参数)表达式接收两个输入,并且在参数值为 true 时输出第一个输入的值,否则输出第二个输入的值。

此参数称为"静态"是因为它不可在运行时更改,而只能在材质实例编辑器中设置。静态开关是在编译时(而非运行时)进行应用。这意味着删除的材质分支决不会执行,因此静态开关在运行时实际上是自由的。另一方面,对于材质中 使用的 每一种静态参数组合(滥用静态参数组合可能会导致着色器激增),都必须通过编译来产生材质的新版本。请尽量减少材质中的静态参数数目以及实际使用的静态参数排列数。

用法示例:静态开关可用于除去材质的整个分支,而不会产生运行时成本。各个实例可具有不同的值,这使您能够建立模板化的着色器设置,而不会影响性能。


转换为参数

将数据转换为实力材质中可以修改的参数

创建实列材质

必须在母材质上右键创建

排序优先级

同组节点排序方式从0开始逐渐递增排序


分组

选择分组放入,可以在实列材质中看到

数据运算概览

官方表达式索引

https://docs.unrealengine.com/5.1/zh-CN/unreal-engine-material-expressions-reference/


数据维度

三原色+alpha组成4个通道



空间坐标也用rgb标识

uv坐标用红绿标识



运算

一维数据和高维数据进行运算时会直接升维


Abs与三维坐标转换


移动节点组到另一个节点上

变换效果一致

用mask拆分UV坐标

纹理遮罩(mask) 是灰阶纹理,或纹理的单个通道(R、G、B或A),用于限制 材质 内的效果区域。

遮罩通常包含在另一个纹理的单个通道中,例如漫反射或法线贴图的 Alpha通道。 在其他情况下,单个图像文件通常包含"粗糙度(Roughness)"、"金属感(Metallic)"和"环境光遮蔽(Ambient Occlusion)"遮罩,每个遮罩占用一个通道。

这称为"通道打包",是通过减少材质所需的纹理样本数来提高材质性能的好方法。 从技术上讲,任何纹理的任何通道都可以被认为是纹理遮罩并用作纹理遮罩。

下面是初学者内容包中 SM_Chair 静态网格体的纹理遮罩的示例。

实际上,此图像文件在四个颜色通道(RGBA)的每一个通道中包含不同的黑白遮罩。

Add

Add 表达式接受两个输入,将它们相加并输出结果。

如果使用多个通道传递值,每个通道将分别添加。例如,如果将RGB颜色值传递给每个输入,则将第一个输入的R通道添加到第二个输入的R通道中,结果存储在输出的R通道中;将第一个输入的G通道添加到第二个输入的G通道中,结果存储在输出的G通道中,以此类推。

两个输入必须有相同数量的值,但其中一个值是单个常量值时例外。在这种情况下,将多通道输入的每个通道添加到单个浮点值,并将结果存储在输出值的单独通道中。

示例:0.2与0.4相加得0.6;(0.2,-0.4,0.6)与(0.1,0.5,1.0)相加得(0.3,0.1,1.6);(0.2,-0.4,0.6)与1.0相加得(1.2,0.6,1.6)

使用示例:Add常用于使颜色变亮/变暗或偏移UV纹理坐标。

AppendVector(App 组合通道)

AppendVector 表达式允许你组合通道,创建一个比原始通道更多的向量。例如,你可以获取两个单独的 常量 值,并将它们添加到一个双通道的 Constant2向量 值中。这种操作适合用于重新排列单个纹理中的通道,或将多个灰度纹理合并为一个RGB颜色纹理。

示例: 附加0.2 和 0.4 就是 (0.2,0.4);附加 (0.2,0.4) 和 (1.0) 就是 (0.2,0.4,1.0)。

控制物体偏移

做成实列材质后可控制物体偏移



加减乘除

相加

红色通道与红色通道相加

绿色通道与绿色通道相加

蓝色通道与蓝色通道相加



相乘

减法

除法

0除以任何数都是0 


渐变

TextureCoordinateTextureCoordinate(纹理坐标)表达式以双通道向量值形式输出 UV 纹理坐标,从而允许材质使用不同的 UV 通道、指定平铺以及以其他方式对网格的 UV 执行操作。

用法示例: 如需访问网格体的第二个 UV 通道,请创建一个 TextureCoordinate(纹理坐标)节点,将其"坐标索引"(CoordinateIndex)设置为 1(0 表示第一个通道,1 表示第二个通道,等等),并将其连接到 TextureSample(纹理取样)节点的 UV 输入。


线性插值(混合节点)

L+鼠标左键

LinearInterpolate 表达式会以第三个输入值为遮罩参数,然后在两个输入值之间进行插值。可以想象成两张纹理根据一张遮罩进行过渡,类似Photoshop中的图层遮罩。遮罩Alpha的强度决定了两个输入值贡献的权重。如果Alpha是0.0,就使用第一个输入值。如果Alpha是1.0,就使用第二个输入值。如果Alpha在0.0和1.0之间,输出是两个输入之间的插值。注意,混合是按通道进行的。 所以,如果Alpha是一个RGB颜色,则Alpha的红色通道会定义A和B的红色通道之间的插值,它 独立 于Alpha的绿色通道,后者定义了A和B的绿色通道之间的插值。



alpha值只能在0-1之间

添加clamp节点,控制节点的最大值和最小值

Clamp 表达式接受一个或多个值,并将它们约束到由最小值和最大值定义的指定范围内。如果最小值为0.0,最大值为0.5,则意味着结果值永远不会小于0.0,且永远不会大于0.5。

示例:在最小值为0.0且最大值为1.0的情况下对0.3((0.0)到(1.0))的输入范围进行限制将得到结果0.3;在最小值为0.0且最大值为1.0的情况下对1.3进行限制将得到结果1.0。

或是satuiate节点,但不能修改数值,只能0-1

如果用图本身的alpha通道连alpha可以透出下面的底

数据维度控制

维度分解

用mask来拆分需要的通道

维度升级

AppendVector

AppendVector 表达式允许你组合通道,创建一个比原始通道更多的向量。例如,你可以获取两个单独的 常量 值,并将它们添加到一个双通道的 Constant2向量 值中。这种操作适合用于重新排列单个纹理中的通道,或将多个灰度纹理合并为一个RGB颜色纹理。

示例: 附加0.2 和 0.4 就是 (0.2,0.4);附加 (0.2,0.4) 和 (1.0) 就是 (0.2,0.4,1.0)。

MaterialFunctionCall

连接一维数据并生成2、3、4维数据

表达式允许您使用来自其他材料或功能的外部MaterialFunction,外部函数的输入和输出节点成为函数调用节点的输入和输出。如果一个MaterialFunction在放置这些表达式时被选择在内容浏览器中,它将自动被分配。


虚幻引擎【UE5】材质宝典【初学者材质基础入门系列】的评论 (共 条)

分享到微博请遵守国家法律