您的位置:首页 > 运维架构

利用blender+Open Street Map+blender-geo制作3D地图渲染图

2016-11-07 16:53 1301 查看
前段时间接触了一下一个3D建模软件blender,感觉还不错,blender 是一款开源的跨平台全能三维动画制作软件,提供从建模、动画、材质、渲染、到音频处理、视频剪辑等一系列动画短片制作解决方案。(百科)最主要的好处当然是免费啦!
先看一张效果图。



这是北京市的一张渲染图,中间部分就是故宫啦!(请原谅本渣的审美,主要是能力有限!


要制作这样的图,除了blender软件之外,还需要用到地图资源,可以到Open Street Map网站下载想要的资源。这个是一个国外的免费地图资源网站,主要是提供建筑和街区的信息,但国内的资源是比较少,就算是北京市,提供的建筑资源相比国外也少得可怜





根据它的提示,可以很容易得到想要的资源,下载下来的是一个osm文件(注意不要选择太大的区域,要不然导入blender的速度会比较慢),想要将它导入到blender中,还需要blender-geo插件(https://github.com/vvoovv/blender-osm),主要要用到其中的io_import_scene_osm.py和osm_georeferencing.py(这个也可以不用)。
安装blender,并打开,就可以看到这样的界面啦,以前用过3D建模软件的同学可能会觉得比较亲切。



选择File-User References,出现如下界面。



点击下面的Install from File,定位到需要的文件,然后按Install from file按钮。



这样需要的插件就被导入到blender中了,但一定要记得在相应的插件前面打钩,这样才表示已经被使用了。



点击File->Import->OpenStreetMap(.osm),定位到想要导入的地图资源文件,导入的时候一定要注意建筑和街区是分别导入的,因为我们后面需要对他们进行不同的操作。



[align=center]导入之后,可能会发现什么都看不到,其中可能会有两个原因:(1)模型离坐标中心太远;(2)工作视角(view)的lens太短。对于第一种情况按住shift键,选择右上方的模型栏中刚刚导入的建筑模型和街道模型。[/align]



[align=left]按cirl+Alt+Shift+C键,选择Geometry to origin,就可以将坐标中心移动到模型的中心了。对于第二种情况,按‘n’键,在出现的属性栏中,将clip下的end的值调大,这样就能看到整个模型啦。[/align]
[align=center][/align]



[align=left]效果如下。[/align]



[align=left]这里介绍一些blender的简单操作:[/align]
[align=left](1)按住鼠标中键移动,可以移动工作视角。[/align]
(2)滑动滚轮可以将视角拉近拉远。

(3)视窗下面蓝色的三个按钮分别可以对模型进行移动、旋转和缩放。



大家可以看到,模型中建筑都是比较ok的,但是街道却都是由线表示的,因此我们需要对街道进行一些处理。

我们需要将mesh类型的街道转换为curve类型。模型列表中每个模型的名称前黄色的倒三角表示mesh类型。选中街道按ctrl+c,选择curve from mesh,就可以将街道转变为curve类型,这样我们就能依据curve的性质,对街道进行操作。

选中街道,在其属性面板(右下角)中选择Data object选项卡,将Fill设为full,将Geometry下的Bevel下的两个参数分别设为2和32,当然其他的值也可以,各位同学可以自己试试不同的效果。



[align=left]这样我们就可以得到想要的结果了。[/align]



[align=left]经过以上的步骤,地图模型部分就基本上完成了,为了达到更好的效果(现在整个城市是悬空的),需要建一块地面。[/align]



如上图,可以添加一个plane,将其移动到合适的位置,即可把它当做地面啦!
此时,所有的模型工作就已经完成了,接下来就可以对模型进行材质的添加啦。选中建筑模型,在它的属性面板中,选择Material选项卡,new一个新的材质,Diffuse表示模型本身的颜色,Intensity表示强度,Specular表示反射光的颜色,Intensity也是表示强度,大家可以自己设置觉得比较合适的颜色。对于街道模型和plane也进行相应的操作。



接下来,需要调整灯光的位置和属性,在模型列表中选中lamp,就可以对灯光进行操作了,选择灯光的属性为sun,这里也可以调节灯光的颜色,还有强度,同时也可以勾选sky。



[align=left]之后调节摄像头的位置,将其调整到合适的位置,可以按数字‘0’键,观察此时摄像头内的场景内容,如果看不到任何东西,则在摄像头的属性面板中将Clliping的end调大,这样就可以得到图像啦。[/align]
[align=left]按F12,即可进行渲染,结果如下。[/align]





这样所有的工作就完成啦!
参考:https://zhuanlan.zhihu.com/p/22802675
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: