UE中基于FluidFlux插件实现洪水数据接入的一种思路

news/2024/11/5 11:20:23/文章来源:https://www.cnblogs.com/bningj/p/18527362

这是FluidFlux插件文档链接:

http://imaginaryblend.com/2021/09/26/fluid-flux/

FluidFlux插件原本可以在编辑器模式下,通过右键SimulationDomain保存模拟状态,这个模拟状态保存后是一个资产文件以及三张纹理图Ground,Height,Velocity。

img

SimulationDomain中有一个俯视的场景捕获相机,三张纹理图就是根据场景捕获得来的。Ground是在模拟过程中一直不变的,代表地面捕获结果,是模拟过程的基础高度图。Height中保存了水位高度信息,Velocity中保存了水流速信息。通过纹理图每个像素保存的信息对这片捕获的区域进行水体模拟还原,实际上也就是划分了栅格,栅格大小和多少是在domain中自行调节的。最高尝试过包围4096*4096大小的区域,每个像素代表2平方米,实际也就是8平方公里多一点。

接入外部已经生成好的洪水水位数据,可以将其映射到该区域对应的栅格内,反向手动生成高度图,如果有流速信息,亦可反向生成速度图。插件生成的Height纹理是PF_R16F格式,float数据需要转换到uint16格式进行逐像素的数据操作。Velocity纹理是RGBA8格式,通过材质看,似乎RG通道分别代表了xy流向速度,B通道存储了高度值,A通道存储的是和水面泡沫相关的数值。我只尝试手动生成了Height纹理,Velocity并不十分确定。

生成后,可根据Domain的Load方法,加载生成好的高度图,即可生成对应的水位模拟情况。

有几个点可能要注意:
①整个过程可以改造成运行时而不紧紧是编辑器态下可用,可实现在线的数据接入。如果只需要预制好一系列贴图,编辑器态下就够了。
②如果纹理过大,生成时间还是比较长的,还需要考虑显存占用问题。数据读入和纹理生成可以全都放到子线程中进行没有问题。会有较大的性能提升。
③如果数据不太丝滑,会导致直接生成的水面有尖峰,且相邻间水填充初始状态有问题,可以考虑先提前Load进去,模拟一小会,再把Domain中的Current State中的高度图与速度图做保存使用,这样保证在实际场景中的表现效果。
④水位高度图中每像素数据应该不是纯粹的相对于地面的水位高度数据,最终采用的一个方法是,在完全没有水的情况下捕获场景区域,存储一个基础Height,在此Height图逐像素值基础上加上水位高度。
⑤如果每像素栅格数值较大,则捕获场景会不够精细,有些凹凸不平的地面,会初始带有奇怪的水迹,在做数据映射时,可以考虑把这些没用的数据点额外减一个值,让他们的水位别凸出来。

最终方案已经基本完成,因为贴图较大,所以还是有一点卡顿情况,还有就是如③所说,平滑数据需要一些时间,实际运行时需要在后台跑挺长时间,但基本不影响主线程,不会造成大片的卡顿。

方案仅供参考,欢迎交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/827078.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3 有限体积法:推导方程

3 有限体积法:推导方程 基本原理和目标 (注意:这一节看不懂没关系,在后面的推导中会慢慢用到)质量、动量和能量的守恒流体的质量守恒 动量改变的速度 = 一个流体粒子上受到的力的总和(牛顿第二定律) 能量改变的速度 = 一个流体粒子吸收的热量,和作用在其上的功的总和(…

安全通道占用识别

安全通道占用识别系统利用现场已有的监控摄像头,安全通道占用识别通过先进的AI算法,对消防通道/安全通道进行实时监测。一旦监测到通道被占用、堵塞的情况,系统会立即发出告警,并通过多种方式将告警信息迅速推送给相关管理人员。这不仅极大提升了监控区域的管控效率,更为重…

【征程 6 工具链性能分析与优化-2】模型性能优化建议

01 引言为了应对低、中、高阶智驾场景,以及当前 AI 模型在工业界的应用趋势,地平线推出了征程 6 系列芯片。 在软硬件架构方面,征程 6 不仅保持了对传统 CNN 网络的高效支持能力,还强化了对 Transformer 类型网络的支持,主要表现为大幅强化了对逐点计算、数据搬运的能力。…

工人安全绳穿戴识别系统

工人安全绳穿戴识别系统采用视频图像自动识别的形式,工人安全绳穿戴识别系统通过安装在作业区域的监控摄像头,一旦发现工人高空作业未佩戴安全带的情况,系统可以立即发出告警,相关人员可以迅速采取措施,防止事故的发生。工人安全绳穿戴识别系统的应用还构成了对作业人员的…

ai抽烟检测识别预警摄像机

ai抽烟检测识别预警摄像机利用现场已有的监控摄像头对视频画面进行全天候实时监测,ai抽烟检测识别预警摄像机一旦发现抽烟动作、烟雾、火焰等可疑行为,系统将立即发出预警,并通过同步推送的方式提醒相关工作人员及时处理。这一技术的应用,不仅可以有效预防和减少公共场所的…

负载均衡补充

1.ngx平滑升级 平滑升级:升级过程中用的访问,不断开。传统升级.备份现有的ngx命令. 用新的版本的ngx命令替换原有的命令. 重启ngx.平滑升级准备好新的nginx命令(已经测试的) 检查旧版本的nginx是否运行,如果没有运行下. 把当前环境的nginx的命令备份,使用新的替换. ⭐ 通过ki…

.net core 项目使用log4net

引入nuget包 1.增加一个log4Net.config的文件<?xml version="1.0" encoding="utf-8" ?> <log4net><appender name="DebugAppender" type="log4net.Appender.DebugAppender" ><layout type="log4net.Layo…

UE中材质平铺随物体动态缩放

有两种主要方法实现材质对物体的动态平铺效果:

语忆科技携手火山引擎数据飞轮 探索智能客服场景新可能

放弃支付、申请退款、购后差评……消费者在电商平台的每一项操作背后,其实都有原因。而这些原因,往往深藏于消费者与商家客服沟通的十几条甚至几十条对话之中。在杭州语忆科技有限公司 CTO 魏志成看来,消费者与商家客服的沟通内容,其实是品牌商的一项重要数据资产,“一个愿…

『玩转Streamlit』--登录认证机制

如果你的Streamlit App中使用的数据的比较敏感,那么,保护这个App及其背后的数据免受未授权访问变得至关重要。 无论是出于商业机密的保护、用户隐私的维护,还是为了满足日益严格的合规要求,确保只有经过验证的用户才能访问特定的数据和功能,已成为大部分应用的一个基本需求…

《图解设计模式》 第五部分 访问数据结构

第十三章 Visotor 模式public class file extends entry{/* 省略 */puhblic void accept(Visitor v){v.visit(this);} }public class Main{public static void main(String args){Directory rootdir = new Dirctory("root");/* 省略 */rootdir.accept(new ListVisito…

Harbor双主复制高可用部署

环境信息:主机名称 IP 备注harbor01 192.168.61.56 harbor1服务器harbor02 192.168.61.57 harbor2服务器192.168.61.59 Nginx代理192.168.61.56/57 两个节点分别部署docker-ce ,docker-compose,harbor-offline-installer-v2.9.1.tgz部署docker-ce docker-composewget -P /etc/…