​ CityEngine 中的Map Layer可以参与到批量建模当中,根据角色的不同可以分为Terrain,Texture,Obstacle,Mapping,Function几个类型的图层。

Terrain Map Layer

​ 顾名思义,用于表示场景的地表结构和底图图层,这个图层可以由一个DEM和一个影像共同构成。 这类图层在创建的时候,可以设置影像取值的通道、高程的拉伸范围、影像的尺寸、锚点位置、偏移量等参数。

​ 在图层创建之后,我们可以看到属性窗口中,有这样一段代码表述了上面的一些设置:

1
attr elevation = map_01(brightness, 0.0, 150.0) + elevationDelta

这时,有个疑问,elevationDelta 是什么?如何体现出来的?带着这个疑问我们来看看CE对于场景高程的作用机制。

导入CE场景中的道路线数据一般被识别为Graph Segment,静态模型一般为Static Shape,这两种类型数据可以通过 Align graph to terrain,Align shapes to terrain 来向地形数据对齐。在实际应用中,很多建筑物或道路的底面是个平面,需要将地形整平到与模型底面完美贴合,这时再使用工具 Align terrain to shape 来解决这个问题。

这时保存场景,在CE的工程目录的data文件夹下,就会出现一个场景同名的文件夹,并在其下自动生成一个16bit的栅格数据,储存地形变化量,这个栅格数据即为 elevationDelta。当预览数据时,从渲染方案上可以得到直观印象,灰色为无变化,黑色为减低,白色为增加。