默认头像
路人甲
路人甲
  • 注册日期2003-08-18
  • 发帖数144
  • QQ
  • 铜币474枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2188回复:0

虚拟城市中地物几何建模技术的研究2

楼主#
更多 发布于:2006-04-04 14:26

3.几何建模技术

2D Point

2D Line

2D Area

二维平面

三维视景体

3D Point

3D Line

3D Trigon

3D Mesh

3D Surface

3D Entity

图3 三维视景数据库几何数据模型


实体的几何建模技术是虚拟地景仿真中最重要的研究领域之一。虚拟地景中可见实体很多,从模型种类可以简单分为:地形模型、地物模型、复杂实体模型三种;从数据结构上包括:规则网模型(地形)、三角面模型(地物和复杂实体);从几何建模技术上可以分为:几何形态建模和纹理映射建模两种,这两种技术往往是组合使用的。

3.1地物的几何建模技术

3.1.1 居民地的三维模型:在大比例尺地形环境仿真中,房屋模型构造是主要工作之一。对箱体式房屋的建模来说,建筑物可以看作屋顶面和各个铅直外墙面的组成。

3.1.2同高程的水域平面三维模型:对诸如河流、水库等面状水系要素,一般来讲,其特点为:有明确的边界条件且范围内高程值几乎没有变化,其模型构造也可通过边界多边形的三角剖分来实现,保证其法向量向上。

3.1.3 复杂三维实体的构造:目前,对于复杂三维实体模型的构造基本上基于3DMAXCADMultiGen等商业软件,利用其灵活的建模工具创建三维模型,并通过.3ds.dxf.x.dwg等文件实现数据的交换。这些文件中已将模型剖分为空间三角网,我们只需将这组数据以一定的比例、角度在通过旋转、平移、缩放在空间坐标系中定位。

3.2 纹理映射建模技术

在目视条件下,存在大量的不规则物体需要模拟:如树木、花草、路灯、路牌、栅栏、桥梁、火焰、烟雾等,它们是构成地形环境、提高模拟逼真度必不可少的部分。我们可以采用纹理映射技术较好地模拟这类物体,实现逼真度和运行速度的平衡。纹理的意义可简单归纳为:用图像来替代物体模型中的可模拟或不可模拟细节,提高模拟逼真度和显示速度。

以OpenGL中的纹理映射技术为例,纹理映射中,几项关键技术必须加以解决:

3.2.1、透明纹理映射技术:透明纹理是通过纹理技术和混合技术共同实现的[4]。所谓融合技术(blending)指通过指定源和目的地颜色值相结合的融合函数,最后的效果使部分场景表现为半透明。

3.2.2、各向同性:透明单面的显示机制有两种类型:如桥梁的侧面、车站牌等,本身的厚度可以近似为零,即视点从它们的侧面看,只是一个单面;而树木等物体则不同,本身的厚度不可忽略,视点从任何角度的侧面看,都应类似一个锥体或柱体的形状。在忽略这类物体各个侧面外观不同的条件下,可通过下面方法予以解决:

方法1:采用两个相互垂直的平面,分别映射相同的纹理(图4 a),因其角度间隔为90度,所以在不同角度总可以看到相同的树木图像。但如果视点距离树木很近时,则会看出破绽;或者被映射的不是树木这些具有不规则边界物体的纹理,而是如邮筒等较规则物体,此方法也是行不通的。

方法2:并没有采用两个或多个相互成夹角的平面,分别映射相同的纹理,仍然只采用一个平面映射纹理,所不同的是在显示时赋予该平面“各向同性”的特性(图4 b),即随时根据视线的方向设定该平面的旋转角度,使其法向量始终指向视点。这种方法对于纹理具有规则边界的物体同样适用。

3.2.3、纹理捆绑:OpenGL允许在缺省的纹理上创建和操纵被赋予名字的纹理目标。纹理目标的名字是无符号整数。每个纹理目标都可以对应一幅纹理图象,也就是说可以将多幅纹理图象绑定到当前的纹理上,通过名字使用某幅纹理图象[4]

图5给出模拟爆炸效果的十幅图象,将它们按一定顺序以一定的时间间隔显示出来,并采用透明纹理映射技术和各向同性技术,即可模拟一次爆炸过程。应用这种技术到火焰、烟雾等的不定型物的自然景观的模拟上,与其它模拟算法(如:粒子系统)相比,大大简化了系统资源的使用。这种技术应用的效果很大程度上取决于纹理图象的质量。

图4 各向同性的两种方法

(a)

(b)

图5 纹理捆绑的例子


3.2.4、不透明单面中的纹理映射:这种典型的纹理映射方式可以大大提高模型的逼真度,一方面赋予模型丰富的色彩、贴图特征;另一方面通过纹理的图象模拟出丰富的细节,简化模型的复杂程度。下面就几种典型应用予以介绍:

l         天空和远景模型:这是一种典型的应用。在环境仿真中,往往要求天空的呈现出晴、多云、阴、多雾,还有清晨、黄昏等效果;而视线尽头的远景根据近景地形有诸如海洋、山脉、平原等等效果。这种模型具有的公共特征是:与视点距离很远,没有细节的要求,只强调表现效果。我们通过在地形的边缘构造一周闭合的、由若干多边形组成的“围墙”,而在相应四边形上映射相应的纹理,实现该方向上远景的模拟。同样,对天空的模拟,采用加盖一个四边形或棱台作为“屋顶”,在表面上映射相应天气效果的纹理。这样,当视点在这个由地形、边界立面、顶面组成的盒子内移动时,加上适当的光照效果,我们就可以感到强烈的远景、天空所产生的纵深感。为了增强动态感,可以采用纹理变换的方法实现动态移动的天空云彩。同样的思路,采用增加高度扰动的高度场加纹理变换的方式可以实现动态的海面模拟。

l        

图6 经过图像处理的地形纹理

地形模型表面的纹理映射:  地形表面也不是单一色彩的曲面,存在着诸如植被、道路、河流、湖泊、海域、居民地等大量的要素信息。在比例尺很小的情况下,即视点位于很高的位置对大范围区域的地形进行观察时,这些要素信息的高度信息已经不重要,可以通过纹理映射的方式将其表现出来,通过与地形模型数据的叠加反映出这些要素的空间位置关系。这个纹理本身已是一幅正射立体图(图6)。

l         房屋模型表面的纹理映射:房屋的表面并不是一个简单的平面,而是具有门窗、涂层、框架结构的复杂图案表面,这些房屋模型的细节如果也采用三维模型来表示,将大大增加模型的复杂度,通过纹理映射的方法来模拟出这些细节。

l        

图7 复杂模型的纹理映射


复杂模型表面的纹理映射:  诸如飞机、大炮、装甲车之类的复杂几何模型表面上的迷彩、军徽甚至细小结构均可通过纹理映射的技术将其表现出来(图7)。不过这里的纹理的映射要复杂的多,目前必须依靠诸如3DS、MultiGen等专业软件中强大的纹理映射功能,建立纹理的不同部分与模型的不同部位之间的坐标映射关系和映射属性(如透明)[2]

图8用于纹理拼接的几种小纹理


   3.2.5、纹理拼接:在视景仿真系统中,纹理的使用可以大大简化复杂模型的建模工作,但如果大量纹理的使用或者高分辨纹理图象,均会给系统带来沉重的负担。可以采取的策略是:将大纹理拆分为若干小范围纹理,然后寻找具有代表性的纹理图象作为拼接因子,这样就可用这若干小图象拼接出一幅大图象的效果,这是一种很实用的技术。典型的应用是在地形纹理映射上,用几种小纹理图象即可模拟出一片班驳、荒凉的地形来;同样,根据湖泊、水库的水涯线数据及可调用几种小纹理模拟出一片辽阔的水域(图8)。

3.3.地物模型与地形模型的匹配

喜欢0 评分0
默认头像

返回顶部