cityengine2012 教程5 : 导入原始图形

0
分享 2015-10-09
教程5 : 导入原始图形
目录:
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’用来定义拉伸对象的高度属性到定义的高度。
打开规则文件,你就发现以下代码:

在视窗中选择所有的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 个评论

要回复文章请先登录注册