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        位置编辑

  1. 可以通过修改编辑框中的信息进行微调(精准的修改模型的位置)

  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      三维模型

  1. 机械格式:

.3DS

.OBJ

.FBX

.B3D

.X

.BLEND

.BVH

.COLLADA

.DXF

.MD2

.MD3

.MD5

.STL

.STEP

.SIB

.OGRE

.XML

  1. BIM模型:

.IFC

.RAVIT

.DWG

  1. 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的更多相关文章

随机推荐

  1. P4570 [BJWC2011]元素 线性基 + 贪心

    题意 给定n个物品,每个物品有一个编号和价值,问如何取使得拿到的物品价值总和最大,并且取得物品的编号的子集异或和不能为0. 思路 这是个贪心,我们先按照价值从大到小排序,然后贪心地取,如果当前要取的物 ...

  2. CODE[VS] 3269 混合背包

    3269 混合背包  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Description 背包体积为V ,给出N ...

  3. Codeforces Round #582 (Div. 3)

    题目链接:https://codeforces.com/contest/1213 A: 题意:给定数的位置,位置为整数,每个数可以向左或右移动一格或者两格,移动一格花费一个硬币,两格不花费硬币,问所有 ...

  4. 用PhpStrom线上连接修改linux服务器上代码配置

    为了进一步提高自己的技能水平,不久前入手了一台服务器,不贵,一年也就不到两百,因为自己对于linux机器比较生疏,命令用的有点抠脚.老需要查阅处理. 于是我选择用PhpStrom直接连接线上服务器,通 ...

  5. go 学习笔记之无心插柳柳成荫的接口和无为而治的空接口

    如果你还了解编程概念中的接口概念,那么我建议你最好还是先阅读上一篇文章.详情请点击 go 学习笔记之万万没想到宠物店竟然催生出面向接口编程? ,否则的话,请自动忽略上文,继续探索 Go 语言的接口有什 ...

  6. css 实现居中的五种方式

      一 .文字居中 1 固定容器高度的单行文本垂直居中:height=line-height         2 未知容器高度的文本垂直居中:设定padding,使上下的padding值相同即可   ...

  7. 前端项目自动化构建工具——Webpack入门教程

    参考资料:https://www.webpackjs.com/(中文文档)   https://www.webpackjs.com/(官方文档) 首先有必要说明一下,本文侧重讲解webpack基本配置 ...

  8. Winform中DevExpress的TreeList的入门使用教程(附源码下载)

    场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  9. 实现一个正则表达式引擎in Python(一)

    前言 项目地址:Regex in Python 开学摸鱼了几个礼拜,最近几天用Python造了一个正则表达式引擎的轮子,在这里记录分享一下. 实现目标 实现了所有基本语法 st = 'AS342abc ...

  10. NestedInteger Java

    ''' class NestedInteger { private List list; private Integer integer; public NestedInteger(List<N ...