【CityEngine教程文档】---01 基础教程

本文档为Esri CityEngine学习文档,是CityEngine_2011_Tutorials 官方示例教程1—— “Tutorial_01_CityEngine_Basics_2011”的中文翻译稿,由网友冬冬翻译整理。

在此非常感觉网友冬冬,也欢迎更多的网友提供更多的技术文章(可在新浪微博上@ArcGIS_三维通知我们)在本栏中与大家分享。 教程02和教程03内容也己有冬冬翻译完毕,随后会为大家更新上去。


教程简介

本教程讲解如何利用CityEngine快速地从无到有创建一个城市,通过对CityEngine各部分功能的讲解使读者了解完整的工作流程。您将学习到怎样建立一个新的工程,创建道路网以及设置“形状创建参数”。最后,您将学习使用规则编辑器并生成城市建筑模型。

【CityEngine教程文档】---01 基础教程_第1张图片


第一部分:创建一个新的工程


创建新工程和场景

第一步,创建一个新的CityEngine工程。

选择【File】—>【New】—>【CityEngine】—>【CityEngine project】

点击【Next】,将工程命名为“FirstCity”并单击【Finish】

完成以上操作,一个新的工程便建立好了并出现在在文件导航窗口中(默认布局下文件导航窗口位于CityEngine界面的左上角)。这些自动生成的文件夹用来存储你的工程数据,如assets文件夹(用以存储贴图和引用的模型部件数据),rules文件夹(用以存储规则文件)等。

第二步,创建一个新的场景:

选择【File】—>【New】—>【CityEngine】—>【CityEnginescene

 确认新场景所保存的文件夹位置(/FirstCity/scenes),将该场景命名为“firstcity_01.cej”并点击【Finish】

我们的工作空间中现在包含了一个新的空工程以及一个场景文件:

【CityEngine教程文档】---01 基础教程_第2张图片


拷贝规则和资源

在本教程的后面部分,我们需要使用规则文件和资源(assets)用以生成建筑物模型。因此我们现在需要从教程配套的示例工程中拷贝这些文件。

首先,我们将教程1的示例工程导入到当前的工作空间

下载并导入教程工程(教程1)到我们的工作空间中

接下来,我们将所需要的文件从已下载的教程1工程中拷贝到我们的新建工程中。

定位到教程1的资源(asset)文件夹。

【CityEngine教程文档】---01 基础教程_第3张图片

使用复制和粘贴(Ctrl+C和Ctrl+V)将资源(asset)文件夹中所有的文件与文件夹拷贝到我们新建工程的资源(asset)文件夹中。

使用同样的方法,将规则文件夹中的 “building.cga” 规则文件拷贝到新工程的规则文件夹中。

现在,你的导航视窗应如下图所示:

【CityEngine教程文档】---01 基础教程_第4张图片

现在,我们已经为第二部分的创建道路网和建筑模型工作做好了准备。


第二部分:街道和建筑物

创建道路网

第一步,创建道路网

单击viewport视窗将其激活

选择【Graph】—>【Grow Streets...】

选择默认设置来建立我们的城市。

单击【Apply】,并关闭对话框。
单击ViewPort视察上方工具栏中的“Frame All”按钮(或单击键盘上的“a”键)在Viewport视窗中全图显示你新建的道路网。

现在,你的Viewport视窗中应显示如下图所示的道路网以及默认的建筑物形状。

【CityEngine教程文档】---01 基础教程_第5张图片

现在我们来看一下场景编辑器视窗“Scene Editor”。可以发现一个名为“Streetnetwork 1”的新图层已经生成。

【CityEngine教程文档】---01 基础教程_第6张图片


修改“形状创建参数”

现在我们改变一些形状创建参数使场景看起来更加有趣。

点击“a”键使当前场景全图层显示。

按住鼠标左键,从右向左拖拽一个矩形框将场景中的全部元素都包含在内。

【CityEngine教程文档】---01 基础教程_第7张图片

 找到位于CityEngine窗口右上侧的Inspector面板,单击"Blocks"选项卡

 打开"Block Parameter",将看到“形状创建参数”。

【CityEngine教程文档】---01 基础教程_第8张图片

将类型(type)设置为偏移细分(Offset Subdivision

将最小面积(lotAreaMin)设置为300

将最大面积(lotAreaMax)设置为600

将偏移宽度(offsetWidth)设置为20

 将代替分割递归(subdivisionRecursive)设置为否(false)

【CityEngine教程文档】---01 基础教程_第9张图片

仔细观察场景中建筑物形状产生的变化

【CityEngine教程文档】---01 基础教程_第10张图片

接下来进入第三部分,学习怎样对建筑物形状应用CGA规则并建立建筑物模型。


第三部分:应用CGA规则并生成模型


CGA规则简介

CityEngine中,使用CGA规则来描述三维模型。一个CGA规则文件由若干规则组成,这些规则用来定义三维模型是如何生成的。在一个CGA规则文件被指定给某个形状(如建筑物地块)时,建筑物模型便开始生成。在本部分的教程中,我们将应用和修改一个由基本规则构成的简单的CGA文件。

应用一个CGA规则文件

在3D视窗中,单击某个形状的内部以选中它。

【CityEngine教程文档】---01 基础教程_第11张图片

在工具条中,单击Assign按钮并选中“building.cga”规则文件

另一种应用规则的方式,是直接从导航视窗(Navigator)中将规则文件拖拽到viewport视窗中的已选中形状上。


现在,Inspector视窗应如下图所示

【CityEngine教程文档】---01 基础教程_第12张图片

浏览CGA规则并设置初始规则

在生成模型前,我们需要确认在Inspector视窗中已选定形状的初始规则被设置为了“Lot”,通常这种设置为默认设置。需要注意的是初始规则的名称由CityEngine自动生成,但可以进行修改。

继续保持某形状在前一节中被选中的状态,找到Inspector视窗中的初始规则(Start Rule)属性。

双击规则文件打开规则编辑器(Rule Editor)视窗。在左侧(黄色标签部分)显示的是规则的属性,在右侧(灰色标签部分)显示的是实际规则的图表。

点击下图红色圆圈内所示的按钮使编辑视窗最大化。

【CityEngine教程文档】---01 基础教程_第13张图片

将规则定位在规则图的根部,在这里的根部指的是“Lot”。这个规则将是已选定形状的起始规则。

【CityEngine教程文档】---01 基础教程_第14张图片

再次查看inspector视窗,确认在"Start Rule"处选定的是"Lot"(“Lot”为默认值),如下图所示。

【CityEngine教程文档】---01 基础教程_第15张图片

现在我们已经做好生成真实建筑模型几何体的准备了。


生成第一个建筑物模型

确认选定形状仍然在选中状态,单击生成(Generate)按钮。

建筑物模型出现在了选定形状的上方

【CityEngine教程文档】---01 基础教程_第16张图片

单击选中模型,使用右键菜单中的"Delete Model"选项来删除模型。

【CityEngine教程文档】---01 基础教程_第17张图片

再次生成模型。

我们现在已经做好修改模型的准备。首先,我们将修改一个规则的属性——building height(建筑物高度)。接下来,我们将为建筑物添加一个不同的屋顶,这样我们就需要一个新的CGA规则。


修改规则属性“建筑物高度”

高度在相应的规则文件中被设置为了随机值,使用更新并生成模型(Update seed and Generate Models)命令多次生成建筑物,观察每一次生成的建筑物的变化。


【CityEngine教程文档】---01 基础教程_第18张图片【CityEngine教程文档】---01 基础教程_第19张图片【CityEngine教程文档】---01 基础教程_第20张图片

查看规则编辑器中建筑物高程的默认定义:

【CityEngine教程文档】---01 基础教程_第21张图片

在Inspector视窗中,定位到规则参数“Rule Parameter”。

找到高程"height"参数将其值修改为“18”。参数值的字体变成粗体,为用户定义值。

【CityEngine教程文档】---01 基础教程_第22张图片

再次重复点击更新和生成模型命令(Update seed and Generate Models)。可以发现建筑物模型的高度不再变化。你可以通过点击数字“18”左侧的黑色三角图标将其重置为默认行为。

接下来,我们为屋顶添加一个新的规则。


添加一个屋顶规则

在inspector视窗中,通过点击规则文件打开规则编辑器

【CityEngine教程文档】---01 基础教程_第23张图片

找到“Lot”规则并点击其右上角的“V”形符号将其展开。

【CityEngine教程文档】---01 基础教程_第24张图片

在“comp”部分,右键点击“shape”,在右键菜单中进行选择,新建一个新的规则。

【CityEngine教程文档】---01 基础教程_第25张图片

将新规则命名为"Roof"。

【CityEngine教程文档】---01 基础教程_第26张图片

观察新规则是如何生成并被连接到"Lot"节点上的。

【CityEngine教程文档】---01 基础教程_第27张图片

为了建立一个屋顶模型,我们现在插入一个人字形屋顶图形(即通常说的双坡顶)。右键单击“Roof”规则中的“Shape”,找到roofGable(angle, overhangX, overhangY)操作。

【CityEngine教程文档】---01 基础教程_第28张图片

观察roofGable操作的生成情况。点击三个参数值分别输入20, 1, 0作为屋顶的参数。

【CityEngine教程文档】---01 基础教程_第29张图片

单击生成(generate)按钮,查看新生成的模型。

【CityEngine教程文档】---01 基础教程_第30张图片

生成一个小的城市模型

在最后一个步骤里面,我们会将规则应用到较大数量的形状上。为了给较大数量的形状分配规则,我们将使用选择菜单。

选择已生成的模型。

右键单击3D视口,并选择“Select -> Select Objects of Same Group”以选择大量的形状。

【CityEngine教程文档】---01 基础教程_第31张图片

单击assign按钮,将building.cga规则分派给选中的形状。

单击“Generate”按钮生成模型。注意:根据你的选择,将会弹出一些关于起始规则“LotInner”或类似的警告对话框。你可以忽略这些对话框,因为我们对所有的形状分配规则,但我们的规则并不包含名为“LotInner”等的起始规则。

【CityEngine教程文档】---01 基础教程_第32张图片

你现在应该可以看到一些高度不同的建筑物了。

【CityEngine教程文档】---01 基础教程_第33张图片


你可能感兴趣的:(CityEngine,文档,教程,3D,GIS)