UE4 Niagara+点云 烟雾模拟(2)

本文描述了一种通过对动力学仿真软件导出数据进行分析,将其转化为点云数据,从而压缩成纹理数据,通过UE4的Niagara粒子系统进行烟雾模拟的过程。上片文章我们实现了通过解析点云文件并在Niagara生成点云显示

最终效果如下:

整个实现过程中借鉴了以下的技术分享,在此表示感谢:

https://www.bilibili.com/video/BV1eL411g7Xp/?spm_id_from=333.788  可交互体积云

https://zhuanlan.zhihu.com/p/107016039 干冰体积雾

http://www.fullofstars.de/   UE4点云插件

烟雾粒子的流动速度和方向展示

为了更加直观的把烟雾的流动方向和流动速度展示出来,在Niagara粒子的render模组下,我为每个粒子增加了meshRender属性

 

 并设置渲染的mesh为UE4内置的Arrow,同时修改FacingMode为Velocity

 在设置渲染的同时,还要给粒子设置运动速度,因为我们前面已经把速度值通过纹理贴图传进来(参加上篇文章),在Niagara粒子里自定义模块:

 

 这里的自定义模块需要解释一下,首先我们传入两个TextureSample,即我们传进来的速度纹理贴图和其他数据纹理贴图,输入一个Vector2D作为采样的点,在模块内部通过SampleTexture2D对两张纹理贴图数据进行采样,获取得速度信息设置为粒子的速度,将采样获取的其他信息通过DyamicMaterailParamer传入到粒子纹理中,在纹理函数中我们根据传入的信息对纹理进行展示的设置,这个后面再说

 

 同时,我们根据速度的大小进行判断,如果粒子运行速度太小,就将该粒子杀死,这样能过滤掉无效的粒子,增加显示效率。

 现在,如果我们运行Niagara粒子,可以看到烟雾运动的轨迹了:

烟雾粒子的效果展示

 接下来就是烟雾粒子的展示了,为Render模组下添加Sprite Renderer,并指定rednder的材质

 

 烟雾效果是这个样子:

可以看到大致有些烟雾的样子了,后续我们需要根据传进来的DyamicMaterailParamer属性对材质进行处理。

后记

当前阶段在Niagara粒子中我们简单的实现了烟雾的模拟,但是仿真程度还稍微差些,主要是在烟雾材质的处理上,甚至我们可以仿照Asher大神的体积雾对烟雾的细节进行修改,同时我们的由于我们的烟雾是Niagara粒子,还可以做一些角色互动的交互动作,后续有机会再继续完善,今天先写到这里。

posted @ 2022-06-08 15:00  小手一拿  阅读(563)  评论(4编辑  收藏  举报