cityengine2012 教程5 : 导入原始图形
分享
教程5 : 导入原始图形
目录:
Part 1:从shape或者GDB导入图形(shape)
Part 2:从OBJ导入图形(shape)
Part 3:导入容量
Part 4:导入地标作为图形(shape)
Part 1:从shape或者GDB导入图形(shape)
导入shapefile文件到cityengine
对象属性:
选择单一的图块,在右边查看对象属性(‘Object Attributes’)
指定规则文件并更新模型
现在我们将生成简单的半成品模型在输入的图形上。规则文件‘extrude.cga’用来定义拉伸对象的高度属性到定义的高度。
打开规则文件,你就发现以下代码:
l
在视窗中选择所有的shape图形
从geodatabase(GDB)导入数据
从GDB导入数据和从shapefile导入数据是相似的:
提供的数据集Geodatabase与之前的Shapefile内容相同。你现在可以应用与上述Shapefile相同的步骤。
用其他CGA属性导入带有Z值的多段线
因为这个图层有Z值属性,所以在3D视窗中,他的效果是这样的:
属性:
在这个数据集中有两个特殊的属性被定义:
1) 属性 ‘ruleFile’
2) 属性 ‘startRule’
在GIS软件中打开他的属性表应该是这样的:
随着Rule File 和 Start rule已经被指定,我们可以直接更新模型了
让我们来选择单一的一个shape来改面他的规则文件:
Part 2 从OBJ导入shapefile
OBJ导入
指定规则文件并更新模型
在输入的图形上,我们将会做一些简单的拉伸,规则文件‘extrude.cga’用来定义拉伸对象的高度(height)属性到定义的高度。
Shapes 和Static Models对比
OBJ和Collada(交互3D数字资产交换方案)DEA(3D模型)文件可以被导入成shape或者Static Models。
Shape:它是CGA产生的基础,最好的证明就是footprint data
Static Models:导入后可以被定义尺寸,旋转和翻译,但是不能使用CGA进行进一步处理,典型的例子就是地标模型。
如果你想看最后的结果,可以打开场景文件’footprints_from_obj.cej’ 来查看。
Part 3 导入卷
把卷作为图形导入
在一些情况下,在其他应用中模拟卷会比在cityengine中简单,这个教程就是要告诉我们一个原始的建筑物模型是怎么模拟三维,可以被导入cityengine中,并且他的墙壁是怎么通过CGA规则定义的。
注意:一个类似的工作流程可以呗应用于多种数据形式,如:shp,gdb,DAE(collsda),但是OBJ数据不可以。
导入
下图中的3D建筑物模型是用传统方法建立的,并且被导出成OBJ文件
Cityengine中导入OBJ文件
一个新的图层 ‘Building_1’被添加进来,并且数据显示在三维模式下。
编写规则文件
这个叫做‘Building_1’的建筑物已经被定义了一个名叫‘Building’的start rule。因此我们需要将‘Building’规则文件变成start rule。我们需要使模型的坐标系统与Y轴的系统对齐。这个可以通过CGA命令alignScopeToAxes()实现。然后我们就可以通过分割的不同部分来识别不同的面,我们使用顶视图来查看房顶面,我们这一步所要做的就是,改变房顶颜色使我们能够更好的识别它。
Building -->
alignScopeToAxes(y)
comp(f){top : color("#ff0000") Roof. | side : Facade. }
其中红色为屋顶,灰色是墙壁,我们能够更好的来分辨它。
一旦各个面能够被正确识别,我们就可以继续进行规则设置了。尽管这些面是在cityengine之外创建,他们的方向不一定是我们需要他们为我们的规则操作。对于表面建模,我们需要CGA的alignScopeToGeometry(zUp, auto)语法来创建。通过这个操作,表面图形的视野将会和最低的边界一致。这将确保我们所有表面面向相同范围。
Facade -->
alignScopeToGeometry(zUp, auto)
split(y){3.5 : Groundfloor | {~3 : Floor}* }
规则文件‘importedVolume_02_facades.cga’包含了我们将要做的事情,请在语法帮助的情况下,查看该规则文件中的代码,尝试理解。
制定这个规则文件,更新来查看结果。
或者你可以打开场景‘volume_from_obj.cej’ ,来查看最终的结果。
Part 4:导入地标文件
在这个案例中,你有一个数据集,它已经被提前建模,并且赋予纹理,你也可以把它导入到你的场景中。
注意:支持的格式是Wavefront .obj, Collada .dae, .kml and .kmz.(后两个格式有地理参考坐标)
导入dae文件
转换Static Models到shape
在这个案例中吗,你导入了Static Models数据,并且你可以继续使用CGA继续变成操作,你可以将他们转换成shape。
右击这个模型,然后选’Convert Models to Shapes’
已经被赋予CGA语法的也可以转换数据格式
应用CGA规则
一旦被需要,shape文件可以长久使用CGA规则
有4中类型供你选择
你也可以打开场景文件来查看最终结果,‘landmark_as_shape.cej’。
文章来源:http://blog.sina.com.cn/s/blog_497c741a0102vmge.html
目录:
Part 1:从shape或者GDB导入图形(shape)
Part 2:从OBJ导入图形(shape)
Part 3:导入容量
Part 4:导入地标作为图形(shape)
Part 1:从shape或者GDB导入图形(shape)
导入shapefile文件到cityengine
- 新建一个场景文件
- 在数据导航窗口找到‘data’ /shp_footprints/目录下的‘footprints.shp’文件
- 把这个数据拖入到视窗中
- 导入数据但不设置投影(使用‘Raw data in meters’)
对象属性:
- 数据的属性伴随着文件被导入
选择单一的图块,在右边查看对象属性(‘Object Attributes’)
指定规则文件并更新模型
现在我们将生成简单的半成品模型在输入的图形上。规则文件‘extrude.cga’用来定义拉伸对象的高度属性到定义的高度。
打开规则文件,你就发现以下代码:
l
在视窗中选择所有的shape图形
- 通过拖拽指定规则
- 查看建筑物的更新状态
- 或者通过打开场景‘footprints_from_shp.cej’来查看结果。
从geodatabase(GDB)导入数据
从GDB导入数据和从shapefile导入数据是相似的:
- 新建一个场景文件File > New ... > CityEngine > CityEngine scene,在数据导航窗口,定位到数据文件夹data中的 ‘footprints.gdb’ 文件。
- 注意GDB数据是作为一个文件夹存在的
- 把 ‘footprints.gdb’ 文件拖拽到视窗中
- 在弹出的窗口中,选择要导入的图层(layer)
- 在导入过程中,将会让你选择场景投影。它会根据GDB文件自带的信息来给出投影信息。
- 点击完成,导入数据。
提供的数据集Geodatabase与之前的Shapefile内容相同。你现在可以应用与上述Shapefile相同的步骤。
用其他CGA属性导入带有Z值的多段线
- 新建场景文件:’File > New ... > CityEngine > CityEngine scene’
- 在数据导航窗口找到‘data/sphereCity_shp/’目录下的sphereCity.shp’
- 把它拖拽到视窗中,‘sphereCity.shp’ 文件没有投影文件(.prj),因此cityengine需要用户来定义坐标系;下一个窗口选择场景投影;
- 两个使用同一个投影,即‘Raw Data in meters’,通过使用相同的投影,数据就不会被从新投影。
- 新的图层(‘Shapes sphereCity’)将会出现在窗口中。
因为这个图层有Z值属性,所以在3D视窗中,他的效果是这样的:
属性:
在这个数据集中有两个特殊的属性被定义:
1) 属性 ‘ruleFile’
2) 属性 ‘startRule’
- 这种特殊的语法在你的GIS数据建立的时候就被定义了,而不是在导入后才被指定的,这样一来,可以省去手动改写他们的时间,这是一种特殊的导入方式。
在GIS软件中打开他的属性表应该是这样的:
- 在球面上选择一个图块
- 它的属性就会显示在Inspector窗口中
- Rule File 和 Start rule在导入时已经被自动赋予了
随着Rule File 和 Start rule已经被指定,我们可以直接更新模型了
- 选择球面上所有的shape
- 更新(generate)模型
让我们来选择单一的一个shape来改面他的规则文件:
- 在窗口中选择一个模型(model)
- Inspector窗口中,rule file后面点击select。
- 在set Start Rule 窗口中选择‘Commercial’作为新的规则,点击ok,结果如下:
Part 2 从OBJ导入shapefile
OBJ导入
- 新建一个场景文件:File > New... > CityEngine > CityEngine scene
- 定位到‘data/obj/’目录下的‘pompeii_footprints.obj’ 文件
- 右击文件,选择导入
- OBJ导入窗口中,不要勾选‘Import as static model’,点击finish,结果如下。
指定规则文件并更新模型
在输入的图形上,我们将会做一些简单的拉伸,规则文件‘extrude.cga’用来定义拉伸对象的高度(height)属性到定义的高度。
- 选择所有的图形
- 在文件导航窗口,定位到规则文件夹中的‘extrude.cga’
- 拖拽到图形上
- 规则文件将会把模型拉伸到10的高度
Shapes 和Static Models对比
OBJ和Collada(交互3D数字资产交换方案)DEA(3D模型)文件可以被导入成shape或者Static Models。
Shape:它是CGA产生的基础,最好的证明就是footprint data
Static Models:导入后可以被定义尺寸,旋转和翻译,但是不能使用CGA进行进一步处理,典型的例子就是地标模型。
如果你想看最后的结果,可以打开场景文件’footprints_from_obj.cej’ 来查看。
Part 3 导入卷
把卷作为图形导入
在一些情况下,在其他应用中模拟卷会比在cityengine中简单,这个教程就是要告诉我们一个原始的建筑物模型是怎么模拟三维,可以被导入cityengine中,并且他的墙壁是怎么通过CGA规则定义的。
注意:一个类似的工作流程可以呗应用于多种数据形式,如:shp,gdb,DAE(collsda),但是OBJ数据不可以。
导入
下图中的3D建筑物模型是用传统方法建立的,并且被导出成OBJ文件
Cityengine中导入OBJ文件
- 新建一个场景文件:File > New... > CityEngine > CityEngine scene
- 定位到‘data/obj/’目录下的‘Building_1.obj’ 文件
- 右击文件,选择import
- OBJ导入窗口中,不要勾选‘Import as static model’,点击finish,结果如下。
一个新的图层 ‘Building_1’被添加进来,并且数据显示在三维模式下。
编写规则文件
这个叫做‘Building_1’的建筑物已经被定义了一个名叫‘Building’的start rule。因此我们需要将‘Building’规则文件变成start rule。我们需要使模型的坐标系统与Y轴的系统对齐。这个可以通过CGA命令alignScopeToAxes()实现。然后我们就可以通过分割的不同部分来识别不同的面,我们使用顶视图来查看房顶面,我们这一步所要做的就是,改变房顶颜色使我们能够更好的识别它。
Building -->
alignScopeToAxes(y)
comp(f){top : color("#ff0000") Roof. | side : Facade. }
- 选择场景中的图形
- 在文件导航窗口,rule目录下找到‘importedVolume_01_markFaces.cga’ 规则文件。
- 把它拖拽到模型上,更新(generate),更新后,你看到的应该是这个效果。
其中红色为屋顶,灰色是墙壁,我们能够更好的来分辨它。
一旦各个面能够被正确识别,我们就可以继续进行规则设置了。尽管这些面是在cityengine之外创建,他们的方向不一定是我们需要他们为我们的规则操作。对于表面建模,我们需要CGA的alignScopeToGeometry(zUp, auto)语法来创建。通过这个操作,表面图形的视野将会和最低的边界一致。这将确保我们所有表面面向相同范围。
Facade -->
alignScopeToGeometry(zUp, auto)
split(y){3.5 : Groundfloor | {~3 : Floor}* }
规则文件‘importedVolume_02_facades.cga’包含了我们将要做的事情,请在语法帮助的情况下,查看该规则文件中的代码,尝试理解。
制定这个规则文件,更新来查看结果。
或者你可以打开场景‘volume_from_obj.cej’ ,来查看最终的结果。
Part 4:导入地标文件
在这个案例中,你有一个数据集,它已经被提前建模,并且赋予纹理,你也可以把它导入到你的场景中。
注意:支持的格式是Wavefront .obj, Collada .dae, .kml and .kmz.(后两个格式有地理参考坐标)
导入dae文件
- 新建场景
- 定位到数据: ‘data/dae/’目录下的‘building_0.dae’
- 右击,import 不选择统计模型(Import as static model),点击完成。
转换Static Models到shape
在这个案例中吗,你导入了Static Models数据,并且你可以继续使用CGA继续变成操作,你可以将他们转换成shape。
右击这个模型,然后选’Convert Models to Shapes’
已经被赋予CGA语法的也可以转换数据格式
应用CGA规则
一旦被需要,shape文件可以长久使用CGA规则
- 制定规则文件‘landmark.cga’
- 更新模型
有4中类型供你选择
你也可以打开场景文件来查看最终结果,‘landmark_as_shape.cej’。
文章来源:http://blog.sina.com.cn/s/blog_497c741a0102vmge.html
0 个评论
推荐内容
相关问题
- 夜间灯光影像处理的案例教程
- sketchup模型导入cityengine中部分纹理丢失,怎么解决?
- cityengine怎么导入arcgis的shp数据,对shp数据有什么要求
- ArcGIS API for js会不会出中文版呢,还有esri会不会出相关视频教程呢?
- 图形是如何存储在数据库中的?
- 如何将117°35′35″这种格式的经纬度坐标导入arcmap?
- 咨询Collector for ArcGIS的教程
- 怎么通过excel 点集导入arcmap 实现显示多边形
- geometryEngine.simplify方法是做图形简化的吗,简化机制是什么,为什么调用后没效果?
- vs code不能导入arcpy
- CAD的dwg文件中的图形直接加载到ArcMap中看不到,无法以Polygon、Polyline或Multipatch的方式来识别,如何解决?