cityengine2012 教程3 地图控制

0
分享 2015-09-23
目录
Part 1 理解CGA参数
Part 2 控制天空轮廓线(地平线)
Part 3 控制土地利用类型

Part 1 理解CGA参数
城市由许多大的对象构成。通过单一对象(建筑)的属性设置来控制他们是乏味的,也是不可能的。在这个教程中你将首先学习如何利用CGA参数。
打开场景‘mapcontrolTutorial_01.cej’
(场景)准备了什么?
打开的场景包括两个图层(Terrain and Water)和一个包含很多图形的街道网图层。
这些规则参数来自于哪里?
如果你选择单一的块,并且在Inspector(Window > Inspector)中查看它的属性,就会发现他没有制定的规则参数(规则参数窗是空的)。一旦我们指定一个规则文件给他(块),他就会发生改变。
  • 在场景编辑窗口选择Streetnetwork;
  • Shapes >Assign Rule File,选择规则文件simpleBuildingShells_01.cga’;
  • 再次选择一个单一的块,现在就能在Inspector窗口中看到属性,即‘height’;



​那么,他们(规则)来自于哪呢?一旦你指定一个规则文件给一个图形(刚才用到的块),我们就可以看到作为块的规则参数的规则文件的属性。规则文件告诉我们,这些属性来自于规则文件。
  • 在inspector视窗,点击规则文件连接(如下图1),打开指定的规则文件(下图2)。在右图中我们可以通过上面的按钮改变视图,来查看规则参数以及规则树。



  • 改变视图到‘textual’模式
  • 在属性窗口的顶部你就会看到


  • 这个属性用于定义建筑物的高度(‘height’)然后重新选择块并且更新(generate,下图中标红的位置)块,你将会得到一个80米高度的建筑物(如下图)。
  • 拉动可以改变建筑物的高度。


Part 2: 控制天空轮廓线(地平线)
 
在第二步,你将会运用地图来控制你城市的参数。
  • 继续第一步,或者打开场景mapcontrolTutorial_02.cej。

天际线地图
如果你更新(generate)了很多块,你的城市应该是这个样子:

​这不具有任何说服力,因为你的建筑物全部都是相同的高度,80米。一个漂亮的天际线将会大大提高视觉效果。不像第一部分所说的那样手动来设置规则文件来改变skyline,我们现在使用红色的skyline,同时来控制建筑物的高度。右边图片是地形图,蓝色的代表湖泊。


​天际线地图中的红色的通道代表这个区域建筑物的高度,比较天际线地图和地形图,我们会发现,我们将会形成一个围绕湖泊角落的天际线,在这个城市左上角同样有第二个中心。
  • 新建一个地图图层:Layer > New Map Layer> Mapping;
  • 选择‘skylineMap.png’作为地图文件;
  • 关闭保持比率按钮(X-SIZE前面的按钮);
  • 改变X-SIZE和Z-SIZE为3000;
  • 保证对齐方式是居中(x-offset前面的按钮),点击可以改变不同对齐方式。
  • 在下方mapping区域右击,add row;



  • 命名为skylineValue
  • 我们想让图片的红色通道解读为建筑物高度,所以我们在channel中选择红色。
  • 建筑物高度应该在20(0% red)米到200(100% red)米之间,输入最大值最小值为20和200。
  • 点击finish,在Inspector视窗中重命名图层为Skyline Map;
  • 调整高程补偿(elevation offset),以获得更好的视觉效果,使用透明值(alpha)给他一些透明效果。

现在我们可以控制控制天际线地图的‘height’规则参数。重新制定规则文件给那些块,并告诉Cityengine连接这些规则。
  • 选择所有的块(用选择工具,右击select—select all)
  • 在Inspector视窗中,点击高度(‘height’)属性链接图标,将会打开attribute Connection Editor窗口。


  • ​选择layer attribute,选择新的Skyline Map图层和属性Skyline value。


​当设置好skyline map后,属性框中会出现问号(?),是因为选择的对象包括不同的属性(所有的块有不同的高程属性值)。选择单一的块,就不会出现这种情况了。
  • 选择一些靠近湖边的块,然后更新建筑,你就会发现,如下图:


​刚开始我们会发现它很好,但是我们将会改善它,使用一些更加高深的CGA技术。看一下规则文件simpleBuildingShells_02.cga,找到下面的函数:

​与直接定义天际线地图建筑物高度不同的是,上述用户自定义函数被用到(在CGA图形语法教程中得到更多关于函数和CGA规则)。这些函数作如下两件事:
1) 高建筑只被创建在大面积的块上。
2)一个随机的属性被添加到地图属性中,给天际线一些变化。
  • 在Scene Editor视窗中选择块图层(block )
  • 右击Assign Rule File…,选择simpleBuildingShells_02.cga作为规则文件。

在第二部分完成后,你的视图应该是这样的:

 
Part 3: 控制土地利用类型
 
在第三部分,你将学习如何用地图控制每种土地利用类型下的建筑style,继续第二部分或者打开场景3:mapcontrolTutorial_03.cej。
控制每种土地利用类型的建筑
每个城市都有特殊的土地利用类型区。这部分内容将会描述如何设置三种不同的土地利用类型的属性。下图中蓝色代表商业区,红色代表工业区,绿色代表居住区。

创建土地利用地图层
在创建地图层之间,让我们来看一下规则文件simpleBuildingShells_03.cga。查看他的CGA代码属性:

即将创建的图层,要有一致的名字及属性。
  •  在Scene Editor视窗中隐藏Skyline Layer
  •  创建新图层:Layer > New Map Layer> Mapping
  •  选择areatypes.png作为地图文件
  •  关闭比例按钮
  •  把X和Z-SIZE改成3000
  •  保证对齐方式是居中(x-offset前面的按钮),点击可以改变不同对齐方式。
  •  在下方mapping区域右击,add row
  •  添加3个地图属性:

t_industrial > red channel
t_commercial > blue channel
t_residential >green channel


我们将会再次在规则文件中评估这些参数,所以默认最小最大值为0和1,并且它将会是一个好的通用地图(模版)。
  • 点击finish,创建地图图层。
  • 在Inspector视窗中重命名图层:

LandUse Map
Inspector
视窗中,调整显示补偿(display offset),以获得更好的视觉效果,使用透明值(alpha)给他一些透明效果。
选择新的图层,并且在Inspector视窗中查看他的属性,他们由三个属性来调节。以后你可以在Inspector视窗中改变地图图层的相关设置。

​现在,土地利用类型地图的属性将会被评估,
  • 选择所有的块
  • 制定规则文件:simpleBuildingShells_03.cga
  • 设置土地利用类型参数来源于图层:LandUse Map


​在产生最后的建筑物之前,再看一下规则文件simpleBuildingShells_03.cga,定位到function landuseType Color。

​这个函数说明了属性来自于土地利用地图,并且返回一个相应的颜色。如果颜色来源于地图的通道值大于其他通道,则相应的土地利用类型颜色将被返回(赋予)。蓝色返回商业区,红色返回工业区,绿色返回居住区。通过使用颜色(color)操作,那叫做土地利用函数,颜色被赋予关联的建筑。

  • NOW,更新(generate)场景中的所有建筑
  • 另外,你也可以打开场景4(mapcontrolTutorial_04.cej)来更新建筑,并查看本教程的最终结果。



文章来源:http://blog.sina.com.cn/s/blog_497c741a0102vmg9.html

0 个评论

要回复文章请先登录注册