真三维模型和假三维模型的区别
我们通过点、线、面、体来表达空间中的三维对象。多个点可以组合成线,多条线可以组合成面,多个面可以围合成体。我们在大部分计算机辅助设计软件中(AutoCAD、Revit、Microstation、Catia等)使用的体或实体均是由面围合成的,这种体我们称为假三维体。
为了降低存储体所需要的空间、提高体的渲染效率、操作效率,对于大部分非常规则的体,我们可以采用简单的函数公式来定义体,例如我们可以用圆心和半径来定义球体、通过八个点的坐标来定义立方体等,这类似于二维对象中的矢量对象。对于其他一些复杂的体,我们则可以通过规则体之间的布尔运算(体的交集、并集运算)来表达。但是对于其他一些非常复杂的体(例如地质体、污染体),则必须采用多个三角网围合而成,即边界表达法,这类似于二维对象中的位图对象。
实际上,目前BIM和GIS行业常用的三维建模软件,例如Revit、Civil3D、Microstation(及其衍生软件)、Catia、ArcGIS、Supermap等均为假三维体,或采用函数定义、或采用边界表达,其内部实际上是空心的,只能表达均质三维体。当我们对这些体进行切割时,我们看到内部是实心的,但这只是一个自动封闭网格的效果,并不能证明模型是实心的。
对于一个地质体,例如一层黏土,我们可以通过其边界(外表面)来表达,因为其内部的所有属性仍然称为黏土。但是,如果我们想要表达黏土的电阻率,假三维体则会出现很大的困难,因为黏土内部每个位置的电阻率都是不一样的,这时候我们就需要采用另外一种三维模型,我们称之为真三维模型。
假三维模型由面围合而成,真三维模型则由多个假三维模型组合而成,即真三维模型的内部是真实填充的,填充真三维模型的每个单元(通常采用立方体)的节点和单元上都能存储不同的属性,从而可以表达连续属性在空间的变化情况,例如上文提到的电阻率模型。
下面我们通过EVS中的一个简单案例来说明真三维模型和假三维模型的区别。对于下图中的污染体,如果我们只是想表达其大小和形状,那么可以采用假三维体,但是如果我们想得知其内部情况,则必须采用真三维体,因为其内部浓度本身是变化的。
下图为上图污染体真三维和假三维切剖面的效果,左为假三维,右为真三维。
可以看到,剖面上污染物的浓度是变化的,我们不能采用单一的颜色来表示数据的空间分布,因此,此时假三维体只能切割得到外边界,而真三维体则可以切割得到真实的内部剖面情况。
在地质建模中,通常我们会用真三维来表达属性模型,即表达岩土材料属性在空间的变化情况。对于一层黏土,真实情况是其强度参数在空间内任意一点都不是完全一样的,若要反映这种情况,则必须采用真三维模型。例如下图是采用地层在不同位置、不同深度标惯击数得到真三维属性模型,通过该模型,我们可以快速得到空间中任意位置的标惯击数,而不是仅仅一层土层一个统计值。同时,通过真三维模型或属性模型,我们可以通过空间数据筛选来找到我们需要的地质体分布范围,这是假三维模型无法做到的。
下图为标惯击数大于16的地层在空间中的分布。
以下为标惯击数大于12小于14的地层在空间中的分布。
对于BIM应用而言,建筑、桥梁、道路等均可以采用假三维模型实现,因为这些对象我们均认为其在一定空间范围内是均质的,比如一根柱子我们认为其只有一个重度,而不是空间每个位置都有不同的重度。但是对于自然材料,例如地质体、地下水、空气等,其在空间内每个位置都具有不同的属性值,因此,必须采用真三维模型才能真实地反映这些自然材料所包含的信息,才是真正意义上的信息模型。
对于市面上的大部分主流BIM和GIS软件(Revit、Civil3D、Microstation(及其衍生软件)、Catia、ArcGIS等),若要支持EVS的真三维模型,均需要进行二次开发,即需要增加一个可用于处理真三维数据的后台,而模型的显示依然可以采用假三维模型进行。
若有相关开发需求,可以联系南京库仑(www.kulunsoft.com)。