虚幻引擎常用材质节点_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为近似版本,性能更好

雷达图生成算法_腾讯新闻 (qq.com)

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
<think>好的,用户问的是“UE5材质节点调用2U”,我需要先弄清楚用户的具体需求。可能用户是在使用Unreal Engine 5材质编辑器时,遇到了需要将两个不同的材质节点或参数合并到同一U维度(即水平纹理坐标)的情况,或者想要了解如何通过材质节点操作纹理坐标的U方向,比如平铺、偏移等。 首先,我需要回忆UE5材质编辑器中常用节点。比如Texture Coordinate节点,可以用来获取UV信息,然后通过Component Mask分离出U和V分量。用户提到的“2U”可能是指将U值乘以2,从而让纹理在水平方向平铺两次。或者可能是需要将两个不同的U值进行某种运算,比如加法、乘法等,合并到U通道。 接下来,用户可能的应用场景包括纹理平铺控制、材质混合、动态UV动画等。例如,在制作地形材质时,可能需要混合两种不同的纹理,各自有不同的平铺率,这时候就需要分别调整它们的UV平铺。或者在做动态效果时,需要通过Time节点和运算节点动态改变U值,实现滚动效果。 然后,我需要考虑如何构建这样的材质网络。首先,使用Texture Coordinate节点获取基础UV,然后用Multiply节点乘以标量2,这样U方向就会平铺两次。如果用户需要合并两个不同的U值,可能需要使用Append节点将处理后的U和原来的V组合成新的UV坐标。 另外,可能需要注意材质函数的使用,或者是否需要通过参数化控制U的倍数,使其可以在实例中调整。例如,使用Scalar Parameter来代替固定的2,这样用户可以在材质实例中灵活调整平铺次数。 还要检查是否有常见的错误,比如忘记分离UV通道,导致V分量被错误地处理,或者在Append节点时顺序搞错,导致UV颠倒。此外,性能方面,过多的纹理采样和运算可能会影响性能,需要建议用户合理优化。 最后,可能需要举例说明一个具体的案例,比如如何创建平铺两次的纹理,或者如何混合两个不同平铺率的纹理。同时,提醒用户测试材质效果,在视口中实时查看调整结果,确保符合预期。</think>在Unreal Engine 5中实现"材质节点调用2U"通常指通过材质编辑器控制纹理UV的U轴平铺或运算。以下是分步说明: 🔧 步骤1:获取基础UV 1. 右键点击材质图表 -> 搜索添加 `TextureCoordinate` 节点 2. 默认输出UV(0),如需多套UV可修改`Coordinate Index` ✂️ 步骤2:分离U通道 1. 添加 `ComponentMask` 节点 2. 勾选R通道(对应U轴),此时输出仅保留U值 🔄 步骤3:U轴运算 1. 添加 `Multiply` 乘法节点 2. 将分离的U通道连接A引脚 3. 创建 `ScalarParameter` 命名为"U_Tiling",默认值设为2,连接B引脚 * 此时U轴完成2倍平铺 🧩 步骤4:重组UV 1. 添加 `Append` 节点 2. 处理后的U值连接X引脚 3. 原始V值连接Y引脚(通过新的ComponentMask提取) 🌐 应用示例:动态滚动材质 ``` [Time] --> [Sine] --> [Multiply(速度参数)] ↳ 连接至U轴偏移 [处理后的UV] --> [TextureSample] ``` 💡 高级技巧: 1. 使用 `CustomUVs` 实现多UV集混合 2. 通过 `Panner` 节点简化UV动画 3. 结合 `VertexColor` 实现局部UV控制 ⚠️ 注意事项: - 平铺值过大会降低纹理精度 - 复杂UV运算可能增加材质指令数 - 建议通过材质实例参数化控制变量 测试时可在预览窗口中观察纹理变化,通过调整参数实时查看U轴缩放效果。建议从简单2倍平铺开始,逐步添加动态功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值