在场景编辑器中选择地图图层后,其属性将在检查器中处于可见状态。 您可以编辑图层参数,例如地图文件、定位边界和高程偏移。 另外,可以指定地图的叠加颜色和 Alpha 值。 某些选项可能不可用,具体取决于图层类型。
映射函数也可以在检查器中进行编辑。 请参阅下方的编辑地图图层函数部分。
在视窗中移动和缩放地图图层
如果在视窗中选择一个或多个属性图层,则可以使用变换或缩放工具来移动或缩放一个或多个图层。
编辑地图图层属性
地图图层可以具有自己的属性。 这些属性将在选定地图图层的情况下,在检查器的图层属性窗格中进行定义。
编辑地图图层函数
地图图层函数编辑与 CGA 形状语法编辑十分相似,但属性图层仅可使用一部分函数,且无法使用规则或形状操作。 使用 Ctrl+空格键查看可用函数的列表。
attr elevation = map_01(brightness, 1.17549435E-38, 27.620806)
+ elevationDelta + elevationOffset
有两个预定义属性将用于街道生成和 CityEngine 的其他生成部分:
- attr elevation 用于控制地形图层的高度地图的高程。
- attr obstacle 用于控制街道生成的障碍回避。
示例
attr elevation = sin(u * 6.3) * cos(v * 6.3) * 100 | 创建一个作为正弦和余弦函数的地形。 |
attr obstacle = brightness > 0.5 | 将图像地图的所有亮色部分定义为障碍。 |
attr height = exp(u * 5) | 使用此指数函数控制规则文件的高度属性。 |
attr selection = rand > 0.5 | 定义一个可用于选择的布尔属性,以随机选择 50% 的对象。 |
| 定义一个可由 CGA 形状语法规则用于控制建筑物外观等元素的字符串属性。 |
图层属性代码详细信息
地图图层通常根据位置和可选的映射通道来定义一个或多个属性。 地图的尺寸将被归一化为间隔 [0..1]。 因此,地图的左下角将具有坐标 (0, 0),地图的右上角将具有坐标 (1, 1)。 归一化位置将分别被用作属性函数的预定义值“u”和“v”。 例如,以下函数将通过三角函数来控制高程:
attr PI2 = 3.141 * 2 // approx. 2 x PI
attr elevation = sin(u * PI2) * cos(v * PI2) * 100
此外,在属性函数中,“红色”、“绿色”、“蓝色”、“alpha”、“色调”、“饱和度”和“亮度”将分别处理地图的各个通道。 对于每个对象,系统将使用重心(质心)到 x-z 平面的投影来评估属性函数。
在下图中,系统将在已映射到“u”和“v”参数的标准 [0..1] 范围的对象的重心(质心)处评估属性“x”。 此外,系统将在位置“u,v”处对地图进行采样,且其红色通道将用于计算“x”。
将图像数据映射到规则属性
地图图层是一种用于控制 CGA 形状语法规则的工具。 您可以从属性图层映射已在 CGA 形状语法规则中定义的任何属性。 这样,您即可通过地图来指导您的规则。 通常而言,地图可用于控制建筑物的属性,例如高度、外观、细节层次和土地利用混合。
下图将用作源图像,用于控制一组建筑物的高度。
假设您是从带有一组建筑物覆盖区的场景开始操作,如下图所示:
所有形状都将被分配一个用于将覆盖区拉伸到特定高度的规则文件。
attr height = 30
Lot --> extrude(height)
创建映射图层
创建一个映射图层,选择您的天际线地图,设置边界以拟合场景,然后添加一个新属性 skylineValue。 其范围将定义建筑物高度的范围。
连接编辑器
要连接属性,请执行以下操作:
- 选择所有覆盖区形状,然后在检查器中为规则属性 height 选择连接属性以打开连接编辑器。
- 选择图层属性。
- 选择新的天际线地图图层。
- 选择属性 skylineValue。