APP下载

基于CityEngine的重庆嘉陵江地区三维建模

2020-02-03王思睿马晨阳江涛

电子技术与软件工程 2020年14期
关键词:批量静态建筑物

王思睿 马晨阳 江涛

(1.山东科技大学测绘科学与工程学院 山东省青岛市 266590)

(2.中国科学院空天信息创新研究院定量遥感重点实验室 北京市 100094)

1 引言

随着计算机图形学、3S(Remote Sensing, RS; Geographic Information System, GIS; Global Navigation Satellite System, GNSS)技术、虚拟现实技术以及多媒体技术的发展,三维全景漫游已经逐步兴起并被应用于城市规划、旅游、教育、军事、娱乐等领域。现阶段,如Autodesk 公司的AutoCAD、3ds Max、Maya 以及Google公司的SketchUp 等主流三维软件的功能已经十分强大,具有较好的建模效果[1]。在三维城市建模研究中,常用的建模有无人机采集数据建立三维城市模型[2-3],数据量大,投入人力物力较多;激光[4]技术建立三维输电线路杆塔模型,但点云数据成本高、数据量大、处理过程较繁琐;近年来,基于CityEngine[5-12]的建模方法已经在地理场景中得到广泛地应用。在CityEngine 中创建形状文件,并通过生成街道网络、生成图层、线框模型、建筑立面生成,建筑立面纹理化和手动编辑并更新建筑物数据等。但是,CityEngine 本身能构建的模型较简单,复杂的建筑依旧是依赖其他软件的静态模型导入,建模体系没有充分利用递归的思想,效率较低;模型的视觉效果和批量化也有待进一步改进。

本文基于CityEngine 环境,对建模原理、模型细节处理以及静态模型的调用等进行了详细的阐述,并提出了解决模型缺失的递归方法和进行动态建模的朝向思想。将模型真实化、精细化,优化了道路、水体等视觉效果。实验证明,上述方法和思想具有较高的可行性与参考价值。同时,经过对三维场景的分析,基于CityEngine的三维建模具有较高的效率和场景适应性。

2 原理与方法

作为CityEngine 生态的一个关键组成部分,CGA 规则在三维批量建模中发挥着不可或缺的作用。在一个标准化的CityEngine 工程当中,通过CGA 规则的定义,不仅可以增加模型的细节,还能够以迭代等方式对模型采取进一步地优化。由于CGA 的语句是逐行执行的,模型实际的渲染同样是逐步进行的,图1 便是由形状逐步组成模型的过程。

在模型生成过程当中,CGA 规则往往需要在多个方面对形状的细节进行定义,从而形成不同的建筑结构。规则的定义过程可以抽象成4 个部分:几何形状、几何属性、形状操作和语法规则。本文所介绍的建模方法,主要是将ArcGIS 的生成的空间数据作为建模基础,将SketchUp 等软件生成的静态模型作为模型调用库,配合CGA 规则进行三维模型的生成。经研究,该方法具有建模速度快、模型精度高、数据冗余小和场景适应性强等特点。

3 基于CityEngine的三维建模

3.1 研究区基本简介

本文选取了重庆嘉陵江及沿岸作为建模研究区。建模区域地处嘉陵江与长江交会处附近,位于东经106°33′54″—106°34′59″、北纬29°33′27″—29°34′43″,涵盖重庆市渝中区、江北区江岸以及嘉陵江部分水域。该区域既有现代化的建筑(如重庆国际时尚发布中心),又有名胜古迹(如洪崖洞),是著名的旅游胜地。其独特的地理环境造就了独特的三维景观,参考该区域的生成的三维模型,可以作为前端数据输入GIS,并进行空间分析等操作,进一步为城市规划者提供科学有效的参考。

3.2 三维建模

CGA 语言作为本文研究的关键,在CityEngine 三维建模过程当中起到了至关重要的作用。CGA 语言采用的是函数调用的方式去定义建模的规则,通过迭代等方法去简化规则,提高规则的执行效率。CGA 定义的规则包括条件规则、参数规则、标准规则和随机规则[10],借助这种划分,便可以将一个复杂的规则自顶向下分解成若干模块,每个模块拥有其自己独立的属性,这些属性直观反映了模型的具体特征,这符合CityEngine 面向对象的建模思想,即将规则模块化。

图1:CityEngine 环境中模型的渲染过程(由左向右)

建模数据流传递的框架如图2 所示。根据该框架,数据传递过程可以分为数据收集、数据处理和CGA 规则编写三个部分。数据收集工作主要包含基础地理数据获取和数据预处理,分别对应的实际操作为数据的GIS 矢量化和数字高程模型(Digital Elevation Model,DEM)预处理;数据处理工作主要为道路网的空间处理;CGA 规则编写主要针对规则的调用,并根据低维地理数据自适应地生成三维模型。

在地理空间数据矢量化与空间分析等处理过程当中,所使用的GIS 系统主要为ArcGIS。研究表明,ArcGIS 在工作流程上可以与CityEngine 无缝衔接,使共享数据具有较高的兼容性和可靠性,即CityEngine 能够直接使用ArcGIS 的地理数据库,且ArcGIS 同样能够借助CityEngine 模型进行进一步的三维空间分析。

3.3 批量精细化三维建模

本文充分考虑了建模区域的地理环境与人文要素,嘉陵江两岸的建筑物主要以高层商业建筑群和小别墅群为主,批量精细化三维建模应围绕着这些同态建筑物进行。批量建模之前,应当对GIS 处理后的地理数据进行检核,确保数据不存在空间语义上的错误。批量建模的核心,是对地理要素的属性进行定义,为确保建模的准确性和高还原度,本文参考了百度地图和谷歌地球等软件的实时街景。

3.3.1 建筑物动态化朝向与对称建模技术

建筑物的批量建模尽可能地参考实际的社区建筑样式。在建模区域内,选取了典型样式的楼房作为建模对象,并通过切分和拉伸函数最终生成建筑骨架。下面将以洪崖洞附近的一种社区建筑为例,介绍建筑物建模的关键技术和实现方法。因为建模对象中含有高层建筑,故对该类模型的分层是在所难免的。本文采用了条件控制的方法进行分层,即以建筑的显著特征(如与公路临接或是相离等)为依据,通过条件关键字对图元进行判别,并借助判别结果对模型分层。

为保证建筑物的美观度和现实性,本文采用中心对称作为建筑物模型的构架方式。其主要思想,实际上是将建筑物的包络盒均分为两部分,并以初级分割线为标尺,决定次级分割线的方位。按照该思想,借助迭代的方式,可短时低冗余地完成包络盒的分割。为避免在分割的过程当中出现异常,可以采用近似的方式忽略过小分割面。

为保证建筑物模型能够较高程度地还原真实场景,需要对建筑物立面贴图。如果需要每个建筑都有个性化的样式,可使用随机文件函数在图库中随机选择样式,并利用贴图函数进行贴图。一般情况下的贴图过程往往是通过用户指定来实现,同时,还需要属性设置函数(set)和投影设置函数(setupProjection)作为辅助,以调整透明度和纹理覆盖度。

3.3.2 道路与水体精细化建模

道路模型主要基于矢量路网数据生成,其属性主要分为变量属性和常量属性。借助对道路规则库中变量的调用,实现车道数量控制、车辆大小与方向控制等功能,道路两旁绿化带效果如图3(a)所示。桥梁的建模继承了道路建模的思想,因为桥梁可以视为道路的一种特殊的情况。水体模型分为两层,分别为浅水区和深水区。两层水体会产生不同的视觉效果,浅水区主要突出水体的清澈,桥墩等涉水建筑可以依稀可见;深水区更侧重于突出江水的颜色。桥梁和水体模型的最终的视觉效果如图3(b)所示。

图2:数据流框架图

图3:其他模型效果图

3.4 三维静态模型的导入

研究区中拥有一定数量的标志性建筑物,该类建筑物存在结构过于复杂、CGA 规则无法准确建模等问题。针对这种情况,本文采用了绘制类建模软件3ds Max 和SketchUp 进行静态模型的生成。静态建模与CGA 批量建模最大的不同在于,CGA 批量建模的对象为相对规整的建筑物,通过基本图形组合就可以生成模型,而静态建模可以利用任意自定义图形刻画对象,具有较高的自由度和客制化水平。但其缺点同样是非常明显的,因为建模对象的独特性,建模花费的时间比较长。静态模型在绘制的过程当中主要参考了街景的照片和谷歌地球(Google Earth)中的三维建筑,建模对象主要包括洪崖洞、解放碑广场、魁星楼广场、罗汉寺、千厮门嘉陵江大桥等具有地域特色的建筑。为了提高静态模型在场景当中的渲染速度,对模型的优化是必不可少的,可以使用Cleanup Geometry 和Cleanup Shapes 规则对模型节点的数量进行优化。

图4:模型的最终展示效果

4 模型的展示与发布

展示与发布环节是基于CityEngine 的三维建模最后阶段,同时也是三维模型的效果验证阶段。对于一个三维模型的评价,往往围绕场景还原度、建模精度、模型美观度以及模型渲染速度等指标进行。CityEngine 中模型的展示效果如图4,通过对于场景展示效果、模型细节和渲染时间等要素的综合考量,本文的方法具有较高的建模效率,且模型具有良好的视觉体验,可以广泛应用于宣传、城市规划、工程管理、仿真和旅游等领域。

研究区的建模完成之后,还可以通过数据共享的形式进行三维场景发布。场景发布有两种方式:一种是借助本地Web Scene Viewer 进行三维模型展示,即将模型数据转为SPLK 格式后导入本地服务器,通过Web 客户端进行三维场景的查看与交互;另一种是将模型数据上传至ArcGIS Online 服务器进行共享。通过模型的发布,不仅可以增强模型的交互性,还可以提高其应用价值。

5 结论与展望

本文以重庆嘉陵江地区为例,利用CityEngine 环境,并借助ArcGIS、3ds Max 和SketchUp 等软件进行三维建模方法的研究。研究中主要利用了CGA 规则进行建模方法的模拟与验证,该过程中除了模型构建等基本的操作之外,还采用了递归方法进行模型缺失的补充,采用对称思想进行规整建筑的构架,采用动态条件思想优化建筑物朝向,使模型更贴合实际效果。实验证明,递归方法、对称和条件思想可以很好地解决建模过程当中遇到的问题,同时也增加了模型的精度和美观性。由于CityEngine 生成的三维模型具有可修改性、可复制性、可再生性等特点,虚拟场景才能实现快速动态更新,通过结合静态模型的独特性与批量模型的参数可调性,提高了建模的效率与场景适应性。

猜你喜欢

批量静态建筑物
最新进展!中老铁路开始静态验收
邻近既有建筑物全套管回转钻机拔桩技术
批量提交在配置分发中的应用
描写建筑物的词语
猜猜他是谁
浅议高校网银批量代发
具7μA静态电流的2A、70V SEPIC/升压型DC/DC转换器
基于AUTOIT3和VBA的POWERPOINT操作题自动批量批改
考虑价差和再制造率的制造/再制造混合系统生产批量研究
建筑物的加固改造与鉴定评估