admin 管理员组文章数量: 887021
2023年12月16日发(作者:标签云导航图片)
cityengine2012 教程5 : 导入原始图形
教程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/目录下的‘’文件
把这个数据拖入到视窗中
导入数据但不设置投影(使用‘Raw data in meters’)
对象属性:
数据的属性伴随着文件被导入
选择单一的图块,在右边查看对象属性(‘Object Attributes’)
指定规则文件并更新模型
现在我们将生成简单的半成品模型在输入的图形上。规则文件‘’用来定义拉伸对象的高度属性到定义的高度。
打开规则文件,你就发现以下代码:
l
在视窗中选择所有的shape图形
通过拖拽指定规则
查看建筑物的更新状态
或者通过打开场景‘footprints_from_’来查看结果。
从geodatabase(GDB)导入数据
从GDB导入数据和从shapefile导入数据是相似的:
新建一个场景文件File > New ... > CityEngine > CityEngine scene,在数据导航窗口,定位到数据文件夹data中的 ‘’ 文件。
注意GDB数据是作为一个文件夹存在的
把 ‘’ 文件拖拽到视窗中
在弹出的窗口中,选择要导入的图层(layer)
在导入过程中,将会让你选择场景投影。它会根据GDB文件自带的信息来给出投影信息。
点击完成,导入数据。
提供的数据集Geodatabase与之前的Shapefile内容相同。你现在可以应用与上述Shapefile相同的步骤。
用其他CGA属性导入带有Z值的多段线
新建场景文件:’File > New ... > CityEngine > CityEngine scene’
在数据导航窗口找到‘data/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 > > CityEngine > CityEngine scene
定位到‘data/obj/’目录下的‘pompeii_’ 文件
右击文件,选择导入
OBJ导入窗口中,不要勾选‘Import as static model’,点击finish,结果如下。
指定规则文件并更新模型
在输入的图形上,我们将会做一些简单的拉伸,规则文件‘’用来定义拉伸对象的高度(height)属性到定义的高度。
选择所有的图形
在文件导航窗口,定位到规则文件夹中的‘’
拖拽到图形上
规则文件将会把模型拉伸到10的高度
Shapes 和Static Models对比
OBJ和Collada(交互3D数字资产交换方案)DEA(3D模型)文件可以被导入成shape或者Static Models。
Shape:它是CGA产生的基础,最好的证明就是footprint data
Static Models:导入后可以被定义尺寸,旋转和翻译,但是不能使用CGA进行进一步处理,典型的例子就是地标模型。
如果你想看最后的结果,可以打开场景文件’footprints_from_’ 来查看。
Part 3 导入卷
把卷作为图形导入
在一些情况下,在其他应用中模拟卷会比在cityengine中简单,这个教程就是要告诉我们一个原始的建筑物模型是怎么模拟三维,可以被导入cityengine中,并且他的墙壁是怎么通过CGA规则定义的。
注意:一个类似的工作流程可以呗应用于多种数据形式,如:shp,gdb,DAE(collsda),但是OBJ数据不可以。
导入
下图中的3D建筑物模型是用传统方法建立的,并且被导出成OBJ文件
Cityengine中导入OBJ文件
新建一个场景文件:File > > CityEngine > CityEngine scene
定位到‘data/obj/’目录下的‘Building_’ 文件
右击文件,选择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_’ 规则文件。
把它拖拽到模型上,更新(generate),更新后,你看到的应该是这个效果。
其中红色为屋顶,灰色是墙壁,我们能够更好的来分辨它。
一旦各个面能够被正确识别,我们就可以继续进行规则设置了。尽管这些面是在cityengine之外创建,他们的方向不一定是我们需要他们为我们的规则操作。对于表面建模,我们需要CGA的alignScopeToGeometry(zUp, auto)语法来创建。通过这个操作,表面图形的视野将会和最低的边界一致。这将确保我们所有表面面向相同范围。
Facade -->
alignScopeToGeometry(zUp, auto)
split(y){3.5 : Groundfloor | {~3 : Floor}* }
规则文件‘importedVolume_02_’包含了我们将要做的事情,请在语法帮助的情况下,查看该规则文件中的代码,尝试理解。
制定这个规则文件,更新来查看结果。
或者你可以打开场景‘volume_from_’ ,来查看最终的结果。
Part 4:导入地标文件
在这个案例中,你有一个数据集,它已经被提前建模,并且赋予纹理,你也可以把它导入到你的场景中。
注意:支持的格式是Wavefront .obj, Collada .dae, .kml and .kmz.(后两个格式有地理参考坐标)
导入dae文件
新建场景
定位到数据: ‘data/dae/’目录下的‘building_’
右击,import 不选择统计模型(Import as static model),点击完成。
转换Static Models到shape
在这个案例中吗,你导入了Static Models数据,并且你可以继续使用CGA继续变成操作,你可以将他们转换成shape。
右击这个模型,然后选’Convert Models to Shapes’
已经被赋予CGA语法的也可以转换数据格式
应用CGA规则一旦被需要,shape文件可以长久使用CGA规则
制定规则文件‘’
更新模型
有4中类型供你选择
你也可以打开场景文件来查看最终结果,‘landmark_as_’。
版权声明:本文标题:cityengine2012教程5导入原始图形 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1702725989h428249.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论