舒 琪
(上海市测绘院,上海200129)
随着科技的不断发展,城市的信息化成为必然的趋势,智慧城市的不断完善已经成为城市壮大新的契机和城市信息化建设的目标。三维模型能够真实、生动地表达三维空间信息,因此成为智慧城市的研究重点。计算机技术和现代测绘技术的迅猛发展,计算机虚拟现实、仿真技术和地理信息系统的紧密结合,为城市空间地理信息系统的建设提供了崭新的表现方式。通过计算机再现城市实际风貌,在逼真的三维视觉和与虚拟的三维‘城市’的相互交互中,对构成城市空间信息的主要要素(诸如建筑物、道路、水系等)进行多方位、多层次的观察、分析,为人们认识和改造城市社会提供了崭新的观察和分析方法。数字城市和虚拟现实的应用,具有十分重要的理论和现实意义以及重大的技术经济价值。
由原来的点、线扩展到如今的点、线、面,三维的数据量远远大于二维,数字三维景观模型数据具有体量大、计算运行要求高等特点。在很多三维浏览和决策系统运行中需要对整个场景进行实时的计算和显示。为了达到三维图形显示的实时更新,需要对大容量三维数据进行高速读取、对视点位置变换及飞行漫游时快速响应,因此对计算机的内存、缓存、显卡等有着很高的要求。如果硬件条件不足,运行三维数据会导致诸如模型数据无法读取、三维场景显示错误、系统崩溃死机等一系列后果。因此在通常情况下,为了满足城市三维场景的浏览和分析,都是采用服务器或者移动工作站等具有高配置硬件的计算机来运行整个场景。这使得数字三维的应用和推广受到了硬件上的很多约束和限制。
目前有不少控制数据量的方式已经被应用在各种三维项目中。第一种方式是采用白模型制作大场景。也就是说,针对一些大体量的三维城市街景,考虑到数据的快速读取,大部分建筑物都被制作成简单的白模型,不对其进行纹理的修饰,可以用来进行三维城市的水淹分析等专业应用,英国伦敦的城市建模项目采取的就是这种方式。不进行纹理修饰的白模型优点是数据量最小、人工干预成分较少和成本较低,但是也存在着场景直观性不强、真实感较差等问题,因此更适合于一些专业分析领域的应用。第二种方式是建立纹理数据库,将建筑的简单模型按照现场建筑的大致颜色从纹理库挑选类似的纹理进行贴面。采用这种制作方式完成的城市建筑三维模型,数据量比单纯的白模型要大一些,场景中整体的真实性要稍强一些,但是个体还原真实性较差,因此更适合鸟瞰的交互式浏览以及应用于大批量的城市普通区域的三维模型建立。
对于一些需要重点展示或者进行近距离交互式浏览的区域,需要很强的真实感和很高的还原性,上述两种方式就不太适用了。需要制作更精细的三维小场景从而能够更好地还原场景的真实性和灵动性。制作更加真实的三维场景,需要对建筑本身的结构进行进一步的细化制作,对于真实纹理信息也要进行现场采集。这样场景的数据量就大大提升了,对于运行场景的硬件要求也就随之提高了。
针对这个问题,一方面可以通过提高计算机的硬件配置来解决,比如提高显卡的内存容量或者采用图形工作站。另一方面,这种做法因受硬件条件的限制较大,难以在目前的微机环境下普及和使用。
上文介绍过了一些当下流行的控制数据量的方式,同时也指出了对于需要重点展示或者要进行近距离交互式浏览的区域需要制作出更精细的三维小场景。首先来介绍下常规制作精细的三维场景的制作流程(如图1所示)。
图1 精细三维场景的制作流程
了解了三维场景制作的流程后,需要研究流程中的哪些数据对于运行场景的硬件有着比较高的要求,影响场景的运行速度以及流畅性。
首先是纹理的制作部分。纹理文件需要大量的显卡资源,因此纹理文件的大小对于运行计算机的显卡有最直接的要求。其次是3DMax文件的大小取决于模型的尺寸大小以及模型的总面数。按照真实坐标系统搭建的三维场景中,模型的尺寸大小是按照建筑物的实际尺寸来制作的,不能随意改变,因此只能够通过控制模型的总面数来控制数据量的大小。此外,面数的增多直接影响到模型进入平台后运行时的渲染速度,渲染的过程需要二级缓存容量的支持。
从前面可知模型的尺寸大小是按照建筑物的实际尺寸来制作的,不能随意改变,因此只能通过控制模型的总面数来控制数据量的大小。在模型结构的处理中,如何减少重复面的产生是控制模型数据量的一个关键所在,也是一个技术关键点。
在针对室外结构建模的过程中,应该注重对于一些隐藏在模型内部的、场景浏览中不可见的面的清理,从而使三维数据的控制既能节约系统资源,又满足场景浏览需求。
针对一些室内主要结构的建模,省略承重柱、门窗等插入楼板的顶面底面是一个很好的做法,包括门窗嵌入墙体的部分面的省略。这些小的措施既能节约资源,同时又不会影响三维场景的浏览。
这些针对室内外建模过程中的一些小细节、小方法不仅不会影响三维场景的浏览效果,又能有效减小模型数据的体量,从而加快三维数据在场景的加载速度,提高三维场竟的可观赏性。
纹理制作的恰当与否直接影响到整个场景的数据量大小。通常纹理制作有一些通常性的要求。
1)纹理的像素尺寸应该是2的n次幂(2、4、8、16等)。纹理尺寸不必是正方形,但是建议做成正方形,像素的大小最好不要超过1024。
2)一般情况下,贴图的分辨率一般设置在72像素/英寸。
3)贴图可选格式为JPEG格式。同一模型的贴图名称按照具体规定依次进行数字排列。
除此之外,为了尽量减少纹理资源的数据量,还可以采取以下一些方式。
1)一个单一色块图形。尺寸为2·2的文件大小是4 bytes,而尺寸为8·8的文件大小则达到了64 bytes,文件增大了15倍。对于单一色块的纹理,应该尽量采用比较小的尺寸来制作。纹理图像大小对于整体场景的纹理文件大小有着决定性的作用。
2)尽量将墙和窗的纹理分开制作,这样既能分离材质,使得模型在进入虚拟现实或者在3ds Max软件中可以进行不同材质特效的调整。同时也可以在制作同一个模型的过程中提高贴图的利用率。
3)对于类似居民小区的建筑(如图2所示),根据其建筑物之间相似性较强的特点,应该整个小区一起制作以完成纹理贴面。这样的制作方式可以使得同一张纹理能够被重复使用,减少重复纹理出现的可能性,从而减少整个场景的纹理数据量。
图2 居民小区建筑三维模型
对于精细场景而言,阳台等附件的制作对于场景的真实性可视化有着很重要的作用。然而对于还原真实性和可看性有重要作用的阳台部分结构会比较复杂。很多建筑物的主体结构并不复杂,总面数在一两千个面左右。而建筑的配件结构(比如阳台,每个阳台至少需要4个面才能制作完成),对于高层而言建筑总面数的增加是巨大的,在进入虚拟现实软件运行的过程会出现卡死现象。
针对这种情况,可以利用纹理图片本身的特性,对于阳台的不同部分采用不同的透明度。制作一张TGA格式的透明贴图(如图3所示),将阳台的墙面、半透明围栏以及围栏上方应该透明的部分集合到一张贴图上,从而只需要为阳台竖直方向上的墙制作一个共同的面片。利用纹理贴图中的平铺功能设置楼层数,从而达到减少模型总面数的效果。这种方法对于成片的高楼小区的场景制作有着极其重要的作用。图4所示为利用透明贴图的方式制作的阳台,能够表达出阳台结构。
图3 透明贴图
图4 阳台三维模型
在精细的三维场景的运行中,动画也是提升整个场景真实性和可看性的重要元素(如图5所示)。在3ds Max的输出中,输出动画文件大小与动画的帧数有着直接的关系:动画时间越长,文件的大小就呈级数递增。因此对于场景动画制作,最佳的方法是将静态的人物模型导入到Virtools等虚拟现实软件中,利用软件本身的脚本设定人物动作和行走路径。这种方式也同样适用于车船等物品。
图5 动画
城市的发展越来越快,测绘科技同样日新月异。随着数字城市建设的不断推进,传统的二维城市信息系统已经不能满足要求。从控制数据体量的方式来解决三维应用和推广中的局限性也必将成为三维数字城市技术发展的一个重要环节。三维数字城市技术也会越来越成熟,必将有着广阔的发展前景。
[1]朱元嫣,陈能,戴晟.旅游场景三维可视化方案[J].上海师范大学学报:自然科学版,2007,36(4):98-103.
[2]阎凤霞,张明灯.三维数字城市构建技术[J].测绘,2009,32(2):93-96.