图扑 Web 可视化引擎在仿真分析领域的应用
前言
在数字孪生和仿真研究过程中,会产生大量和三维空间相关的数值信息,比如设备外观的扫描数据、地形扫描数据、生产设备温度场/压力场、流体的速度场、流体扩散,以及各种仿真数据:速度,压力,应力,温度等。
这些数据的特点是数量大,使用二维图表呈现不直观,无法直观呈现数据的三维分布和数据随时间的变化。
图扑软件是基于 WebGL 的三维可视化引擎,在 WebGL 基础上封装了基本的三维模型创建、呈现的 API。同时还封装了丰富的数学运算库,涵盖多维变换,几何计算等。
图扑 SDK 开放灵活的架构也使得用户开发扩展功能非常方便,比如热力图(体)插件,流场粒子展示插件,体绘制插件等。强大灵活的 3D 引擎可以让用户轻松实现三维模型的呈现编辑功能。用户无需关心繁琐复杂的 WebGL 操作,可以将精力放到应用的业务层,节省开发费用,加快开发进程,通过三维动态直观展示方式,挖掘隐藏的信息内容,提升应用价值。
本文针对以下 6 种呈现方式讨论使用图扑 SDK 实现的方法:
- 模型表面贴图
- 模型三维网格
- 粒子流贴图
- 粒子流体
- 体绘制
- 点云
以下介绍的方法中,为了提高前端的性能和用户体验,涉及到大量数据处理的操作都可以放到服务器上实现。前端只负责少量运算和效果展示。
下图是实现整个系统的架构:
模型表面贴图
对于需要展示表面数据的应用,比如设备表面的温度,压力等,输入数据是模型表面的点坐标和数据值的集合,比如 x, y, z, value。实现的方法:根据模型上每一个点 value 值计算出此点贴图的 UV 值。
实现原理图如下:
有以下两种情况需要用插值算法重新生成数据:
- 模型表面贴图
- 模型三维网格
下图是实现的原理。主要增加了使用反距离加权法重新生成数据。由于这一步计算量大,需要放到服务器上,作为数据预处理功能实现。
模型三维网格
三维网格展示在一个二维面上的属性在上一节 “模型表面贴图” 已介绍过。这里主要介绍三维网格展示三维信息,比如三维速度场,三维温度场等。
由于是一个三维的体,无法用贴图的方式给出网格的颜色信息。此时需要用插值算法计算出规则空间网格的场信息。比如在 x,y, z 整数值的点插值采样。将采样获得的空间场信息以材质的方式传给图扑 SDK。SDK 在渲染每一个点的时候,根据点周围的空间 4 个点做插值拟合获得属性值,并根据属性值范围计算出渲染的颜色。具体流程参照下图:
上方为基于钻孔数据的三维地质模型可视化(点击文字跳转查看智慧煤矿往期回顾),智慧矿山是一个汇聚了多学科、多主题、多维空间信息的复杂系统,是在矿山地表和地下开采矿产资源的工程活动中所涉及的各种静、动态信息的全部数字化管理,智能分析,可视化展示,从而达到降本增效,实现企业利益的最大化。
粒子流贴图
对于需要在一个面上展示的流体场,比如风场,水流场,压力场等,需要以动态的方式呈现,可以使用图扑粒子插件实现。
系统基本原理如下图:二维流体场信息作为贴图资源传给图扑 SDK。SDK 里使用贴图保存粒子的位置信息,利用流体场和粒子位置,计算出下一帧的粒子位置。然后融合上一帧的输出和当前输出,实现粒子的移动尾迹效果。
图扑粒子插件可以实现以下参数可调节:
- 粒子的大小
- 粒子的形状
- 粒子的流速
- 粒子数量
- 显示的阈值
- 仿真精度等
粒子流体
对于需要展示三维空间的矢量场,比如风场,速度场等,需要以动态的方式呈现。可以使用图扑粒子插件实现。插件的主要输入数据是三维矢量场。它是在服务器端通过对矢量场按照固定间隔采样拟合获得。
图扑三维粒子插件可以实现和二维粒子流相似的参数调节:
- 粒子的大小
- 粒子的形状
- 粒子的流速
- 粒子数量
- 显示的阈值等
体绘制
体绘制是一种将三维空间中的体数据,渲染到二维图形上的技术。体绘制可以在二维平面上展示出三维空间中的数据,可直观窥探物体内部细节,因此可应用于各种电、热、磁场的仿真,水污染扩散仿真、海洋遥感三维可视化、医学影像(CT) 展示等。
电力行业中,变压器是一种重要的设备,变压器绕组的温度分布,特别是热点温度,是制约变压器运行安全和使用寿命的重要因素。本案例中通过体绘制的方式展示变压器绕组温度场。首先通过有限元仿真,对变压器内部的热传导过程模拟,最终得到变压器内部的温度分布规律。将有限元仿真出的温度数据,通过插值的方法获得整个绕组的温度切片。这里有多种插值算法,如反距离加权法、克里金法、自然邻域法、样条函数法等。这里采用反距离加权算法。
种体绘制的算法有多种:光线投射算法、抛雪球算法、错切变形算法。三种算法相比较,光线投射算法计算量相对较大,但是绘制的图像质量较高,有利于保留图像细节,这里我们选用光线投射算法。为了保证渲染速度,我们要对光线投射算法进行了优化,减少不必要计算量。通过优化,可以做到在有非集成显卡的普通 PC 机上,轻松实时渲染数百万以上点的有限元分析结果。
此外,可以对渲染结果进行裁切,展示绕组任何切面的温度分布情况。
以下案例是体绘制在 CT 可视化领域的应用:
点云
图扑引擎内置对点云的支持。支持的点数量可达千万。点云里每个点的贴图/形状可配置。
点云可以用于展示模型本身或者模型表面的属性信息,比如压力和温度等。
对于激光点云数据,通常一个点的信息包含三维坐标和颜色值,比如 x,y,z,r,g,b 六个字段。将三维坐标和颜色信息传给图扑点云可以直接展示模型。对于大场景或高精度的点云模型,由于点数据量巨大,无法全部显示。可以采用空间划分和 LOD 技术,生成不同分辨率的点云模型,按需加载。需要展示局部高精度模型时,只加载局部高精度模型信息。
对于需要展示变化过程需求,图扑引擎支持定制插件(shader),通过将多个时间点的颜色信息传给 shader,shader 根据时间进度信息插值计算出某一时间t的颜色,进行渲染。JavaScript 主程序循环更新运行时间t。这样的优点是主要的计算量放到显卡,仿真进度(时间)可以灵活调节,整个展示过程流畅不卡顿。流程参照下图:
更多应用场景
仿真分析技术的应用范围涵盖社会的诸多方面,本文我们也对图扑可视化引擎在数值仿真分析领域的应用做了一些介绍。
仿真分析的意义和作用在于当所研究的系统造价昂贵、实验的危险性大或需要很长的时间才能了解系统参数变化所引起的后果时,仿真是一种特别有效的研究手段。
结合图扑软件 Web 可视化引擎为工程仿真、气象预报、生命科学、科研教育、电力系统、交通运输、工业制造等不同领域的发展起到了推动作用,为不同的行业发展注入了新的动力。
图扑软件强大灵活的前端可视化引擎自主研发设计,未使用第三方开源库实现。友好的 API 和灵活的可扩展性,使得图扑引擎开发的产品具备高性能,高可扩展性,用户可以灵活轻松的实现各种展示效果。
图扑软件已广泛应用于智慧城市、园区、楼宇、工厂、智能制造、水务、能源、光伏、风电、电力、新基建、运维、政务、交通、医疗、金融、科研等行业。累计为包括三一、宝信、南瑞、华为、腾讯、西门子、施耐德、霍尼韦尔等众多国内外企业提供专业的数字化服务,为企业提供设备的实时监测、运营维护和安全预警、仿真分析等相关需求。
更多行业应用实例可以参考图扑软件官网案例链接:图扑软件 - 构建先进 2D 和 3D 可视化所需要的一切
图扑 Web 可视化引擎在仿真分析领域的应用的更多相关文章
- 图扑软件正式加入腾讯智维生态发展计划,智能 IDC 开启数字经济新征程
4 月 23 日,主题为<智汇科技,维新至善>的腾讯数据中心智维技术研讨会在深圳胜利召开,发布了腾讯智维 2.0 技术体系,深度揭秘了智维 2.0 新产品战略和技术规划.图扑软件(High ...
- 图扑软件 3D 组态编辑器,低代码零代码构建数字孪生工厂
行业背景 随着中国制造 2025 计划的提出,新一轮的工业改革拉开序幕.大数据积累的指数级增长为智能商业爆发奠定了良好的基础,传统制造业高污染.高能耗.低效率的生产模式已不符合现代工业要求. 图扑拖拽 ...
- G2 2.0 更灵活、更强大、更完备的可视化引擎!
概述 G2作为一款技术产品,自诞生以来,服务于广大的Web工程师群体和一部分数据分析师.一直来,G2 因其易用的语法和扎实的可视化理论基础,广受使用者好评.G2 1.x 的可视化能力已经非常强大,使用 ...
- WEB 三维引擎在高精地图数据生产的探索和实践
1. 前言 高精地图(High Definition Map)作为自动驾驶安全性不可或缺的一部分,能有效强化自动驾驶的感知能力和决策能力,提升自动驾驶的等级.对于自动驾驶来说,高精地图主要是给机器用的 ...
- 图数据 3D 可视化在 Explorer 中的应用
本文首发于 NebulaGraph 公众号 前言图数据可视化是现代 Web 可视化技术中比较常见的一种展示方式,NebulaGraph Explorer 作为基于 NebulaGraph 的可视化产品 ...
- Cayley图数据库的可视化(Visualize)
引入 在文章Cayley图数据库的简介及使用中,我们已经了解了Cayley图数据库的安装.数据导入以及进行查询等. Cayley图数据库是Google开发的开源图数据库,虽然功能还没有Neo4 ...
- docker学习(三) 安装docker的web可视化管理工具
1.docker是一个一款很轻便的应用容器引擎,为了更好的管理和使用docker,使用web可视化管理工具似乎更符合大多数人的需求.在这里,我给大家分享下自己使用过的几款web工具:docker UI ...
- vivo web service:亿万级规模web服务引擎架构
本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/ovOS0l9U5svlUMfZoYFU9Q vivo web service是开发团队围绕奇点 ...
- docker--docker 的web可视化管理工具
12 docker 的web可视化管理工具 12.1 常用工具介绍 当 Docker 部署规模逐步变大后,可视化监控容器环境的性能和健康状态将会变得越来越 重要. Docker的图形化管理工具,提供状 ...
随机推荐
- Bugku CTF练习题---MISC---眼见非实
Bugku CTF练习题---MISC---眼见非实 flag:flag{F1@g} 解题步骤: 1.观察题目,下载附件 2.拿到手以后发现是一个压缩包,打开是一个Word文档,观察其中的内容,除了开 ...
- k8s和Docker关系简单说明
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 这篇文章主要介绍了k8s和Docker关系简单说明,本文利用图文讲解的很透彻,有需要的同学可以 ...
- Linux服务器如何识别移动硬盘?
序言 通常我们使用的移动硬盘或U盘一般都是ntfs或fat32的文件系统,常跟服务器打交道的小伙伴,会经常遇到把移动硬盘或U盘上的数据拷贝到Linux服务器上.绝大多数Linux发行版内核支持fat3 ...
- 浅谈Nginx性能调优
点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! Linux系统参数优化 下文中提到的一些配置,需要较新的 ...
- 万字长文深度剖析 RocketMQ 设计原理
幸福的烦恼 张大胖最近是又喜又忧,喜的是业务量发展猛增,忧的是由于业务量猛增,一些原来不是问题的问题变成了大问题,比如说新会员注册吧,原来注册成功只要发个短信就行了,但随着业务的发展,现在注册成功也需 ...
- 二、深入学习c++需要掌握的基础知识
一.掌握形参带默认值的函数 给定默认值的时候是从右向左给,因为函数在内存中的压栈顺序是按照形参列表的元素从右向左依次向内存中压栈 形参是否有默认值对调用效率的问题:如果有一个默认值,在函数调用的过程中 ...
- AOSP查看当前要打进系统里的都有哪些包
发现问题: 修改系统时常常需要预置APK,这就要修改PRODUCT_PACKAGES这个变量,那么如何查看这个数组的值呢?我们可能直接在mk文件中去打印它,后来发现打印它只会显示继承关系(即继承自了哪 ...
- [codeforces] 暑期训练之打卡题(二)
每个标题都做了题目原网址的超链接 Day11<Given Length and Sum of Digits...> 题意: 给定一个数 m 和 一个长度 s,计算最大和最小在 s 长度下, ...
- MongoDB 各项命名规范
每日一句 Progress is the result of a bunch of failures. 进步是不断失败的成果. 概述 MongoDB涉及到的一些比如集合啥的命令规范. 集合的命名规范 ...
- python将test01文件夹中的文件剪切到test02文件夹中
将test01文件夹中的文件剪切到test02文件夹中 import shutil import os def remove_file(old_path, new_path): print(old_p ...