虚幻引擎常用材质节点_UE5
记录笔者常用的材质节点,方便查阅
1 常用节点
1.1 基础运算
数学表达式 | 虚幻引擎文档 (unrealengine.com)
一维向量:值/数学定义中的向量/小于0-黑色,大于1-白色(单通道)
二维向量:二维坐标中的点/向量/R&G通道
三维向量:三维坐标中的点/向量/R&G&B通道
四维向量:R&G&B&A(比三维多了一个透明度)
一般向量和更高维向量进行运算,缺少的维度默认用0替代,但一维向量和二/三维向量进行运算,会复制其本身补全剩下两个维度(numpy的广播)
add+ :数学含义/位移/
Subtract- 数学含义/位移/
multiply* 数学含义/缩放/
divide/ 数学含义/缩放/
power^ 数学含义/
sqrt√ 数学含义开根/
Max 同样通道取最大
Min 同样通道取最小
性能消耗+ < - < * < /,运算时候推荐用+和 *
Multiply让灰色部分更亮、Power让灰色部分更暗,二者结合可以增加对比度,可以创建一个RadialGradientExponential 圆形遮罩来试验
1-x 节点 用于取反(颜色范围必须0-1)
Lerp 线性插值 alpha为1输出b,为0输出a
Abs 绝对值 用于对称图像
Ceil 向上取整(借位取整),输出整数 区分灰度 制作阶梯状蒙版
Floor 向下取整(舍位取整),输出整数 区分灰度 制作阶梯状蒙版
Truncate 去掉小数,取整数部分
Frac 去掉整数,取小数部分,图像如下,适合做循环效果
Sign 符号函数 大于0为1 小于0为-1
Clamp 截止到指定范围
Saturate 截止到[0, 1] 比Clamp节省性能
Step(y, x) 当x>y 时输出1,x<y时输出0
深入理解unity中的Step节点(ShaderForge) - 知乎 (zhihu.com)
fmod 求余 可以用于取周期/延展周期 类似离散信号的缩放 适合做条纹
我在虚幻学数学_UE4美术你有必要了解的数学基础(三) - 知乎 (zhihu.com)
Desaturation 去色 使用时会把颜色往两个方向变化,0不去色1去色
Time 值随时间变化 做动态
1.2 空间变换
- TransformVector 将向量变换到指定空间,通常用于法线
- TransformPosition 将位置变换到指定空间
- Normalize 归一化
1.3 纹理
- TextureSample纹理采样 Apply View MipBias:对贴图进行mipmap
- TexCoord 物体UV坐标 连到TextureSample的第一个输入(UVs)
- TextureObject 纹理对象 连到TextureSample的第二个输入(Tex)
- Panner:控制纹素移动,输出一个UV坐标。coordinate连uv通道(TexCoord),控制uv通道向某个朝向偏移,time连time,speed连一个二维向量
- Rotator:控制纹素转动
- Mask:多维转单维(breakoutfloat函数:拆分多维)
- Append:单维转多维
1.4 图像运算
sin cos 制作波形
arctan2 用法比较固定,生成扫描图、加载转圈 的效果
arctan2fast为近似版本,性能更好
Dot 点乘 用顶点法线和摄像机向量点乘,可以得到类似菲涅尔的效果,更节省性能(ps:所有非金属都有菲涅尔效果)
- Cross叉乘 可计算物体朝向/法向
- if 消耗比较大
- TwoSidedSign 当顶点法线方向为正时输出1,反之输出-1,用于双面材质(植物)纠正背面法线(与法线贴图相乘即可)
- Distance 获取距离 用于制作圆形遮罩(输入一个UV坐标和一个点然后提高对比度)
- Fresnel 菲涅尔 第一个参数(指数)控制边缘硬度 第二个参数(基础反射部分)控制范围
- Noise 生成灰度噪声 可以自己选择算法 关卡值越高越细腻
- VectorNoise 生成彩色噪声(向量)
- SphereMask 球形遮罩 如果A参数为世界空间的位置,可以做一个球体保护罩效果
- BumpOffset 输入高度图,通过像素偏移做视差效果
1.5 深度
- DepthFade 显示后面物体深度 通常用于求接触面(在混合模式不透明时失效)
- PixelDepth 像素深度 屏幕上的像素到摄像机的深度
- SceneDepth 场景深度 物体表面顶点到摄像机的深度
- 深度范围是0-1,但场景中的距离通常大于1米(100),所以要用除法修正
- 场景深度减去像素深度,可以模拟海的深度透视效果
1.6 位置输入
- WorldPosition绝对世界位置 获得物体每一个顶点所处的世界空间位置 用于判断面朝向
- Object Position 获得物体绝对中心所处的世界空间位置 用于判断面朝向
- Actor Position 获得Actor坐标轴所处的世界空间位置 用于判断面朝向
- WorldPosition减去ObjectPosition 可以得到挤出向量,Normalize后用于重映射法线为球体,如图
- CameraPosition 镜头(视口框)的世界位置
- CameraVector 注意是反的(物体到相机的向量)
- VertexNormalWS 世界空间中的顶点法线方向
- VertexTangentWS 世界空间中的顶点切线方向
- PixelNormalWS 世界空间中的片元(像素)法线 常被用于表现颜色
- SkyAtmosphereLightDirection 太阳光照方向
1.7 像素处理
这部分多用于后处理材质
- ScreenPosition 屏幕空间UV坐标
- SceneTexture 屏幕空间采样 比较常用的是获取场景深度和自定义深度
- 给物体设定自定义深度后,减去场景深度,可以将物体从场景中剔除,附加到后期处理盒子以获取ID贴图,辅助绘画和影视后期常用
- DDX 求偏导 水平像素的差值 可以用来计算法线
- DDY 求偏导 垂直像素的差值 可以用来计算法线
- DistanceFieldGradient
- DistanceToNearestSurface
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)