读《Graphic Complexity Index》白皮书

初读感想

草草读完一遍之后,觉得这个指数,应该主要给数据生产方,数据提供方看的,告诉他们,你们以后要按这个标准来创建规范的数据,或者在数据中要加上这个信息。对于GIS用户来说,也小小的科普了下数据方面的基本概念,知道了为什么原来好好的三维模型,游戏场景导入到GIS系统里面就不能使用或者降低性能了,和其他人交流时,也都是基于一个共识。对于客户端开发者来说,多一个参数总比没有好,而且一旦从数据源上标准化了数据,客户端的开发将会更简单。虽然整篇文章里面没有公式推导,但是对概念的方方面面讲的比较具体。

概要

本文主要介绍基于几何体和纹理构成的三维模型的数据的图形复杂度指数。(点云数据不在讨论范围内)

能快速的排序,处理和可视化基于位置的三维模型是现代GIS的一个必要能力。但是目前在GIS行业,暂时没有一个常规的方法来描述一个三维模型如何应用于GIS系统中,在何种情况应该使用哪种复杂度的模型。(译者注:这儿可以用LoD的思路来暂时理解下)

此时GCI就可以作为帮助用户使用,显示,分析三维模型的一个工具。

为什么我的模型在GIS系统里面不好使了?

很多用户,在GIS系统之外,创建了很多三维模型,但是转换格式到GIS系统里面,就会发现这些模型没有想象中那么好用,显示效果和性能都打了一定的折扣。为什么呢?

举例来说吧,一个三维建筑物模型,虽然它里面包括了很多格式信息,结构信息等,但是这些信息在GIS系统里面却发挥不了的作用。这些格式或者元数据,在别的系统中,能够优化显示,提供分析功能,但是在GIS系统中,却不能进行有效的应用。

没有按照一定标准创建出来的建筑物模型有可能导致不可预见性的复杂度。现实世界中的花花草草的形形色色的属性也不全是GIS系统所关注的内容。

近似名词

  • CityGML Level of Detail

CityGML 里面已经定义了城市中常见模型以及模型之间关系的描述方法。 里面包括了三维对象的细节层次(LoD)描述。我们会更具不同的使用场景和目的使用不同的层次的数据。
图为CityGML的四个层次:

img

  • 电影和游戏的细节层次

电影和游戏中会根据摄像机的位置和性能来使用不同渐进层级的模型。例如,观察稍远处的城市,也许,整个城市就只是数个贴着纹理的包围盒,甚至只是一张图片。玩《无主之地》这种感受最明显。

下面这张图比较直观的反应了这种情况:
img

  • Building Information Modeling (BIM) Level of Details or Level of Development

BIM中的LoD是可选项,也是根据具体的需求(如,规划,设计,可视化)而创建

  • Raster and Terrain Levels of Detail

二维栅格数据对多尺度数据的分层树形结构的研究比较完善了(相关的词,影像金字塔,瓦片数据)。具体参考 OGC CDB。

这些概念的区别和联系

这些概念应用领域略有不同。CityGML LoD主要应用于采购方面(收费和需求不同),BIM主要应用于设计和建设过程中。I3S和电影游戏中的LoD的使用情况很接近,利用LoD以及数据的流式下载的方式,可以快速高效的加载显示大场景数据。

  • 软件的渲染系统通过LoD的切换达到显示质量和显示性能之间的平衡

  • 随着摄像机渐渐贴近模型,系统会加载更精细的细节层次以提升用户体验。

  • 对于同样实体,使用算法生成的LoD的高低版本可能具有不同的物理特性(外观),用于可视化的时候,一些小物体,有可能根本都不会显示,因为在这个视角下,它在屏幕中的像素太小而可以忽略不计。

  • 电影游戏中的LoD会因为需求不同化简程度也不同。某些场景(区域)可能存在大量的图形,但是另一些场景,只有简单的几个图形。

GCI

为解决长久以来用户关于三维数据使用方面的问题,Esri打算引入两个新概念,用来描述GIS对象的复杂度:Levels of Simplification(LOS)层级化简和Graphic Complexity Index(GCI)图形复杂度指数。

GCI

用于描述三维模型的复杂度,而复杂度由模型的几何体(三角形个数),纹理大小/质量,以及显示过程中需要的其他属性决定。(例如:有些模型需要使用动态的纹理)

LOS

如果某个数据集因为又高效显示的需求,而按照复杂度从简到繁创建了多个版本。此时LOS就和LoD有一定区别了。LoD一般指同一个模型。LOS则是同一个实体在不同尺度下的不同化简程度的模型(不确定文章是不是要表达这个意思。感觉此时的LoD概念是引用的CityGML的LoD概念,建模的时候,还是只创建一个模型,但是不同的细节层次包括了不同的对象,没钱的只能买个游戏本体,有钱的可以买本体+DLC的完全版。LOS则是在建模的时候,就要创建多个模型,哪个尺度就用那个,类似于切分好的栅格瓦片)

怎么用?

至于模型指数的计算方法的话,看这个表吧,白皮书以后可能会更新这个表格
GCI Table

从理解的层面可以这么想,55年的时候国家建委规定,五十万人口以上为大城市,五十万人以下、二十万人以上为中等城市,二十万人口以下的为小城市。这就是根据人口来决定城市大小。后来,国务院由对这个标准进行了调整,分为五类七档。人口100万以上,500万以下才是大城市。白皮书也会根据以后硬件的发展,观念的转换,对这些标准做个调整。当然,这也存在一些问题,例如,没有考虑到模型的大小(城市面积),国情的区别,例如中国的大城市和美国的大城市(应用程序的情况或者平台的情况,web,桌面,移动端)。不过白皮书后面对此有解释。

由于模型的复杂性,上面的表格不可能囊括所有的情况。所有我们刚开始用的时候,可以简化考虑。下面是例子,我贴上来,帮助理解:

GCI D: A tree dataset which has only 15 triangles per tree and simple 1K
RGBA textures
GCI E: A tree dataset with trees that has less than 5000 triangles per
tree and simple 4K RGBA textures
GCI F: A tree dataset with 90K triangles per tree and simple repeated
textures
Untextured GCI E: A buildings dataset with building models that have
less than 5000 triangles and no imagery textures
GCI F: A bridge model with 90K triangles and RGBA textures
GCI H model with materials: A BIM model with 2M triangles and explicit
materials

同一个数据的模型复杂度最好保持一致。

为什么使用三角形?

使用三角形Triangles作为复杂度的一个衡量指数的原因是,目前大多数渲染系统还是以三角形作为基本的渲染单元。而且三角形统计起来最直观和最简单。(vertex, trianges, faces, surfaces…渲染优化什么的都先不管吧)

用例

如果我们有这么一个数据:

  • 在一个数据集中有3万个建筑物
  • 建筑物覆盖了大概30平方公里
  • 一个建筑物大概有一百个面(faces)

我们可以这么分析:

乍一看,建筑物不复杂,因为一个建筑物只有1000个面。 这个数据集大概是GCI D级别吧。
但是细细看来,一个面有可能存在100到1000个三角形呢。也许一个建筑物就有百万个三角形了,应该是GCI H级别。

如果在web GIS中,用户面对这种数据,就只用采取化简模型或软硬件加速的方法。

影响性能和可视化效果的额外因素

GIS系统和三维系统不一样,有些独特的因素,有可能会影响复杂度。

  • 空间参考,地理配准

应用层面经常会遇到的问题,不多介绍了。

  • 投影,逆投影,世界坐标系

一般建模都是本地坐标系,但是GIS系统很多都是要求场景某一个特定的坐标系显示。这样就不可避免的有投影转换的问题。所以希望提供数据时,也提供详细的坐标参考信息。

  • 垂直坐标系

一般我们对PCS GCS关注比较多,但是VCS也很重要。决定了高程的标准(起算点,尺度)。这也是三维过渡到GIS行业需要注意的问题。

  • 成块打包的数据

有一些数据,尤其是从游戏软件来数据包,这些数据都是按块来组织的(例如Acute3D)。如果要把这些数据完全应用于GIS包中,需要经过特殊的数据处理。可以使用FME等工具。在此不细说了。

使用这些数据的好处是,显示的时候,自带LOS。

  • 个性的模型

常见于BIM到GIS系统的过渡。例如:某个建筑物就包含百万三角形,一个文件就上G大小。独特的属性,独特的单位,缺失的地理信息,等等。

  • 已经存在LoS的数据

也许有些数据已经按层级化简了模型。但是原本打算为移动端服务的,桌面端使用的时候,就需要使用更精细的一层化简后的模型。

  • 存在CityGML形式的LoD的数据

因为LoD和LoS在复杂度方面不能完全换算的。CityGML的LoD不完全是为了性能准备的,所以会有一定的影响。

  • 共享纹理

注意,共享纹理不用重复统计在复杂度里面。

  • 数据范围

可以参考I3S。如果数据量很大,需要考虑支持分布式的格式。

  • 终端设备架构

需要考虑网速等

  • 硬件特性和平台

三维图形的显示,分析和数据的准备都和平台有关。同样是移动端,基于浏览器的webgl3d的缓存能力及不如源生程序。而桌面端则可以使用更多的软硬件性能,例如GPU对于三角形的增强处理能力。

常用数据库的一些示例

请看原文,已获得更好的观赏效果,此处只摘了两个例子。

总结

GIS中越来越多的使用到了三维内容。随着信息获取手段的提高,物联网的发展,我们希望三维GIS能够支持更精确的显示真实世界的可视化,模拟,分析。但平台,设备,需求的差异给用户在如何把三维内容应用到GIS系统中带来了困扰。为了让三维内容在GIS中也能发挥出良好的性能,用户需要一个指标来描述数据和性能之间的关系,从而指导他们来创建或生成他们实际需要的数据。我们建议用户使用图形复杂度指数来描述三维内容。当然,有其他行业或业务需求则相应增加其他的属性。这样从三维过渡到GIS则更加平滑。

猜你喜欢

转载自blog.csdn.net/iuhsihsow/article/details/79279483