教程 14a:2D 和 3D 形状建模

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

CityEngine 中绘制的各种形状

本教程将向您介绍 CityEngine 中可用于 2D 和 3D 的各种手动形状绘制和编辑技术。 通常,形状被用作程序化模型生成的输入,但您也可以创建更复杂 3D 的形状以便可视化背景(如地标建筑)。 本教程的主题设置为以城市街区的比例创建覆盖区。

  • 在第一部分中,您会将覆盖区绘制为具有更高复杂度的 2D 形状。
  • 在第二部分中,您将根据覆盖区创建 3D 形状的体量模型。
  • 在第三部分中,您将使用 CGA 创建更复杂的体量模型。 然后将 3D 模型转换为静态 3D 形状,并使用形状绘制工具对其进行优化。

创建第一个形状

要创建第一个形状,请执行以下操作:

  1. 导航窗口中展开 Tutorial_14a_2D_and_3D_Shape_Modeling 教程文件夹。
  2. 双击 scenes 文件夹中的 14A_ShapeModeling.cej 文件以在视口窗口中打开场景。

    “视口”窗口中的空场景

    场景是一个从上到下的空视图,启用了大小为 10 米的格网。 您将在以下步骤中使用此设置来绘制基础覆盖区,而不必每次都考虑精确测量值。

    提示:

    如果在绘制过程中更改了照相机位置,请按 Shift+N 或单击开始书签将照相机位置重置为从上到下。

  3. 单击工具栏上的面形状创建工具 “面形状创建”工具 (S),然后单击矩形形状创建工具 “矩形形状创建”工具 (Shift+S)。

    形状创建工具

    矩形形状创建工具 “矩形形状创建”工具 是在 CityEngine 中创建矩形 2D 形状的最快方法。 总共只需要三次单击。 前两次单击用于定义轴和第一条边的长度,第三次单击用于定义第二条边的长度。 有关详细信息,请参阅绘制矩形

    在继续之前,请再次检查是否已启用所有捕捉选项。

  4. 单击格网并水平移动鼠标,直到覆盖四个单元格(约 40 米)。 橙色虚线显示捕捉到全局轴。

    绘制形状的第一条边

  5. 单击以创建第二个点。
  6. 将鼠标垂直向下移动四格,直到其自动捕捉并且预览图出现橙色高亮边框,表示将创建一个大约 40 × 40 米的正方形区域。
  7. 单击以创建第三个点,完成形状创建。

    完成的形状

    创建后,将自动选择新形状。

    创建的形状

四个单独的点分别位于四个角。 这些点称为折点。 CityEngine 中的形状由至少三个折点或边构成;一组闭合的折点和边之间的区域称为面。 不支持单点、线或未闭合的折线。

对象的组成部分

处理多面形状

形状可以作为如上所述的只有一个面的单个多边形存在,也可以由具有多个面的多个多边形组成。 在 CityEngine 中,具有多个面的形状通常用于表示 2D 地块或 3D 建筑模型。 对于这两种情况,可以根据需要分配程序化 CGA 规则。

要将联排房屋的覆盖区绘制为一个具有多个面的形状,请执行以下操作:

  1. 矩形形状创建工具 “矩形形状创建”工具 中,在前一个正方形旁边创建另一个正方形,大小为四个单元格。

    两个已绘制的形状

  2. 添加第二个四个单元格大小的正方形。

    要将其添加到之前绘制的形状中,请将鼠标悬停在其中一个现有折点上,然后单击以捕捉到其中一个角。

    添加第三个形状

  3. 再重复一次此操作以完成联排房屋的覆盖区。

    形状已重复

  4. 创建多个面的另一种方法是分割形状。 使用不同的技术重新创建与之前相同的形状。
  5. 首先,创建一个大小为 2 × 6 个格网单元格的矩形(大约 20 × 60 米)。

    创建一个形状以匹配三个组合的形状

  6. 从第三个单元格开始,添加一个 2 × 2 的正方形。

    添加 2 × 2 的正方形。

    该形状现在被分割为三个面,并且可以单独选择这些面。

  7. 在形状仍处于选中状态时,单击工具栏上的选择工具 “选择”工具

    已选择 2 × 2 正方形

  8. 将鼠标悬停在其中一个面上,然后再次单击以选择单个面。

    组件选择模式

    您现在处于组件选择模式。 在初始选择形状后的任何其他单击操作都将选择其基础组件:面、边和折点。

很好。 现在您已创建两个联排房屋。

创建包含孔洞的形状

接下来,您将在联排房屋的右侧创建一个包含庭院的覆盖区。

  1. 单击矩形形状创建工具 “矩形形状创建”工具,然后绘制一个 8 × 8 单元格的正方形。

    绘制的 8 × 8 的正方形

    如果不想计数,可以在矩形工具选项窗口中选中边长度值。当您移动鼠标时,它将使用当前长度进行更新。 您还可以将其设置为固定长度,但此操作将在本教程的后续部分介绍。

  2. 接下来,您将划分出内部。
  3. 在形状内部添加第二个正方形。

    绘制的第二个正方形

    提示:

    使用形状菜单中的偏移形状工具可以获得相同的结果。

  4. 现在,该形状被分割为外部面和内部面。 但是,对于您的庭院,不需要内部面。
  5. 单击选择工具 “选择”工具 并仅选择中心形状。
  6. Delete 键将其移除。

    包含孔洞的形状

    内部面已移除。 您现在有一个包含孔洞的形状。

  7. 为了使覆盖区更加有趣,请将其分成两个相等的部分。

  8. 单击面形状创建工具 “面形状创建”工具
  9. 悬停光标直到捕捉以找到顶边的中点。

    捕捉由橙色的 X 表示。 单击以设置第一个点。 将光标移动到底部,当光标捕捉到底边的中点时,再次单击。

    包含孔洞的形状的中点

    包含孔洞分割的形状

    此操作会将形状分割为两个面。 在本教程的后续部分,您将使用此方法为每个面创建具有不同高度的 3D 体量模型。

绘制更精细的形式

您还可以使用面形状创建工具 “面形状创建”工具创建与上方内容类似的形状。 接下来,您将绘制两个 L 形覆盖区。

  1. 面形状创建工具 “面形状创建”工具 仍处于活动状态的情况下,在庭院旁边创建一个新面。

    每次单击时,都会添加一个额外的折点。 可以通过单击起点或按 Enter 键来完成面。

    L 形覆盖区

  2. 创建第二个 L 形状,但此次上下翻转。

    多个 L 形覆盖区

  3. 到目前为止,您只创建了新形状。 但是,也可以通过应用移动、缩放或旋转变换来修改任何形状。
  4. 假设右侧 L 形状仍处于选中状态,请切换到工具栏上的变换旋转工具 旋转工具 (R)。
  5. 单击并按住绿色轴环,然后将其向上移动,使其稍微向左旋转。

    旋转后的 L 形状覆盖区

  6. 单击变换移动工具 移动工具 (W)。

    多个控点出现在所选形状的中心。 有关这些变换工具的详细信息,请参阅使用变换工具

  7. 沿蓝色箭头拖动以沿 z 轴向上移动形状,直到左上折点与之前的形状水平对齐。

    移动后的 L 形状覆盖区

  8. 接下来,您将再次将该形状与所有角上的左侧 L 形状水平对齐。 为此,您可以使用参考线。 参考线是临时设置的线,用于帮助创建跨几何组合的一致对齐。 在 CityEngine 中,您可以在使用绘制和编辑工具时捕捉至参考线。
  9. 单击参考线创建工具 参考线创建工具

    添加参考线的最简单方法是双击现有边。 添加五个参考线,如下图所示:

    在 L 形覆盖区上创建的参考线

  10. 切换到变换移动工具 移动工具,然后使用从左到右的矩形选择来选择左上折点。

    已选择折点

    或者,可以先单击以选择形状,然后再单击以选择折点组件。

    控点(包括变换移动工具 移动工具 的黄色圆盘)显示在已选折点的位置。

    已选的待移动折点

  11. 拖动黄色圆盘控点,直到其捕捉到先前创建的参考线之间的交叉点,然后再次释放鼠标以将折点设置到新位置。

    黄色圆盘控点

  12. 对要水平对齐的其他三个角重复此操作。

    折点移动至捕捉到参考线的交叉点

  13. 选择右侧 L 形状上的三个参考线,然后按 Delete 键将其再次从场景中移除。

    删除参考线

    确保保留水平参考线,因为后续将使用它们作为参考。

  14. 现在,通过将另一个折点添加到较长边的内侧来进一步调整右侧形状。
  15. 使用面形状创建工具 “面形状创建”工具 双击形状。
  16. 选择新创建的折点并使用移动工具将其稍微向右拖动。

    添加到 L 形覆盖区的折点

约束长度并使用弧模式

面形状创建工具 “面形状创建”工具 不仅可用于绘制多个点。 该工具支持输入固定长度,并且具有用于弧创建的子模式。 接下来,您将使用这些功能绘制更精确的带圆角的 L 形状。

  1. 在开始之前,通过在视口窗口的可见性设置 可见性设置 中取消选中格网或按 D,G 来隐藏格网。

    打开和关闭格网

    在处理精确数字时不需要此功能。

  2. 首先创建两个相距 20 米的垂直参考线。 在绘制带圆角的 L 形状时,它们与两个水平参考线一起作为边界。
  3. 单击参考线创建工具 “参考线创建”工具,然后单击未旋转的 L 形状的最左边缘并将其拖动到右侧。

    确切地说,需在工具选项中定义一个偏移。 两个参考线应该相距 20 米。 如果沿线拖动,第一个参考线为 100 米,而第二个参考线为 120 米。

    参考线创建工具偏移

    提示:

    Tab 键可直接跳到偏移输入字段并输入距离。 按 Enter 键锁定该值。

    使用偏移创建的参考线

  4. 单击面形状创建工具 “面形状创建”工具,将第一个点设置在顶部水平参考线和左侧垂直参考线的交叉点上。
  5. 将长度设置为 70 米。
  6. 再次单击以添加第二个点。

    使用参考线创建形状

  7. 打开弧模式切换按钮或按 A 并向下和向右移动光标,直到它捕捉到底部水平参考线。

    使用滚轮或在弧模式切换按钮旁边的框中输入值,将分辨率更改为 20。

    弧模式

    分辨率控制用于形成圆弧的点或线的数量。 值越小,圆弧看起来越圆。 单击以添加点。

    创建弧

  8. 关闭弧模式切换按钮,并将下一条边的长度设置为 70 米。

    再次单击以创建下一个点。

    关闭弧模式后的线段

  9. 使用长度 20 米向上创建一个点,再使用长度 55 米向左返回创建一个点。

    使用组合弧创建形状

  10. 对于内角,稍微放大并再次打开弧模式切换按钮。
  11. 将分辨率设置为 25,然后在捕捉到右侧垂直参考线时单击。

    创建内弧

  12. 再次缩小并在顶部水平参考线和垂直参考线相交的位置添加下一个点。

    参考线交叉点处的线段

  13. 通过按 Enter 键或单击第一个点来完成绘制。

    完成的形状

  14. 再次移除两个参考线。

    已移除参考线

  15. 接下来,创建相同的形状,但使其翻转。 您可以复制形状并将其旋转 180 度,而无需再次执行完整的绘制过程。
  16. 选择形状并切换到变换移动工具 移动工具

    打开移动时复制切换按钮。

  17. 通过拖动红色箭头将其向右移动。

    复制形状

  18. 关闭移动时复制切换按钮。
  19. 单击变换旋转工具 旋转工具,并使用绿色控点或通过在相应的轴输入框中输入值将副本旋转 180 度。

    旋转复制的形状

  20. 使用变换移动工具 移动工具 的黄色圆盘控点将其向后移动,直到两个形状重叠。

    重叠形状

现在,您已经创建了一个具有重叠形状的覆盖区。 然而,这并不理想,因为在 CityEngine 中两个形状占据相同的空间会导致 z 值冲突。 在下一章中,您将了解各种将重叠形状转换为更实用内容的方法。

形状编辑工具

可以使用形状菜单中的工具和命令来编辑形状。 接下来,您将探索以下工具:联合形状移除形状分离面

  1. 选择重叠的形状并沿 z 轴在下方创建两个副本。

    已复制重叠形状

  2. 选择第一个副本的形状,然后单击主菜单中的形状 > 联合形状

    联合前的形状

    将创建单个面形状,移除了中间的所有边。

    联合后形状

  3. 选择第二个副本的两个形状,然后在主菜单中单击形状 > 移除形状

    移除之前的已选形状

    现在,一个 L 形状切入了另一个 L 形状,将其分成了三个面。 要确定从其他形状中移除哪个形状,会使用优先选择

    移除后的形状

  4. 另一个可用选项是将面分成单独的形状。
  5. 要说明这一点,请复制之前移除的形状,然后从主菜单中单击形状 > 分离面

    分离前的形状

    之前的多面形状现在被分割为表示每个面的单独形状。

  6. 将所有新形状稍微移开。

    已移开的形状

注:

还可以使用组合形状工具将多个单独的形状组合为单个形状。 该工具也适用于未连接的形状。

手动为 3D 形状建模

本教程的下一部分将使用推拉工具 “推拉”工具。 您将使用“推拉”工具根据绘制的 2D 覆盖区手动创建 3D 建筑物体量模型。

推拉工具 “推拉”工具 可直接处理形状,因此最好备份原始覆盖区。 将所有形状复制到其他图层是执行此操作的一种方法,但对于本教程,您可以复制现有方案。

  1. 场景编辑器窗口中右键单击方案 1,然后选择复制

    复制方案

  2. 在对话框中,将名称更改为 3D 形状,然后单击确定

    “复制方案”对话框

    除了在导航窗口和视口窗口中选择了新创建的方案外,未进行任何更改。

  3. 单击推拉工具 推拉工具 并将鼠标悬停在之前移动的其中一个形状上。

    可用于操作的形状或面以橙色轮廓高亮显示。 此外,一个橙色的球会显示在中心。 推拉工具 “推拉”工具 在自上而下视图中不起作用,因此在继续之前,请在单击并拖动的同时按下 Alt 键以稍微倾斜视图。

    拉伸前的“推拉”工具

  4. 要拉伸形状,请单击橙色球并将其向上拖动。

    几何会立即更新。

    已拉伸的形状

  5. 继续拉伸上面的其他变体。

    启用捕捉时(默认),拉伸将捕捉到相同高度的其他面,并将其标记为橙色。 拉伸后,编辑形状之间的差异变得更加明显。

    其他形状已拉伸

    已拉伸重叠形状

  6. 继续拉伸之前绘制的所有覆盖区。

    您可以创建自己的高度。

    已拉伸的 U 形覆盖区

    所有覆盖区已拉伸

您已成功对各种建筑物体量进行了建模。

强制创建新形状

以前,您了解到在现有形状的顶部绘制形状时,它会作为新的面添加到该形状。 由于此行为并不总是您想要的,因此形状创建工具具有强制创建单独形状的选项。 接下来,您将了解使用形状创建工具强制创建新形状的示例。

  1. 创建两个相邻矩形(60 × 20 米以及 40 × 20 米),如下图所示排列:

    创建相邻矩形

  2. 使用形状菜单中的联合形状工具的移除内部边。
  3. 打开强制使用新形状切换按钮。

    使用“强制使用新形状”工具

    从内部角开始画一个 20 米的正方形。

    之后创建的新形状

    从选择内容的变化可以看出,已经创建了一个独立的图形。

  4. 在底部创建另一个相邻的正方形。

    在底部创建矩形

  5. 接下来,缩小拐角形状。
  6. 选择形状,然后单击变换缩放工具 缩放工具 (E)。

    缩放正方形

    使用此工具,您可以通过使用控点或在工具选项中设置数值来按任意方向缩放或保持比例缩放。 缩放将基于控点的中心位置应用。 但是,在此情况下,您希望根据左上折点的位置对其进行缩放。

  7. 打开调整位置和方向切换按钮,然后单击左上角的折点以将控点位置移动到新位置。

    “调整位置和方向”工具

  8. 关闭调整位置和方向切换按钮,并基于新位置缩放形状。

    缩放拐角

  9. 在三个轴输入框中的任意一个输入 75,并按下 Enter 键。

    缩放 75%

    形状现在变小了。

  10. 接下来,将第一个正方形移回到新的内部角位置。
  11. 选择正方形,然后单击变换移动工具 移动工具

    再次,将控点位置调整到正方形的左上方,并使用橙色球将其移动到内角上。

    移动前控点位置已调整

  12. 选择拐角形状的底边,并将其移动到底部正方形形状的上边。

    移动形状使其与另一个形状相交

    要精确捕捉,需要再次将控点的位置调整到边的左顶点,并使用橙色球拖动它,直到捕捉到正方形的左上折点。

  13. 接下来,您将使用变换移动变换旋转工具来完成此块。
  14. 创建三个形状的副本并将其翻转。

    复制并旋转的形状

    将它们与顶部水平参考线对齐。

    所选形状已与参考线对齐

  15. 使用推拉工具推拉工具分别拉伸其组成部分。

    保持拐角形状稍低,使正方形形状较高,以便获得如下图所示的塔和 L 型条柱:

    拉伸塔和 L 形条柱

  16. 要临时对齐塔的高度,请从参考边创建参考线。

    对齐塔

    此操作使您可以在不测量和使用固定距离的情况下拉伸以匹配位置。

  17. 在内部塔的内部边上拖动以进一步自定义形状。

    要使顶部更窄,请沿橙色箭头的相反方向移动。

    创建金字塔

    您可以稍后更改拉伸的高度。

  18. 沿蓝色箭头轴拖动可沿非直角拉伸。

    以非直角拉伸

    完成的拉伸形状

将 CGA 模型转换为形状

创建 3D 建筑物的另一种方法是导入在不同 3D 建模应用程序中创建的模型,并将其作为静态模型导入,或者使用 CGA 以程序化方式创建模型。

接下来,您将了解如何使用内置的形状建模工具进一步自定义此类模型。

  1. 使用格网或工具选项创建一个 80 × 80 米的形状。

    80 × 80 的形状

  2. 接下来,将位于 ESRI.lib 工程中的 rules/Components/Massing/Point_Block 文件夹中的 Simple_Tower.cga 规则文件分配给形状。
  3. .cga 文件拖动到形状上以创建塔的体量。

    指定塔的体量规则

    应用规则后的塔

    ESRI.lib 附带了各种体量创建规则。

  4. 通过更改检查器窗口中的某些属性来优化模型。

    高度属性设定为 60 米,将形状属性设定为变形,将位置属性设置为正中

    将塔形状设置为“变形”

  5. 在模型仍处于选中状态的情况下,单击主菜单中的形状 > 将模型转换为形状

    将模型转换为形状

    此工具将程序生成的 3D 模型转换为静态 3D 形状(您可以将其视为当前 3D 模型的快照)。

    转换为形状后的模型

    该模型现在可以使用本教程中之前介绍的所有技术进行编辑,但无法再通过检查器窗口中的属性进行控制。

  6. 删除底部的面,因为不再需要它们。

    删除面

    已删除面的模型

  7. 切换到圆形形状创建工具 “圆形形状创建”工具 (Shift+C)。

    它的工作方式与矩形形状创建工具非常相似,不同之处在于您只需要定义起点和半径。 使用线段工具选项,您可以控制圆形的边数。 预览将立即更新。 有效数字介于 3(三角形)和 72(非常圆的圆形)之间。

  8. 线段值设置为 24
  9. 在开始绘制圆之前,请关闭强制使用新形状切换按钮。
  10. 单击变形屋顶底部的中心并向外拖动鼠标,直到只剩下一个较小的边界。

    在模型顶部创建的圆形

    可以按 Esc 键重置到起点的初始位置。

  11. 再次单击,圆形将添加到顶面。

    添加到模型的圆

  12. 您将对上半部分执行类似的操作。 但是,这里的形状不像下半部分那样圆。
  13. 使用面形状创建工具 “面形状创建”工具,并打开弧模式切换按钮,以追踪并略微插入形状。

    在模型上创建弧

  14. 根据需要即时调整线段和距离。

    调整弧线段

    每次单击后,您都可以看到添加的附加点。 要调整线段计数或切线,请使用蓝色控点。 按 Ctrl+Z 可随时撤消这些点。

  15. Enter 键或单击起点以将面添加到顶部。

    完成的弧

  16. 取消选择形状并切换到推拉工具 “推拉”工具,将鼠标悬停在圆形面上,然后单击橙色球并向下拖动。

    使用推拉工具在模型中创建孔洞

  17. 向上拉伸自由式面。

    圆形向上拉伸的模型

在最后一步,您可以通过在场景 1 和场景 2 之间切换来查看您的覆盖区及其可能的 3D 表示。

根据覆盖区创建的最终模型

2D 覆盖区形状

在本教程中,您学习了如何执行以下操作:

  • 对 2D 形状使用不同的绘制技术。
  • 编辑形状。
  • 从 2D 形状创建 3D 形状。
  • 将 CGA 模型转换为 3D 形状。

要继续学习 CityEngine,请参阅完整的 CityEngine 教程目录