CityEngine 的主要概念是有效进行建模的“程序式”方法。 为计算机提供了基于代码的“程序”,该程序表示将被执行的一系列命令(在这种情况下为几何建模命令)。 代替手动与模型交互并为 3D 几何模型建模的用户的“传统”干预,在规则文件中以“抽象方式”描述任务。
CityEngine 功能
程序式建模核心
CityEngine CGA 形状语法中提供的命令,例如“拉伸”、“分割”或“纹理”,在大多数 3D 应用程序中是众所周知的命令,您可以轻松地对其进行修改并在短时间内创建复杂的建筑形式。
要了解程序式建模的详细信息,请参阅基于语法的建模。
动态城市布局
动态城市布局为用户提供了强大的工具来创建交互式街道网络,该网络可以实时自动更新。 街道、人行道和整个街区,可以有效地形成适合用户输入的特定城市上下文,并为用户提供设计完整的城市布局的直观方式。
当然,所有与基础动态城市布局的布局有关的几何也会动态更新。 您在编辑周围街道的宽度时会重建建筑物。
可自定义 UI
CityEngine 中的用户界面 (UI) 可以适应当前的任何任务。 无论是创建规则、在街道网络上工作、使用实时反馈编辑属性还是研究您当前城市发展的统计报告:“一切皆可行”。
对于希望控制重复任务、以文件格式创建格式化报告或自动化其他特定操作的用户,Python 脚本可用于进一步简化 CityEngine 中的工作流。
Data Interoperability
CityEngine 支持行业中用于导入和导出的最常见的格式。 您可以将线数据、形状数据(轮廓线)和 3D 几何传输到 CityEngine,或从中传输出来。 不论是在城市规划、建筑、娱乐或模拟领域工作,CityEngine 均可以为您提供传输数据的方法。
CityEngine 建模管线
使用 CityEngine 对城市环境进行建模通常意味着下图中给出的管线的各个阶段。 该管线包括用于生成大规模城市布局以及应用 CGA 规则创建详细建筑物模型的多个程序式建模工具。
CityEngine 场景将存储为表示不同阶段的各种数据类型的图层。 管线是灵活的,且可以在不同阶段输入。 例如,可以导入街区或建筑群并进行进一步处理。
生成大规模城市布局
CityEngine 由多个程序和交互工具组成,用于布置街道网络、对齐和细分形状。 一方面,可以根据不同的模式来发展街道,并以交互方式进行编辑。 例如,可以移动十字路口,可以删除或选择街道,并且可以在所选内容上再次应用街道发展向导。 另一方面,可以使用用于编辑地块形状的工具,例如将建筑地块与地形对齐等。 这些工具通常可以在 3D 视图窗口、视窗中进行选择或在整个图层上进行操作。
CityEngine 场景的分层组织提供了对大量数据集的实用且有序的处理方法。 例如,建议在编辑之前复制图层,从而在每个图层中创建不同的变化。 当然,可以打开或关闭每个图层的可见性。
基于语法的建模
基于语法的建模或“程序式”建模具有广泛的应用范围,但是当必须创建遵守某些标准化规则的大量设计迭代或大量对象时,通常会应用该语法。 建模自动化是目标,并且基于语法的描述的整体质量通过所生成模型的细节质量和数量进行反映。 唯一对象(例如地标性建筑物)最好通过手动方式建模,并且通常不需要程序式方法,因为通常无法自动执行该对象上的任何建模任务。
当然,准备规则集在开始时需要一定的时间,但另一方面,与传统的手动建模相比,生成模型过程本身仅需要一小部分时间。 下图比较了两种技术,很明显,基于语法的建模的应用程序对于一定数量的模型非常有用。
CGA
CityEngine 的 CGA 形状语法是一种专用于生成建筑 3D 内容的独特编程语言。 术语 CGA 代表计算机生成建筑。 基于语法的建模想法是在 CityEngine 中定义规则或 CGA 规则,这通过创建更多细节来迭代定义设计。 这些规则对形状进行操作,这些形状由位于本地定位的边界框中的几何组成(所谓的范围)。 以下规则派生说明了此过程:在左侧显示开始形状,在右侧显示生成的结果模型。
使用 CGA 形状语法生成建筑几何的工作原理如下:
- 这些建筑地块由 CityEngine 使用上述工具创建或导入。 除了面之外,也可从质量模型(建筑包络)开始入手。
- 用户选择他们希望应用于这些形状的规则文件 (.cga)。 用户可以将一个规则分配给所有建筑物,或将规则集按每个建筑物进行分配。
- 然后,用户可以触发将规则应用于所选形状。 因此,形状的开始规则出现在规则文件中非常重要。 否则,不能调用任何规则。 然后可以在 CityEngine 的 3D 查看器中探索生成的模型。 对于非常大的模型,由于内存限制,不建议在 CityEngine 中生成所有建筑物。
- 为了编辑生成的 3D 模型,存在不同的可能性:(1) 编辑规则,(2) 在每个建筑物的基础上覆盖规则集的规则参数,以及 (3) 如果使用了随机规则(带有随机参数的规则),则可以更改所有或单个建筑物的随机种子。
- 完成设计后,用户可以将所选建筑物或街道导出到硬盘(包括纹理)。
注:
导出模式没有内存限制。