FastEarth
1 概述
FastEarth(后文简称FE)是自主研发的跨平台三维地理信息可视化协作平台,内置完全自主研发的XDR渲染引擎,无缝对接主流地理信息平台数据、建筑BIM、工厂PIM以及多种三维系统数据,极致的轻量化、参数化模型数据,用于企业软件平台的可视化项目操作、VR可视化操作、设计校审、消防演习、军事对抗、电子沙盘、建筑施工模拟、场景规划、天气预报、学习培训、零件拆组装模拟等多种用途,能够满足企业全生命周期数字化、三维可视化管理平台要求,助力企业达成智能制造工业4.0目标。
该平台继承了XDR超级渲染基因,支持超大规模参数化模型渲染(千万级别基本体个数流畅绘制)实现超大规模的场景浏览,基于时间线的场景可视化编辑能够助力企业在短时间内完成复杂场景、方案的规划与设计。
2 主要特性
2.1 高性能
使用GPU算法加速,在GPU上将大部分消耗性能的算法进行并行化。同时提供强大的场景调度算法,高效率的调度场景,以及多线程绘制,为渲染提供性能保障。
核心算法都至少有三个版本:标准CPU版本,SIMD版本,GPU版本。
采用OpenGL4.3标准开发,使用多实例,instance,multi draw indirect,transform feedback,gem shader 等特性,结合内存优化,可以支持对大批量数据、大规模模型的高性能绘制。同屏幕加载运动目标不小于10000个模型(每个模型5000多个点,2000多个面,Intel 620集成显卡下),轻量化模型不小于(200万,Intel 620集成显卡下)
2.2 高精度
所有计算都采用双精度进行计算,含GPU部分。
2.1 高扩展性
开放式的设计架构保障了软件体系架构高扩展性。
2.2 低内存
使用压缩算法对数据进行压缩,同时在显卡中动态计算生成大部分数据,不再占用内存或者显存,大大的提升系统的吞吐量。
2.3 低延迟
精心设计的API,极大的提升软件的性能,降低API延迟。
2.4 低成本
人性化的API设计,大量的API案例有效的降低软件的学习成本/开发成本/维护成本。
2.5 多模式
使用同一套引擎支持3种显示模式:2D/2.5D/3D球体,三种模式间可进行实时动态切换。不必在为支持多模式选择两个不同的产品,做整合开发,耗费巨大的工作量。
2.6 多窗口
同一套引擎支持多窗口显示,在单个应用程序中可以创建多个窗口(不限制个数)。
2.7 多语言加持
底层采用标准的C++/OpenGL进行开发,可以轻松的移植到linux平台。
接口层支持C++、C#、Python等多种开发语言(对其他不支持语言可以进行定制)。
3 工程管理
FE采用面向工程的管理方式,当需要浏览或者编辑模型的时候,需要建立一个工程,然后在工程的完成对模型的加载、浏览、编辑、保存、删除、关闭查找等操作。
3.1 新建工程
3.1.1 运行FE软件,界面如图所示,默认情况下是会看到一个默认的三维球,也就是FE的地球了。
在球体中心的圆形红点,FE中称为锚点,所有的操作都是基于锚点的(旋转、缩放、平移)等操作
可以通过鼠标左键点击球体的方式修改锚点的位置,默认情况下锚点所在经纬°位置(116,40)。
图1(主界面)
3.1.2 点击新建工程按钮
3.1.3 弹出新建工程对话框(选择保存工程的位置)点击保存
3.1.4 加载模型,在模型树上空白处,点击鼠标右键,弹出菜单中,选择加载模型菜单项。
3.1.5 选择模型文件对话框,FE标准版本支持大多数模型格式(几十种),公测版只公开了几种格式。
.fe是FE自定义的格式,是一种轻量化,参数化的数据格式,这种文件很小,但是存储的信息量却非常大。
在FE的目录下/data/model/sampler.fe
打开后可以看到如下视图。
打开后,点击保存工程,下次就可以直接打开工程,而不再需要导入了。
3.1.6 鼠标双击节点定位。
相机会自动漫游对准节点的正上方。
3.2 编辑
当用拾取工具,点选对象后,对象高亮显示,如下图所示。
3.2.1 位置编辑
- 可以通过修改编辑框中的信息进行微调(精准的修改模型的位置)
- 可以通过位置编辑工具,用鼠标对模型的位置进行调整。
3.2.2 材质编辑
通过鼠标选择模型后,也可以通过操作树选择模型节点(右侧的属性树显示对应选择模型的属性),可以通过修改模型的颜色属性来修改模型材质。
3.3 影像加载
支持多种影像图源数据的加载,如本地、google等:
3.4 高程数据加载
支持多种地形图数据格式和数据源的加载,如本地、google、cesium等,
.terrain
.tiff
3.5 倾斜摄影数据加载
支持osgb格式的倾斜摄影数据加载,数据规模最小支持200G以上:
3.6 矢量数据加载
支持标注的shapefile文件格式。
3.7 点云格式数据支持
使用切片加载技术,支持大规模的激光点云格式(默认使用LAS数据)数据加载:
3.8 三维模型
- 机械格式:
.3DS
.OBJ
.FBX
.B3D
.X
.BLEND
.BVH
.COLLADA
.DXF
.MD2
.MD3
.MD5
.STL
.STEP
.SIB
.OGRE
.XML
- BIM模型:
.IFC
.RAVIT
.DWG
- PIM格式:
.DWG
.RVM
.SMG
3.9 动画支持
a) 支持对关键帧动画的加载和播放
b) 支持对骨骼动画的加载和播放
c) 支持对摄像机动画的加载和播放
4 常用工具
4.1 距离测量
4.2 地表距离测量
4.3 面积测量
4.4 地表面积测量
4.5 高度测量
4.6 角度测量
4.7 挖方填方
4.8 通视分析
通视分析可支持点到点和点到面两种方式。
4.9 可视域分析
设置指定位置后,分析在不同高度是视野范围。
4.10 缓冲区分析
为指定区域设置特定宽度的缓冲区范围。
5 标绘系统
5.1 模型标绘
提供对多种格式的3d模型的标绘接口。
5.2 基本体标绘
提供立方体、球体、棱台体、圆环体、三角面等基本物理体的绘制接口。
5.3 矢量标绘
提供对2d图片、直线、曲线、多边形、圆、扇形等图形的绘制接口。
6 模型操作
6.1 模型拾取
提供模型被鼠标选中的响应事件和选中接口;
6.2 显示与隐藏
支持设置加载模型部分或全部集合体对象的显示和隐藏。
6.3 模型移动
支持以拖拽方式在各个方向上对模型进行平移。
6.4 模型旋转
支持对模型进行旋转操作。
6.5 人工剖切
支持对模型进行上、下、前、后、左、右和盒子六种方式的剖切。
6.6 属性编辑
支持对模型的位置、旋转、缩放、颜色属性和材质进行人工编辑。下图展示了为模型设置了金属材质后的效果。
7 基于时间线的场景动画编辑
7.1 关键帧动画编辑
提供可视化操作界面对模型的位置、旋转、颜色等属性进行关键帧动画编辑,在编辑过程中可实时预览动画效果;支持在同一时间线上对多个模型的动画进行编辑预览。
模型属性可通过鼠标拖拽(移动、旋转、缩放可视化编辑轴)或界面参数设置等多种方式进行修改。
下图是通过拖拽方式修改模型属性:
下图是节点动画时间线界面,实现对两个模型移动、旋转、颜色属性的动画编辑:
7.2
摄像机动画编辑
通过鼠标拖拽方式对摄像机位置以及观察点位置进行创建和编辑,并自动生成运动轨迹。通过在时间线上的选择,可直观的看到摄像机在每一时刻的位置以及朝向,并且可对所有关键点(摄像机位置和摄像机观察点)的位置进行再调整,可极大程度地减少摄像机动画的制作时间与创建难度。
7.3
场景动画编辑
通过在场景时间线中添加动画(关键帧动画,摄像机动画,骨骼动画)以及对动画的播放属性(播放起始时间、播放速率、循环属性)进行编辑,方便快速地构建出用户需要的业务场景。并提供实时预览,便于用户设计出最优的场景效果。
FastEarth的更多相关文章
随机推荐
- 2019 Multi-University Training Contest 2
2019 Multi-University Training Contest 2 A. Another Chess Problem B. Beauty Of Unimodal Sequence 题意 ...
- HZNU 2019 Summer training 6 -CodeForces - 622
A - Infinite Sequence CodeForces - 622A 题目大意:给你一个这样的数列1,1,2,1,2,3,1,2,3,4,1,2,3,4,5....就是从1~n排列(n++ ...
- poj 1182 食物链(种类并查集 ‘初心者’)
题目链接:http://poj.org/problem?id=1182 借着这题可以好好理解一下种类并查集,这题比较简单但挺经典的. 题意就不解释了,中问题. 关于种类并查集结局方法也是挺多的 1扩增 ...
- 迷宫问题 POJ - 3984 [kuangbin带你飞]专题一 简单搜索
定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, ...
- Array List和Linked List实现分析
一,前言 先来一张Collection集合图. 今天分享一些关于Collection集合中的List,讲真的集合这东西在网上真是老生常谈了.说实话连本人都觉得腻了(哈哈),但是话又说回来,整个 ...
- 面向微服务的体系结构评审中需要问的三个问题-咖啡杂谈:Java、新闻、故事和观点
面向微服务的体系结构如今风靡全球.这是因为更快的部署节奏和更低的成本是面向微服务的体系结构的基本承诺. 然而,对于大多数试水的公司来说,开发活动更多的是将现有的单块应用程序转换为面向微服务的体系结构, ...
- SVN分支与主干合并
1.主干合并到分支 1在本地trunk中先update一下,有冲突的解决冲突,保证trunk和repository已经完全同步, 2.在/branches /MyProject上右键,依次选择”Tor ...
- java读写文件IO
package Common.readFile; import Common.tool.User; import com.fasterxml.jackson.databind.ObjectMapper ...
- SpringMVC的工作原理图
SpringMVC的工作原理图: SpringMVC流程 1. 用户发送请求至前端控制器DispatcherServlet. 2. DispatcherServlet收到请求调用HandlerMa ...
- 使用secureCRT进行linux和windows之间的nginx文件夹传输
1.首先进入secureCRT软件,新建一个链接,我现在已经创建好了进入这个页面: 注意:新建链接时里面的hostname是你linux的ip地址,使用ifconfig就可以看到 2.在secureC ...