基于CityEngine建模技术的三维虚拟校园开发与制作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
42
软件开发与应用
Software Development And Application
电子技术与软件工程
Electronic Technology & Software Engineering
●项目性质:赛尔网络下一代互联网技术创新项目;项目名称:基于IPv6的AR 录取通知书设计与实现;项目编号:NGII20180610。
三维虚拟校园漫游系统以其逼真的校园环境再现能力和丰富的交互功能,在校园规划、对外宣传、帮助新生熟悉校园等方面,都能起到非常重要的作用,近年来在国内外高校中得到了广泛的应用。
笔者在赛尔网络下一代互联网创新开发项目研究中,也制作了荆楚理工学院三维校园模型。
我们最初使用3DMax 三维建模软件,花费了大量人力和时间对荆楚理工学院校园环境进行了三维建模,校园环境细节得到最大程度的还原。
虽然展示校果很好,但因模型面数巨大,程序在目前主流配置手机上都无法流畅运行,所以我们转而使用专用于大规模城市仿真的CityEngine 进行校园模型制作。
1 数据准备与处理1.1 影像数据获取
建模所需的影像数据可以通过CityEngine 软件的Get Map Data 功能获取,也可以从水经注万能地图下载器等相关软件中获取。
1.2 建筑物轮廓数据
如果有校园建筑的测绘地形图,我们可以直接从地形图里提取建筑物平面轮廓的CAD 数据,然后使用ArcGIS 工具,将CAD 数据转化为Shapefile 文件,设置相关属性,如楼层、屋顶、建筑名称等。
如果拿不到建筑的CAD 数据,也可以在ArcGIS 中对高分辨率的地图影像进行矢量化得到建筑物轮廓。
本次建模没有使用这两种方法,一是我们没有CAD 数据;二是高清影像图进行矢量化也不能达到所需效果。
我们采用的办法是在CityEngine 中对照影像数据绘出轮廓图和在3D Max 中参照实际建筑绘出轮廓图,然后再将轮廓图导入CityEngine ,将其转化为形状后再进行规则建模。
1.3 道路数据
如果有校园道路中心线数据(道路中心线数据中包括了道路的宽度、车道数等基本属性信息),可以在CityEngine 中根据道路中心线数据进行道路建模。
因我们同样无法获取到道路中心线数据,只能用CityEngine 软件提供的道路绘制工具,对照影像数据进行绘制。
1.4 纹理数据的准备
例如建筑物的门、窗、墙体等纹理,可以通过数字摄影技术进行素材采集,然后使用PhotoShop 等软件进行后期处理后使用。
2 建筑物的三维建模
(1)首先对所研究的校园区域进行实地考察,将区域内的建筑物和影像图的差别做好标注和记载,记录每一个建筑的特点和整体样式,如建筑物的高度、宽度、形状、楼层数、窗户样式等。
(2)基于该地块的实际建筑样式,编写详细参数规则(CGA )。
创建规则时,可以根据每一种建筑类型创建一个规则文件,使用某一个或者一类建筑平面轮廓,选择对应的规则,设置其Start Rule ,生成相应的建筑模型。
基于CityEngine 建模技术的三维虚拟校园开发与制作
贺体刚 陈鑫
(荆楚理工学院 湖北省荆门市 448000)
下面以荆楚理工学院文园5栋为例,详述其制作过程。
(1)绘制建筑轮廓图。
对于俯视图规则的建筑轮廓,可采用CityEngine 软件中的图形创建建筑的俯视图的地块形状,然后对其进行CGA 规则建模。
对于CityEngine 软件无法直接创建的俯视图不规则的建筑轮廓,可以使用3D Max 、Maya 等建模软件,绘制其建筑轮廓,保存为obj 或fbx 格式,导入CityEngine 后,将其拖入场景中。
在场景中选中它,点击Shapes →Convert Models to Shapes 转换为形状,然后再对其进行CGA 规则建模。
文园5栋的俯视图轮廓是规则的,所以我们可以通过CityEngine 来创建其地块形状。
(2)创建规则进行建模。
进入CityEngine 的Navigator 视图,在rules 下创建一个名为security_office.cga 的规则文件,在CGA 文件中,属性将对整个规
摘 要:本文介绍了一种在没有较完善的GIS 数据支持的情况下,使用
CityEngine
进行校园环境建模的实现方法,并在此基础上完成了荆楚理工学院三维校园环境的低面数模型的建模和场景制作工作。
关键词:三维建模;虚拟校园;CityEngine 图1:最终效果
图2:制作完成的校园三维场景
43
软件开发与应用
Software Development And Application
电子技术与软件工程
Electronic Technology & Software Engineering
则文件起作用。
我们定义的第一条规则为Lot ,在属性检查器中,该规则被指定为开始规则,大致的模型是使用拉伸操作来创建。
attr height = 16//定义楼高Lot --> extrude(height) //拉伸 building (3)将模型分解成多个面,生成正面(frontface )、顶面(topface )、左面(leftface )等。
building--> comp(f) { front: frontface | back: backface | left: leftface | right: rightface | top: topface | bottom: bottomface }
分解完成后,对这些面进行外观造型,例如将其分割为楼层,每一层分为块等等。
根据需要可以继续进行细分,还可以在细分的过程中,对其实施拉伸等操作。
backface--> split(y) { 5 : index1| 2 : index2| 3 : index3| 2 : extrude(2) index4| 3 : extrude(2) index5| 0.8:extrude(2) index6| 0.2:extrude(2.2) index7 }
(4)根据实际情况,将建筑模型分为7层,从下往上依次为index1~index7。
我们需要在第三层和第五层创建窗户,在第七层修改其颜色。
对于第三层需要通过split()进行细分,而第五层因为经过拉伸,所以必须对其实施切面(comp())操作后再进行细分。
index7--> comp(f){top: color("#082806") index7frontface| side:index7sideface
} index5--> comp(f){top: index5frontface| side:index5sideface
}index3--> split(x){ {~1:null| 3:split(y){~1:null |2:index5frontfaceT|~1:null}| ~1:null}* }
index5frontface--> split(x){ {~1:null| 3:split(y){~1:null |2:index5frontfaceT|~1:null}| ~1:null}* }
(5)根据需要进行挤出和贴图操作。
index5frontfaceT--> setupProjection(0, scope.xy, scope.sx, scope.sy) texture("windows2.png")
projectUV(0)null--> extrude(0.1) color("#909f9c") v
(6)运用类似的切割和贴图方法,完成其他楼层的制作,最终效果如图1。
index1--> split(x){ ~1:w| {6:door}*| ~1:w }door-->
split(x){ ~0.5:w1| 5.5:split(y){~0.2:w1|4:doorT|~0.5:w1}| ~0.5:w1 }w--> extrude(0.5) color("#909f9c") v w1--> extrude(0.2) color("#909f9c") v doorT--> setupProjection(0, scope.xy, scope.sx, scope.sy) texture("guanjian_door.png") projectUV(0)ff
因无法获取到荆楚理工学院道路中心线数据,所以道路建模是根据卫星地图影像数据,对照校园实际情况,用CityEngine 的道路绘制工具制作完成,具体操作这里就不再详述了。
3 制作校园三维虚拟场景
将制作好的校园建筑模型和道路模型导出为FBX 格式,导入Unity 项目中,制作出虚拟三维校园场景,再根据不同的应用需求,添加上必要的交互,即可开发出基于三维校园模型的虚拟现实或增强现实应用系统。
图2即为本项目开发完成的增强现实应用—AR 录取通知书。
4 总结
本文基于CityEngine 技术建立的三维虚拟校园场景最终的大小只有20MB ,虽然在校园环境真实还原度和渲染效果上与高模场景有很大的差距,但它在性能方面的优势却是非常巨大的。
另外,因为无法获取荆楚理工学院校园环境的GIS 信息,如高程图等,本文制作的虚拟校园环境比较简陋,没有地形和植被,也是比较遗憾的。
参考文献
[1]张献伟,刘卫军,杨志强.基于CityEngine 的三维虚拟校园
构建[J].科学技术创新,2020(23):85-86.
[2]杨芳萍,王鹏飞.三维虚拟校园的场景规划与实现[J].甘肃
科技纵横,2020,49(09):4-7.
[3]张献伟,刘卫军,石磊,杨志强.一种基于CityEngine 创建
道路网的方法探讨[J].矿山测量,2020,48(03):91-92+100.[4]魏远航,朱钱洪,李晓俊.CityEngine 导出OBJ 模型变形原因
分析与解决方法[J].电脑知识与技术,2020,16(18):10-11+18.作者简介
贺体刚(1979-),男,河南省潢川县人。
大学本科学历,副教授。
研究方向为虚拟现实技术、软件工程。
陈鑫(1998-),男,湖北省麻城市人。
大学本科学历。