CityEngine教程01基础教程翻译
01基础教程
本文档为Esri CityEngine学习文档,是CityEngine_2011_Tutorials官方示例教程1——“Tutorial_01_CityEngine_Basics_2011”的中文翻译稿,由网友冬冬翻译整理。
教程简介
本教程讲解如何利用CityEngine快速地从无到有创建一个城市,通过对CityEngine各部分功能的讲解使读者了解完整的工作流程。
您将学习到怎样建立一个新的工程,创建道路网以及设置“形状创建参数”。
最后,您将学习使用规则编辑器并生成城市建筑模型。
第一部分:创建一个新的工程
创建新工程和场景
第一步,创建一个新的CityEngine工程。
选择【File】—>【New】—>【CityEngine】—>【CityEngine project】
点击【Next】,将工程命名为“FirstCity”并单击【Finish】
完成以上操作,一个新的工程便建立好了并出现在在文件导航窗口中(默认布局下文件导航窗口位于CityEngine界面的左上角)。
这些自动生成的文件夹用来存储你的工程数据,如
assets文件夹(用以存储贴图和引用的模型部件数据),rules文件夹(用以存储规则文件)等。
第二步,创建一个新的场景:
选择【File】—>【New】—>【CityEngine】—>【CityEnginescene】
确认新场景所保存的文件夹位置(/FirstCity/scenes),将该场景命名为“firstcity_01.cej”并点击【Finish】
我们的工作空间中现在包含了一个新的空工程以及一个场景文件:
拷贝规则和资源
在本教程的后面部分,我们需要使用规则文件和资源(assets)用以生成建筑物模型。
因此我们现在需要从教程配套的示例工程中拷贝这些文件。
首先,我们将教程1的示例工程导入到当前的工作空间
下载并导入教程工程(教程1)到我们的工作空间中
接下来,我们将所需要的文件从已下载的教程1工程中拷贝到我们的新建工程中。
定位到教程1的资源(asset)文件夹。
使用复制和粘贴(Ctrl+C和Ctrl+V)将资源(asset)文件夹中所有的文件与文件夹拷贝到我们新建工程的资源(asset)文件夹中。
使用同样的方法,将规则文件夹中的“building.cga” 规则文件拷贝到新工程的规则文件夹中。
现在,你的导航视窗应如下图所示:
现在,我们已经为第二部分的创建道路网和建筑模型工作做好了准备。
第二部分:街道和建筑物
创建道路网
第一步,创建道路网
单击viewport视窗将其激活
选择【Graph】—>【Grow Streets...】
选择默认设置来建立我们的城市。
单击【Apply】,并关闭对话框。
单击ViewPort视察上方工具栏中的“Frame All”按钮(或单击键盘上的“a”键)在Viewport 视窗中全图显示你新建的道路网。
现在,你的Viewport视窗中应显示如下图所示的道路网以及默认的建筑物形状。
现在我们来看一下场景编辑器视窗“Scene Editor”。
可以发现一个名为“Streetnetwork 1”的新图层已经生成。
修改“形状创建参数”
现在我们改变一些形状创建参数使场景看起来更加有趣。
点击“a”键使当前场景全图层显示。
按住鼠标左键,从右向左拖拽一个矩形框将场景中的全部元素都包含在内。
找到位于CityEngine窗口右上侧的Inspector面板,单击"Blocks"选项卡打开"Block Parameter",将看到“形状创建参数”。
将类型(type)设置为偏移细分(Offset Subdivision)
将最小面积(lotAreaMin)设置为300
将最大面积(lotAreaMax)设置为600
将偏移宽度(offsetWidth)设置为20
将代替分割递归(subdivisionRecursive)设置为否(false)仔细观察场景中建筑物形状产生的变化
接下来进入第三部分,学习怎样对建筑物形状应用CGA规则并建立建筑物模型。
第三部分:应用CGA规则并生成模型
CGA规则简介
CityEngine中,使用CGA规则来描述三维模型。
一个CGA规则文件由若干规则组成,这些规则用来定义三维模型是如何生成的。
在一个CGA规则文件被指定给某个形状(如建筑物地块)时,建筑物模型便开始生成。
在本部分的教程中,我们将应用和修改一个由基本规则构成的简单的CGA文件。
应用一个CGA规则文件
在3D视窗中,单击某个形状的内部以选中它。
在工具条中,单击Assign按钮并选中“building.cga”规则文件
另一种应用规则的方式,是直接从导航视窗(Navigator)中将规则文件拖拽到viewport视窗中的已选中形状上。
现在,Inspector视窗应如下图所示
浏览CGA规则并设置初始规则
在生成模型前,我们需要确认在Inspector视窗中已选定形状的初始规则被设置为了“Lot”,通常这种设置为默认设置。
需要注意的是初始规则的名称由CityEngine自动生成,但可以进行修改。
继续保持某形状在前一节中被选中的状态,找到Inspector视窗中的初始规则(Start Rule)属性。
双击规则文件打开规则编辑器(Rule Editor)视窗。
在左侧(黄色标签部分)显示的是规则的属性,在右侧(灰色标签部分)显示的是实际规则的图表。
点击下图红色圆圈内所示的按钮使编辑视窗最大化。
将规则定位在规则图的根部,在这里的根部指的是“Lot”。
这个规则将是已选定形状的起始规则。
再次查看inspector视窗,确认在"Start Rule"处选定的是"Lot"(“Lot”为默认值),如下图所示。
现在我们已经做好生成真实建筑模型几何体的准备了。
生成第一个建筑物模型
确认选定形状仍然在选中状态,单击生成(Generate)按钮。
建筑物模型出现在了选定形状的上方
单击选中模型,使用右键菜单中的"Delete Model"选项来删除模型。
再次生成模型。
我们现在已经做好修改模型的准备。
首先,我们将修改一个规则的属性——building height (建筑物高度)。
接下来,我们将为建筑物添加一个不同的屋顶,这样我们就需要一个新的CGA规则。
修改规则属性“建筑物高度”
高度在相应的规则文件中被设置为了随机值,使用更新并生成模型(Update seed and Generate Models)命令多次生成建筑物,观察每一次生成的建筑物的变化。
查看规则编辑器中建筑物高程的默认定义:
在Inspector视窗中,定位到规则参数“Rule Parameter”。
找到高程"height"参数将其值修改为“18”。
参数值的字体变成粗体,为用户定义值。
再次重复点击更新和生成模型命令(Update seed and Generate Models)。
可以发现建筑物模型的高度不再变化。
你可以通过点击数字“18”左侧的黑色三角图标将其重置为默认行为。
接下来,我们为屋顶添加一个新的规则。
添加一个屋顶规则
在inspector视窗中,通过点击规则文件打开规则编辑器
找到“Lot”规则并点击其右上角的“V”形符号将其展开。
在“comp”部分,右键点击“shape”,在右键菜单中进行选择,新建一个新的规则。
将新规则命名为"Roof"。
观察新规则是如何生成并被连接到"Lot"节点上的。
为了建立一个屋顶模型,我们现在插入一个人字形屋顶图形(即通常说的双坡顶)。
右键单击“Roof”规则中的“Shape”,找到roofGable(angle, overhangX, overhangY)操作。
观察roofGable操作的生成情况。
点击三个参数值分别输入20, 1, 0作为屋顶的参数。
单击生成(generate)按钮,查看新生成的模型。
生成一个小的城市模型
在最后一个步骤里面,我们会将规则应用到较大数量的形状上。
为了给较大数量的形状分配规则,我们将使用选择菜单。
选择已生成的模型。
右键单击3D视口,并选择“Select -> Select Objects of Same Group”以选择大量的形状。
单击assign按钮,将building.cga规则分派给选中的形状。
单击“Generate”按钮生成模型。
注意:根据你的选择,将会弹出一些关于起始规则“LotInner”或类似的警告对话框。
你可以忽略这些对话框,因为我们对所有的形状分配规则,但我们的规则并不包含名为“LotInner”等的起始规则。
你现在应该可以看到一些高度不同的建筑物了。
CityEngine课程一
-9-
分配规则
在这个课程里,规则已经被提供。事实上,我们可以在课程中的第一 步就复制它们。因此让我们来使用它们 ·选择一个建筑群区域并改变它们的各项参数,在监视器里我们可以 将 “ Recursive Subdivision ” 的 参 数 设 置 转 换 成 到 “ Offset Subdivision”(在课程二中,会有更多地块细致设置和动态城市布局 的详细讲解)
LEJENSON 作品,如有不足,欢迎指导!
- 17 -
-5-
第三部分 导航器与选择(Navigation and Selection) 导航器(Navigation) 在“Viewport”导航是 CityEngine 使用者必须掌握的最重要的基本 技能。让我们一同看一下可选用的不同导航方案: ·Edit---Preferences---General---Navigation Devices---Mouse
·再一次选择脚本图形文件并点击“ctrl-g”(MacOS:command-g)或 使用工具条上的“Generate”键,这样也可以在选择的图形上重新生 成模型。 改变种子值,新的多样化的建筑将会被创建: ·使用工具条上的“Update Seed and Genate new Model”按键或点 击“ctrl-shift-g”(Mac OS:“command-shift-g”) 一个改变种子值而产生不同效果的例子:
高程值被随机的定义在 15 至 25 之间:
·输入一个你满意的数作为新的高程值。注意改变规则后要保存 让我们再添加个屋顶! ·在灰色区域右击并添加一个新规则,命名“Roof”
2cityengin新手指导书
上一节介绍了将二维数据转化为三维数据,并作为CityEngine的基础数据。
下面介绍的过程中建立三维费城的二维和三维地理信息系统数据。
使用的数据是虚拟城市模板的一部分。
1、下载数字城市模板有两种方法下载数字城市的模板:1、登录CityEngine模板库官方网站:/home/group.html?owner=CityEngine&title=CityEngine%20templat es&content=all下载CityEngine: Philadelphia example;2、启动CityEngine,菜单File -> Help -> Download Tutorials and Examples 在Examples选项卡中Philadelphia例子既可以,如图1所示图1下载模板2、加载数字城市模板如果在CityEngine模板库中,下载模板则需要将模板导入到CityEngine工作空间中:1、菜单File -> import -> Project -> existing project into workspace,如图2所示:图2导入模板到工作空间中2、在Select archive file选择项中选择Example_Philadelphia.zip文件。
在Project 选项卡中选择Example_Philadelphia__2011_1,点击Finish即可。
图3导入模板3、创建新的场景这个模板中已经有3个已经准备好的场景,您可以双击这些场景进行浏览,如图4所示:图4现有场景现在让我们从头开始,创建一个新的场景。
菜单File->New->CityEngine->CityEngine scene ,选择项目的场景目录,给它一个名称和设置坐标系统(EPGS:2272)如图5所示:图5创建场景4、添加地形和影像在Example_Philadelphia__2011_1/data/DEM目录下面找到DEM_burn.tif,选中它然后将它拖动到视窗里面(viewport)。
CityEngine中文实例
Tutorial_06_Basic_Shape_Grammar__2011_11.构建简单建筑物;2.为简单建筑物贴纹理;3.添加LOD;4.建筑物属性随机变化。
一、构建简单建筑物本节学习最终要构建一个如下图的建筑物,该建筑物有地面一楼和其他楼层,一楼的正面有一个入口的门,其他窗口都使用的是一个提前做好的OBJ模型。
下面开始创建规则进行建模:为了更好的理解规则,我们自己创建一个新的规则,按照教程中的语句进行规则的书写。
1. 在规则文件的最开始处定义建筑的属性(也可以放在规则文件的其他位置)。
在CGA文件中,这些属性将对整个规则文件产生作用。
这些属性将显示在属性查看器(Inspector)中,可通过属性查看器修改这些属性。
attr groundfloor_height = 4 //地面一楼的高度attr floor_height = 3.5 //其他楼层的高度attr tile_width = 3 //将楼面按块划分的宽度attr height = 11 //楼高attr wallColor = "#fefefe" //墙面颜色2. 教程中构建的窗户是使用的一个已经建好的窗户模型window.obj,这个文件存放在assets文件夹中,使用之前也要先定义出来。
window_asset = "facades/window.obj" //指定obj文件3. 下面我们定义第一条规则为Lot. 在属性检查器中,该规则被指定为开始规则。
大量的模型是使用拉伸操作创建而来的://对shape使用height中定义的高度进行拉伸,并命名为BuildingLot -->extrude(height) Building拉伸之后如下图:4. 可以通过应用comp()将Building分解为多个面, 生成了正面(FrontFacade)、多个侧面(SideFacade)和一个顶面(Roof)Building-->comp(f){ front : FrontFacade | side : SideFacade | top: Roof}5. 分解完成之后,就开始开始对这些面进行外观造型。
CityEngine入门之五技巧
CityEngine入门之五技巧
CityEngine可以很方便的建立起真实的城市风光。
在刚开始学习这个软件时会有无从下手的感觉,但随着学习的逐步深入你会发现它变得越来越简单。
在ArcGIS的资源中心有一些教程视频和数据模板会帮助我们更好的理解这个产品。
除此之外,在这里准备了CityEngine 里五个基本的功能与大家分享。
1 教程与事例数据的下载
通过菜单Help下的Download Tutorials and Examples打开Download Tutorials and Examples对话框,就可以选择你需要的教程与事例数据进行下载。
在下载数据状态窗口上可以选择后台运行使其不影响你正在进行的工作。
2 视图设置
在视图设置里可以很方便的使用场景灯光和一些参考信息如格网、坐标轴、指北针等;同样在视图设置里还列出了一些有关模型的显示设置如线框显示、实体显示、贴图显示等。
在这些设置的右面还给出了其快捷键以更方便地控制这些设置的开/关。
3 视图输出
通过视窗窗口的书签按钮下的保存快照功能可以保存场景快照。
导出的场景快照可以支持多种图片格式如PNG、JPG、TIFF等。
4 CityEngine 快捷键
通过菜单栏里help\Show Key Assist或者通过快捷键“CTRL + SHIFT + L”可以打开快捷的对话框列表。
5 窗口布局
在CityEngine里窗口菜单下的布局里提供了很多种已经设置好的界面布局以满足不同工作状态时的需求。
同时CityEngine也支持用户自定义页面布局。
Esri+CityEngine中文教程V1.0
I
3 CGA 语法参考...................................................................................................18 3.1 常用命令...................................................................................................18 3.2 形状操作...................................................................................................18
2.2.1 工程文件组织 ..............................................................................................................5 2.2.2 导入、导出、刷新 ......................................................................................................5
2.4 SHAPES ........................................................................................................... 11 2.5 街道几何网络 ........................................................................................... 11 2.6 静态模型...................................................................................................13 2.7 基于规则建模...........................................................................................13 2.8 数据导入...................................................................................................14
2CityEngine手记(Street Tutorial街道建模)
2CityEngine手记Street Tutorial本节学习道路网络和具体的道路模型如何创建。
在新建道路时会响应诸如地形和湖泊等障碍。
第二部分,在街道图中创建街道的形状,应用CGA规则,生成更具体的街景。
最后一部分是一些需要属性参数的道路生成。
Part1 创建道路网络导入教程2:Tutorial_02_Streets。
在scenes文件夹里新建一个场景File → New .. → CityEngine scene命名为"MyStreets.cej"创建一个障碍图层(Obstacle Layer)▪创建一个map layer Layer → New Map Layer▪选择Obstacle,下一步▪选择obstacles.png文件作为障碍图层▪对齐方式居中,选中保持比例按钮▪X 设为3000▪Tip: 如果在viewport窗口看不见obstacle图层,在viewport的菜单里改成。
创建一个地形图层(Terrain Layer)▪在File Navigator的maps文件夹找到文件file elevation.jpg▪把该文件拖进3D viewport▪把文件topo.png作为纹理(Texture file)▪最大高程设置为250▪对齐方式居中,选中保持比例按钮▪X 设为3000▪完成▪选中Obstacle图层把Elevation Offset设为-15 (Window →Inspector ).防止两个图层层叠。
生成街道▪不选中obstacle图层,点击Scene的空白处▪Graph → Grow Streets...▪街道数量设为1500▪在Environment Settings的Heightmap下拉框中选择terrain elevation ▪Obstaclemap下拉框中选择obstacle▪单击apply完成解决冲突生成的或者导入的道路都会有冲突,在图中是红色标识的。
CityEngine04导入街道 教程中文翻译01
The data Layer ( Layer 2) is already added as Graph layer to be imported.
导入 .dxf 文件到 CityEngine
打开场景文件 sesame_01.cej 在 DATA 里面定位到 DXF 文件 sesame_streetsketch.dxf 右击文件选择 Import...
选择 CityEngine Layers → DXF Import 数据图层 Layer2 已经被作为导入的图表图层加载进来了。
DXF import settings to import sesame_street data
Make sure Run Graph Cleanup Tool after Import is checked Hit Next Enable Intersect Segments, Snap Nodes to Segments and Merge Nodes Set Snapping distance to 1, Merging Distance to 5 Hit Finish
CityEngine 街道网络
CityEngine 街道网络是带有属性的图表 (graph) , 包括了图表点 (十字路口) 、 图表边 (分 段街道)。它们可以在生成街道要素中附带生成,也可以通过一些其他的文件导入,比如 DXF 文件。
Preparing Street Data for CityEngine
Final Result
The scene file sesame_12.cej contains a finished street network with extracted and subdivided lots as seen in the image below.
CityEngine 街道教程
CityEngine 街道教程(一)本文档为Esri CityEngine学习文档,是CityEngine_2011_Tutorials官方示例教程2——“Tutorial_02_Street_Generation__2011_2”的中文翻译稿,由网友冬冬翻译整理。
教程简介本教程将对CityEngine中建立街道网和建立精细街道模型的方法进行讲解。
自动生成的街道图能够反应出受到各种障碍的影响,如湖泊和地形等。
在本教程的第二部分,将讲解如何根据街道图创建街道图层。
应用道路规则到道路数据上,能够生成精细的街道模型。
在本文的最后部分,展示了一些特定属性信息下生成不同样式的道路网络。
第一部分:创建街道网教程设置将工程“Tutorial_02_Streets”导入到你的CityEngine工作空间中;通过【File】→【New】.. →【CityEngine scene】新建向导在街道教程工程的场景(scenes)文件夹中创建一个新的场景文件,将其命名为“MyStreets.cej”。
一、创建障碍图层在城市环境中,道路的放置受到很多的限制。
如湖泊、河流或公园,这些地方很可能不会有道路网络分布。
在CityEngine中,你可以创建一个障碍图层(obstacle layer)来控制这种表现方式。
创建一个新的地图图层【Layer】→ 【New Map Layer...】;选择Obstacle(障碍),并单击下一步;从地图文件夹(maps)中选择文件“obstacles.png”作为障碍文件;将对齐位置设置为中心点,并保持比例按键按下;将X size(X的大小)设置为3000;单击Finish结束设置。
提示:如果在viewport视窗中没有显示障碍图层,则通过视图设置菜单切换到纹理阴影模式。
创建地形图层我们创建的街道需要遵循高程地形。
这将通过创建一个由灰度高程图生成的地形图层来获得。
在文件导航(Navigator)窗口的地图文件夹中,选择图像文件“elevation.jpg”;将图像拖拽到你的3D视窗中;从地图文件夹中选择“topo.png”作为纹理贴图文件;将max. elevation(最高海拔)设置为250;与前面一样,将对齐位置设置为中心点,并将保持比例按钮按下;将X size设置为3000;单击“Finish”结束;在场景视窗中选择障碍(Obstacle)图层,在Inspector视窗(可以通过【Window】→【Inspector】方式打开)中,将其Elevation Offset修改为-15 。
cityengine高架桥规则
cityengine高架桥规则CityEngine高架桥规则引言:CityEngine是一款专业的城市建模软件,其强大的规则引擎功能使得用户可以轻松创建复杂的城市场景。
在城市建模中,高架桥是一个重要的元素,它不仅可以提高道路的通行效率,还可以美化城市的景观。
本文将介绍CityEngine中高架桥的规则以及如何使用它来创建逼真的城市场景。
一、高架桥的定义与作用高架桥是一种桥梁结构,通过建造在地面之上的桥墩和桥面,使得交通工具可以在地面之上通行。
高架桥的建造可以有效缓解城市交通拥堵问题,提高道路通行能力。
同时,高架桥还可以增加城市的美观度,为城市增添一道亮丽的风景线。
二、CityEngine高架桥规则的设计在CityEngine中,用户可以通过编写规则来创建高架桥。
高架桥规则的设计需要考虑以下几个方面:1. 桥梁形式:高架桥可以有多种形式,如简单的梁桥、拱桥、斜拉桥等。
在规则中,用户可以指定桥梁的形式,并设置相应的参数,如桥墩的高度、桥面的宽度等。
2. 桥墩布局:桥墩是高架桥的支撑结构,其布局需要考虑道路的宽度、交通流量等因素。
在规则中,用户可以设置桥墩的间距、数量以及形状,以适应不同的道路情况。
3. 桥面材质:高架桥的桥面可以使用不同的材质进行铺装,如混凝土、钢板等。
在规则中,用户可以选择桥面的材质,并设置相应的纹理和颜色,以增加模型的真实感。
4. 桥面细节:为了增加模型的真实感,高架桥的桥面可以添加一些细节元素,如护栏、标识牌等。
在规则中,用户可以设置这些细节元素的位置、样式和数量,以打造出一个逼真的高架桥模型。
三、使用CityEngine创建高架桥模型使用CityEngine创建高架桥模型的步骤如下:1. 导入地理数据:首先,用户需要导入城市的地理数据,包括道路、建筑物等要素。
CityEngine支持多种数据格式,如Shapefile、KML 等。
2. 创建规则文件:用户可以使用CityEngine提供的规则编辑器创建高架桥规则文件。
CityEngine教程03地图控制教程翻译
CityEngine教程03地图控制教程翻译本⽂档为Esri CityEngine学习⽂档,是CityEngine_2011_tutorial官⽅⽰例教程 3 “Tutorial_03_Map_Control__2011_2”的中⽂翻译稿,由⽹友冬冬翻译整理。
教程简介城市包含⾮常多的对象。
通过设置每⼀个建筑物的属性来控制它们会⾮常⿇烦也是不太可能的。
⾸先,你将在本教程中学习怎样使⽤CGA规则参数;然后你将学习怎样使⽤地图来控制你的城市的属性。
第⼀部分:理解CGA规则属性教程设置在你的CityEngine⼯作空间中导⼊“Tutorial_03_MapControl”⼯程,打开场景“Tutorial_03_MapControl/scenes/mapcontrolTutorial_01.cej ”当前场景中的图层地图图层:地形地图图层:⽔体道路⽹图层(包含地块形状)规则参数从哪⾥来?当你选中⼀个地块形状,在“Inspector”视窗中查看其属性信息,会发现它并没有被分配规则参数(规则参数组⾥⾯是空的),当应⽤⼀个规则到这个形状上之后这种状况会发⽣改变。
在“Scene”视窗中选择地块图层中的所有要素【Shapes】-->【Assign Rule File...】选择规则⽂件“rules/simpleBuildingShells_01.cga”再次选择地块数据的⼀个要素。
在“Inspector”视窗中就出现了⼀个名为“height”的属性。
这个属性是从哪⾥来的呢?在你对你的形状应⽤规则的时候,规则⽂件的属性信息就以地块数据的属性(规则属性)的形式显⽰出来。
⾼度值来⾃规则⽂件。
单击“Inspector”视窗中的“Rule File”链接,打开规则⽂件。
在左上⾓的位置,放置着“height(⾼度)”的定义。
// height valueattr height =80此值⽤来在规则⽂件中定义建筑物的⾼度。
