UE5 材质节点 十字光斑效果

近期看见一十字光斑教程,通过对传入UV进行变化在SphereMask阶段实现变化:

(出处:https://www.bilibili.com/video/BV1jjSmBDE2n)

饶有兴趣,拆解研究下。

1.本质是UV传入阶段对UV进行修改,首先将UV转换到-1 - 1区间,加上abs节点实现镜像。

2.如果再加上幂运算,可以实现曲线式的分布

3.绘制出来可以理解

4.原版中最后一步用了SphereMask,于是借助AI提取了UE SphereMask伪代码:

复制代码
函数 GenerateHLSLExpression(Generator, Scope, OutputIndex, OutExpression):
    // 获取 A 和 B 的 HLSL 表达式
    ExpressionA = 获取 A 的 HLSL 表达式
    ExpressionB = 获取 B 的 HLSL 表达式

    // 如果 A 或 B 无效,则返回失败
    如果 ExpressionA 或 ExpressionB 为空:
        返回 False

    // 计算 A 和 B 之间的距离
    ExpressionDistance = 计算 A 和 B 之间的距离

    // 获取 Radius 的 HLSL 表达式(或常量),并确保其有效
    ExpressionRadius = 获取 Radius 的 HLSL 表达式 或 使用 AttenuationRadius 常量
    ExpressionRcpRadius = 计算 1 / 最大(表达式 Radius, 0.00001)

    // 归一化距离(使用半径进行缩放)
    ExpressionNormalizedDistance = 距离 * 1 / 半径

    // 获取 Hardness 的 HLSL 表达式(或常量),并转化为百分比
    ExpressionHardness = 获取 Hardness 的 HLSL 表达式 或 使用 HardnessPercent 常量 * 0.01

    // 计算 Softness,Softness = 1 - Hardness
    ExpressionSoftness = 1 - Hardness

    // 计算 Softness 的倒数,避免除以零
    ExpressionRcpSoftness = 1 / 最大(Softness, 0.00001)

    // 计算 1 - 距离
    ExpressionOneMinusDistance = 1 - 距离

    // 最终的表达式计算:根据 Softness 和 1 - 距离 生成遮罩效果
    OutExpression = Saturate( (1 - 距离) * (1 / Softness) )

    返回 True

似乎比较麻烦,但仔细一想直接上smoothstep应该也行。

4.所以最后再加上smoothstep提取发光区域即可完成,这个效果核心就是用power修改传入uv。

相关推荐
directx3d_beginner2 天前
42,将移向指定位置改为c++
ue5
三棵树园艺3 天前
室内仿真假山流水工程避坑指南|2026行业数据+材质测评+标准化施工全方案
材质
敲代码娶不了六花3 天前
Blender 3.6 Eevee 玻璃材质只反射世界环境,无法透视透明问题解析
blender·材质
Martina_03214 天前
AI生成的过山车轨道导入后频繁脱轨?用5步检查样条、轨距与碰撞
图像处理·人工智能·游戏·3d·材质·游戏策划·关卡设计
三棵树园艺4 天前
商业软装消防验收避坑技术复盘|仿真绿植阻燃等级国标规范、造假原理与落地解决方案(2026数据实测)
创业创新·材质
ue星空5 天前
UE5放了playstart显示badsize解决方案
ue5
njsgcs5 天前
SIFU透明面片材质下载
材质
directx3d_beginner7 天前
41,从UE5.1迁移到UE5.8排坑全记录
ue5
HwJack208 天前
【共创稿事节】HarmonyOS 7材质与光照:真实感的营造与性能的平衡
pytorch·harmonyos·材质
NailiConveyor9 天前
输送机皮带材质选型指南:PVC、PU、橡胶、模块化塑料各适用什么场景?
大数据·运维·自动化·制造·业界资讯·材质