您好, 访客   登录/注册

基于CityEngine与CGA规则构建3D室外及室内精细模型的研究

来源:用户上传      作者: 韩东成 唐志敏 张守文高尚

  【摘要】利用2013年最新版安徽建筑大学南校区土地利用测绘CAD图纸为GIS基础数据,借助参数化三维设计平台ESRI CityEngine,以校标志性建筑物大学生活动中心设计为例,通过其特有的CGA语法规则,实现复杂建筑物精细建模,包括室外及室内场景的构建。弥补人们片面认为CityEngine除能快速高效批量建模之外难以构建精细模型的不足,旨在拓展参数化建模的应用领域。
  【关键词】CityEngine;参数化;CGA规则;3D;精细建模
  1.引言
  智慧城市是数字城市与物联网相结合的产物,而CityEnine则是创造鲜活的交互式三维数字城市的首选软件,但如何构建逼真的的城市建筑物模型,则是很多人一直研究的课题。2008年7月,第一个商业版本的CityEngine2008发布之后,CityEngine也进入了三维建模软件的行列,2011年7月被ESRI公司正式收购后,在国内也逐渐被三维设计工程师所熟知。Esri CityEngine是三维数字城市建模的首选软件,其主要特点之一基于规则批量建模的优点也被广泛运用于数字城市、城市规划、轨道交通、电力、管线、建筑、国防、仿真、游戏开发和电影制作等领域。随着城市化的快速发展,城市建筑物的外观也越来越复杂,三维模型的构建也相应的要求贴近真实,因此如何快速批量构建复杂的精细建筑物,也成为当前亟需解决的问题。虽然CityEngine 较之传统三维软件3D max,SketchUp等大大解放了手动建模,但对于复杂的精细建模目前依然是无人问津。陈晓秋[1] 对道路参数化进行了初探,施天越[2]对CityEngine在城市设计应用中进行了理论研究,吕永来[3]对基于CityEngine CGA的三维简单建筑建模进行了阐述,李娟[4]对基于参数化建模的三维城市设计方法进行了探讨。对于参数化CityEngine三维设计,目前研究均停留在理论和简单三维建筑或道路的建模,未涉及到对于复杂建筑物如何进行精细建模,另外,在数字城市建设中用CityEngine进行设计和分析,会减少成本和时间。本文将基于CityEngine对这一方面做出研究,对复杂的建筑物,包括室外及室内建筑模型构建给出具体的解决思路和方法。
  2.CGA规则
  对于构建精细模型,我们首先要了解City-Engine特有的语法规则CGA。
  2.1 CGA概念
  CGA文件(Computer Generated Archit-ecture)包含了一系列决定模型如何生成的规则。规则就是一组语句,该语句描述了当前对象的变化过程,并把变化的结果赋给一个或多个对象。
  规则定义了一系列的几何和纹理特征决定了模型如何生成。基于规则的建模的思想是定义规则,反复优化设计,以创造更多的细节。
  当有大量的模型创造和设计时,基于规则建模可以节省大量的时间和成本。最初,它需要更多的时间来写规则文件,但一旦做到这一点,创造更多的模型或不同的设计方案,比传统的手工建模更快。
  2.2 规则执行的基本原理
  规则的基本思想就是利用一些新的模型替换特定模型的过程,其基本形式如下:
  PredecessorShape --> Successor
  PredecessorShape:规则名称,代表执行前的模型对象
  Successor:形状操作和模型标识
  2.3 CGA规则语法和索引
  CGA规则语法包括标准规则、带参规则、随机规则、条件规则、递归规则。
  索引:comp.index、split.index等。
  2.4 常用到的函数
  参数化建模中常用的函数如下所示。
  extrude:拉伸、挤出,指把地块变成一个建筑
  comp:拉伸、挤出,指把地块变成一个建筑
  color:着色,指给模型着色
  split:分割,切片,指建筑分成不同的楼层
  i:替换,指替换成外部模型
  3.室外语法精细建模
  由于目前楼宇屋顶的复杂程度在相同条件下大都高于建筑物其他结构,因此这里以安徽建筑大学大学生活动中心弧形屋顶为例,详细阐述精细建模步骤。CityEngine中由于没有直接编辑弧形的工具,因此这就给构建曲面建筑带来了困难。这里用部分核心的规则来展示室外弧形屋顶的构建。图1为大学生活动中心屋。
  图1 大学生活动中心
  其主要思路是选取屋顶面roof0,并复制面roof01,对面roof01利用分割函数split和关键字NIL循环分割,用索引函数选中间两个面,挤出适当的高度,并利用s、t函数调整其位置,再分别对这两根竖着的柱子进行左右平移、伸缩变换即可达到效果。同样的道理,对于面roof0,我们对其添加roofshed屋顶样式,选取top面,再用偏移函数offset设置一定的偏移量,对面inside再重复利用面roof01的思路便可完成屋顶的精细建模。
  通过以上的思路便可以完成活动中心弧形复杂屋顶的创建。规则中的几个重要函数如s(float xSize,float ySize,float zSize)、t(tx,ty,tz)、split及split.index、comp及comp.index等,这里全部运用于模型的构建之中,此外灵活运用以上规则的思想,不仅仅能完成复杂屋顶的构建,还可以对复杂的墙面、阳台、道路等难以处理的室外建筑物结构进行很好地精细建模,这里不再赘述。
  4.室内语法精细建模
  三维模型的构建不仅仅体现在外观上,往往也要展现出室内的场景,这里同样以安徽建筑大学大学生活动中心为例。其核心的思想是采用offset(offsetDistance)、i()、s(float xSize,float ySize,float zSize)、t(tx,ty,tz)、r(xAngle,yAngle,zAngle)等重要函数一起协同完成的。图2为大学生活动中心内景。
  图2 大学生活动中心室内精细建模
  结合室外建模规则,首先将顶层的面roof-02复制一个为roof03,将roof02挤出一定的厚度并往下平移,成为二层室内的地板second-floor。
  roof02-->roof03//地面
  color(0.5,0.5,0.5)
  t(0,0,-9) secondfloor
  接下来将是构建房间的门和过道,将secondfloor向内侧偏移,选取inside并挤出为secondfloorinside,在secondfloorinside上可以添加门窗,在border面上添加操作,可实现人物、沙发、地板等。
  5.结语
  随着参数化建模的普遍应用,我们不仅需要快速高效的三维建模,同时更需要我们所见的场景贴近真实,达到更加逼真的效果,也因此基于CityEngine平台自身快速高效建模的优点结合复杂精细建模的方法也必定会成为未来的趋势。此外,由于CityEngine具有可视化的参数接口设置,提供可视化的、交互的对象属性参数修改面板来调整规则参数值,比如房屋高度,房顶类型,贴图风格等,并且可以立刻看到调整以后的结果。这种参数的调整是不会修改规则本身,因此可视化、智能化的参数调整是CityEngine精细建模区别于传统三维软件建模方式的另一大优点,并且这种建模的优越性也将会逐步为大众所青睐。
  参考文献
  [1]陈晓秋等.城市道路参数化建模规则初探[J].建筑与文化,2013.6:40-41.
  [2]施天越.城市引擎软件在城市设计应用中的初步探讨[J].建筑与文化,2013,6:098-099.
  [3]吕永来,李晓莉.基于CityEngine平台的高速铁路建模方法的研究与实现[J].测绘.2013,36(1):19-21.
  [4]李娟等.基于参数化建模的三维城市设计方法探讨[J].城市管理与科技,2013,3:66-68.
  作者简介:韩东成(1992―),男,安徽阜阳人,大学本科,现就读于安徽建筑大学环境与能源工程学院,研究方向:GIS应用及开发。
转载注明来源:https://www.xzbu.com/8/view-6383145.htm