UE 材质节点
官方文档https://docs.unrealengine.com/4.27/zh-CN/RenderingAndGraphics/Materials/ExpressionReference/
节点和英文介绍
RGB对应三维的XYZ
parameter:参数 简称param
vectorparameter:向量参数 可以赋予颜色
ScalarParameter:标量参数
TextureCoordinate=texcoord:纹理坐标 按U加鼠标左键快速调出 可以实现放大和缩小UV的作用其中坐标索引的数值从0到n控制的是第1到n+1套UV
metallic:金属
debug… :针对不同参数的预览显示其效果,例如
ScaleUVsByCenter 从中心缩放UV
roughness: 粗糙度
set material: 设置材质
texture sample:材质表达式纹理采样
sine:正弦 注意:这个正弦对应的周期是1而不是2_π_
sine_remapped 正弦波动
BreakOutFloat2,3,4Components 将2,3,4维常数拆成2,3,4个通道单独调整,调整后再使用
break material attributes 打破材质属性
make material attributes 创建材质属性
MakeFloat2,3,4节点将它们合成起来输出
ComponentMask:将R,G,B,A的数值按照R,G,B,A的顺序输出,比如如果只选择R,G的数值则按照R,G的顺序输出
splitcomponent:将颜色分解为三个通道,可以任意选择。
BreakOutFloat3(2)Components等同于
swizzle 重新排列通道的顺序例如将XYZ的顺序改为YXZ
Abs 取绝对值
Frac 取小数
Ceil(天花板) 向上取整
Floor(地板) 向下取整
Round 四舍五入
saturate 钳制:将数约束在0~1之间(小于0的数取0,大于1的数取1)
Clamp 将数约束在一个最小和最大的范围之间(相比于钳制,可以自定义)
fmod 求余
add加 快捷键a
subtract 减
multiply 乘 快捷键m
divide 除 快捷键d
panner 材质平移
rotator 材质旋转
custom rotator 自定义材质旋转
ceramic:陶瓷
pixel:像素
lerp:线性插值这里的alpha是可以输入大于1的值的。
1-x:反向节点
FlattenNormal:调节法线的强度(flatten是平坦的意思,里面有个flatness(平坦度)的节点,创建一个法线强度参数,再连接1-x节点最后连接flatness节点,即法线强度为0时平坦度为1即没有法线强度)
static switch parameter静态开关参数
Vertex Color :顶点颜色 通常将红绿蓝三个通道作为Alpha 配合shift+5来实现顶点绘制(顶点数量要足够),其默认为111
绘制时默认是绘制白色,切换为黑色即可绘制,(shift配合鼠标左键实现反相绘制)
凹凸贴图偏移(BumpOffset) 是虚幻引擎4术语,就是通常所谓的"视差贴图"。BumpOffset表达式可以使材质产生深度错觉,而不需要额外的几何体。BumpOffset材质使用灰阶_高度贴图_来提供深度信息。高度贴图中的值越亮,材质的"凸出"效果越明显;当摄像机在表面上移动时,这些区域将产生视差(移位)。高度贴图中较暗的区域将显得"距离较远",其移位程度最小。
项目 | 说明 |
---|---|
属性 | |
高度比(HeightRatio) | 从_高度贴图_中取得的深度的乘数。这个值越大,深度越极端。典型值的范围是0.02到0.1。 |
参考平面(ReferencePlane) | 指定纹理空间中要应用此效果的近似高度。值为0将使纹理完全离开表面,而值0.5(默认值)表示部分表面凸起而部分区域凹陷。 |
Inputs | |
坐标(Coordinate) | 接收此表达式所要修改的基本纹理坐标。 |
高度(Height) | 接收要用作高度贴图的纹理(或值)。 |
高度比输入(HeightRatioInput) | 从_高度贴图_中取得的深度的乘数。这个值越大,深度越极端。典型值的范围是0.02到0.1。如果使用此输入,那么它将取代"高度比"(Height Ratio)属性中的任何值。 |
可以利用此节点来模仿老式显像管电视机,如果要打造显像管电视机是一层玻璃且玻璃后面有其他结构的错觉。
如果要制作某种鱼缸,制作鱼缸样式的效果也可以使用此节点。
parallax occlusion mapping:视差映射贴图 (利用视差原理的改良版本)缩写为POM
会有锯齿效果:
配合dither temporal AA可以模糊锯齿 DTAA可以理解为抖动像素,让不同深度的像素产生混合效果来来实现融合边缘的效果
AA:抗锯齿的简称
rotator:可以使材质旋转
append:附加
append many:附加多个
desaturation:去饱和度 可以去色
cheapContrast:简单的增加对比度的节点
sign 取符号 正数输出1,零输出0,负数输出-1。
two sided sign :双面迹象(正面输出1,反面输出-1)(因为当使用双面效果时,因为法线方向原因会导致法线贴图造成的效果有错误,因此通过乘two sidedsign节点获得想要拥有的法线效果)
frac函数:作用是取函数的小数部分。
time节点:数值为游戏时间,逐渐递增。通常配合sine节点。time节点可以手动控制结束时间,例如填写25,那么这个节点就会输出0~25后再从0开始
constant bias scale 节点(常量偏差比例):默认功能是将数据都加上1然后都乘0.5。通常使用它将-1~1的范围(法线贴图的范围是-1~1)控制在0~1的范围之间。可以手动更改数值。可以配合sine和time实现平滑的0~1~0的明暗变换效果。
world aligned textures_complex全局一致纹理_复杂。
world aligned texture全局一致纹理。(使材质纹理不随着模型的缩放而缩放)(类似于SP中的三面投射,有助于拼贴遮罩)其中TextureObject连接贴图,TextureSize控制贴图平铺次数。一般只使用这两个节点作为输入。QQ录屏20211108221238.mp4
object pivot point 对象轴心点
BlendAngleCorrectedNormals混合角校正法线:用来实现法线叠加效果
DeriveNormalZ_Function 推出法线的Z数值:此函数通过输入法线的XY信息通过计算得到Z的数值并附加XY最终输出正确的法线信息。
scene color :场景颜色(使用时要更改材质的混合模式为半透明)
dot product:点积;标量积(可以大概理解为计算两个向量,如果两个向量是相对方向的那么输出1,如果是相同方向的那么输出-1,侧面方向输出0.)
camera vector 相机向量(输出的是像素到相机的方向,不是距离)
reflection vector 反射向量 (输出的是表面法线反射到相机的方向,与相机向量的区别是x,y数值是相反的)
CustomReflectionVector:自定义反射向量 (连接至某贴图的UV节点,作用是使贴图包裹住物体,假反射作用)
VertexNormalWS 顶点法向 ,每一个顶点的法向量
PixelNormalWS: 像素法向 输出每个像素的法线方向(与顶点法向区别在于,如果模型是带法线贴图的,法线贴图会影响像素法向,而不会影响顶点法向)
world position 绝对世界位置 表达式输出当前像素在全局空间中的位置,(不是物体的世界位置的值:),例如当物体缩放时物体的世界位置的值是不会改变的,但是像素的位置是改变的。 单位是厘米。相对于绝对坐标,每增加一厘米就多一个单位的值
Actor position 物体位置 输出的是xyz的三维数值
object position 输出的是物体中心的世界位置(不受物体坐标轴的影响)(他是通过物体的边界框确定的轴心可以通过细节面板更改边界框的大小而改变object position的对应轴的位置
)
camera position 相机位置 输出的是相机的世界位置,针对不同相机的输出数值是不一样的,例如以下视图相机与创建的摄像机的对应大小是不同的
object bounds 物体边界 输出的是物体的xyz的长度大小(不存在负值)按厘米计算。(一个地图网格的长度是100cm)
object radius 物体半径 这个输出的是个标量,输出的是xyz方向中最大的那个半径值
object orientation 物体朝向 输出的是物体朝向的方向,以下的箭头都是用了同一个只在base color中连接了此节点的材质
screen position 屏幕位置(浏览窗口,显示器显示的屏幕的大小位置) 是一个二维数据第二个输出的是屏幕像素的位置大小(第二张图中的左上角)
transform vector (搜索transform可以搜索出来)把向量从一个参考坐标系转化为另一个参考坐标系
distance 距离 接受两个输入,然后输出它们之间的距离
pixel depth 输出的是像素的深度(相机和像素之间的距离)
scene depth 场景深度,输出的是它背后的像素到相机之间的距离矩形框是相机,输出的是地板像素到相机之间的距离,此节点适用于半透明材质
depth fade:此节点只适用于半透明材质,此节点作用是使物体与其他物体接触的地方为黑色其余为白色。(将次节点连接到不透明度上面,作用是使该物体中与其他物体接触的地方变得比较透明使不那么生硬。)
CameraDepthFade:作用是通过相机距离得到黑白蒙版(离得远的输出白色离得近的输出黑色)第一个FadeLength控制的是开始产生白色向黑色渐变的距离,第二个Fade Offset控制的是完全变成黑色时的距离大小,当距离达到Fade Offset的大小后就完全变成黑色。例如Fade Length为2000,Fade Offset为4000c那么就是距离6000以上的都为白色,距离2000cm~6000cm的是白色到黑色的渐变,距离2000cm的为黑色。
hue shift 色调偏移
rotate about axis :绕轴旋转
通过材质实现模型自转:
LinerGradient 线性渐变(可以输出两个方向的)
3color blend 三色混合。将三个颜色进行混合
scene texture 节点,只能在后期处理材质中使用
世界对齐纹理
世界对齐法线、
作用:这两个不同的物体,但是都使用了同一个材质,都具有WorldAlignedTexture(WAT)效果,节点介绍中的右边XY XYZ Z控制的是贴图投影坐标轴。因为都具有WAT,因此无论上方的椭圆物体无论如何移动,都会显示正确的衔接纹理效果。
到最近表面的距离:指一个物体的像素到离自身距离最近的物体表面的距离的大小
simple grass wind 简单的实现风吹草动(其中additionalwpo可以将一个噪音图输入进去,作用是使风有一些随机性)(不一定是草,也可以是其他的摇摆的物体)的效果(配合顶点颜色使用shift+5的绘制功能可以实现控制哪些顶点随风移动)(着色模型调为双面植物,混合模式调为半透明,光照模型调为表面半透明体积)
fresnel :菲涅尔节点,其中指数控制的是衰减程度,更改为8后
基础反射部分控制的是材质本身的基本反射能力
height lerp 高度混合,制作地形材质时可以使用。A为基础层B为混合层,transition phase 为权重值 范围是0~1 控制混合的程度,height Texture连接基础层的高度图 contrast为对比度
height lerp with two height maps
用于混合两张不同的高度贴图,混合后的高度贴图可以指定给 height lerp的height texture。基础的高度图连height texture 1 混合的连到height texture 2 其中diffuse可以不指定。
spheremask 球形遮罩
flipbook 读取粒子动画纹理的节点其中乘以0.8的意义:如果不乘以0.8,那么此着色器得到的是每秒30帧的动画过程,如果需要的是输出24帧的动画那么只需要乘以0.8就可以得到符合视频的动画效果。因为300.8=24。
6的意义是指纹理是66帧的。
Landscape Visibility mask 适用于地形材质,将材质改为mask模式,将此节点连接到蒙版处就可以通过绘制工具绘制空洞,绘制时要更改为绘制可见性。
landscape layer sample 作用是获得地形层权重。通过参数名得到对应地形层的绘制的蒙版,通过绘制强度决定输出0~1的数值,可以通过这个节点配合来控制不同地形层的
LinearTosRGB和sRGBToLinear 作用是使线性值与sRGB的转换。 通过材质数学计算出来的是Linear如果要指定到材质Base Color Socket需要使用这个节点,但也可以简单的使用数值为2.2的Power节点将Linear转换为sRGB
swizzle:作用是交换通道数值,例如将一张贴图的RG通道输入到XY中,会输出GR的数值。利用这个节点可以的将贴图旋转(不是简单的仅仅是旋转,而是旋转后再镜像。),例如
smooth step 这个节点的作用是根据Alpha的数值与Min和Max进行对比,趋向于Min就趋向于0,趋向于Max就趋向于1.举例:Min设置为地形Z轴最低数值,Max设置为地形Z轴最高数值,Alpha连接世界位置后得到的: