教程 17:沙漠城市

要访问 CityEngine 中的教程,请单击帮助 > 下载教程和示例。 在选择教程或示例后,系统会自动下载工程并将其添加到工作空间。

探索 Desert City 场景文件

  1. 双击位于场景文件夹中的 Desert City 场景文件。
  2. 在打开的第一个对话框中单击生成

    此操作将启动所有元素的模型生成。

    Desert City 所有元素的主视图

  3. 导航该场景并探索建筑物、街道和植被。

    您将注意到,默认仅生成所有建筑物的一小部分。 这将节省内存资源。

  4. 编辑一些规则参数,例如 Building_HeightBuilding_UsageLevel of Detail
  5. 再选择一些建筑物覆盖区或街道形状(单击或绘制选择矩形)。
    注:

    如果您使用选择矩形从左到右选择或从右到左选择,则将出现不同的行为。

  6. 单击工具栏中的生成按钮或按 Ctrl+G 以启动新选定形状的模型生成。
    规则修改后的城市概览

重新创建完整场景

完整的 Desert City 场景由 GIS 数据和规则集组成。 GIS 数据包括属性化的覆盖区形状、街道中心线、植被标记、墙壁线和电力线。 所有这些数据都包含在地理数据库文件 (GDB) 中。 由于使用了不同的数据类型(线、面、点),因此每个对象类型都将存储在不同的图层中。

  1. 打开 Desert_City_terrain_only 场景文件。
    在 ArcMap 中显示的 Desert City 地理数据库图层

导入 GIS 数据

  1. 导航器窗口中,定位该数据文件夹。 从该数据文件夹中,将 DesertCityGDB.gdb 直接拖动到 3D 视窗中。

    文件地理数据库导入对话框随即显示。

    CityEngine“文件地理数据库导入”对话框
  2. 取消选中 TerrainExtent 图层。
  3. 单击下一步,在以下设置中,激活合并距离值为 2合并节点选项,然后单击完成

将导入的 GIS 数据与地形对齐

在“场景编辑器”中,您将看到已经创建所有图层,但由于所有元素都位于 0 高程处,因此所有内容均不可见。 您必须将其投影至正确的高度并相应地重新对齐地形:

  1. 隐藏 PowerLines、Structures 和 Vegetation 图层。
  2. 请使用较大的选择矩形来选择视窗中的所有可见内容。
  3. 单击图形菜单 > 将图形与地形对齐
  4. 投影到地形,偏移值为 0.4 米
  5. 单击形状菜单 > 将形状与地形对齐
  6. 单击形状最大值,然后将偏移设置为 0.2 米
    注:

    平移将保持形状水平和平坦。

  7. 单击图层菜单 > 将图形与地形对齐...
  8. 使用值 +- 250 米对齐地形。
  9. 反转所有图层的可见性,因此之前隐藏的图层现在可见,反之亦然。
  10. 对于即将进行的对齐,将地形保持为当前状态。
  11. 使用偏移–0.5 米投影图形(墙和电力线)。
  12. 使用偏移–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

植被

> Desert_City_Vegetation.cga

增大城市中心的纹理分辨率

CityEngine 将用于 3D 显示的所有纹理(栅格图像)存储在显卡的视频内存中,因此建议所有纹理文件使用的最大分辨率为 4000x4000 像素,这对于较大区域来说可能不够详细。 (请参阅 Esri 社区文章纹理 - 栅格文件:CityEngine-ArcGIS 中的概念)。

为了局部提高建筑物下方的地形纹理质量,需要激活动态街区细分,并将新的地块形状用作建筑物下方的地面。 在附加地面上,您将映射更高分辨率的纹理。

  1. 首先,隐藏除 Street 图层之外的所有图层。
  2. 通过左-右矩形选择来选择一些街区。 在“检查器”中,单击街区选项卡,将 shapeCreation 参数更改为 true,然后将 lotAreaMin 和 Max 设置为 2’0004’000
  3. 在每个街区中,选择一个形状,右键单击,然后选择同一组中的所有形状。 选择后,分配名为 Desert_City_ParcelTexturing.cga 的规则。
  4. 单击生成

规划新学校

用于本章的 .gbd 文件在数据文件夹中为 DesertCity_Intervention.gdb。 如果您对手动创建该数据不感兴趣,请跳过本节。

接下来,您将重新创建一个现实世界的重点干预。 在市中心附近的以下街区中,您计划在以下选定城市街区中新建一所带有足球场的学校。

城市中心街区中新学校位置的影像

  1. 在 ArcMap 中打开数据集。
  2. 在 ArcMap 中创建空白地图,然后将示例数据集中的要素类导入为图层。
  3. 新建 .gdb 文件,将其命名为 MyIntervention.gdb,然后将其保存到硬盘上工程的数据文件夹。
  4. 创建以下要素类:

    • 面要素,名为 Intervention_Buildings

      添加以下属性:

      • Building_Height 浮点型)
      • Building_Usage文本型)
    • 面要素,名为 Intervention_Soccer_Field

      不添加任何属性:

    • 点要素,名为 Intervention_Vegetation

      添加以下属性:

      • Size(类型为浮点型
    • 线要素,名为 Intervention_Walls

      添加以下属性:

      • width(必须为小写,类型为浮点型

  5. 绘制一个或多个具有真实高度(以米为单位)的学校建筑物,并将 Building_Usage 属性设置为学校
  6. 创建一些墙作为折线,将 width 设置为 0.4 米。

    将直接映射 width 值。

  7. 创建一个矩形的足球场。
  8. 分布一些植被点,并将其 Size 属性设置为介于 215 米之间的真实值。
  9. 单击保存
  10. 如果未在工程的数据文件夹中创建 .gdb 文件,则将其移动或复制到此处。
  11. 要刷新工作空间,单击文件 > 刷新工作空间

导入干预数据

如上所述,将新的 .gdb 文件拖动到 3D 视窗中以开始导入。 当然,您可以选择自己创建的 .gdb 文件,或示例随附的文件 DesertCity_Intervention.gdb

  1. 将形状和图形与地形对齐。
  2. 分配规则。

    还有一个用于足球场的规则。

  3. 如果在错误的方向创建足球场,请将属性 Orientation_Change 设置为 true
    已导入的足球场地形