“CityEngine”的版本间的差异
来自Wiki.Citydatum
(创建页面,内容为“{{提示|该页面仍需进一步完善,欢迎加入我们}} CityEngine是一款Esri苏黎世研发中心(原Procedural公司)开发的三维建模软件应…”) |
小 |
||
第13行: | 第13行: | ||
== 上手 == | == 上手 == | ||
+ | === 用户界面 === | ||
+ | * '''主要窗口类型''':导航栏、场景编辑器、CGA规则编辑器、三维视窗、平面图(顶视图的三维视窗)、监视窗口、控制台输出、消息记录 | ||
+ | === CGA规则 === | ||
+ | * '''CGA形状语法'''(CGA Shape Grammar Language):CGA(computer generated architecture)规则可在整个城市的尺度上,控制大量的几何形、比例、建筑或街道风貌肌理。一个简单的CGA规则文件示例如下: | ||
+ | |||
+ | /** | ||
+ | * File: building_01.cga | ||
+ | * Created: 31 Oct 2008 10:47:50 GMT | ||
+ | * Author: andi | ||
+ | */ | ||
+ | |||
+ | attr minheight = 10 | ||
+ | attr maxheight = 30 | ||
+ | attr floorheight = 3 | ||
+ | attr windowwidth = 2 | ||
+ | |||
+ | Lot --> extrude(rand(minheight,maxheight)) Components | ||
+ | Components --> comp(f){top : Roof. | side : Facade} | ||
+ | Facade --> split(y){~floorheight : Floor}* | ||
+ | Floor --> split(x){~windowwidth : Window}* | ||
+ | Window --> i("modern_window.obj") | ||
== 参考链接 == | == 参考链接 == |
2018年6月11日 (一) 18:59的版本
CityEngine是一款Esri苏黎世研发中心(原Procedural公司)开发的三维建模软件应用,特别适合于三维城市环境的生成。利用程序化建模(procedural modeling)方法,CityEngine可支持细节丰富、大尺度三维城市模型的创建。
概述
- 基于规则批量建模编辑:规则定义了一系列的几何和纹理特征决定了模型如何生成。基于规则的建模的思想是定义规则,反复优化设计,以创造更多的细节。当有大量的模型创造和设计时,基于规则建模可以节省大量的时间和成本。最初,它需要更多的时间来写规则文件,但一旦做到这一点,创造更多的模型或不同的设计方案,比传统的手工建模更快。
- 与ArcGIS集成编辑:CityEngine提升了ArcGIS三维建模能力,充分使用GIS数据快速创建3D内容,为ArcGIS三维数据的获取提供保障,使得ArcGIS三维解决方案更加完善。
应用
- 城市规划与城市设计:
- 城市研究:
- 电影制作:疯狂动物城、超能陆战队均利用CityEngine来构建大尺度的城市模型;
- 游戏开发:
上手
用户界面
- 主要窗口类型:导航栏、场景编辑器、CGA规则编辑器、三维视窗、平面图(顶视图的三维视窗)、监视窗口、控制台输出、消息记录
CGA规则
- CGA形状语法(CGA Shape Grammar Language):CGA(computer generated architecture)规则可在整个城市的尺度上,控制大量的几何形、比例、建筑或街道风貌肌理。一个简单的CGA规则文件示例如下:
/** * File: building_01.cga * Created: 31 Oct 2008 10:47:50 GMT * Author: andi */ attr minheight = 10 attr maxheight = 30 attr floorheight = 3 attr windowwidth = 2 Lot --> extrude(rand(minheight,maxheight)) Components Components --> comp(f){top : Roof. | side : Facade} Facade --> split(y){~floorheight : Floor}* Floor --> split(x){~windowwidth : Window}* Window --> i("modern_window.obj")