UE5
2025-12-25
UE5 Niagara风场系统
UE5利用NS制作风场
概述
本文介绍使用 UE5 Niagara System 制作风场的完整流程,包括流体模拟、速度场数据写出和粒子验证。当然也可以自己写入custom代码进行流体模拟
数据准备
渲染目标(Render Target)
RTData - float32格式
RTWindField - half16格式
实现流程
创建Niagara流体系统
快速创建一个带流体模拟的NS系统
关闭左右两个输入和展示的粒子
设置中间一个流体模拟的一些参数,这是我自己按照自己想要的了来的
然后在搜集碰撞体这里加上tag,过滤一下输入源
速度场数据写出
这里创建一个NS 脚本,然后在外部创建两张RT,这里输入这脚本
因为我当前版本不支持3D纹理,好像在5.7就支持直接写3D纹理,这里用2D模拟,这里的Execution Index To Grid Index,应该就是Compute Shader的线程ID
另一个小RT,只有三个像素,就存模拟盒的大小位置和纹素大小
记得在最开始还有个节点是设置这两个RT的分辨率大小

速度场可视化
然后在场景里面放一个球,拖动一下,可以看到RT已经有了数据

创建一个测试粒子,注意它的节点里面要有解析力和速度的节点如图红框下面一个
又有两个新的NS函数,一个是解析刚才写出的模拟盒信息,还有就是解析风速
解析风速的坐标映射,计算出UV,要是能读写3D纹理就更快了,还有硬件过滤

然后在测试粒子里面我简单的把速度相加
测试视频
参考
https://zhuanlan.zhihu.com/p/616999277