在 场景编辑器 中选择地图图层后,其属性将在 检查器 中处于可见状态。 您可以编辑图层参数,例如地图文件、定位边界和高程偏移。 另外,可以指定地图的叠加颜色和 Alpha 值。 某些选项可能不可用,具体取决于图层类型。
映射函数也可以在 检查器 中进行编辑。 请参阅下方的 编辑地图图层函数 部分。
如果在 视窗 中选择一个或多个属性图层,则可以使用变换或缩放工具来移动或缩放一个或多个图层。
地图图层可以具有自己的属性。 这些属性将在选定地图图层的情况下,在 检查器 的 图层属性 窗格中进行定义。
地图图层函数编辑与 CGA 形状语法编辑十分相似,但属性图层仅可使用一部分函数,且无法使用规则或形状操作。 使用 Ctrl+空格键 查看可用函数的列表。
attr elevation = map_01(brightness, 1.17549435E-38, 27.620806) + elevationDelta + elevationOffset
有两个预定义属性将用于街道生成和 CityEngine 的其他生成部分:
创建一个作为正弦和余弦函数的地形。
attr obstacle = brightness > 0.5
将图像地图的所有亮色部分定义为障碍。
attr height = exp(u * 5)
使用此指数函数控制规则文件的高度属性。
attr selection = rand > 0.5
定义一个可用于选择的布尔属性,以随机选择 50% 的对象。
attr landuse = case u > 0.5: 50%: "industrial" else: "retail" else: "residential"
定义一个可由 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 。 其范围将定义建筑物高度的范围。
要连接属性,请执行以下操作: