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。

相关推荐
努力学习的小廉9 分钟前
UE5 入门系列(三):核心框架类全解析
ue5
小雨爱测1 天前
3ds Max 入门到进阶:建模、材质、灯光与渲染全流程指南
3d·材质
平行云1 天前
建筑BIM/3D可视化轻量级实时评审与分享方案
unity·ue5·3dsmax·实时云渲染·云桌面·云游戏·建筑bim
FansAI_art3 天前
3D潮玩手办的材质还原与多角色同屏防崩坏
3d·材质
tianxuanjg4 天前
采购指南|航空复杂结构件高精度 CNC 加工采购选型指南
人工智能·经验分享·机器人·制造·材质
上海红同电子5 天前
红同电子线束工厂100问|绝缘护套采购,材质PVC、TPE、PP该如何选型?
数据库·经验分享·职场和发展·产品运营·制造·材质
Solange__6 天前
文旅景区怎么用AI生成3D导览?从航拍采集、地标重建到网页漫游的完整方案
人工智能·3d·语言模型·自然语言处理·材质·贴图·1024程序员节
BugPhysician6 天前
影之刃零首发UE崩溃排查:着色器缓存、虚拟内存与驱动版本
ue5·影之刃零·影之刃零报错·影之刃零进不去·ue崩溃·ue引擎崩溃·ue5引擎崩溃
电子云与长程纠缠8 天前
UE5魂系游戏开发教程05
开发语言·学习·游戏·ui·ue5
fanfan_hongyun8 天前
UE5.1 蓝图调用C++方法
ue5