cityengine函数extrude语法
- 格式:docx
- 大小:47.89 KB
- 文档页数:2
42软件开发与应用Software Development And Application电子技术与软件工程Electronic Technology & Software Engineering●项目性质:赛尔网络下一代互联网技术创新项目;项目名称:基于IPv6的AR 录取通知书设计与实现;项目编号:NGII20180610。
三维虚拟校园漫游系统以其逼真的校园环境再现能力和丰富的交互功能,在校园规划、对外宣传、帮助新生熟悉校园等方面,都能起到非常重要的作用,近年来在国内外高校中得到了广泛的应用。
笔者在赛尔网络下一代互联网创新开发项目研究中,也制作了荆楚理工学院三维校园模型。
我们最初使用3DMax 三维建模软件,花费了大量人力和时间对荆楚理工学院校园环境进行了三维建模,校园环境细节得到最大程度的还原。
虽然展示校果很好,但因模型面数巨大,程序在目前主流配置手机上都无法流畅运行,所以我们转而使用专用于大规模城市仿真的CityEngine 进行校园模型制作。
1 数据准备与处理1.1 影像数据获取建模所需的影像数据可以通过CityEngine 软件的Get Map Data 功能获取,也可以从水经注万能地图下载器等相关软件中获取。
1.2 建筑物轮廓数据如果有校园建筑的测绘地形图,我们可以直接从地形图里提取建筑物平面轮廓的CAD 数据,然后使用ArcGIS 工具,将CAD 数据转化为Shapefile 文件,设置相关属性,如楼层、屋顶、建筑名称等。
如果拿不到建筑的CAD 数据,也可以在ArcGIS 中对高分辨率的地图影像进行矢量化得到建筑物轮廓。
本次建模没有使用这两种方法,一是我们没有CAD 数据;二是高清影像图进行矢量化也不能达到所需效果。
我们采用的办法是在CityEngine 中对照影像数据绘出轮廓图和在3D Max 中参照实际建筑绘出轮廓图,然后再将轮廓图导入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. 分解完成之后,就开始开始对这些面进行外观造型。
city engine 规则CityEngine是一款用于创建虚拟城市和规划场景的三维建模软件。
它通过编写规则脚本来生成建筑、道路、植被等元素,使用户能够快速创建高度可自定义的城市模型。
以下是一些CityEngine中使用的规则的概述:1. CGA规则语法:CityEngine使用一种称为CGA(Computer Generated Architecture)的规则语言来描述建筑和城市场景。
CGA规则是一种基于规则和参数的语法,允许用户通过定义规则和应用参数来生成建筑物的形状、纹理、风格和细节。
2. 规则库(Rule Library):CityEngine提供了一系列内置的规则库,用户可以使用这些规则库来创建建筑物、道路、街区等元素。
规则库包含了各种建筑风格、道路布局等模板,用户可以选择并进行自定义修改。
3. 层级规则(Hierarchical Rules):CityEngine中的规则可以分为层级结构,这意味着可以使用嵌套规则,从而实现对建筑物和场景的更复杂和详细的描述。
4. 条件语句和迭代语句:CityEngine的规则中可以使用条件语句(如if-else语句)和迭代语句(如for循环),以便根据特定的条件或需要对生成的元素进行逻辑控制和重复操作。
5. 参数化:CityEngine的规则支持参数化,可以在规则中定义参数并通过调整参数的值来改变生成的场景。
这使得用户能够快速进行设计迭代和变化分析。
通过编写和定义规则,用户可以创建高度可定制的城市场景和建筑模型。
CityEngine还提供了可视化和交互式的编辑器,方便用户进行规则的创建、编辑和实时预览。
用户可以根据自己的需求和创意,通过编写规则来生成独特而逼真的虚拟城市模型。
CityEngine三维建模与设计精英培训班(扩展学习参考手册)Esri中国信息技术有限公司2014年5月版权声明本文档版权为Esri中国信息技术有限公司所有。
未经本公司书面许可,任何单位和个人不得以任何形式摘抄、复制本文档的部分或全部,并以任何形式传播。
制定及修订记录版本完成日期编写/修订纪要编写者备注V1.0 2014-5-24 编写徐汝坤甘鑫平CityEngine2012版本目录第1章城市建模实战练习 (5)1.1需求分析 (5)1.2目的和意义 (5)1.3数据准备与处理 (5)1.3.1基础数据的准备与处理 (5)1.3.2贴图数据的准备 (8)1.3.3模型部件的准备 (10)1.4场景构建和数据导入 (10)1.5规则编写 (12)1.5.1绿化区散点树的创建 (12)1.5.2标志性建筑物的引入 (14)1.5.3一般建筑的创建 (14)1.5.4道路数据的创建 (19)1.5.5其它规则 (23)1.6规则使用和模型调整 (23)1.7模型导出与场景展示 (23)第2章CityEngine函数库 (25)2.1几何体创建 (25)2.1.1替换函数(i) (25)2.1.2屋顶函数 (26)2.1.3其它几何体创建函数 (29)2.1.4练习:屋顶创建 (30)2.2几何体变换 (31)2.2.1平移函数 (31)2.2.2旋转函数(r) (33)2.2.3缩放函数(s) (34)2.2.4居中函数(center) (35)2.3几何体细分 (36)2.3.1拆分函数(comp) (36)2.3.2切割函数(split) (37)2.3.3后退函数(setback) (39)2.3.4偏移函数(offset) (40)2.3.5随机点函数(scatter) (41)2.3.6其它几何体拆分函数 (42)2.4模型贴图 (42)2.4.1贴图函数(texture) (42)2.4.2约束贴图的函数 (43)2.4.3操作UV函数 (46)2.5函数库综合练习 (47)2.5.1练习:建筑物模型规则编写 (47)2.5.2练习:道路规则编写 (50)第3章CityEngine交互建模 (53)3.1纹理校正工具 (53)3.1.1纹理校正工具介绍 (53)3.1.2练习:利用纹理校正处理变形图片 (54)3.2交互式建模工具 (54)3.2.1交互式建模工具介绍 (54)3.2.2练习:利用交互式建模工具建模 (55)3.3FacadeWizard立面处理工具 (61)3.3.1Façade Wizard工具介绍 (61)3.3.2练习:利用Façade Wizard创建规则 (62)第4章CityEngine使用Python脚本 (68)4.1Python脚本界面基础 (68)4.1.1Python控制台 (68)4.1.2练习:利用python控制台选择道路的节点 (68)4.1.3Python编辑器 (69)4.1.4练习:利用python编辑器选择道路的节点 (71)4.2练习:利用python脚本批量导出 (71)附录 (73)A.学习资源 (73)第1章城市建模实战练习利用CityEngine创建城市三维模型时要考虑创建那些城市内容,这些内容要创建到什么程度?基于这些信息进而去组织数据、编写规则,最终完成城市三维模型的创建。
cityengine2012 教程3 地图控制目录Part 1 理解CGA参数Part 2 控制天空轮廓线(地平线)Part 3 控制土地利用类型Part 1 理解CGA参数城市由许多大的对象构成。
通过单一对象(建筑)的属性设置来控制他们是乏味的,也是不可能的。
在这个教程中你将首先学习如何利用CGA参数。
打开场景‘mapcontrolTutorial_01.cej’(场景)准备了什么?打开的场景包括两个图层(Terrain and Water)和一个包含很多图形的街道网图层。
这些规则参数来自于哪里?如果你选择单一的块,并且在Inspector(Window > Inspector)中查看它的属性,就会发现他没有制定的规则参数(规则参数窗是空的)。
一旦我们指定一个规则文件给他(块),他就会发生改变。
∙在场景编辑窗口选择Streetnetwork;∙Shapes >Assign Rule File,选择规则文件simpleBuildingShells_01.cga’;∙再次选择一个单一的块,现在就能在Inspector窗口中看到属性,即‘height’;那么,他们(规则)来自于哪呢?一旦你指定一个规则文件给一个图形(刚才用到的块),我们就可以看到作为块的规则参数的规则文件的属性。
规则文件告诉我们,这些属性来自于规则文件。
在inspector视窗,点击规则文件连接(如下图1),打开指定的规则文件(下图2)。
在右图中我们可以通过上面的按钮改变视图,来查看规则参数以及规则树。
∙改变视图到‘textual’模式∙在属性窗口的顶部你就会看到∙这个属性用于定义建筑物的高度(‘height’)然后重新选择块并且更新(generate,下图中标红的位置)块,你将会得到一个80米高度的建筑物(如下图)。
∙拉动可以改变建筑物的高度。
Part 2: 控制天空轮廓线(地平线)在第二步,你将会运用地图来控制你城市的参数。
本文档为Esri CityEngine学习文档,是CityEngine_2011_tutorial官方示例教程 3 “Tutorial_03_Map_Control__2011_2”的中文翻译稿,由网友冬冬翻译整理。
0000教程简介0000城市包含非常多的对象。
通过设置每一个建筑物的属性来控制它们会非常麻烦也是不太可能的。
首先,你将在本教程中学习怎样使用CGA规则参数;然后你将学习怎样使用地图来控制你的城市的属性。
000第一部分:理解CGA规则属性000教程设置0000在你的CityEngine工作空间中导入“Tutorial_03_MapControl”工程,打开场景0000“Tutorial_03_MapControl/scenes/mapcontrolTutorial_01.cej ”0 000当前场景中的图层000地图图层:地形0000地图图层:水体0000道路网图层(包含地块形状)0000规则参数从哪里来?000当你选中一个地块形状,在“Inspector”视窗中查看其属性信息,会发现它并没有被分配规则参数(规则参数组里面是空的),当应用一个规则到这个形状上之后这种状况会发生改变。
0000在“Scene”视窗中选择地块图层中的所有要素0000【Shapes】-->【Assign Rule File...】选择规则文件“rules/simpleBuildingShells_01.cga”0000再次选择地块数据的一个要素。
在“Inspector”视窗中就出现了一个名为“height”的属性。
0000这个属性是从哪里来的呢?在你对你的形状应用规则的时候,规则文件的属性信息就以地块数据的属性(规则属性)的形式显示出来。
高度值来自规则文件。
0000单击“Inspector”视窗中的“Rule File”链接,打开规则文件。
在左上角的位置,放置着“height(高度)”的定义。
0000// height value0000attr height =80000此值用来在规则文件中定义建筑物的高度。
city engine 规则-回复"City Engine规则:打造逼真的虚拟城市"城市引擎(City Engine)是一种专业的城市规划和建模软件,它可以帮助用户通过使用规则和参数进行快速建模,以创建逼真的虚拟城市。
本文将一步一步地回答关于City Engine规则的问题,带您了解其背后的奥妙。
第一步:理解City Engine规则的基本概念在City Engine中,规则是用来描述建筑物、道路、绿地等城市元素的属性和样式的定义。
规则可以基于不同的参数来生成城市的不同部分,例如建筑物的高度、道路的宽度、绿地的覆盖程度等。
通过规则,用户可以实现大规模城市的建模和自动化生成,而不需要逐个元素手动创建。
第二步:了解City Engine规则的语法和操作City Engine规则使用一种类似于编程语言的语法来描述城市元素的生成方式。
它使用L-系统(L-systems)以及其他图形语法来描述建筑物的形状和细节。
用户可以在规则中定义参数、变量和函数,并使用这些来生成城市模型。
例如,可以使用规则来实现建筑物的风格变化。
用户可以定义建筑物的高度、立面材质、窗户的分布等参数。
通过对这些参数进行随机或规则化的变化,用户可以创建出不同风格的建筑物。
第三步:掌握City Engine规则的应用场景City Engine规则可以应用于各种城市规划和建模的场景。
它可以用于创建真实城市的虚拟模型,以支持城市规划决策的制定。
通过模拟不同规划方案和参数的变化,用户可以评估城市的可持续性、交通流动性等指标,从而为规划决策提供科学依据。
此外,City Engine规则还可以用于游戏开发、电影特效等领域。
通过规则的应用,用户可以快速生成逼真的虚拟城市场景,并进行实时的交互和导航。
第四步:了解City Engine自带的规则库和示例City Engine自带了丰富的规则库和示例,帮助用户快速入门和掌握规则的使用。
这些规则库和示例包括不同地区的建筑物风格、城市布局规划、植被分布等。