在我们做数字孪生相关的项目的时候,会需要生成一些城市的模型,这时候我们可以使用 blender 来生成一些城市的模型。

我们,先来看一下效果。

安装 blender

blender 是一个开源的 3D 建模软件,可以在官网下载到最新的版本,下载地址为:https://www.blender.org/download/

下载完成后,安装即可,打开后可以看到如下界面。

默认下载的可能是英文的,大家可以编辑 Edit -> Preferences -> Interface -> Language -> Chinese 来修改为中文。

安装 BlenderGIS

下载地址:https://github.com/domlysz/BlenderGIS



下载完成后不需要解压,直接在 blender 中安装即可。

还是在偏好设置弹窗中,选择插件,然后在右上角从磁盘安装,选择下载的 zip 文件即可。

安装完成后,将这个插件启用,然后重启 blender 即可。

文件的这个路径记下来,等会会有用。

我们在Blender的顶部菜单栏中,可以看到一个GIS的选项,这个就是我们刚刚安装的插件。

这个时候点击web geodata,然后选择Basemap,会报错

提示

No imaging library available. ImageIO module was not correctly installed

如果遇到这个错误,我们还安装一个东西,freeimage

安装freeimage

https://github.com/imageio/imageio-binaries/tree/master/freeimage

从上面的连接找到对应的版本,然后下载。

我是mac,所以下载的最后一个。

完成下载后,还记得我们之前安装的BlenderGIS插件的路径吗?我们将下载的文件解压到这个路径下。

这里给出mac如何进入这个目录,windows的话,需要自己去查询一下。

打开访达,我们可以摁住option键,然后点击前往,就可以看到资源库了。

依次进入到这个路径下

/Users/sanmu/Library/Application Support/Blender/4.3/scripts/addons/BlenderGIS-master/core/lib/imageio/resources

到达这个目录后,我们需要手动创建一个文件夹 freeimage。

然后将我们刚下载的文件放到freemie文件夹中。

这样准备工作就都好了。

生成城市模型

重启我们的 blender,然后点击web geodata,选择basemap,出现下面的弹窗。

将源修改为OSM后,点击确定

我们就得到了这个数据了,可以进行放大缩小。

然后通过快捷键,command + G,会出现一个弹窗,通过它我们可以去具体的城市。

我们输入一个位置后,确定

等待一会就定位到我们输入的位置坐标了。



我们使用鼠标滚轮进行放大缩小

最后获取建筑的模型,我们点击web geodata,选择buildings,然后点击确定。

等待一会,我们生成的如下的内容



然后我们点击背后的图片删掉,我们在移动城市的位置,就获得城市群了



Three.js学习:https://www.threejs3d.com/

如何使用blender生成城市群的更多相关文章

  1. [Blender] Blender 获取 Instance 的信息

    最近希望用 Blender 生成 Instance 的能力,将生成的导入游戏引擎中来渲染.Instance Rendering 是个好东西,特别是针对大场景,渲染成批的基本相同的物体的时候非常有用. ...

  2. 教你用webgl快速创建一个小世界

    收录待用,修改转载已取得腾讯云授权 作者:TAT.vorshen Webgl的魅力在于可以创造一个自己的3D世界,但相比较canvas2D来说,除了物体的移动旋转变换完全依赖矩阵增加了复杂度,就连生成 ...

  3. Oracle 11g数据库详解(2)

    FAILED_LOGIN_ATTEMPTS 用于指定连续登陆失败的最大次数 达到最大次数后,用户会被锁定,登陆时提示ORA-28000 UNLIMITED为不限制 精确无误差 是 实时 PASSWOR ...

  4. blender导入灰度图生成地形模型

    安装软件 在此处下载blender并安装. 添加平面 1.打开blender,右键删除初始的立方体. 2.shift+a选择平面添加进场景: 3.按下s键鼠标拖动调节平面大小确定后按下鼠标左键: 4. ...

  5. Blender 之修改器代码分析

                           Blender的修改器(modifier)模块,默认界面右下块(Property)面板的扳手,分类(修改.生成.形变.模拟)列出所有的修改器.也可以空格键 ...

  6. Blender 之 Splash 代码分析

    注:以下内容基于 Blender 2.7x 版本工程,其它低版本可能有改动. Blender启动完成时,会出现一个画面,英文叫Splash.默认是打开的,可以在设置里关闭.在文件菜单里点击用户首选项( ...

  7. Blender 脚本之 Operator 初探

    addon(插件)用来扩展 Blender 的功能,跟其他软件里的 plugin(插件)一样,去掉不会影响软件的运行.插件可以加到 Blender 的用户偏好设置目录里,或者就在你所编辑的.blend ...

  8. Blender使用基础

    快捷键 -- 鼠标放在“大纲视图” -- .(小键盘) 定位到所选对象(该键的英文为period) -- 鼠标放在“3D视图” -- n  打开3D视图右面属性面板(把鼠标放在面板上,按F5可以左右切 ...

  9. blender源代码编译

    blender源码路径(svn):https://svn.blender.org/svnroot/bf-blender/trunk/blender/ 依赖外部Lib(svn):https://svn. ...

  10. (一)使用Blender导出GameMaker支持的模型脚本

    源于YOYO论坛帖子:http://gmc.yoyogames.com/index.php?showtopic=603723 既然想做3D,那就先从模型的导入开始,具体的源文件,可以在“(二)使用等高 ...

随机推荐

  1. TypeScript – Decorator 装饰器

    前言 TypeScript 5.0 之后就可以使用正真的 JS Decorator 了, 从前 experiment 的版本依然可用, 但是不建议继续用, 因为差很远, 一起用会混乱. Decorat ...

  2. Spring —— bean配置

    基础配置      别名配置    作用范围配置      适合交给容器进行管理的bean   (复用性的对象,无需重复创建的对象) 表现层对象 业务层对象 数据层对象 工具对象   不适合交给容器管 ...

  3. duxapp:基于Taro使用模块化开发,提升开发效率

    duxapp是基于Taro二次开发的模块化框架 使用这个框架,结合框架提供的UI库和工具库,能帮助你快速且高质量的完成项目,且能实现同时开发小程序.H5.APP(React Native),并且保证各 ...

  4. Hugging Face 论文平台 Daily Papers 功能全解析

    文/ Adeena, 在快速发展的研究领域,保持对最新进展的关注至关重要.为了帮助开发者和研究人员跟踪 AI 领域的前沿动态,Hugging Face 推出了 Daily Papers 页面.自发布以 ...

  5. Kubernetes集群证书过期解决办法

    问题现象 K8S集群证书过期后,会导无法创建Pod,通过kubectl get nodes也无法获取信息,甚至dashboard也无法访问. 一.确认K8S证书过期时间 查看k8s某一证书过期时间: ...

  6. 墨天轮最受DBA欢迎的数据库技术文档-故障处理案例篇

    在之前发布的<墨天轮最受欢迎的技术文档-容灾备份篇>中,大家说想看故障处理案例篇的内容,这不!编辑部快马加鞭给大家整理来了,希望能够帮助到大家. 数据库故障可能出现在内存.网络.CPU.硬 ...

  7. 前端 面试 html css 如何让一个盒子水平垂直居中?

    方法1  使用子绝父相 定位  推荐 说明: 让父元素相对定位,因为要让子元素以父元素为参考对象,如果父元素不设置定位,子元素的参考对象就是整个页面document: 子元素绝对定位,top:50%: ...

  8. 云原生周刊:Argo Rollouts 支持 Kubernetes Gateway API 1.0 | 2024.7.1

    开源项目 Kubetools Recommender System Kubetools Recommender System (Krs) 是一个基于 GenAI 的工具,用于帮助管理和优化 Kuber ...

  9. 什么是前后端分离应用(Full-stack Separation),想当然就会理解错

    前后端分离应用指的是将应用的前端部分(用户界面与交互逻辑)和后端部分(业务逻辑.数据处理.服务器响应)拆分成独立的模块,各自通过 API 进行通信.这种架构设计的目的是提高开发效率.增强可扩展性和灵活 ...

  10. PHP的json浮点精度难题

    前言 之前开发的接口需要用到json加签,有一次对接JAVA时,签名怎么都过不了,仔细对比了字符串,发现是PHP进行json_encode时,会将浮点型所有无意义的0给去掉(echo和var_dump ...