跳到主要内容
版本:1.1.0

建筑模型制作流程

一、前期准备

  1、软件工具

  (1) QGIS:本文档基于3.18 编写
  (2) Blender:本文档基于3.1.0 编写
  (3) BlenderGIS:为Blender 插件,下载地址 (安装 BlenderGIS 方法自行百度)

  2、数据要求

  (1) 数据格式:ESRI Shapefile
  (2) 坐标系:WGS84 WebMercator(EPSG: 3857)
  (3) 数据类型:面数据
  (4) 数据属性:必须含有建筑高度的属性,属性名必须为英文

  3、数据预处理【可选】

  (1) 如建筑数据较多,可选择通过属性过滤切分成多个文件;
  (2) 尽量预先删除无geometry 的数据,在QGIS 中选用工具【Remove null geometries】,选择对应图层,勾选【Also remove empty geometries】

show

  (3)对建筑数据中存在的孔洞可进行处理,在QGIS 中选用【Delete holes】,选择对应图层,设定需要删除孔洞的最大面积,默认值"0"即删除所有孔洞。

show

  4、Blender 环境准备

  (1)删除场景默认内容:空白处点击-【A】-【Delete】

show

  (2)设置场景相机:【N】-【View】-扩大"End"数值,以防场景中物体无法全部显示。

show

  (3)切换渲染模式:默认为第二种"实体模式显示",加上贴图后,可切换至"材质预览模式显示"。

show

二、模型构建流程

1、自动生成模型

(1)导入 shp 文件

【GIS】-【Import】-【Shapefile】,选择本地的shp 文件,确认导入。

show

(2)设置构建参数

在"Import SHP"对话框中,勾选【Extrusion from field】,"Field"选择建筑高度 对应的属性;"CRS"选择【Web Mercator】,点击【OK】,将自动构建建筑模型。

show

2、处理模型孔洞

(1)选择孔洞顶面

i. 选择编辑模式,选择面拾取

show

ii. 在模型上点选孔洞的顶面,如下图:

show

(2)选取所有孔洞顶面

【Select】-【Select Similar】-【Normal】

show

(3)选取孔洞模型

i. 【Select】-【Select Linked】-【Linked】

show

ii. 【Mesh】-【Normals】-【Flip】

show

iii. 【Mesh】-【Separate】-【Selection】,会完成孔洞模型分离,名称为"XXXX.001"

showshow

(4)去除孔洞模型

i. 保持"XXXX.001"选中状态,然后切换到【Object Mode】,在模型显示区域右击,【Set Origin】-【Origin to 3D Cursor】

showshow

ii. 切换到缩放模式,沿着z 轴向上拉伸(蓝轴)

show

iii. 在大纲视图中,选中自动生成的模型,点击【Modifier Properties】-【Add Modifier】-【Boolean】

show

iv. "Object"选择孔洞模型"XXXX.001",【Apply】,此时已完成孔洞处理。

show

v. 在大纲视图中,右击"XXXX.001",选择【Delete】,删除"XXXX.001",仅保留需要的建筑模型。

showshow

3、处理顶部材质

(1)创建顶部材质

i. 保持建筑模型选中状态,点击【Material Properties】-【+】-【New】

show

ii. 设置建筑顶部材质名称,设置为【Material_TOP】

show

(2)应用顶部材质

i. 切换到编辑模式,进入面选择模式,单击选择某一个建筑顶面,然后通过【Select】-【Select Similar】-【Normal】选择所有建筑顶面。

show

ii. 点击【Assign】,将材质应用到建筑顶面

show

4、处理墙体材质

(1)创建墙体材质

i. 点击【Material Properties 】中的【+ 】-【New】,设置墙体材质名称【Material_WALL】(材质名称中必须带WALL

show

ii. 调整为着色器编辑模式,选择【Shader Editor】

show

iii.将本地图片(wall1.png)拖入窗口中,形成节点,将此节点输出的【Color】连接到【Base Color】

show

(2)应用墙体材质

i. 切换回3D 视图,选择【3D Viewport】

show

ii. 延续步骤3中,处于选择顶面的状态,【Select】-【Invert】,通过反选,选中所有建筑墙体。

show

iii. 点击【Assign】,将材质应用到建筑墙体

show

iv. 进行墙体UV 设置,【UV】-【Reset】

show

5、调整模型原点

i. 退出编辑模式,回到【Object Mode】

ii. 在模型显示区域右击,【Set Origin】-【Origin to 3D Cursor】

show

6、导出模型

i. 【File】-【Export】-【glTF 2.0 (.glb/.gltf)】

show

ii. 如果仅导出选中的图层,则勾选【Selected Objects】

show

7、多份数据处理

如果有多个数据,添加过程重复步骤1-6,其中创建材质时,复用之前创建的材质,操作如下:

show

8、原点查看

提供给前端时需要知道模型的中心点,点击【Scene Properties】 -【Custom Properties】,查看"longitude"和"latitude"值。

show