城市仿真开发步骤----大面积城区基础建模
首先需要从“顶视图”的角度,有精确的“尺寸”和“位置”数据,包括整个仿真区域、区块(Blocks)和建筑物。最终的虚拟场景和实景的尺寸比例为1:1。原始“顶视图”数据有两个来源:
1) DXF文件(2D): AutoCAD (DWG & DXF); ArcView (SHP & DXF)
2) 地图/航拍正投影像数据
一般平面DXF文件为1:1比例,可以达到尺寸/位置精确;但地图/影像数据(Images)只是一定比例的相对数据。对于Images数据,首先要保证扫描处理时不能有尺寸变形(Image Size),做等比例缩放至1:1才行。或者,如果已知Images的方位角度和精确的XY覆盖范围,可以先做一个精确尺寸的方块,然后将此Images作为纹理覆盖上去。这样,我们才能对整体布局有一个基本的定位,以保证最终完成的视景三维数据库的精确性。
这样做了以后,整个数据库都还是建立在一个平面地形上。但一般的城市仿真中,基本都是平面地形或对地形的起伏不要求。个别情况需要根据实际地形作出一定的起伏,或者在某些局部区域做一些小山包等。 精确三维地形的制作是另外一个专题了。这里,都是以平面地形的城区建模为基础。
二、区块和道路
区块(Block)和道路是紧密相连的。一般都是道路把整个城市区域分割成多个区块。区块的划分是很重要的,完成了区块划分后,我们就可以把整个建模任务分割开来。
整个大的建模任务可以划分为区块建模和环境建模,环境建模主要是树木等的加入。
道路可以放到环境建模中再细化。但区块这时要拉起一定的高度,根据实际尺寸和选择0.2-0.5米的高度,并视情况在此阶段把“路沿”和“人行道”也做出来
三、建立建筑物基本三维模型
从顶视图信息中,我们确定了各个建筑物的位置和顶面形状(或底面形状),下一步就是要确定其高度信息了。不过,在勾画区域/建筑物的底面形状时,如果用的是DXF数据源,可以和原始数据保持精确一致;但如果是用的Images数据源,就会有人工误差,只能大致精确,其误差值根据影像分辨率的大小而有所不同。
高度信息的确定,除了来源于AutoCAD设计信息,如三视图(尺寸精确),和测绘信息(楼层数信息,一般可以和影像数据同时提供,但要收费)外,就是直接到现场去看和拍摄了(可以得到楼层数信息和大致比例尺寸,但不精确)。
从顶视图信息和高度信息,就可以拉出其基本三维形状了。同时,物体的顶面纹理依然可以保留!
但这样建立起来的三维建筑物只具有基本形状,今后进一步的工作包括:
1) 侧面纹理贴图;
2) 对于重点建筑物,需要全新建模;原来的Box状物体稍作修改后,可以作为最低层次的LOD模型。建筑物模型的精美程度只受硬件多边形数的限制,可以做得很漂亮,甚至可以加入建筑物内部模型!
再加上简单的环境(树木等)效果后,如下图:
这样,一个基本的城区三维虚拟环境就建立起来了。
四、重点建筑物建模
和3DsMax/Maya建模思路基本一致,都是几何形状加上材质/纹理,只是针对视景仿真有一些规则。另外,在建模中,要有良好的习惯,如目录结构组织、层级结构组织、外部参考、相对路径、层次细节的选定、英文命名等。
五、其他要素
以上只是城区建模的最为基本的要素,建立一个完整的视景仿真应用,还有以下要素需要进一步细化:
1、 植物(树木、园艺等)
2、 道路桥梁、高速公路
3、 城市辅助设施(公园、车站等)
4、 水面(湖泊、江海等)
5、 堤防
6、 山丘
以下为VEGA功能:
7、 环境(云、雾、光照等)
8、 特殊效果(流水、飘动的旗帜、烟、火、三维声音等)
9、 运动物体(车、船、人)
10、 其他功能集成(精确碰撞检测、GIS数据库查询、人机界面等)