Blender 地形-影像-城市白膜生成

2,807 阅读5分钟

参考:BlenderGIS教程(网子里Chris)

本文记录了使用Blender软件制作城市大场景,并导入UE中的步骤,便于以后回顾。

0、软件版本

  • Blender 2.83
  • Blender GIS(基于2.26的天地图版)

链接:pan.baidu.com/s/1GvDO0FJj…

提取码:wnof

1、Blender GIS安装

👉github地址 下载安装包后,在blender软件——偏好设置——插件,点击安装,选择下载的zip包,安装成功后勾选即可。

安装常见问题:No ImageIO error

开始使用Blender gis时,可能会报No ImageIO error错误,解决办法:

点击👉地址,下载对应版本的文件后,放在以下路径:your_addons_folder/BlenderGIS/core/lib/imageio/resources/freeimage/

其中,addons地址可在偏好设置——插件中查看

2、创建带真实影像的地形

软件安装好后,接下来就让我们愉快的玩耍把!

使用Blender GIS创建大场景有两种方式,一种是使用在线的地图服务,一种是使用本地的影像和地形数据。

Blender GIS默认提供了谷歌地图等地图服务,由于🧱的原因,无法直接访问,这里我们使用天地图服务。

(1)使用BlenderGIS天地图数据

下载影像数据

加载出地图数据后,按下快捷键G键,会弹出定位输入框,输入定位地址地图缩放层级就可以跳转到对应地址。

PS: 这里输入地址跳转后可能会出现位置不对的情况,猜测是因为有重名的地址,可以换一个地名试试。比如我定位guiyang(贵阳),会定位到错误的地址,我可以换成longdongbao(龙洞堡)。

定位到对应地址后,通过缩放(鼠标滚轮)和平移(shift+鼠标中键)视角,确定好要创建大场景的范围,按下快捷键E键,即可下载对应的影像。

创建地形

在场景大纲中选择刚刚创建的影像范围,点击GIS —— baseMap —— get Elevation SRTM,等待下载地形完成,之后我们刚刚创建的影像就会有起伏,变成了一个三维物体。

PS: 下载地形是通过OpenTopography网站 ,下载前需要先需要注册账号,申请API_KEY。Blender gis 2.2.7版本后,插件对话框里有输入API_KEY的输入框,笔者使用的版本需要手动在SRTM请求地址后输入API_KEY。

(2)使用本地数据

使用blender gis有个缺陷,只能下载当前视口这个层级下的数据,当视口范围大时候,层级也比较高,下载后的影像不清晰;并且下载的地形数据最高只有30m的经度。

当我们需要更高精度的数据时,我们可以使用本地数据创建。本地数据的获取方法这里不再赘述,

💊注意:数据的坐标系建议选择WGS84-3857,因为这是Blender GIS默认的投影。

使用本地地形和影像数据导入Blender创建三维模型的过程如下:

  1. 导入地形数据,以地形置换贴图的方式导入,注意这里不能有中文路径。

导入地形数据后,添加表面细分,并把他移动到修改器的第2个位置,然后修改曲面细分的程度到一个合适的层级。

  1. 然后导入影像数据,模式选择basemap on mesh,选择我们创建的地形物体。这样就可以将影像作为贴图覆盖在我们的地形体上。

有很多商用软件可以可以下载更高精度的影像。笔者使用的是BigeMap软件,软件的使用也很简单,这里就不赘述了。

3、城市白膜(建筑、道路)

(1) 使用blender gis插件

首先选择下载的范围,然后点击Blender gis插件的Get OSM,就会弹出以下对话框。

这里我们可以选择需要的数据,包括建筑、公路等等。选择好后,点击确定,等待下载完成后即可。

Blender gis插件下载白膜数据有个缺陷,就是范围不能过大,这里更推荐使用QGIS OSM插件下载,下载之后的数据再通过Blender GIS导入到Blender中,生成三维模型。

\

(2)使用QGIS OSM插件(推荐)

我们也可以使用QGIS 的QuickOSM插件(在QGIS插件市场中搜索安装即可)。

安装完成后,QGIS主界面中会有QucikOSM插件的图标,点击进入主界面。

我们主要使用快速查询界面,这里输入我们需要获取的白膜数据,比如我这里输入了建筑,选择了位于 贵阳市,点击运行查询即可下载数据到QGIS中。

获取到白膜shp数据后,我们通过Blender GIS插件导入Blender中。

这里如果我们需要白膜数据贴在地形和影像之上,第一个选项要选择对应的物体。

4、白膜美化

可以参考EasyV,B站教程

EasyV数据可视化课程|Ep7:blender城市数据建模

(1)建筑

因为自己使用主要是导入UE中,所以我主要是在Blender中将建筑白膜的楼顶和侧面拆分出来,赋予不同的材质,再在UE中美化。这里主要介绍如何将楼顶和侧面拆分。

首先,进入Blender编辑模式,选择面选择模式

之后点击某个建筑物的顶面,在选择下——》选择相似——》法向,即可选择所有的顶面,

之后在界面空白位置,点击右键——》选择分离——》选中项,即可完成拆分。

之后在材质面板为物体赋予不同的材质。

(2)道路

参考:BlenderGIS生成城市2-生成道路动画

我们使用OSM下载的道路数据一般只是线数据,我们需要首先使用Blender把他转为面状数据。

首先创建一条路径曲线,作为我们道路横截面

然后选择我们的道路图层,将他转换为曲线。

然后右侧物体属性面板中就会出现物体数据属性,按下图所示设置我们创建的路径曲线,这样道路就会变粗了。

之后就可以在Blender或UE中设置材质。

5、总结

本文讲述了使用Blender gis软件创建城市场景(地形影像、白膜)的主要过程,涉及到QGIS 、BigeMap等软件。