CityEngine建模
# 软件入门
# 软件介绍
该软件主要应用于城市规划、建筑仿真、影视游戏制作及地理信息系统(GIS)领域,支持通过二维GIS数据快速构建三维城市模型
Esri CityEngine可以利用二维数据快速创建三维场景,并能高效的进行规划设计。而且对ArcGIS的完美支持,使很多已有的基础GIS数据不需转换即可迅速实现三维建模,减少了系统再投资的成本,也缩短了三维GIS系统的建设周期
# 快捷键
- Alt+鼠标左键:旋转
- Alt+鼠标中键:平移
- Alt+鼠标右键:缩放
- 鼠标左键:选择
- Shift+鼠标左键:加选
- Ctrl+鼠标左键:减选
- Shift+Ctrl+鼠标左键:从己选择项中去除
- A:全局显示
- D,D:关闭/显示模型信息(对象、面数)
- D,N:关闭/显示空间参考(位置)信息
- D,G:关闭/显示网格
- D,A:关闭/显示坐标轴
- D,C:关闭/显示指北针
- F:缩放到选择项
- I:显示/隐藏未选定对象
- L:关闭/显示灯光
- P:在远景与当前视图快速切换
- X:左视图/右视图之间切换
- Y:顶视图/底视图之间切换
- Z:前视图/后视图之间切换
- H:重置相机视图(到默认)
- CTRL+NUMPAD:保存当前视图为书签且其快捷键为当前数字(小键盘上的数字键)。
- CTRL+A:全选
- 4:线框模式
- 5:阴影模式
- 6:贴图模式
- 7:开启/关闭线框加粗
- F9:显示/隐藏底图图层
- F10:显示/隐藏地图数据
- F11:显示/隐藏形状数据
- F12:显示/隐藏模型
- Q:切换选择状态/退出(画线、画面、平移等)
- W:平移
- E:旋转
- R:缩放
- S:创建面状数据
- G:创建矢量线数据(道路)
# 创建CityEngine工程
文件 》新建 》cityEngine工程
# 认识工程各个文件夹的作用:工程包含场景
建好的工程如下:
assets 用来存放模型和纹理贴图的
data
用来存放我们从qgis里面导出来的数据image
照片图片之类的map
存放地图,比如卫星影像,.jpg .png .tif 等这些文件models
存放模型的和贴图的 .fbx .obj等等rules
规则文件scenes
场景script
脚本
# 新建场景
在scenes文件夹上右键,新建场景,设置好坐标系
# 将qgis中的数据导入到cityEngine
- qgis中,选中卫星底图,右键导出,将卫星底图拖到maps文件夹中
- 同样导出DEM高程数据也拖到maps文件夹中
- 选中建筑物的图层,全选,右键导出》选中的要素另存为,选格式为SHP,然后将导出的全部数据都拖入到cityEngine的 /data/建筑文件夹中去
- 将道路也做同样的导出操作,然后导入 /data/道路 文件夹中
将卫星图拖入到3d视图中,导入地形,选择高程图,然后就有地形了
将建筑的shp拖进场景,房子就严丝合缝的导进来了
将道路也拖进去
如果有水系,也可以将水系导入进去,这里我没有
# 自动化生成建筑
- 在rules文件夹下新建规则
version "2024.1"
attr floor = 0
attr GroundFloor_hei = 4.5
Floor_hei=case floor<7:3
else:2.8
Lot-->
extrude(GroundFloor_hei+(floor-1)*Floor_hei)
2
3
4
5
6
7
8
9
- 选中建筑图层,右键选择,然后将刚刚写好的规则拖拽进去,房子就按照楼层修好了
我们会遇到建筑和地形并不贴合的情况,这种情况怎么解决呢
- 选择所有形状
- 形状》将形状与地形对齐
然后就会有另一个问题,建筑随着山体东倒西歪了,垂直于山体的法线方向了
真实的楼体肯定不是这样的
所以我们修改一下cga代码
version "2024.1"
attr floor = 0
attr GroundFloor_hei = 4.5
Floor_hei=case floor<7:3
else:2.8
Lot-->
extrude(world.up.flatTop,GroundFloor_hei+(floor-1)*Floor_hei)
2
3
4
5
6
7
8
9
然后重新生成模型
# 生成有纹理的建筑
cityEngine的案例中就有丰富的规则,我用了cityEngine案例里的规则生成了建筑
# 道路自动化程序生成
使用Complete_street.cga,我用AI给它的描述做了翻译
自己看一下解说文字然后稍微配置了一下,效果如下:
还可以用这些工具自己画道路
这效果还真不错
# 桥梁配置
在下面这里配置成桥梁
# 小区场景建模方法思路
- 将道路封闭,自动生成地块,把地块的分割设置为none
- 内部马路:QGIS中描出园区内部马路》在cityEngine中生成道路
- 绿化草地轮廓:再描绘出绿化的边界,通过布尔建材,剩下的就是马路和行人道路
- 人行道:小区外轮廓-内部马路-绿化草地轮廓-建筑轮廓 = 人行道(人行道上的部件:篮球场,喷泉,花坛,台阶,路灯,健身场景等)
# 常见问题汇总
- 出现马路牙子拐角缺失,全选中,在人行道下,重新赋予一遍初始规则