节点介绍
基本材质节点
材质的基本属性,可以通过更改着色模式切换可用的接口
节点名称 | 意义 |
---|---|
Base Color | 纹理 |
Metallic | 金属度,范围0-1 |
Speculator | 无金属度节点的反射度,范围0-1 |
Roughness | 粗糙度,范围0-1 |
Emissive Color | 自发光颜色 |
Opacity | 不透明度,范围0-1 |
Opacity Mask | 不透明度遮罩,二值性 |
Normal Map | 法线贴图,(用纯蓝模拟平整的法线贴图) |
World Position Offset | 世界坐标偏移,用于变形模型 |
World Displacement | 世界替代,替代被细分的多边形 |
Tessellation Multiplier | 测序乘数,细分多边形 |
Subsurface Color | 次表面颜色 |
Clear Coat Roughness | 模拟表面的透明薄层 |
Refraction | 折射 |
定值节点
节点名称 | 意义 |
---|---|
标量节点 | 快捷键为1 |
Vector 2/3/4 | 向量节点,二维快捷键为2 三维为3 四维为4 |
Boolean | 布尔节点值为0或1 |
Texture Sample | 纹理节点 |
参数节点
用于在材质编辑器之外快捷的改变数值
快捷键Esc
和上述定值节点一一对应,可以直接右键-转换为参数
标量数学节点
Unreal材质中标量范围:0-1
黑色代表0,白色代表1
节点名称 | 意义 |
---|---|
计算节点 | 加(A)减乘(M)除 |
1-x节点(O) | 反转值 |
Abs | 绝对值节点 |
Ceiling/Floor | 向上或向下取整 |
Clamp | 把数值限定在区间中 |
向量数学节点
节点名称 | 意义 |
---|---|
Dot | 向量点乘,向量间的平行程度 |
Cross | 叉乘,垂直程度 |
Append | 结合多个数值为向量 |
Mask | 分离向量的各个数值 |
Panner(P) | 纹理平移节点 |
Rotate | 纹理旋转 |
数据节点
节点名称 | 意义 |
---|---|
Texture Coordinate(UV) | 纹理轴,二维向量 |
Vertex Normal | 顶点法线向量 |
Vertex Normal W5 | 被法线贴图影响后每个像素的的顶点法线 |
Absolute World Position | 纹理在世界空间中平铺 |
Object Position | 物体位置 |
Object Radius | 物体大小 |
Screen Position | 物体的屏幕坐标,用于后处理 |
实用节点
节点名称 | 意义 |
---|---|
Lerp | 插值节点,Alpha越接近0,返回值越接近A,反之亦然 |
Bump Offset | 遮挡补偿,在高度图基础上遮挡低矮的表面,更逼真的起伏效果,使用黑白高度图 |
Depth Fade | 返回透明材质深度 |
Distance | 获得物体间的距离,需要除以大数来使用 |
Fresnel | 菲涅尔效果,边缘变亮 |
Exponent | 曝光效果 |
if | 分支节点,设置AB值后根据AB的大小关系输出不同分支 |
地形节点
节点名称 | 意义 |
---|---|
Layer Blend | 混合已有纹理,并帮助使用地形编辑器的画笔功能 |
Landscape Coordinate | 设定纹理UV值 |
Landscape Layer Switch | 优化地形,判断某图层是否被使用并更改输出的节点 |
Landscape Visibility Mask | 地形可见度遮罩,隐藏一部分地形以显示地形之下的物体 |
粒子节点
节点名称 | 意义 |
---|---|
Particle Relative Time | 每个粒子的当前生命时长 |
Particle Size | 粒子尺寸 |
Particle Color | 必须添加以启用粒子编辑器中的粒子颜色设置 |
Particle Macro UV | 所有粒子的整体UV |
Particle Sub UV | 每个粒子的分别UV,可用于播放动画 |
自定义材质函数
节点名称 | 意义 |
---|---|
PhotoShop效果节点:Blend_Exclusion/PinLight/Screen/OverLay/ColorBurn | 减去、点光、遮盖、覆盖、颜色加深 |
Blend Angle Correct Normal | 正确的混合法线贴图,法线贴图不能用普通的混合方式混合 |
Make Float3 | 制作三维浮点向量 |
Cheap Contrast | 快捷增加对比度 |
材质示例
氧化铝材质
使用已有素材
增加表面污渍细节
减小平铺度(增大纹理尺寸)
复制到新建的材质函数中
勾选 暴露在函数库中
引用自建函数
把基本材质节点勾选 使用材质属性
用Blend Material Attribute混合两个函数
使用已有纹理作为Alpha值,在同一个材质上不同区域显示不同的材质
积雪岩石材质
岩石
使用已有素材
发现素材在顶点有失真
使用三平面投影方法,把纹理示例节点更改为纹理目标节点,分别连接三个方向的遮罩节点,获取带有法线贴图的顶点法线方向(绝对值处理+power),插值处理投影之间的渐变。
制作为材质函数,输入值为纹理,输出为RGB和透明通道
将材质函数暴露在函数库中
在岩石材质中对每个纹理使用三平面投影
雪
使用已有纹理,粗糙度为0.5,Shading Model改为次表面
次表面颜色为浅蓝,不透明度为0.5
结合
将岩石材质也改为次表面的Shading Model,但不透明度设为1,次表面颜色设为0,没有此表面效果
制作为材质函数,借用制作材质属性节点
给材质函数打上tag以便于寻找
雪材质同理
引用雪和岩石的材质函数节点
使用漫反射贴图中的高度图,使用三平面投影
新建参数,Snow Amount ,使用三平面投影后的高度图和Snow Amount作为分支的AB值,A<B,返回1即白色,否则返回0即黑色
右键分支节点选择Start Previewing,预览效果
带有法线贴图的顶点法线节点,Mask(B)也就是Z轴,Clamp值为0-1——此操作在预览中看不出来,用于减轻运算压力
使用Height Lerp节点,三投影之后的高度图作为高度图接口,顶点法线作为Transition Phase,AB值为0,1
表现了基于高度图的变化效果
分支节点乘以Height Lerp节点
Blend Material Attribute节点,alpha是乘法结果,AB是岩石和雪的材质,最终输出为材质
全息效果
在引擎设置-渲染-光照-勾选启用网格体距离域(Mesh Distance Field),重启引擎
新建材质,改变混合模式为Addictive
世界坐标节点+Distance To Nearest Surface节点,输出除以 距离参数,clamp至0-1,添加1-x节点,连接到自发光颜色接口——当材质的某一点距离最近的表面的距离小于距离参数值时,clamp节点开始输出有效值,且距离越小,自发光越亮
新建颜色参数和亮度参数
1-x数值乘以颜色,结果乘以亮度,最后连接自发光颜色接口
引入网格纹理,UV值设为Panner节点,Speed X/Y设为0.5,用纹理轴节点控制平铺值
粒子材质
变色粒子
混合模式设置为叠加
粒子编辑器中设置颜色随时间变化,透明度随时间增大
粒子颜色节点,访问粒子编辑器设置,
颜色乘以纹理,连接到基础颜色接口
颜色的透明通道连到不透明度接口(为啥不会反过来呢?alpha=1,不透明度=1,同样的结果)
用粒子年龄节点(出生为0,死亡为1)控制材质亮度,先1-x翻转(也就是从1到0),然后乘参数,参数设为6,乘以基础颜色后连到自发光接口
材质一开始亮,后来变暗
爆炸粒子
混合模式设置为叠加
粒子速度节点获取速度,除100以减小,
新建两个不同的颜色,用插值控制,速度作为alpha,
设为自发光接口
烟雾粒子
混合模式为透明
获取纹理,纹理为黑白
纹理连接power节点(指数),用相对时间控制幂次以使纹理渐隐(颜色在0-1间,幂次越高,越接近0,但少量白色部分不受影响)
粒子相对时间在0-1,所以用插值节点在1-14间插值作为指数
结果连到基础颜色接口
基础颜色乘粒子颜色作为不透明度接口
全息投影粒子
混合模式为叠加
烟雾纹理乘粒子颜色,作为结果1
世界坐标乘Actor的坐标,除100
新建变换节点(Transform),source为世界空间,destination为局部空间
遮罩RB(在xz平面投影),连到投影纹理的UV值上,乘结果1,得结果2
结果2乘亮度参数,连自发光接口
粒子颜色透明通道作为不透明度接口