在数字孪生和仿真研究过程中,会产生大量和三维空间相关的数值信息,比如设备外观的扫描数据、地形扫描数据、生产设备温度场/压力场、流体的速度场、流体扩散,以及各种仿真数据:速度,压力,应力,温度等 。
文章插图
这些数据的特点是数量大,使用二维图表呈现不直观,无法直观呈现数据的三维分布和数据随时间的变化 。
文章插图
文章插图
图扑软件 - 构建先进 2D 和 3D 可视化所需要的一切是基于 WebGL 的三维可视化引擎,在 WebGL 基础上封装了基本的三维模型创建、呈现的 API 。同时还封装了丰富的数学运算库,涵盖多维变换,几何计算等 。
图扑 SDK 开放灵活的架构也使得用户开发扩展功能非常方便,比如热力图(体)插件,流场粒子展示插件,体绘制插件等 。强大灵活的 3D 引擎可以让用户轻松实现三维模型的呈现编辑功能 。用户无需关心繁琐复杂的 WebGL 操作,可以将精力放到应用的业务层,节省开发费用,加快开发进程,通过三维动态直观展示方式,挖掘隐藏的信息内容,提升应用价值 。
本文针对以下 6 种呈现方式讨论使用图扑 SDK 实现的方法:
- 模型表面贴图
- 模型三维网格
- 粒子流贴图
- 粒子流体
- 体绘制
- 点云
下图是实现整个系统的架构:
文章插图
模型表面贴图
对于需要展示表面数据的应用,比如设备表面的温度,压力等,输入数据是模型表面的点坐标和数据值的集合,比如 x, y, z, value 。实现的方法:根据模型上每一个点 value 值计算出此点贴图的 UV 值 。
实现原理图如下:
文章插图
有以下两种情况需要用插值算法重新生成数据:
模型表面贴图
模型三维网格
下图是实现的原理 。主要增加了使用反距离加权法重新生成数据 。由于这一步计算量大,需要放到服务器上,作为数据预处理功能实现 。
文章插图
文章插图
文章插图
模型三维网格
三维网格展示在一个二维面上的属性在上一节 “模型表面贴图” 已介绍过 。这里主要介绍三维网格展示三维信息,比如三维速度场,三维温度场等 。
由于是一个三维的体,无法用贴图的方式给出网格的颜色信息 。此时需要用插值算法计算出规则空间网格的场信息 。比如在 x,y, z 整数值的点插值采样 。将采样获得的空间场信息以材质的方式传给图扑 SDK 。SDK 在渲染每一个点的时候,根据点周围的空间 4 个点做插值拟合获得属性值,并根据属性值范围计算出渲染的颜色 。具体流程参照下图:
文章插图
文章插图
文章插图
文章插图
上方为基于钻孔数据的三维地质模型可视化,智慧矿山是一个汇聚了多学科、多主题、多维空间信息的复杂系统,是在矿山地表和地下开采矿产资源的工程活动中所涉及的各种静、动态信息的全部数字化管理,智能分析,可视化展示,从而达到降本增效,实现企业利益的最大化 。
粒子流贴图
对于需要在一个面上展示的流体场,比如风场,水流场,压力场等,需要以动态的方式呈现,可以使用图扑粒子插件实现 。
系统基本原理如下图:二维流体场信息作为贴图资源传给图扑 SDK 。SDK 里使用贴图保存粒子的位置信息,利用流体场和粒子位置,计算出下一帧的粒子位置 。然后融合上一帧的输出和当前输出,实现粒子的移动尾迹效果 。
推荐阅读
- SpringBoot 各种 Web 容器服开启 AccessLog 日志
- 推荐2家国内比较好用的web组态可视化平台
- 什么是web渗透
- Web渗透_HTTP协议基础
- 旧安卓机别扔了,自制 Web 服务器了解一下!
- nginx web负载均衡配置
- GitLab 技术选型为何不同:坚持用 Web 框架十多年、坚决不用微服务
- 哪些后端框架对 Web 应用程序开发产生了巨大的影响?
- 互联网|中国美国忙了半天 结果非洲先进入Web3
- 怎么看QQ轨迹?