CityEngine CGA支持下的传统民居复杂屋顶建模及优化
——以衡阳市中田村为例
2016-05-06邓运员刘立生郑文武
刘 媛,邓运员,刘立生,郑文武
(1. 衡阳师范学院“古村古镇文化遗产数字化传承”湖南省协同创新中心,湖南 衡阳 421002;
2. 中国农业科学研究院衡阳红壤试验站,湖南 衡阳 421001)
CityEngine CGA支持下的传统民居复杂屋顶建模及优化
——以衡阳市中田村为例
刘媛1,邓运员1,刘立生2,郑文武1
(1. 衡阳师范学院“古村古镇文化遗产数字化传承”湖南省协同创新中心,湖南 衡阳 421002;
2. 中国农业科学研究院衡阳红壤试验站,湖南 衡阳 421001)
3D Complex Roof Modeling and Optimizing of Tradional Residential Houses Based on CityEngine CGA——Taking Zhongtian Village of Hengyang City as an Example
LIU Yuan,DENG Yunyuan,LIU lisheng,ZHENG Wenwu
摘要:传统村落的民居建筑地方特色鲜明,在地方传统文化快速消逝的背景下,数字化成为民居建筑保护的有效手段,快速、批量、精确的三维建模是当前民居建筑数字化的关键问题。针对传统民居建筑的不规则性,本文利用ArcGIS CityEngine软件建模工具,对中国传统村落衡阳市中田村的传统民居建筑群开展了三维建模及其优化研究,深入阐析了传统民居批量、快速建模方案,优化了传统民居建模难度较大的复杂屋顶的建模规则,实现了精细建模的算法,为后续开展其他传统民居建模提供了一套有力、可行的建模体系及其实现路径。
关键词:传统民居;三维建模;CityEngine;交互式建模
古村古镇等传统聚落是人类珍贵的文化遗产,对其进行全方位保护已形成共识,除了实物保护之外,数字化保护也是有效手段,并且是必然趋势,因为实物保护受限于其生命周期不可能长久保存。在数字化过中,对于传统建筑等物质文化遗产,三维建模技术是主要手段。随着GIS在数字城市、智慧地球等领域的不断深入应用[1],在建模方式、数据管理与数据发布方面有了新的进展。在建模方式方面,从单体建模[2]发展到倾斜摄影、激光雷达扫描数据点云建模[3],实现了从2.5维建模到真三维空间建模,但由于模型复杂度高,数据量大,难以形成规模化应用;在数据管理方面,不再局限于某个整体三维单元表达与组织,通过各种模型部件的组合,三维场景表达更为直观,数据重用性更好,主流软件有CityEngine、SuperMap、OSG,其优势在于通过拟定的建模解决方案,能够实现二维矢量数据的三维建模,不必重新构建数据组织关系,而是直接利用属性进行数据的关联与管理;在数据发布方面,三维模型数据已从单机版局域共享发展到面向网络的全域共享。另外,针对建筑物的特殊部件,也有学者开展过具体研究,尤其在屋顶建模方面,研究较为深入,包括使用数码影像构建屋顶模型[4]、航空影像数据半自动构建屋顶[5]或使用LiDAR机载方法建模屋顶[6]。这些方法虽然相对较为逼真、效率较高、成本较低,但是数据重用性不高,调整参数较难。
由于当前常规的建模方法如3ds Max不能动态调整单一或整体三维模型实体要素,因此无法实现基础要素的关联,也难以实施复杂三维空间分析。为了能够更好、批量、快速且较为精细地构建三维模型,本文以传统聚落民居建筑为研究对象,面向模型的可重用、可调整、可交互、可批量等目标,使用ArcGIS CityEngine建模工具,开展传统民居的整体、批量、快速建模研究,通过对原有建模算法的优化,形成面向古村古镇中传统民居的建模体系与框架,为其他地区的传统民居建模提供借鉴。
一、研究区概况与技术流程
1. 研究区概况
传统村落的建筑主要包括民居和公共建筑两部分。衡阳市庙前镇中田村作为2012年公布的第一批“中国传统村落”,其古建筑遗存主要以传统民居为主,始建于明末清初,目前仍保留了从康熙48年(1709年)到民国的旧宅100多幢,天井200多个,巷道108条,整体建筑面积超过18 000 m2,既有江南民居的建筑特色,又有独特的本土建筑风格,具有极高的研究价值、历史价值和建筑艺术价值,因此,本文选择它作为研究案例。
2. 基于CityEngine的传统民居建模流程
虽然传统民居建模可以部分借鉴大型城市建筑群的建模方案,但是部分细节无法同等对待,需要考虑使用新的方法去构建不规则性特殊构件。
城市和乡村是两种不同的地域单元,其建筑布局和建筑风格也迥然不同,而传统村落与现代乡村也大不相同,其建筑往往飞檐翘角,以外形不规整为审美取向。以中田村传统民居为例,其建筑风格与城市居住建筑主要差异表现在外形和装饰方面(见表1)。而CityEngine用于城市规则建筑物建模或以GeoDesign理念来设计、规划城乡空白区域,但鉴于传统村落这种珍贵文化遗产的脆弱性及其不可再生性、变迁性及价值多重性,对其现有建筑开展多种建模方法的探讨也是一个空白领域和值得尝试的方向。
基于上述分析,中田村传统民居的建模流程参考如图1所示。
表1 传统村落民居建筑与城市居住建筑样式差异
图1 CityEngine支持下的中田村建模流程
3. 基于CityEngine CGA的传统民居复杂屋顶建模与优化
除借助CityEngine自身支持的坡顶构建外,需要对中田村具有通风、环流功能的含天井的硬山顶和混合歇山顶两类屋顶作为特色建筑的屋顶进行设计与建模。
(1) 天井式硬山顶建模与优化
① 模型构建
由于中田村古民居防御性小窗居多,为保证屋内采光通风,大部分房屋都采用天井式硬山顶。天井外形表现为青瓦铺面,四周高、中间低,且中心部分开洞,一侧相对较高。硬山外形是强调两侧墙面相对存在“人字型”外观。借助于调研的影像(如图2(a)所示)与照片(如图2(b)所示),可见屋顶如同倒立漏斗式,不是单一屋顶样式构成,需要组合几类屋顶模型来构建:一个是倒立被切除底部的金字塔顶或四面顶;另一个是双坡顶。CGA规则构建屋顶外观整体模型流程如图3所示。
图2
图3 构建屋顶外观整体模型流程
此CGA规则建模过程仅仅完成天井式硬山顶的外观,下一步是给屋顶表面添加瓦片和对应的纹理。由于屋顶是由每块规整瓦片构建,因此可以切分屋顶表面为大小一致且位置随机微调的面片,然后替换瓦片模型与纹理。
参考图4显示其效果,实现算法如下:
a. 重复切割x与y方向,将屋顶表面切分成近似等距离的单体。
b. 将该单体调整缩放范围和旋转角度,设置中心对齐,但是存在随机位置变化。值得注意的是在此过程中如果是倒立金字塔顶生成的表面,需要旋转瓦片放置在正确的位置。
c. 添加替换规整单体的第三方精细模型(*.obj等)。
d. 设置对应映射的纹理。
图4 天井式硬山顶三维显示
如果想微调瓦片大小,可以通过CityEngine交互操作快速调整瓦片尺寸宽度和长度(如图5所示)。
图5 同一视口下瓦片宽度和长度调整对比图
② 模型优化
通过上述生成屋顶的过程,无论从外形还是显示效果上,都能较为真实地还原现状。但是该流程总体多重金字塔仍需要逐个调整规则分类,为提高程序的利用率,管理数据更加便捷,将外观建模流程进一步改进。将金字塔顶1、2使用自定义规则函数条件分解为其他组件切割模型,类似模型旋转替换。这样数据内容利用度增大,也简化前期金字塔顶多类冲突问题,可以使用一套规则完成上述同一金字塔顶外观变换和后续操作。主要构建更改流程如图6所示。
图6 改进优化构建屋顶模型外观流程
对于每一类屋顶,需要区分细节差别、一一对应、调整比例和相关信息。通过调查可以得出:除两天井一双坡顶的硬山顶之外,还存在其他变异的含天井的硬山顶,包括一天井一双坡顶、一天井两双坡顶、两天井一双坡顶、两天井两双坡顶。不同类型可以通过GIS二维数据(*.shp)属性识别。双坡顶处加入“人字形”墙面的顶部细节装饰和孔洞,解决对特定的防火墙需要独立建模的缺陷,优化其墙面按照矩形规则调整随机变换的纹理样式。可以将中田村的各类屋顶通过条件函数管理每一个类对象(见表2、图7)。
表2 不同屋顶构建规则类
图7 其他特殊硬山顶类型
(2) 混合歇山顶
在中田村古建筑群除了上述类型屋顶外,还存在歇山顶式屋顶。在古民居的核心区内有一栋比较独特的油茶纪念馆,该馆的顶部为歇山顶与双坡顶混合屋顶(如图8所示)。
图8 混合歇山顶
通过影像图资料和调研情况,可以看出上半部分是双坡顶,下半部分是歇山顶的一侧。为了依据一个二维底面来整体模拟该混合屋顶,需要合理组织构建方式,主要CGA算法步骤如下:
1) 新建一个四坡顶,首先垂直等分两块且只保留组件分割的中间层面(RoofGable);同时复制同一个四坡顶,将该对象按3∶7水平比例切割成两个块模型(Model2:Model1),如图9所示。
图9
2) 对四坡顶中间切割获取的二维平面(RoofGable)水平保留一定比例(如74%,参数可交互调)的底面(Model);对该底面添加双坡顶,构建歇山顶的上半部分,其下半部分则是步骤1)中的Model1模型,从外观上可以看出左侧歇山顶成形,如图10(a)所示。
但是Model1模型中仅仅是被重构的双坡顶所掩盖,为保证内部数据在渲染时不出现冲突,需要剔除Model1模型的上半部分。同步骤1)垂直剔除上半部分。优化结果如图10(b)所示。
图10
3) 对占30%左右的Model2仅仅保留组件分割的底面,对底面设置逆法向量方向,对调整后的底面制作一个同展角和边沿大小的双坡顶,如图11所示。
图11
4) 对RoofGable模型添加规则的天窗,除顶部存在外,背部也同时开窗。内部纵横切割方式可以按照指定比例微调参数,如图12所示。
图12
5) 最终通过赋值纹理和替换第三方模型,可以构成其混合歇山顶模型。制作后的成果可以应用到其他模型上,只需要微调角度、边沿长度参数即可重用,如图13所示。
图13
二、 总结与展望
本文通过对比以往CityEngine三维建模与传统古民居三维建模的流程差异,发现古村镇的难点在于复杂屋顶的构建、后续开展复杂屋顶规则建模与优化论述。该过程改进原始简单屋顶的局限性,不仅将屋顶可以变异成更为复杂的屋顶样式,而且可以通过部分代码微调参数或交互调整参数完成古村古镇建筑复杂屋顶三维建模。最终规则分类与整理后可以作为一套分类建模体系应用到其他类似古村古镇屋顶建模中。整体建模周期缩短,效率得到很好的提升,同时支持网络共享和服务发布。
参考文献:
[1]田野,向宇,高峰,等.利用Pictometry倾斜摄影技术进行全自动快速三维实景城市生产——以常州市三维实景城市生产为例[J].测绘通报,2013(2):59-66.
[2]孙正广,刘祥淼,廖晓燕.浅谈中国古建筑建模方法——以沙桥傩庙建模为例[J].萍乡高等专科学校学报,2012,29(3):82-86.
[3]王庆栋.新型倾斜航空摄影技术在城市建模中的应用研究[D].兰州:兰州交通大学,2013.
[4]解洪伟,朱东丽.基于数码影像的建筑屋顶建模方法[J].矿山测量,2014(2):17-19.
[5]康俊华,邓非,赵子龙.基于航空影像的屋顶半自动重建研究[J].测绘地理信息,2014,39(4):29-32.
[6]沈蔚,王林,王崇倡,等.基于 LIDAR 数据的建筑三维重建[J].辽宁工程技术大学学报(自然科学版),2011,30(3):373-377.
[7]张晖,刘超,李妍,等.基于CityEngine的建筑物三维建模技术研究[J].测绘通报,2014(11):108-112.
[8]周玲.基于参数化技术的数字城市三维建模方法[D].杭州:浙江大学,2013.
[9]朱安峰,王海鹰,高金顶.基于CityEngine的三维数字校园系统[J].计算机系统应用,2015,24(2):112-115.
中图分类号:P208
文献标识码:B
文章编号:0494-0911(2016)03-0098-05
作者简介:刘媛(1986—),女,硕士,助教,主要研究方向为3D GIS可视化和GIS应用。E-mail:qqnvshen@126.com通信作者: 邓运员。E-mail: dyydyy@163.com
基金项目:教育部人文社科规划项目(11YJCZH255);“聚落文化遗产数字化技术”湖南省重点实验室开放基金(JL15K05);衡阳师范学院科学基金(14A20)
收稿日期:2015-04-02; 修回日期: 2015-04-24
引文格式: 刘媛,邓运员,刘立生,等. CityEngine CGA支持下的传统民居复杂屋顶建模及优化[J].测绘通报,2016(3):98-102.DOI:10.13474/j.cnki.11-2246.2016.0097.