cityengine2012 教程3 地图控制
分享
目录
Part 1 理解CGA参数
Part 2 控制天空轮廓线(地平线)
Part 3 控制土地利用类型
Part 1 理解CGA参数
城市由许多大的对象构成。通过单一对象(建筑)的属性设置来控制他们是乏味的,也是不可能的。在这个教程中你将首先学习如何利用CGA参数。
打开场景‘mapcontrolTutorial_01.cej’
(场景)准备了什么?
打开的场景包括两个图层(Terrain and Water)和一个包含很多图形的街道网图层。
这些规则参数来自于哪里?
如果你选择单一的块,并且在Inspector(Window > Inspector)中查看它的属性,就会发现他没有制定的规则参数(规则参数窗是空的)。一旦我们指定一个规则文件给他(块),他就会发生改变。
那么,他们(规则)来自于哪呢?一旦你指定一个规则文件给一个图形(刚才用到的块),我们就可以看到作为块的规则参数的规则文件的属性。规则文件告诉我们,这些属性来自于规则文件。
Part 2: 控制天空轮廓线(地平线)
在第二步,你将会运用地图来控制你城市的参数。
天际线地图
如果你更新(generate)了很多块,你的城市应该是这个样子:
这不具有任何说服力,因为你的建筑物全部都是相同的高度,80米。一个漂亮的天际线将会大大提高视觉效果。不像第一部分所说的那样手动来设置规则文件来改变skyline,我们现在使用红色的skyline,同时来控制建筑物的高度。右边图片是地形图,蓝色的代表湖泊。
天际线地图中的红色的通道代表这个区域建筑物的高度,比较天际线地图和地形图,我们会发现,我们将会形成一个围绕湖泊角落的天际线,在这个城市左上角同样有第二个中心。
现在我们可以控制控制天际线地图的‘height’规则参数。重新制定规则文件给那些块,并告诉Cityengine连接这些规则。
当设置好skyline map后,属性框中会出现问号(?),是因为选择的对象包括不同的属性(所有的块有不同的高程属性值)。选择单一的块,就不会出现这种情况了。
刚开始我们会发现它很好,但是我们将会改善它,使用一些更加高深的CGA技术。看一下规则文件simpleBuildingShells_02.cga,找到下面的函数:
与直接定义天际线地图建筑物高度不同的是,上述用户自定义函数被用到(在CGA图形语法教程中得到更多关于函数和CGA规则)。这些函数作如下两件事:
1) 高建筑只被创建在大面积的块上。
2)一个随机的属性被添加到地图属性中,给天际线一些变化。
在第二部分完成后,你的视图应该是这样的:
Part 3: 控制土地利用类型
在第三部分,你将学习如何用地图控制每种土地利用类型下的建筑style,继续第二部分或者打开场景3:mapcontrolTutorial_03.cej。
控制每种土地利用类型的建筑
每个城市都有特殊的土地利用类型区。这部分内容将会描述如何设置三种不同的土地利用类型的属性。下图中蓝色代表商业区,红色代表工业区,绿色代表居住区。
创建土地利用地图层
在创建地图层之间,让我们来看一下规则文件simpleBuildingShells_03.cga。查看他的CGA代码属性:
即将创建的图层,要有一致的名字及属性。
t_industrial > red channel
t_commercial > blue channel
t_residential >green channel
我们将会再次在规则文件中评估这些参数,所以默认最小最大值为0和1,并且它将会是一个好的通用地图(模版)。
LandUse Map
Inspector
视窗中,调整显示补偿(display offset),以获得更好的视觉效果,使用透明值(alpha)给他一些透明效果。
选择新的图层,并且在Inspector视窗中查看他的属性,他们由三个属性来调节。以后你可以在Inspector视窗中改变地图图层的相关设置。
现在,土地利用类型地图的属性将会被评估,
在产生最后的建筑物之前,再看一下规则文件simpleBuildingShells_03.cga,定位到function landuseType Color。
这个函数说明了属性来自于土地利用地图,并且返回一个相应的颜色。如果颜色来源于地图的通道值大于其他通道,则相应的土地利用类型颜色将被返回(赋予)。蓝色返回商业区,红色返回工业区,绿色返回居住区。通过使用颜色(color)操作,那叫做土地利用函数,颜色被赋予关联的建筑。
文章来源:http://blog.sina.com.cn/s/blog_497c741a0102vmg9.html
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 个评论
推荐内容
相关问题
- 有谁知道哪里可以免费获取各省市地图数据呢,包括详细的shape文件数据
- 夜间灯光影像处理的案例教程
- 微信页面 arcgis api 地图无法操作
- ArcGIS API for js会不会出中文版呢,还有esri会不会出相关视频教程呢?
- ArcGIS Server制作的缓存地图服务中,能否实现大比例尺下楼房阴影类似的3d效果?
- 地图服务发布成功,但无法启动服务
- arcgis api for js 4.x 如何禁止地图拖动?
- 为什么arcgis runtime for .net去掉了很多在WPF中存在的基本地图控件?
- 网站用arcgis API for JavaScript写好,发布网站之后,别人访问无法加载地图?
- 请问能做出google这个3d地图的思路是什么?
- ArcEngine10.1 如何发布地图服务