要访问 CityEngine 中的教程,请单击帮助 > 下载教程和示例...。 在选择教程或示例后,系统会自动下载工程并将其添加到工作空间。
探索 Desert City 场景文件
- 双击位于场景文件夹中的 Desert City 场景文件。
- 在随即打开的第一个对话框中单击生成。
由此将触发所有元素的模型生成。
- 导航该场景并探索建筑物、街道和植被。
您将注意到,默认仅生成所有建筑物的一小部分。 这显然是为了节省内存资源。
- 编辑一些规则参数,例如 Building_Height、Building_Usage 或 Level of Detail。
- 选择更多的一些建筑物覆盖区或街道形状(单击鼠标左键或绘制选择矩形)。
注:
如果您使用选择矩形选择“左-右”或“右-左”,则将出现不同的行为!
- 单击工具栏中的生成按钮或按 Ctrl+G 以触发新选定形状的模型生成。
重新创建完整场景
完整的 ‘Desert City’ 场景由 GIS 数据和规则集组成。 GIS 数据包括属性化覆盖区形状、街道中心线、植被标记、墙线和电力线。 所有这些数据都包含在所谓的“地理数据库”文件中,简称“GDB”。 由于使用了不同的数据类型(线、面、点),因此每个对象类型都将存储在不同的图层中。
- 打开 Desert_City_terrain_only 场景文件。
导入 GIS 数据
- 在导航器中,定位该数据文件夹。 从该数据文件夹内,将 DesertCityGDB.gdb 直接拖放到 3d 视口中。 由此将触发 GDB 导入对话框。
- 取消选中 TerrainExtent 图层。
- 单击下一步,在以下设置中,仅激活合并距离为 2 的合并节点选项,然后单击完成。
将导入的 GIS 数据与地形对齐
在场景编辑器中,可以看到已创建所有图层,但由于所有元素都位于 0 高程处,因此尚未显示任何内容,由此需要将其投影到正确的高度并相应地重新对齐地形:
- 取消激活以下图层的可见性:PowerLines、Structures、Vegetation。
- 请使用较大的选择矩形来选择视口中的所有可见内容。
- 单击图形菜单 > 将图形与地形对齐...
- 投影到地形,偏移为 0.4 米。
- 单击形状菜单 > 将图形与地形对齐...
- 平移至形状的最大值,偏移为 0.2 米
注:
平移将保持形状水平和平坦。
- 单击图层菜单 > 将图形与地形对齐...
- 对齐地形 +- 250 米。
- 反转所有图层的可见性,因此以前隐藏的图层现在可见,反之亦然。
- 对于即将进行的对齐,我们将保持地形为当前状态。
- 投影图形(墙和电力线),偏移为 –0.5 米。
- 将形状(结构和植被标记)平移至形状的最大值,平移为 -0.5 米。
CGA 规则分配
现在,将相应的 CGA 规则分配给每种特定的对象类型。 为此,最简单的方法是依次激活每个图层的可见性,以便能够轻松选择所有形状以进行规则分配
请注意,可通过多种方法来分配规则。 最常见的方法包括:
- 从导航器中将规则直接拖放到视口中的所选形状。
- 使用检查器窗口中的分配按钮。
- 右键单击图层。
由于标记形状(结构和植被)非常小,因此通过拖放来分配规则将非常棘手。 因此,最好仅在这些图层上单击鼠标右键并选择同一图层中的所有对象,然后通过导航器来分配规则。
Streets | > Desert_City_Streets.cga |
PowerLines | > Desert_City_Powerlines.cga |
Walls | > Desert_City_Walls.cga |
Buildings | > Desert_City_Buildings.cga |
Structures | > Desert_City_Structures.cga |
Vegetation | > Desert_City_Vegetation.cga |
增大城市中心的纹理分辨率
CityEngine 将用于 3D 显示的所有纹理(= 栅格图像)存储在图形卡的视频内存中,因此 CityEngine 中使用的所有纹理文件都存在建议的最大分辨率,约为 4000x4000 像素,这对于较大区域来说可能不够详细。 (另请参阅纹理 - 栅格文件:CityEngine-ArcGIS 中的概念)。
为了至少局部地提高建筑物下方的地形纹理质量,需要激活动态街区细分,并将这些新的地块形状用作建筑物下方的地面。 在此附加地面上,将映射更高分辨率的纹理。
- 首先,隐藏除 Street 图层之外的所有图层。
- 通过左右矩形选择来选择一些街区。 在检查器中,转至“街区”选项卡,将 shapeCreation 参数更改为 true,然后将 lotAreaMin 和 Max 设置为 2’000 和 4’000。
- 在每个街区中,选择一个形状,然后选择同一组中的所有形状(右键单击快捷菜单)。 选择形状后,分配规则 Desert_City_ParcelTexturing.cga。
- 单击生成。
重点干预:新学校
用于本章的 GDB 在数据文件夹中为 DesertCity_Intervention.gdb。 对实际手动创建该数据不感兴趣的用户可以跳过本章。
将重新创建一个关注现实世界的干预。 在市中心附近的相应街区中,计划在以下选定城市街区中新建一所带有足球场的学校。
由于用于编辑数据的 GIS 应用程序为 ArcMap,因此将在 ArcMap 中打开该数据集。
- 需要在 ArcMap 中创建空白地图,然后将示例数据集中的要素类导入为图层 DesertCityGDB.gdb。
- 对于实际干预,将创建一个新的 GDB,例如将其命名为 MyIntervention.gdb。 最好直接在硬盘上工程的数据文件夹中定位该 GDB。
- 创建以下要素类:
- 面要素:名为 Intervention_Buildings
添加以下属性:
- Building_Height (浮点型)
- Building_Usage (文本型)
- 面要素:名为 Intervention_Soccer_Field
不添加任何属性:
- 点要素:名为 Intervention_Vegetation
添加以下属性:
- Size (浮点型)
- 线要素:名为 Intervention_Walls
添加以下属性:
- width(必须采用小写形式!) (浮点型)
- 创建不同的要素:绘制一个或多个具有真实高度 [米] 的学校建筑物,并将 Building_Usage 属性设置为学校。
- 创建一些墙作为折线,将宽度设置为 0.4 米。 将直接在 CityEngine 中映射宽度值。
- 创建一个矩形的足球场。
- 分布一些植被点,并将其大小属性设置为介于 2 到 15 米之间的真实值。
- 保存 GDB。
- 除非您已在工程的数据文件夹中创建了 GDB,否则请将其移动或复制该位置。
- 刷新 CityEngine 中的工作空间:文件 > 刷新工作空间。
导入干预数据
如第 2 章中所述,将新 GDB 拖放到 3d 视口中以触发导入。 当然,您可以选择您自己创建的 GDB,也可以选择示例随附的 GDB:DesertCity_Intervention.gdb。
- 将形状和图形与地形对齐。
- 分配规则。 系统还提供用于足球场的规则。
- 如果在错误的方向创建足球场,请将属性 Orientation_Change 设置为 true。