CityEngine建模

更新时间: 2025-07-16 12:03:24

# 软件入门

# 软件介绍

该软件主要应用于城市规划、建筑仿真、影视游戏制作及地理信息系统(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)
1
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)
1
2
3
4
5
6
7
8
9

然后重新生成模型

# 生成有纹理的建筑

cityEngine的案例中就有丰富的规则,我用了cityEngine案例里的规则生成了建筑

# 道路自动化程序生成

使用Complete_street.cga,我用AI给它的描述做了翻译
自己看一下解说文字然后稍微配置了一下,效果如下:

还可以用这些工具自己画道路

这效果还真不错

# 桥梁配置

在下面这里配置成桥梁

# 小区场景建模方法思路

  • 将道路封闭,自动生成地块,把地块的分割设置为none
  • 内部马路:QGIS中描出园区内部马路》在cityEngine中生成道路
  • 绿化草地轮廓:再描绘出绿化的边界,通过布尔建材,剩下的就是马路和行人道路
  • 人行道:小区外轮廓-内部马路-绿化草地轮廓-建筑轮廓 = 人行道(人行道上的部件:篮球场,喷泉,花坛,台阶,路灯,健身场景等)

# 常见问题汇总

  1. 出现马路牙子拐角缺失,全选中,在人行道下,重新赋予一遍初始规则