首页 » 软件开发 » 用Blender创建三维城市景观【教程】(模型导入建筑物地形城市)

用Blender创建三维城市景观【教程】(模型导入建筑物地形城市)

乖囧猫 2024-07-24 18:08:22 0

扫一扫用手机浏览

文章目录 [+]

NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包

有几个可用于建筑物的开放数据集:OpenStreetMap 是一个很好的数据源。
但城市通常也会在其数据平台上共享 3D 建筑数据。
用户可以通过 WFS 等网络服务下载或访问数据。
在欧洲,3D 建筑最常见的数据格式是 CityGML。
在这篇文章中,我将使用布鲁塞尔的 UrbiS 3D 模型。
该数据可以作为布鲁塞尔任何区域的详细 3D 模型的基线。
我还在 github 上分享了我在这篇文章中使用的所有文件。
在这篇文章中,我重点关注布鲁塞尔弗拉吉广场周围的一个小区域。

欧洲其他提供 3D 模型的城市包括鹿特丹(荷兰)、卢布林(波兰)和赫尔辛基(芬兰)。

用Blender创建三维城市景观【教程】(模型导入建筑物地形城市) 软件开发
(图片来自网络侵删)

1、Blender及插件设置

Blender 是一个开源 3D 查看器和编辑器。
下面列出的附加组件使你能够将 Blender 转换为 GIS 并导入 3D 城市模型。
可以在首选项设置中安装附加组件。

BlenderGIS 允许你导入航拍图像或 DTM(数字地形模型)的 .shp 文件和 GeoTiff 文件。
bpyproj 允许你设置坐标参考系。
对于来自布鲁塞尔的数据,我们需要 Belgian Lambert 72 或 EPSG:31370 。
Up3date 允许你在 Blender 中导入 cityjson 文件。
CityJSON 是 citygml 数据格式的基于 json 的编码。
因此,在将 CityGML 文件导入 Blender 之前,需要使用开源软件工具 citygml-tools 将 CityGML 文件转换为 CityJSON。
虽然我在这篇文章中没有使用 openstreetmap 数据来生成 3D 模型,但我想在这里提到 Blender-osm 插件作为创建真实城市风景的替代方案。

安装 cityjson 导入器

在导入建筑物之前,设置坐标系非常重要,以便新的地理数据(例如 DTM 或任何其他地理参考图像)可以自动集成到正确的位置。
cityjson 导入器将导入靠近原点的建筑物,但仍然在世界属性中保留对原点地理坐标的引用(要查看这些坐标,请打开自定义属性选项卡)。
如前所述,坐标参考系为 Belge 1972。
该场景原点的 x(纬度)和 y(经度)坐标为 (149976, 167981)。
海拔高度设置为 51.198 m。
在导入之前在场景地理配准(在选项卡视图下)中设置这些坐标!
这可能被认为是 CityJSON 导入器中的一个错误,但以这种方式进行可以更轻松地随后包含其他数据。
我想 cityjson 插件的开发人员将在下一版本中改进此功能。
还要在视图菜单中为“剪辑开始”(剪辑视图之前的最大放大)和“剪辑结束”(剪辑视图之前的最大缩小)设置适当的值:例如 1 厘米和 10 公里。

现在我们准备在 Blender 中导入建筑物:如果你已经导入了其他数据,则在导入器中不要检查干净场景,以便将该数据保留在场景中。
建筑物的几何形状将存储在LoD2集合中(其他项目包括属性信息,如果需要,您也可以将它们移动到LoD2集合文件夹中)。
LoD2 这个名称指的是模型的抽象级别。
城市的 LoD1 模型将建筑物描述为简单的立方体,LoD2 模型包含重要的屋顶细节,而 LoD3 模型将包括更多细节,如窗户、阳台等。
目前城市等大型区域的大多数 3D 模型都是 LoD1 或 LoD2。
下面您可以看到数据导入后布鲁塞尔 Flagey 周围区域的 3D 场景。

设置场景的坐标系并在导入后显示 3D 建筑物

2、导入地形模型

接下来我们要导入地形模型,以便建筑物可以停靠在地面上。
您可以从 github 存储库下载分辨率为 5m 的地形模型,并剪裁到 citygml 模型的区域,或者直接从 Urbis 数据平台下载整个布鲁塞尔地区的地形模型。

你可以使用 BlenderGIS 插件导入地理参考栅格文件(.tif 文件),这是代表地形高度的灰度图像。
使用 DEM 原始数据构建生成地形模型,再次指定正确的坐标系。

导入地形模型

导入地形模型后,你会注意到地形高于建筑物地面。
原因在于城市模型起源的高度。
海拔高度设置为 51.198 m,而不是 0 m。
因此,要么地形必须下降 51.198 m,通过在 Blender 中相应地设置 Z 位置变换参数,要么必须提升所有建筑物,以便所有建筑物数据的原点为 (149976, 167981),Z = 0。
调整 所有建筑物的 Z 坐标,右键单击 LoD2 集合并选择对象。
接下来在 Bender 中打开脚本编辑器并执行下面的 python 脚本。
或者,你可以根据地形模型重新计算正确的建筑物高度,并使用 python 脚本分别调整每个建筑物。

使用Python脚本调整建筑物高度

最后,你可以再次使用栅格导入器使用正射影像(来自 UrbiS 数据平台)对地形进行纹理化,现在在网格模式下选择底图。
最后我们得到如下结果。

使用正射影像对 DTM 进行纹理化后的场景

接下来,你可以添加更多细节,将自己的纹理添加到地面或建筑物,包括更多对象并使用blender的强大功能来创建美丽的城市景观。

希望你喜欢这篇文章!

原文链接:http://www.bimant.com/blog/create-city-landscape-with-blender/

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读5 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0