CityEngine小区模型制作初探
来源:互联网 发布:搜索阿里云免费开通码 编辑:程序博客网 时间:2024/04/30 07:08
在CE里要进行模型的制作很重要的一个方面是判断模型与面之间的对应关系,基于这个问题对前期的数据处理、贴图实现与面的判断做了初探。下面就这几个问题分别做下诠释。
1. 起点、方向在ArcGIS与CityEngine中的区别。
首先看一下在ArcGIS中Ploygon数据对点读取的方式:
顺时针方向(左上为起点) 逆时针方向(左上为起点)
从上图我们不难看出无论是采用顺时针方向还是逆时针方向,ArcGIS对数据点的记录并没有差别,也就是说在ArcGIS里面的记录只与起点有关与方向无关。那么这两个数据在读到CityEngine里会是怎么样的呢,下面有一段代码通过索引的方式来推测一下CityEngine对数据的读取是怎样的。
SideFacade-->
case comp.index==0:NIL
else:Building
SideFacade-->
case comp.index==1:NIL
else:Building
从上面的结果可以看出CityEngine里对面的读取是按逆时针读取的,由于ArcGIS里对数据的记录与方向无关决定了导入到CE的ARCGIS数据与我们在ArcGIS里制作时的方向是无关的(只与起点相关)。
2. 贴图的实现
Rooftexture-->
setupProjection(0,scope.xy,4,4)
texture("Roof_01.png")
projectUV(0)
上面是对屋顶贴图的实现的规则文件及贴图后的效果,从效果做如下几点推测:
在贴图的过程中,每个面会自动的赋予一个二维的轴向即X、Y;
可以通过贴图的尺寸合理的控制其与实际的比例,也可以通过面实际的宽高(scope.sx\scope.sy)来控制其合理性。
3.根据国内的模型极具对称的特色,想谈一下中心面的获取的问题(奇数个面)。
首先对中心面个人做一个定义:简而言之就是在一组面中居于中心的面为中心面。中心面的获取可以方便的建立起贴图与模型位置之间的关系,对于模型贴图的实现有至关重要的作用。
以FrontFacades(7个面)为例来看一下起点对中心面获取产生的影响。
起点为front面最左边的点 起点为front面左靠上的点
Lot-->
extrude(10)
comp(f){front:FrontFacade}
FrontFacade-->
case comp.index==comp.total-(comp.total-1)/2:NIL
else:Building
通过以上代码看产生的不同效果:
左起点
左上起点
从上面的例子中可以看出在面的读取过程起始点的选择对与CGA代码的编写是有一定的影响的。
- CityEngine小区模型制作初探
- CityEngine中的模型轴概念
- CityEngine制作玻璃材质反光效果
- 利用CityEngine的规则文件制作标注
- CityEngine使用Python脚本导出模型
- CityEngine使用映射图层来控制模型生成
- CityEngine结合ArcGIS制作地质体web场景
- CityEngine使用矢量数据制作三维专题图
- CityEngine使用栅格数据制作三维专题图
- 小区
- CityEngine----三维模型导出与GIS属性挂接
- CityEngine导出模型与GIS属性挂接
- CityEngine使用Python脚本按feature导出道路模型
- CityEngine中实现按字段属性值批量导出模型
- CityEngine与3ds Max模型交互正常显示
- 网络游戏通讯模型初探
- RBAC 模型初探
- RBAC 模型初探
- Ubuntu文件传送及SSH登入
- 多语言资源文件的过滤工具
- 关于写程序的一些理解
- AppWidget启动流程部分 Launcher分析
- ios 获取当前屏幕的方向 隐藏状态栏
- CityEngine小区模型制作初探
- JBPM笔记
- [BetterExplained]为什么你应该(从现在开始就)写博客
- 设计模式8 - 组合模式Composite
- 关于LiveSuit.exe无法启动
- [sicily online]1011. Lenny's Lucky Lotto
- 泛型编程的关键
- iPhone强制关机
- 123