【CityEngine教程文档】---01 基础教程
本文档为Esri CityEngine学习文档,是CityEngine_2011_Tutorials 官方示例教程1—— “Tutorial_01_CityEngine_Basics_2011”的中文翻译稿,由网友冬冬翻译整理。
在此非常感觉网友冬冬,也欢迎更多的网友提供更多的技术文章(可在新浪微博上@ArcGIS_三维通知我们)在本栏中与大家分享。 教程02和教程03内容也己有冬冬翻译完毕,随后会为大家更新上去。
教程简介
本教程讲解如何利用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工程中拷贝到我们的新建工程中。
使用复制和粘贴(Ctrl+C和Ctrl+V)将资源(asset)文件夹中所有的文件与文件夹拷贝到我们新建工程的资源(asset)文件夹中。
使用同样的方法,将规则文件夹中的 “building.cga” 规则文件拷贝到新工程的规则文件夹中。
现在,我们已经为第二部分的创建道路网和建筑模型工作做好了准备。
第二部分:街道和建筑物
创建道路网
单击【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教程文档】---01 基础教程相关推荐
- 计算机教程文档,计算机应用基础教程-20210323002444.doc-原创力文档
<计算机应用基础教程> 授课教师:李宁 西北外事中专学校 旅游管理专业部 教学课时:1 教学内容:第二章Word 2003文字处理软件的应用 第三节文档的排版 教学H的与要求:I.掌握如何 ...
- php基础教程文档,PHP5基础教程
*/ php5学习笔记 第一节--面向对象编程 面向对象编程被设计来为大型软件项目提供解决方案,尤其是多人合作的项目. 当源代码增长到一万行甚至更多的时候,每一个更动都可能导致不希望的副作用. 这种情 ...
- php mvc教程 文档,PHP培训教程教你快速打造PHP MVC框架[PHP基础教程]
PHP培训教程教你快速打造PHP MVC框架[PHP基础教程] 简介 MVC框架在现在的开发中相当流行,不论你使用的是JAVA,C#,PHP或者IOS,你肯定都会选择一款框架.虽然不能保证100%的开 ...
- matlab2014a文档,MatlabR2014a基础教程
MATLAB R2014a 基础教程 ---MATLAB R2014a 快易行(上) 前言 MATLAB与Mathematica.Maple并称为"3M",是数学界中三大著名软件, ...
- Word文档的基础教程
一.关于F键的快捷操作 [F1]键:帮助 [F2]键:移动文字或图形,按回车键确认 [F4]键:重复上一次的操作 [F5]键:编辑时的定位 [F6]键:在文档和任务窗格或其他Word窗格之间切换 [F ...
- mysql菜鸟教程 文档_mysql菜鸟教程
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- 【CityEngine教程文档】 ---03 地图控制教程
本文档为Esri CityEngine学习文档,是CityEngine_2011_tutorial官方示例教程3 "Tutorial_03_Map_Control__2011_2" ...
- 【CityEngine教程文档】 ---02 街道教程
本文档为Esri CityEngine学习文档,是CityEngine_2011_Tutorials 官方示例教程2-- "Tutorial_02_Street_Generation__20 ...
- 实施文档_Word 2010文档处理案例教程
Word 2010文档处理案例教程 ISBN:978-7-80243-928-3/02 作者:黄桂林 江义火 郭燕 定价:38.00元 出版社:航空工业出版社 适用层次:通用 出版日期:2019-10 ...
- wps android qq 群,手机WPS怎样发送文档给QQ?WPS怎样发送文档给QQ教程
软件大小: 52.26MB 软件版本: 2.1.0 软件类型: 办公工具 查看详情 直接下载 手机WPS怎样发送文档给QQ?不少刚使用手机WPS的人不晓得怎么操作,那么下面来看看WPS怎样发送文档给Q ...
最新文章
- ClickHouse系列教程四:允许远程连接 allow remote access
- 搭建php帮助中心,帮助中心
- Caffe部署中的几个train-test-solver-prototxt-deploy等说明三
- starling教程-纹理(Texture)
- 利用 git 提交代码、git 简单使用(拉取、推送、分支、合并)
- 2.9 iframe
- 三大重磅奖项揭晓 2020全球智博会为行业加冕
- 如何在Vue中使用websocket?
- 进制转换(二进制、八进制、十进制、十六进制)涵盖整数与小数部分,超详细
- EasyClick adb shell命令大全
- pandas的is in和not in
- Android UI 之一步步教你自定义控件(自定义属性、合理设计onMeasure、合理设计onDraw等)
- QT去除控件被选中后的焦点虚线框
- ajax无线遥控器,利用python+tkinter做一个简单的智能电视遥控器
- 【漏洞复现】MS12-020漏洞(蓝屏攻击)复现
- linux输入多行内容至文件
- Linux常用命令笔记
- bam文件处理 转fq
- C51学习笔记:基于STC89C52的超声波测距与LCD1602显示
- 如何将C盘数据移动到其他盘
热门文章
- 解决IE浏览器被2345劫持问题
- Java实现 蓝桥杯 算法提高 天天向上(DP)
- 弘辽科技:6个核心关键词,抓住创业的“命运转折点”!
- 物联网技能大赛-Ubuntu-(1)
- iOS16.1RC版发布后 iPhone14 Pro系列机型可以在灵动岛显示球赛比分
- 服务器常见协议,网吧影视服务器常见的网络协议
- MessageBox confirm弹框确认和取消按钮的使用-回调
- 英语: 听力(Listening)
- zkLedger: Privacy-Preserving Auditing for Distributed Ledgers
- [爬虫]requests+正则表达式爬取猫眼电影TOP100