提问 发文

cityengine制作城市模型

微微菌

| 2023-11-15 14:45 192 0 0

准备:

1、CityEngine软件,绿色版打开即用(mac只有试用版本)

 

2、某城市SHP数据

打开淘宝搜索,有很多相关店铺,买过几家的,有的特别贵有的很便宜。

当时海淀区建筑数据就是买但这一家,数据质量还不错,而且便宜。

 

教程:

1、打开CityEngine,新建个空场景

选择保存位置,命名

选择坐标系,但我们只是为了导出模型,随便选也没事,但还是建议选84坐标

2、文件  ->  导入  ->  选择Shapefile导入  ->  浏览数据  ->  完成准备好的数据  ->  然后数据就加好了

注:还有一个方法是直接把数据拖到data文件夹里,然后再把拖进去的数据里的shp文件拖到视图里

3、文件  ->  新建  ->  CGA规则文件

cga规则文件就是以代码形式写一些规则,然后程序根据这些规则来建模,下图为cityengine自带的官方的规则文件

拾取高度写法:

attr floor = 0

Lot-->

extrude(floor)

 

注意:floor这个字段必须和SHP写有高度字段相同,而且是分大小写的。

 

随机高度写法:

attr gao = rand(2,100)

Lot-->

extrude(gao)

 

注意:gao是变量,rand是函数,挤出2-100的高度

更高级一点的写法:

@Group("Building")

attr floors=0 //获取对象属性 floors,对象属性无值时取默认值 0

@Group("Building")

attr GroundFloor_hei=4.5 //定义建筑底层高度,可在 inspector 面板中调整

Floor_hei=case floors<7:3

else:2.8

//自定义函数中间楼层的高度,当楼层数小于 7 时中间楼层的高度为 3 米,大于 6 时为 2.8 米

Lot-->

extrude(GroundFloor_hei+(floors-1)*Floor_hei)

comp(f){top:TopFacade | side:SideFacade}

//Lot 规则按照建筑的楼层数和楼层高度把建筑底面拉伸成一定高度,同时把建筑拆分为立面 和顶面

4、选中想要定义的建筑(可以全选也可以按区域选),把规则文件拖上去,生成建筑

上图我定义了规则,把建筑顶面与立面用不同颜色拆分开来了,规则后面加一段

comp(f){side:color("#fff000") SplitModel. | top:color("#000fff") TopFacade}

5、导出模型,常用FBX,然后就可以把这些模型放入项目了

备注1:用官方的规则文件拖到杭州的数据上,可以看到左上角规则文件内容非常复杂,效果还原了纽约的城市。展示出该软件能力还是很强的。官方规则文件唯一不足是建筑的高度没有按照实际的字段来。

网上有个7万人在学的教程,还原风格比较单一的欧洲城市(一个人一百多,知识的力量啊)

备注2:小伙伴十月在b站有个视频讲CityEngine,有些内容可以学习下

https://www.bilibili.com/video/BV1ZJ411C7eS?from=search&seid=2643061965787233858

收藏 0
分享
分享方式
微信

评论

游客

全部 0条评论

轻松设计高效搭建,减少3倍设计改稿与开发运维工作量

开始免费试用 预约演示

扫一扫关注公众号 扫一扫联系客服

©Copyrights 2016-2022 杭州易知微科技有限公司 浙ICP备2021017017号-3 浙公网安备33011002011932号

互联网信息服务业务 合字B2-20220090

400-8505-905 复制
免费试用
微信社区
易知微-数据可视化
微信扫一扫入群