基于三维数字地球的物理仿真系统及其使用方法
技术领域
本发明涉及物理仿真与三维地理信息系统技术领域,具体涉及一种基于三维数字地球的物理仿真系统及其使用方法。
背景技术
三维数字地球以多源遥感影像、矢量地形图、数字高程模型、三维数字城市模型、倾斜摄影模型、街景影像数据等海量多源地理信息数据为基础,实现对地球表面地形地貌的多尺度多角度三维可视化表达,具备对日、月、云、星空、海洋、雨雪雷电等自然对象与自然状态的模拟仿真能力。结合网络通信、虚拟现实、大数据分析等技术,可在城市规划、作战演习、国土安全等多领域提供辅助分析决策的能力。
物理引擎技术是使用计算机实现对物理实体之间物理状态与物理属性计算的技术。现今,物理引擎技术已在游戏领域得到广泛应用,可实现刚体、柔体等特性模拟,但是,应用场景多局限于小规模平面区域,未深入结合全球大范围尺度,未曾考虑地球曲率因素与真实地表起伏因素。
三维数字地球具备场景尺度大、运动模拟复杂、表达多样性等特点,并且,现有三维数字地球系统以静态展现各尺度场景为主,辅以三维动画与特效,可实现对各种地理空间信息数据的静态展现和分析,以及动态场景的直白描述。其中,动态场景描述无法表达地球表面物理实体之间的作用关系,在实际应用中仅具备简单描述动态场景能力,不具备辅助分析功能,表达单调且不符合现实情况。同时,现有的物理引擎技术仅适用于局部平面场景,例如商业游戏中人物与墙面之间的碰撞等,不适用与全球尺度范围内球体表面物理实体间物理关系的计算与可视化表达。
发明内容
发明目的:为了克服现有技术中存在的不足,提供一种基于三维数字地球的物理仿真系统及其使用方法,其将三维数字地球与物理引擎技术结合,综合考虑地球表面地表起伏形态与地球曲率因素,从而可实现三维数字地球中局部至全球不同尺度场景内物理状态的真实表达。
技术方案:为实现上述目的,本发明提供一种基于三维数字地球的物理仿真系统,包括三维数字地球、可视化场景编辑和物理仿真引擎。
所述三维数字地球部分提供对地球的三维模拟仿真能力,具备对全球地理信息数据的管理、组织与显示功能,是整个物理仿真系统的基础显示平台。
所述可视化场景编辑部分提供对物理实体的流程化编辑,以可视化的方式,实现动画场景与物理属性的快速构建与设定,而达到无需修改代码即可构建新场景的能力。
所述物理仿真引擎部分提供适用于全球尺度的物理状态分析与计算能力,提供多种典型的物理算法,是整个系统具备物理特性的基础。
进一步地,所述三维数字地球部分包括以下功能模块:
数据管理与组织部分主要负责地理信息数据的管理,数据包括矢量数据、影像数据、数字高程模型数据、街景数据、倾斜摄影模型数据等,提供高效的组织形式,实现场景的快速调度;
地理信息分析部分提供典型的地理信息系统领域分析功能,包括可视与分析、导航规划、缓冲区分析等;
三维要素仿真主要负责现实场景的模拟表达,包括地形地貌、路网建筑、日月星空、山河海洋、雨雪雷电等,同时负责三维数字地球中所有物理实体与非物理实体的组织渲染。三维要素仿真部分物理实体与非物理实体的行为设置与组织渲染相互分离,用户仅需要利用可视化工具,按照要求设定实体的物理与非物理属性以及物体间交互逻辑,即可实现场景的部署,三维数字地球根据设定内容自动实现场景的演练以及实体的生命周期管理。
进一步地,所述可视化场景编辑部分,提供灵活的人机交互工具,具备对场景快速读写、快速构建、灵活控制的能力。其主要分为实体库管理模块、动画编辑模块、物理属性管理模块和场景控制与管理模块,各模块的主要功能如下:
1、实体库管理模块其功能主要包括场景文件的读写操作和对实体的管理与标绘。
场景文件的读写操作功能可将当前场景信息保存为工程文件,也可通过工程文件迅速恢复当前场景中各实体的信息。
对实体的管理与标绘功能,可实现三维数字地球中实体的拖动摆放,并对实体按照场景进行树状组织管理。
实体分为物理实体与非物理实体,物理实体为具备物理属性的几何实体,包括立方体、模型、球体等,非物理实体为不具备物理属性的几何实体以及诸如标牌、提示框、粒子特效等抽象意义上的实体。
2、动画编辑模块,其主要功能为实现对场景中实体运动轨迹与运动逻辑的编排,包括动画编辑器与流程编辑器。
动画编辑器可实现单个实体的运动轨迹设置,包括运动速度、加速度、运动方向等。
流程编辑器可实现多个实体间的有机结合,实体间以流程图的形式进行串联,流程图间可设置触发事件,从而实现复杂场景的设置。
3、物理属性管理模块主要用于实现对物理实体的物理属性状态的设置与管理。对于物理实体,可设置其实体类型,包括刚体、软体等,可设置其具体物理参数信息,包括物体摩擦系数、物体材质、物体密度、反弹系数等。物理属性管理模块是底层物理仿真引擎模块的可视化展现。
4、场景控制与管理模块主要用于实现对动画场景的控制,包括场景的开始、暂停、继续、加速、减速与结束。
物理仿真引擎部分,提供适用于全球尺度的物理状态分析与计算能力,实现对牛顿力学定律的表达。通由物理引擎,三维数字地球中的实体具备了质量属性,受到重力作用影响,可实现物体与地面间的真实交互,可实现物体间的碰撞,可响应外力作用,具备发生形变等特质。目前,物理引擎支持对刚体与柔体属性实体的物理状态计算与表达。
进一步地,物理仿真引擎部分具备对刚体运动状态的模拟,支持离散与连续碰撞检测的刚体仿真,在正确设置刚体形状、质量、静摩擦力、动摩擦力、弹性系数与材质属性等参数后,系统可自动实现碰撞检测与碰撞后运动状态的计算。
进一步地,物理仿真引擎部分支持刚体间点对点、铰链、滑动等约束模型,点对点约束可将两刚体限制在某个轴点处进行相对位置移动,例如人体关节;铰链约束则是将点对点约束中的轴点改为轴线,两刚体只可绕该转动轴进行旋转;滑动约束为两刚体只能沿着某一条轴线进行移动。
进一步地,物理仿真引擎部分具备对软体运动状态的模拟。支持橡皮球等类型软体运动状态的模拟,包括碰撞过程中的形变等。支持例如服装等布料类型的状态模拟,在正确设置布料阻力、布料厚度、布料是否使用重力、外部加速等属性后,可实现布料随风飘扬等效果,支持阅兵等场景中国旗迎风飘扬状态的仿真。
进一步地,物理仿真引擎部分粒子运动状态模拟,可用于战场环境中例如爆炸造成的碎石、尘土等效果的高效模拟。
进一步地,物理仿真引擎部分适用于全球范围不同尺度场景。按照尺度将场景分为局部区域平面场景与全球范围曲面场景。在局部区域平面场景中,各物理实体运动无需考虑地球曲率影响;在全球范围曲面场景中,需要考虑地球曲率对运动状态的影响,典型实例为洲际导弹的目标打击。在不同范围尺度内,运动状态计算均考虑地球表面地形起伏因素。
根据上述系统,本发明提供一种基于三维数字地球的物理仿真系统的使用方法,包括如下步骤:
1)打开三维数字地球软件,完成程序的初始化;
2)利用可视化编辑工具中实体库管理模块,依次在三维数字地球中部署实体,并设置实体的属性,主要包括实体的位置属性、几何属性、显示样式等,实体类型包括模型、几何图元、信息提示板等;
3)利用可视化编辑工具中动画编辑模块,设置实体的运动状态信息,运动信息包括初始速度、加速度等;
4)利用可视化编辑工具中动画编辑模块,以流程图的方式,将各实体进行串联,形成完备的动画场景,流程图中各要素可设置触发条件;
5)利用可视化编辑工具中物理属性管理模块,设置实体的物理属性,包括刚体柔体类型、静摩擦系数、动摩擦系数等内容;
6)利用可视化编辑工具中场景控制与管理模块,控制动画场景的播放暂停等操作。
进一步地,所述步骤2中部署实体的具体步骤如下:
2-1)点击实体库管理模块中实体列表中指定实体,在三维数字地球中指定位置点击实现部署;
2-2)调整模型位置,通过实体属性面板设定实体经纬度坐标调整实体位置,并且可以通过鼠标拖动,微调实体位置;
2-3)通过实体属性面板设置实体的属性,主要包括实体的位置属性、几何属性、显示样式等,实体类型包括模型、几何图元、信息提示板等。
进一步地,所述步骤3中实体的运动状态信息的设置具体为:点击三维数字地球中指定实体,在动画编辑模板中调整其运动曲线,运动曲线包括XYZ三轴分量,可设置初始速度、加速度以及运动曲线。
进一步地,所述步骤4中将各实体进行串联的步骤如下:
4-1)在流程图面板中利用关系线将各实体进行串联;
4-2)设置关系线代表的触发条件,触发条件可为系统自带逻辑,包括位置点相等、上一实体运动结束等,亦可通过布尔语句,实现复杂触发条件的设定。
有益效果:本发明与现有技术相比,将三维数字地球与物理引擎技术结合,综合考虑地球表面地表起伏形态与地球曲率因素,形成适用于全球尺度的物理仿真技术,其具备如下优点:
1、具备适用于多尺度场景的物理仿真能力,包括局部平面场景与全球曲面场景,综合考虑地球曲率因素;
2、综合考虑地球地表起伏形态因素,陆地表面运动可实现地表贴合,具备全球范围地形数据;
3、具备灵活的可视化物理动画场景构建能力,以流程图的方式,实现场景的快速构建,支持触发条件的自定义;
4、三维数字地球与物理引擎系统结合,交叉融合地理信息学科与物理仿真学科优势;
5、具备通过新增脚本文件实现系统特效的动态扩展,无需修改程序逻辑,减少的系统特效扩充的代价。
附图说明
图1为本发明仿真系统的结构示意图;
图2为本发明系统使用中实体部署的操作流程;
图3为本发明物理动画场景部署的操作流程;
图4为点对点约束模型;
图5为铰链约束模型;
图6为滑动约束模型。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明。
如图1所示,本发明提供一种基于三维数字地球的物理仿真系统,包括三维数字地球、可视化场景编辑和物理仿真引擎。
三维数字地球部分提供对地球的三维模拟仿真能力,具备对全球地理信息数据的管理、组织与显示功能,是整个物理仿真系统的基础显示平台。
可视化场景编辑部分提供对物理实体的流程化编辑,以可视化的方式,实现动画场景与物理属性的快速构建与设定,而达到无需修改代码即可构建新场景的能力。
物理仿真引擎部分提供适用于全球尺度的物理状态分析与计算能力,提供多种典型的物理算法,是整个系统具备物理特性的基础。
可视化场景编辑部分,提供灵活的人机交互工具,具备对场景快速读写、快速构建、灵活控制的能力。其主要分为实体库管理模块、动画编辑模块、物理属性管理模块和场景控制与管理模块,各模块的主要功能如下:
1、实体库管理模块其功能主要包括场景文件的读写操作和对实体的管理与标绘。
场景文件的读写操作功能可将当前场景信息保存为工程文件,也可通过工程文件迅速恢复当前场景中各实体的信息。
对实体的管理与标绘功能,可实现三维数字地球中实体的拖动摆放,并对实体按照场景进行树状组织管理。
实体分为物理实体与非物理实体,物理实体为具备物理属性的几何实体,包括立方体、模型、球体等,非物理实体为不具备物理属性的几何实体以及诸如标牌、提示框、粒子特效等抽象意义上的实体。
2、动画编辑模块,其主要功能为实现对场景中实体运动轨迹与运动逻辑的编排,包括动画编辑器与流程编辑器。
动画编辑器可实现单个实体的运动轨迹设置,包括运动速度、加速度、运动方向等。
流程编辑器可实现多个实体间的有机结合,实体间以流程图的形式进行串联,流程图间可设置触发事件,从而实现复杂场景的设置。
3、物理属性管理模块主要用于实现对物理实体的物理属性状态的设置与管理。对于物理实体,可设置其实体类型,包括刚体、软体等,可设置其具体物理参数信息,包括物体摩擦系数、物体材质、物体密度、反弹系数等。物理属性管理模块是底层物理仿真引擎模块的可视化展现。
4、场景控制与管理模块主要用于实现对动画场景的控制,包括场景的开始、暂停、继续、加速、减速与结束。
5、物理仿真引擎部分,提供适用于全球尺度的物理状态分析与计算能力,实现对牛顿力学定律的表达。通由物理引擎,三维数字地球中的实体具备了质量属性,受到重力作用影响,可实现物体与地面间的真实交互,可实现物体间的碰撞,可响应外力作用,具备发生形变等特质。目前,物理引擎支持对刚体与柔体属性实体的物理状态计算与表达。以下针对物理仿真引擎部分作出如下详细说明:
物理仿真引擎部分具备对刚体运动状态的模拟,支持离散与连续碰撞检测的刚体仿真,在正确设置刚体形状、质量、静摩擦力、动摩擦力、弹性系数与材质属性等参数后,系统可自动实现碰撞检测与碰撞后运动状态的计算。为了简化碰撞检测计算难度,采用AABB包围盒对刚体进行简化,对于三维世界中的物体,其表达为一个六面体,六面体的每条边都平行于一个坐标平面,在此基础上,构建动态AABB树(Dynamic AABB Tree),并在每个物体节点挂接物体的属性参数,例如加速度、角速度、速度等。在具体碰撞检测中,首先进行远距离碰撞检测,该步骤可快速实现物体是否有可能进行碰撞,对有可能碰撞的物体,进一步计算其碰撞触点等信息,然后根据下文中介绍的约束模型,计算获得碰撞后各个对象所对应的位置、速度、加速度以及是否碰撞后爆炸散列等信息。最后,更新刚体属性信息并输出给3D图形接口,完成随后数帧的渲染。
物理仿真引擎部分支持刚体间点对点、铰链、滑动等约束模型,参照图4,点对点约束可将两刚体限制在某个轴点处进行相对位置移动,使得两个刚体在此轴点的世界空间中相互匹配,典型例子为人体关节;参照图5,铰链约束则是将点对点约束中的轴点改为轴线,两刚体只可绕该转动轴进行旋转,该约束有效的限制了平移与其他两个方向角度的自由度;参照图6,滑动约束为两刚体只能沿着某一条轴线进行移动;对于约束分析,主要用于计算获得两刚体的雅克比矩阵,其中涉及众多刚体力学基础原理,核心算法主要为PGS数值计算算法等。
物理仿真引擎部分具备对软体运动状态的模拟。支持橡皮球等类型软体运动状态的模拟,包括碰撞过程中的形变等。支持例如服装等布料类型的状态模拟,在正确设置布料阻力、布料厚度、布料是否使用重力、外部加速等属性后,可实现布料随风飘扬等效果,支持阅兵等场景中国旗迎风飘扬状态的仿真。
物理仿真引擎部分粒子运动状态模拟,可用于战场环境中例如爆炸造成的碎石、尘土等效果的高效模拟。
物理仿真引擎部分适用于全球范围不同尺度场景。按照尺度将场景分为局部区域平面场景与全球范围曲面场景。在局部区域平面场景中,各物理实体运动无需考虑地球曲率影响;在全球范围曲面场景中,需要考虑地球曲率对运动状态的影响,典型实例为洲际导弹的目标打击。在不同范围尺度内,运动状态计算均考虑地球表面地形起伏因素。
参照图3,本发明提供一种基于三维数字地球的物理仿真系统的使用方法,包括如下步骤:
1)打开三维数字地球软件,完成程序的初始化;
2)利用可视化编辑工具中实体库管理模块,依次在三维数字地球中部署实体,并设置实体的属性,主要包括实体的位置属性、几何属性、显示样式等,实体类型包括模型、几何图元、信息提示板等;
3)利用可视化编辑工具中动画编辑模块,设置实体的运动状态信息,运动信息包括初始速度、加速度等;
4)利用可视化编辑工具中动画编辑模块,以流程图的方式,将各实体进行串联,形成完备的动画场景,流程图中各要素可设置触发条件;
5)利用可视化编辑工具中物理属性管理模块,设置实体的物理属性,包括刚体柔体类型、静摩擦系数、动摩擦系数等内容;
6)利用可视化编辑工具中场景控制与管理模块,控制动画场景的播放暂停等操作。
参照图2,步骤2中部署实体的具体步骤如下:
2-1)点击实体库管理模块中实体列表中指定实体,在三维数字地球中指定位置点击实现部署;
2-2)调整模型位置,通过实体属性面板设定实体经纬度坐标调整实体位置,并且可以通过鼠标拖动,微调实体位置;
2-3)通过实体属性面板设置实体的属性,主要包括实体的位置属性、几何属性、显示样式等,实体类型包括模型、几何图元、信息提示板等。
步骤3中实体的运动状态信息的设置具体为:点击三维数字地球中指定实体,在动画编辑模板中调整其运动曲线,运动曲线包括XYZ三轴分量,可设置初始速度、加速度以及运动曲线。
步骤4中将各实体进行串联的步骤如下:
4-1)在流程图面板中利用关系线将各实体进行串联;
4-2)设置关系线代表的触发条件,触发条件可为系统自带逻辑,包括位置点相等、上一实体运动结束等,亦可通过布尔语句,实现复杂触发条件的设定。