CityEngine教程02道路教程翻译.doc
40页02街道教程本文档为Esri CityEngine学习文档,是CityEngine_2011_Tutorials 官方示例教程2—— “Tutorial_02_Street_Generation__2011_2”的中文翻译稿,由网友冬冬翻译整理教程简介本教程将对CityEngine中建立街道网和建立精细街道模型的方法进行讲解自动生成的街道图能够反应出受到各种障碍的影响,如湖泊和地形等在本教程的第二部分,将讲解如何根据街道图创建街道图层应用道路规则到道路数据上,能够生成精细的街道模型在本文的最后部分,展示了一些特定属性信息下生成不同样式的道路网络第一部分:创建街道网教程设置将工程“Tutorial_02_Streets”导入到你的CityEngine工作空间中;通过【File】 →【New】 .. →【 CityEngine scene】新建向导在街道教程工程的场景(scenes)文件夹中创建一个新的场景文件,将其命名为“MyStreets.cej”创建障碍图层在城市环境中,道路的放置受到很多的限制如湖泊、河流或公园,这些地方很可能不会有道路网络分布在CityEngine中,你可以创建一个障碍图层(obstacle layer)来控制这种表现方式。
创建一个新的地图图层【Layer】 → 【New Map Layer...】;选择Obstacle(障碍),并单击下一步;从地图文件夹(maps)中选择文件“obstacles.png”作为障碍文件;将对齐位置设置为中心点,并保持比例按键按下;将X size(X的大小)设置为3000;单击Finish结束设置提示:如果在viewport视窗中没有显示障碍图层,则通过视图设置菜单切换到纹理阴影模式创建地形图层我们创建的街道需要遵循高程地形这将通过创建一个由灰度高程图生成的地形图层来获得在文件导航(Navigator)窗口的地图文件夹中,选择图像文件“elevation.jpg”;将图像拖拽到你的3D视窗中; 从地图文件夹中选择“topo.png”作为纹理贴图文件;将max. elevation(最高海拔)设置为250;与前面一样,将对齐位置设置为中心点,并将保持比例按钮按下;将X size设置为3000;单击“Finish”结束;在场景视窗中选择障碍(Obstacle)图层,在Inspector视窗(可以通过【Window】 →【Inspector】方式打开)中,将其Elevation Offset修改为-15 。
这样做可以防止在ViewPort窗口中两个图层互相覆盖生成街道网络现在可以开始生成街道网络通过点击viewport视窗中的空白处来取消对障碍图层的选择;通过【Graph】→【Grow Streets...】方式启动街道生长对话框;将街道数修改为1500;在“Environment Settings”组中,从“Heightmap”的下拉选项中选择你的地形图层; 从“Obstaclemap”的下拉选项中选择你的障碍图层;单击【Apply】,并关闭窗口解决道路形状的冲突在生成或导入道路模型时,街道和十字路口的形状可能会产生冲突,这些冲突在图中以带红色点的线段显示这些冲突是由图形的重叠导致的,通常情况是由于道路中心线上结点间距离过短造成的你可以尝试使用手工编辑道路网的方式来解决冲突,也可以使用图形清理工具“Resolve Conflicts(解决冲突)” 选项(【Graph】->【Cleanup Graph】)使地块(Lot)创建不可用我们现在只对街道感兴趣,因此:在“Viewport”视窗中单击右键,【Select】->【Select All】,选择场景中的全部要素;选择Inspector”视窗中的“Blocks”选项卡;将“shapeCreation”属性设置为“false”,通过单击“Off/On”开关。
此操作将在街区(blocks)中创建地块形状的功能设置为不可用小知识:当你处理较大数据量的道路网时,此功能可以用来阻止街道的形状创建以提高软件性能选择一些道路和结点,在它们的“Inspector”视窗中的“Shapes”选项卡中,将“shapeCreation”的参数设置为false,能够使这些街道线和结点无法生成道路和路口交互式街道编辑已生成的道路网能够进行交互式优化:在空白区域创建更多的街道,选择一条或临近的几条街道,在街道生长对话框中调整你要生成的街道数,并单击【apply】按钮就会自动在该条路段上自动生成相应数量的街道(随机生成)选择你希望删除的街道,通过菜单栏中的【Edit】->【Edit】进行删除;手工创建新的街道,使用“Create Street”工具(快捷键:G);转换道路,设置道路宽度,修改道路弯曲,使用“Edit Street”工具;使用变换调节器来实现单一或一组道路的转换,旋转及伸缩在Inspector视窗中修改道路图形的属性选中一个或多个道路段;打开“Inspector”视窗中的“Segment”选项卡;通过设置“streetWidth”参数,修改道路宽度; 高度再调整场景中的地形海拔看起来有些高。
在“Scene Editor”视窗中,选中地形图层;打开图层属性“Layer Attributes”组;将高程属性的最大高度值“max height”由250改为220小知识:你同样可以修改其他图层的属性如果你有另外一个不同的高程图,选择你的新地图,“viewport”视窗中的地形也会随之改变现在你需要根据新的地形让街道网重新适应地形:在“Scene Editor”视窗中选择街道网图层;打开图形适应地形话框:【Graph】->【Align Graph to Terrain...】;选择图形适应地形方式 :“Project All”;选择地形图层;单击【Finish】排列图形元素使地形适应形状使用【Layer】->【Align Terrain to Shapes...】功能,地形会发生变化并与形状贴合选中场景中的全部街道图形;打开图形对齐对话框:【Layer】->【Align Terrain to Shapes...】;使用默认设置,单击【Finish】结束当地形图层的线框图被激活之后,适应后地形图的改变看起来会更明显些在“scene”视窗中单击街道网格图层前的眼睛图标,使其不可见,再选中地形图层在“Inspector”视窗的图层属性(Layer Attributes)组中,将线框图的透明度(Wireframe Alpha)设置为0.3在3D视窗设置中,使线框图模型处于激活状态(viewport视窗上方的工具条)或者按一下“7”键小知识:改变光线的方向,同样能够使地形的细节显示得更清楚些。
小知识:快速验证修改效果的方法,是在“Inspector”视窗中切换“elevationDelta”的激活状态(在地形图层选中的状态下) 小知识:用来构建地形的原始高程图并没有被修改地形分辨率当使用一张高程图创建地形的时候,高程图的分辨率决定地形图的分辨率可以在“Inspector”视窗的“layer attribute”组中对分辨进行手工调整(在地形图层选中状态下)较高的分辨率有助于提高对齐后的地形图的精确度小知识:需要注意,地形图层设置较高的分辨率会降低3D视窗的显示性能(取决于你电脑的显卡性能)你可以直接打开“Tutorial_02_Streets/scenes/streetTutorial_01.cej”查看本教程第一部分的结果第二部分:使用CGA规则生成街道模型教程设置你可以继续在已经完成的场景中进行接下来的学习,或者直接打开“Tutorial_02_Streets/scenes/streetTutorial_01.cej”场景小知识:为了更清楚的看到道路图层,通过单击“Scene”视窗中的眼睛图标来隐藏地形图层道路形状类型可以看到图中有5中不同类型的街道形状被创建了,这些形状已经被赋予了"start rule(初始规则)",在“Inspector””视窗中显示了被选中形状的“start rule(初始规则)。
下图中以不同演示区分了不同类型的道路模型初始规则是规则文件十分重要的一部分应用规则文件现在执行最后一步:创建真实的3D街道模型应用CGA规则“rules/simpleStreets.cga”到街道形状上每一个不同类型的街道形状都有一个独特的CGA初始规则作用在其上这些初始规则的描述如下街道(Street):根据路宽应用街道贴图;人行道(Sidewalk):应用人行道贴图,分布道路小品如行道树、路灯等;十字路口(Crossing):应用道路底色贴图;交叉路口(Junction):同十字路口;连接入口(JunctionEntry):同十字路口查看“simpleStreets.cga”规则文件的细节,规则语法参考CGA模型语法教程进一步学习该语法在“Scene”视窗中选择“Streetnetwork”图层【Shapes】->【Assign Rule File...】选择“Tutorial_02_Streets/rules/simpleStreets.cga”规则文件框选一些街道模型单击上方工具条中的生成按钮你同样可以打开“Tutorial_02_Streets/scenes/streetTutorial_02.cej”场景,生成街道,以查看本部分教程示例的结果。
第三部分:高级街道网教程设置在街道教程工程的“scenes”文件夹下,创建一个新的场景【File】->【New】->【CityEnginescene】 高级街道网目前为止,我们只使用了非常基础的设置来创建道路网,在本部分的教程中将给你一些使用CityEngine创建不同类型道路网的创意和灵感 在生成道路网时改变样式风格通过【Graph】->【GrowStreets】打开道路生成对话框;将两个“pattern(样式)”下拉框中都选择“RADIAL(环形放射式路网)”,并单击应用按钮;再将两个“pattern(样式)”下拉框中都选择“RASTER(方格式路网)”,并单击应用按钮现在你可以获得一个在中心部分是环形放射状,在边缘部分是方格状的道路网 连接两个道路网在“Scene”视窗中单击眼睛图标,隐藏当前道路网图层;通过【Graph】->【GrowStreets】打开道路生成对话框;将两个“pattern(样式)”下拉框中都选择“RADIAL(环形放射式路网)”,并单击应用按钮;选择添加道路工具(快捷键:G)创建一个分离的单一街道选择光标工具(或单击键盘上的Q键),选中图中的新街道在道路生成对话框中,将两个“pattern(样式)”下拉框中都选择“RASTER(方格网式路网)”,并单击应用按钮观察方格网式路网与环形放射式路网的连接 小知识:只有在同一图层中的道路元素才能互相连接。
因此在新建道路和生长道路的时候,应当确认在“Scene”视窗中选中了你要添加道路网的图层不同街道样式示例下面列举了八种由不同样式和样式组合生成的道路网,你可以通过改变道路生成窗口中的不同设置来生成这些样式,也可以直接打开“Tutorial_02_Streets/scenes/stree。





