马光明 王聪华 李丽宁
摘 要: 本文以西藏民族大学校园三维场景制作的过程为例,使用CityEngine对学校中建筑物进行快速批量建模,并依托CityEngine规则建模与ArcGIS无缝衔接的优点,在WebScene中,进行虚拟三维展示。应用CityEngine软件的优势对校园建筑建模及三维大场景制作过程进行了阐述,用实践的结果论证了技术方案的可行性。
关键词: CityEngine;虚拟校园;规则建模;WebScene
中图分类号: TP319 文献标识码: A DOI:10.3969/j.issn.1003-6970.2019.04.009
本文著录格式:马光明,王聪华,李丽宁. 基于CityEngine三维虚拟校园场景设计与实现[J]. 软件,2019,40(4):4650
【Abstract】: Taking the process of making 3D scenes on the campus of Tibet University for Nationalities as an example, this paper uses CityEngine to quickly model the buildings in the school, and based on the advantages of CityEngine rule modeling and ArcGIS seamlessly, in the WebScene, virtual three-dimensional display. Based on the advantages of CityEngine software, the campus building modeling and three-dimensional large-scale production process were expounded. The feasibility of the technical solution was demonstrated by the practical results.
【Key words】: CityEngine; Virtual campus; Rule modeling; WebScene
0 引言
最近几十年,数字城市快速发展,三维建模的需求进一步扩大,很多大学和科研机构也展开了三维数字城市建模技术和软件开发工作。目前市场上主要流行的大型三维建模软件有3ds Max、Skyline、SketchUp、Autodesk、CityMaker、LightWave3D等,这些软件大多均为劳动密集型手工建模,需要耗费大量的时间和精力,后期修改也比较麻烦。近年来,一种新的建模技术——CityEngine基于规则的批量建模技术逐渐走进人们的视野[1-5]。
作为一款高效的建模软件,CityEngine可以通过使用二维数据快速创建三维场景,从而可以进行高效的规划设计。对ArcGIS软件的完美支持,也使得很多已经拥有基础GIS数据的用户,可以无需转换数据即可快速实现三维建模,减少了系统再投入的成本,也缩短了三维GIS系统的建设周期。
作为城市规划的缩影,把三维虚拟技术应用到学校校园,建立虚拟的三维学校校园模型,不仅能够从多个角度逼真地展示校园建筑,还能将餐饮、商店、医疗、交通、校门、运動、银行、通讯、住宿、停车场等多个热点位置的信息定位在一张图上,让使用者可一图尽享学习和生活的便利,实现真正意义上校园数字化和信息化。本文应用CityEngine对西藏民族大学进行建模处理,重点对学校地形、道路、建筑物、植被及水域的创建和校园场景的发布所出现的问题进行解决、说明,最终对校园整体场景进行真实展示。
1 CityEngine建模特点
1.1 基于规则批量生成模型
CGA(computer generated architecture)规则是CityEngine特有的程序设计语言。建模时可直接拖放规则文件(*.cga)到需要建模的二维数据上,三维模型便会自动的批量生成。比如说一些道路、规则建筑、植物等模型,都可以用此方法批量生成,大大提高了建模的速度。
规则建模最大的优点就是规则的复用,对于同种类型的模型,只需修改不同参数,就可以建出不同的模型,增加了场景的多样性。比如说图1的建筑模型,一二三层都是用同一种代码生成的,只是修改了部分参数,就生成了不同规则的窗户样式。除此之外,使用规则建模还可以读取二维的地形数据,规则文件可以链接到这些数据,根据不同的二维数据,生成不同种类样式的模型,省去了录入参数的繁琐。但对于大多数人来说,为了建模而学习一种新的语言,会增加软件的使用难度,同时对于CGA规则,反复迭代编写有时会让人无从下手,很难掌握[5-10]。
1.2 “所见即所得”的规划设计
规则建模中,通过规则文件定义的属性参数,都可以在属性面板中调整参数来改变模型的外观,比如说道路的宽度,植被的密度,贴图的地址,房顶的种类,甚至外部导入模型也可根据规则进行 替换。
1.3 与ArcGIS一体化集成
作为一款ESRI公司(美国环境系统研究公司)一款城市三维建模与规划设计软件,它与同一家公司的ArcGIS软件有很好的兼容,CityEngine既可以快速使用ArcMap导出的GIS数据进行规制建模,也可以对原有的三维模型数据进行编辑和更新。同时,也可将CityEngine建成的三维模型导入到ArcGIS中,进一步完成空间的分析和3D web scene的发布。
1.4 支持标准三维格式
CityEngine支持多种格式的三维数据,开放的数据格式使得CityEngineg更大程度的包容来自第三方平台的三维模型,也可以为第三方平台提供基础的模型支持。但值得注意,CityEngine虽然支持多种格式的三维数据格式,但当三维数据导入时,对数据处理不当,也会出现贴图错位,模型跑偏的情况。
1.5 一键发布WebScene和OnLine分享
CityEngine支持将场景一键打包生成WebScene场景包,可以使用游览器查看做好的三维场景,也可将场景包上传到ArcGIS Online中去,与其他人分享自己建模成果。WebScene还支持多角度查看场景和查看一天之内不同时段的场景,具有卷帘对比不同时期场景模型变化等功能,大大提升了观众的观感。值得一提的是,场景发布到WebScene时,会对场景中的模型自动进行烘培,使得在WebScene上的展示会十分流畅。
2 利用CityEngine对三维虚拟校园的实现
利用CityEngine建设三维场景主要包括数据准备、地形生成、模型创建、WebScene场景生成几个步骤,如图2所示。
2.1 数据准备
这里准备的数据,除了场景的二维数据及其属性信息,还得准备场景的基础地图影像数据(包括地形数据DEM和地形贴图数据DOM)和模型材質贴图数据及校园标志性建筑物模型。
首先,二维地形数据通过ArcMap软件把校园整体的CAD数据转化为文件地理数据库GDB。由于校园CAD数据除地形信息外,没有其他有用信息,这里需要在把数据导入到文件地理数据库的同时把属性信息添加到文件中,例如建筑楼层的高度信息,楼层信息,屋顶信息等,方便在规则建模中使用,这里也要去除CAD数据那些非建模属性,以减少数据大小。其次,准备影像数据和地形数据,这里数据推荐使用tif格式影像,需采用投影坐标,高程数据需保存成黑白渐变的单波段的影像数据。最后对于第三方生成的三维模型数据的准备,目前CityEngine对于*.obj和*.dae格式的数据兼容性最好,为使得模型在场景中完美展示,建议选用*.obj和*.dae格式的数据作为导入的三维模型素材[10-15]。
在上述过程中,需要注意以下三点。第一,需要注意CityEngine对图片的要求是行列4000*4000以内,在4000到8000之间会自动重采样,超过8000将不会显示,所以在地形影像数据的选取上一般选取尺寸4000*4000以内的为最佳。第二,CityEngine支持ArcGIS所支持的任意投影坐标系,但不支持地理坐标数据的建模,所以这里对于矢量数据和栅格数据,我选择Xian_1980_3_Degree_GK_CM_108E作为我的投影坐标系。第三,对于三维模型数据的准备,需要注意贴图尺寸要满足“2N2N”,尺寸不得超过512*512,模型的轴心位于模型中心底部,正面指向X轴的正方向,这样再利用规则导入模型时,模型才不会出现偏移和贴图的错位的情况。
在上述过程中,需要注意以下三点。第一,需要注意CityEngine对图片的要求是行列4000*4000以内,在4000到8000之间会自动重采样,超过8000将不会显示,所以在地形影像数据的选取上一般选取尺寸4000*4000以内的为最佳。第二,CityEngine支持ArcGIS所支持的任意投影坐标系,但不支持地理坐标数据的建模,所以这里对于矢量数据和栅格数据,我选择Xian_1980_3_Degree_GK_CM_108E作为我的投影坐标系。第三,对于三维模型数据的准备,需要注意贴图尺寸要满足“2N2N”,尺寸不得超过512*512,模型的轴心位于模型中心底部,正面指向X轴的正方向,这样再利用规则导入模型时,模型才不会出现偏移和贴图的错位的情况。
2.2 地形的生成
数据工作准备完成后,就开始场景的创建,第一步就是地形的生成。地形是三维场景的基础,地形的导入和生成可以更加有效的展示场景的真实 地貌。
对于地形的生成,主要的问题是在于高程数据的处理上。对于西藏民族大学来说,虽然从谷歌地图观察学校数据没有明显的地形起伏学,但在实验楼和水池两处的地形是低于整个平面,如果只有影像数据而没有高程数据的话,低于水平面的建筑将会被影像数据遮挡,所以需要通过ArcMap和Photoshop两款软件对高程数据进行处理。这里需要注意的是在生成地形时,为了使得高程数据与影像数据可以很好的贴合,这里需要使用影像数据作为底板来生成,导出时应导出黑白渐变的单波段tif格式数据作为高程数据来使用。图3为制作好的地形数据。
2.3 道路的建立
当道路二维数据导入到CityEngine后,会根据矢量数据中道路及人行道的宽度属性快速生成道路形状,然后直接拖放规则文件应用到道路后,会直接生成道路模型,如图4所示。
道路数据规则建模,如果道路二维数据不够完善,经常会出现路面断裂的情况,所以在导入道路二维数据数据时,必须不断调整道路宽度参数,以保证路面不出现缺口。
对于道路的创建,需要注意两个问题。首先道路规则是对于Street(道路)、Sidewalk(人行道)、Crossing(十字路口)、Junction(道路结合处)和JunctionEntry(连接入口)五个部分分别进行赋予规则,为了处理简单,这里只对Street、Sidewalk和Crossing进行规则赋予,以减少规则的复杂程度。同时可以在处理Sidewalk的规则时添加路灯模型,来增加模型的效果。其次,在调成道路参数时,应在二维模型下调节,如果在三维模型下调节的话,软件会根据参数的变化不断进行三维建模,界面会出现卡顿现象,大大影响建模效率。相比之下,3ds MAX制作道路模型不仅工程量大,出来的效果也达不到预期效果。核心规则如下。
2.4 建筑物的创建
建筑物包括标志性建筑物和一般建筑物。对于西藏民族大学来说,大部分建筑物都没有一定的共性,属于标志性建筑物。同时用规则建出的三维建筑模型,相比于3dMAX建出的三维模型,不仅建模效果达不到预期效果,建模的效率也没有明显提高,复杂程度反而会大大提高。所以对于学校场景建筑物的创建,这里采用采用替换函数(i),用第三方三维模型替换二维数据中的建筑物底面形状数据,核心代码如下:
在第三方模型数据导入CityEngine时需要注意两个方面。第一,对于第三方导入的三维模型,模型名称和贴图名称必须唯一,并且要采用字母,不要用汉字来为模型起名称。如果名称不唯一的情况下导入三维数据,很可能会出现模型贴图错位和模型偏移等情况,为后续建模带来不必要的工程量。第二,CityEngine软件对于三维数据要求Max9以下生成的*obj格式的数据,高版本生成的模型需要通过程序降低版本,才能在软件中正常显示图6为校园场景的建筑物模型。
2.5 绿化植被创建
绿化植被创建主要涉及三个方面,地皮草地的创建,植物散点的生成以及植物模型的替换。
这里利用rand随机函数生成不同大小的植被模型,再利用rint(geometry.area/TreeDensity)来为不同面积大小的地块分配不同数量的植被密度,最后使用scatter散点生成函数来分配散点。这里需要注意,当使用了scatter函数后,就不能为面使用texture函数为面赋予材质。所以这里为了兼顾草地材质和散点的分部,需要把地皮挤出后,分為不同的面,其中上平面赋予散点,下平面和侧平面赋予草坪材质,完成绿化地块的规则编写,核心规则如下。
2.6 水域动态效果
最后,对于西藏民族大学,校园中的水池,CityEngine还提供了动态水效果的制作,能够最大限度的还原水域的波浪效果,达到身临其境的效果。规则主要是通过set函数为水域地块赋予watermaterial__ waterparams_2_5材质,其中后两个参数表示波浪最高和最低的高差,以及水的流速,将模型导出到WebScene中的效果如图8所示。
2.7 WebScene的发布
在CityEngine工程场景中包含了许多个图层、要素和属性信息,分开导出会很容易使得数据的丢失和坐标位置的偏移。因此,在CityEngine中一般会将整个场景进行打包,打包成3DWebScene场景包后再进行导出操作。
导出的场景包既可以部署到IIS中进行发布,也可以导出到ESRI公司另一款软件ArcGIS Online中。作为一款面向全球用户的公共GIS软件,ArcGIS Online可以为学校场景提供更加安全,可配置的GIS服务。图9为西藏民族大学校园的场景展示。
3 总结
在计算机技术、三维可视化技术与虚拟现实技术迅猛发展的今天,CityEngine作为一款集城市三维建模与规划设计的软件,由于它利用规则快速建模的特点,正被广泛的应用于数字城市、城市规划、轨道交通、电力、管线、建筑、国防、仿真、游戏开发和电影制作等多个领域。
在这次学校校园三维场景建设的过程中,解决了学校地形、道路、建筑物、植被及水域的创建和校园场景的发布中所产生的一些难点问题,最终对西藏民族大学校园整体场景进行真实展示。充分利用现代成熟的信息技术和信息化实践经验,以数字化信息为基础,以计算机技术和网络系统为依托,采用总体规划、分布实施的策略,创建一个可以从多个角度展示现实校园建筑、道路、绿化、文化场所等内外部的环境和形象。这不仅为学校广大师生和社会公众提供了良好的校园向导和生活指南,同时也为相关职能部门提供了方便的可视化的管理,这将成为学校又一靓丽的数据名片。
作为西藏民族高校,西藏民族大学是西藏和平解放后党中央在祖国内地为西藏创办的第一所高等学校,肩负着自己独有的历史使命。现在正值西藏民族大学建校60周年,借此次时机,西藏民族大学三维虚拟校园向人们展示一个全新的西藏高校。
参考文献
[1] 牟乃夏. CityEngine城市三维建模[M]. 北京: 测绘出版社, 2016.
[2] ArcGIS10地理信息系统教程[M]. 北京: 测绘出版社, 2012.
[3] 张海燕. 基于CityEngine的Web三维智慧城市开发[J]. 北京测绘, 2018, 32(08): 995-999.
[4] 王媛媛. 基于CityEngine规则技术批量构建三维模型分析[J]. 水利规划与设计, 2018(09): 84-86+168.
[5] 谢衍忆, 黄良平, 陈元增, 等. 基于CityEngine的城市三维快速建模方法及应用[J]. 地理空间信息, 2016, 14(02): 39-40+62+8.
[6] 李志荣. 城市三维批量建模及Web3D可视化研究[D]. 东华理工大学, 2018.
[7] 周亚雄. 基于CityEngine三维虚拟小区建模与分析[J]. 信息与电脑(理论版), 2017(20): 117-121.
[8] 倪永, 陈荣国. 主流云GIS平台软件应用分析[J]. 测绘科学技术学报, 2013, 30(02): 177-181.
[9] 张昊宁. 城市儿童游戏空间规划[D]. 北京林业大学, 2011.
[10] 王雷, 丁华. 基于OSGEarth 的大型三维空战场景的搭建[J]. 软件, 2016, 37(01): 114-116.
[11] 刘尚武, 魏巍, 矫宇鹏. 三维模型的规格化表示与存储方法研究[J]. 软件, 2016, 37(4): 29-31.
[12] 董默, 赵若晗, 周志尊, 等. 医学图像三维重建系统设计与应用[J]. 软件, 2018, 39(1): 87-90.
[13] 何隽, 孔繁伟. 三维仿真动画角色绑定与动画技巧探究[J]. 软件, 2018, 39(4): 92-96.
[14] 艾嘉豪, 朱大明. 无人机倾斜摄影测量在三维建模中的应用[J]. 软件, 2018, 39(6): 192-195.
[15] 张数, 杨德宏. 数字近景摄影测量的二维影像三维建模的关键技术应用[J]. 软件, 2018, 39(2): 133-138.