Build My World——建筑白模构建

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

前言

一、数据与软件

1.1 实验数据

1.2 软件

1.3 实操参考课程

二、建筑底部高程获取

2.1 DEM生成TIN地形缓存

2.2 提取高度数据

三、线性拉伸古建筑白模

3.1 新建球面场景

3.2 线性拉伸

3.3 批量模型导出

3.4 三维模型缓存生成

四、二维面直接生成模型瓦片

4.1 添加至球面场景

4.2 关闭并保存三维场景

4.3 生成场景瓦片

五、程序化建模(贴图与屋顶材质)

5.1 启动程序

5.2 打开数据源

5.3 建模参数设置

5.4 建筑模型生成

5.5 iDesktopX中查看模型

5.6 三维模型缓存生成

六、3DTiles白模生成

6.1 生成S3M1.0 版本瓦片

6.2 S3M转3DTiles

后话

前言

一直以来,Build My World类型游戏的魅力无法抵挡,从小时候的泥木手工、乐高,到长大后的各种城市建造类电子游戏,可以天马行空,也可以按图纸规划。在笔者眼中,利用GIS构建世界也是Build My World的一种,不仅可以建造房屋、路网、植被、水系,还可以虚拟动态卫星态势、行进车船轨迹、变化莫测的风云等等。

借着Build My World主题,整理各类数据模型构建与仿真的技术文档,第一章从城市底座开始,构建建筑白模。条条大道通罗马,构建白模方式很多种,本文记载的是笔者比较熟悉的技术路线。

建筑白模构建技术路线不难,有两个必备条件:建筑面几何信息+建筑高度,在GIS软件根据建筑高度拉伸即可获得建筑白模。若建筑白模与地形数据贴合,可利用DEM数据获取建筑面底部高程。本文介绍的“线性拉伸建筑白模”、“二维面直接生成模型瓦片”、“程序化建模(贴图与屋顶材质)”为三种不同构建方式,选择其中一种即可。

一、数据与软件

1.1 实验数据

关注公众号,后台回复building即可获得相关实验数据。

(1)带高度建筑矢量面

(2)30m分辨率DEM

1.2 软件

(1)SuperMap iDesktopX 11i(下文简称iDesktopX)

下载地址:http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id=2647

(2)程序化建模工具

SuperMap技术资源中心|为您提供全面的在线技术服务SuperMap技术资源中心提供SuperMap系列软件相关的演示DEMO、在线案例、范例代码、技术文章、联机帮助、培训教程以及UI素材等海量技术资源!http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?tt=ProductAAS&id=145

1.3 实操参考课程

02-基于二维面构建三维体(动态线性拉伸)_哔哩哔哩_bilibili

https://help.supermap.com/iDesktopX/zh/tutorial/ApplicationTheme/3DModeling/AI-basedBuiliding.html

二、建筑底部高程获取

本部分内容非必须,若只需要简单白模,可直接看“建筑白模”部分。

2.1 DEM生成TIN地形缓存

选中DEM数据集,右键菜单“生成三维瓦片”,按默认参数生成三维地形缓存瓦片。

生成结果,TIN地形缓存,如下图:

2.2 提取高度数据

使用“三维数据”——“TIN地形”——“TIN工具”——“提取数据”。

源数据选择三维地形缓存SCT文件,数据源为缺少底部高程的建筑面数据,提取属性会写入数据集属性表。

三、线性拉伸古建筑白模

3.1 新建球面场景

“工作空间管理器”中“场景”右键菜单“新建球面场景”。因iDesktopX因使用场景不同展开不同功能菜单,本步骤为了打开三维相关菜单,得到如下图功能菜单。

3.2 线性拉伸

“三维地理设计”——“规则化建模”——“参数化建模”——“线性拉伸”工具,源数据选择建筑面数据集,设置拉升高度为楼高,底部高程为建筑底部高程,材质可不设置;若有纹理贴图,或特殊材质颜色要求,可自行设置。

拉伸得到三维模型数据集,右键添加至三维场景,即可检验查看。

3.3 批量模型导出

软件右侧工具箱搜索“模型数据集批量导出”,可将模型导出为obj或fbx,用于第三方软件加载或精修。

3.4 三维模型缓存生成

一般项目应用,为提高三维模型渲染效率,需生成三维模型瓦片。选中模型数据集,右键菜单“生成三维瓦片”,选择数据集、瓦片路径、S3M版本等参数,即可生成三维瓦片。

四、二维面直接生成模型瓦片

适合无底部高程,仅携带建筑高度的建筑面数据。

4.1 添加至球面场景

选中二维矢量面数据集,右键菜单“添加到新球面场景”。“图层管理器”选中该建筑面数据集,菜单栏设置图层风格,“高度模式”为“相对地面”,“拉伸高度”为建筑高度。

4.2 关闭并保存三维场景

4.3 生成场景瓦片

选中三维场景,右键菜单“生成场景瓦片”,选择S3M版本、瓦片路径等参数,即可生成三维建筑白模。

打开该三维场景瓦片,即可检验白模成果。

五、程序化建模(贴图与屋顶材质)

SuperMap新版本提供有程序化建模工具,截止发稿,该工具包含3墙面贴图材质Residential(住宅)、Commercial(商业)、Industrial(厂房);5种屋顶类型Flat,Parapet,Shed,Gable,Hip。若建筑面数据包含有相关字段,可利用工具构建贴图建筑模型。本次使用实验数据,未包含对应字段,模拟相关属性用于效果展示。

5.1 启动程序

工具包中找到exe文件即为启动入口,双击启动。

5.2 打开数据源

在iDesktopX中处理好的建筑面数据集存储在udbx数据源,选择打开即可。

5.3 建模参数设置

“程序化建模”——“建模参数设置”,设置建筑面数据集、对应的高程字段、资产路径为下载的材质包地址,由于本步骤会修改数据,设置参数点击“确定”需等待程序处理响应,因数据量不同,耗时长短不同。

5.4 建筑模型生成

“程序化建模”——“建筑模型生成”,设置相关参数,确认并等待,出现“构建成功”弹窗即完成。可关闭工具,转至iDesktopX进行后续步骤操作。

5.5 iDesktopX中查看模型

打开数据源,右键菜单添加至三维场景中,与无贴图白模可对照效果。

5.6 三维模型缓存生成

选中数据集右键菜单生成,与“线性拉伸建筑白模”的“三维模型缓存生成”步骤一致。

六、3DTiles白模生成

6.1 生成S3M1.0 版本瓦片

由于iDesktopX只支持S3M 1.0转为3DTiles数据格式,若需要3DTiles格式白模,需将前面“三维模型缓存生成”和“生成场景瓦片”步骤的S3M版本选择为1.0。

6.2 S3M转3DTiles

工具箱搜索“3DTiles”,使用“大数据三维缓存生成工具”的“S3M转3DTiles”工具,将S3M 1.0版本的建筑三维缓存转为3DTiles数据格式。

后话

才疏学浅,如有纰漏,敬请指正。