查看原文
其他

Hey教你 | 三维城市海报 制作流程

sshuair 极海 2023-10-13
Blog地址 | http://blog.geohey.com/ji-yu-ying-xiang-de-zhi-neng-shi-bie-yu-sou-suo-ping-tai/文  |  sshuair编辑 | gaonii
读研的时候就曾看过Luis Dilger大神用C4D和DEM Earth制作的基于Open Street Map数据的City Layout图,当时也就看了一眼觉得好牛叉,然后就没有然后了,最近又看到@韩一郎用blender和C4D也制作了一个,这下我是真的坐不住了,一定要自己做个出来(见封面)。Luis Dilger和@韩一郎都用了商业软件C4D,然而我并没有这个钱去购买,因此开源的三维软件Blender成了我的首选,下面开始我们的制作流程。
先来一张Luis Dilger的原作:
ps. Luis Dilger和@韩一郎都是专业搞设计的,而我是搞地理的,入门blender才4天,因此下面的某些术语表述可能不专业,请见谅并指明。
这是我做的曼哈顿最终结果(知乎限制图片大小,原图在这里:bluegray):
## 准备0. blender预备知识:台湾大神的blender教程全集,这里推荐大家把前5集、22、23、48、55、56集看完,我也是看了这些才开始制作的,1. 软件:blender,我这里使用的版本是2.78,对于mac版本的blender,默认情况下其数字键不管用,需要到user preferences—>input中将emulate numpad勾选上2. osm插件:blender-geo或者BlenderGIS,用来导入open street map数据,这里推荐blender-geo,因为blenderGIS导入的building会丢失细节信息,另外blenderGIS在导入数据量较大时会报错。对于如何在blender中导入插件,两个插件的文档中都有说明,这里不再重复,需要注意的是blender-geo最好将Import OpenStreetMapOpenStreetMap Georeferencing 都导入blender,下面制作流程中我用的插件都是blender-geo。
3. 数据:请前往Open Street Map下载,导出的数据格式为.osm格式
## 数据导入1. 导入数据的时候切记分两次导入,一次导入buildings,一次导入roads and paths。对于数据量较大的文件,导入过程非常缓慢,比如我这个38M的Manhattan1.osm花费了2、3个小时才导入成功,在导入过程中blender会出现不响应的情况,请耐心等待。
2. 设置georeferencing:按照blender-geo的文档,先按数字键7,或者在`view`中选择`top`,将视角切换成俯视;然后右键选中`buildings和roads对象,在左侧的工具栏中(按T)找到`Geo`选项卡中的`Geoferencing`,点击`set original position`;再然后将图层缩放到可以看见所有的building和road,点击`Perform georeference`完成地理配准3. 按n,打开右侧特性栏,选择view下的clip属性,将end调大,防止对象在缩放过程中产生溢出/割断现象
4. 添加底板: `shift + A`选择`mesh`中的`plane`,修改底板大小(尽量往大了调),使building和road都能够落在plane上5. (可选)将building、road、plane分别加载到不同的图层中(选中对象按m进行移动,如果想全部显示,按住shift同时选中想要显示的图层)## road数据修改这一步是为了将road从mesh转curve,curve可以方便的调整粗细1. 右键选中roads,按住`option + c`,选择`curve from mesh/text`
2. 将road的mesh转成curves后,到`properties`中的`data`选项卡中,`shape`中`fill`选择为full;`geometry`中的`depth`:2,`resolution`:32,其中depth越大产生的柱体越粗,resolution越大越圆滑,这样就将线条变成了圆柱体,方便后面设置其颜色(diffuse)
## material 材质**这一部分最困难,需要耐心调试,需要与灯光一起进行调试**1. buildings、roads的diffuse使用相同的颜色(请参考B站教程的22、23集),我这里使用的是hex:847770,intensity这里设置成了1.0
2.plane 底板的diffuse设置过程与buildings合roads类似,我这里参数设置如下:- 将diffuse设为hex:214962- 将specular(镜面反射)的intensity设置为0,即不反射## lighting 灯光1. 选中lamp, 将lamp设置为sun,通过`scaling`将lamp调大,这里需要注意,scaling过大或者过小都会导致表示太阳方向的线显示不全(下图中 Right Ortho视图中黄色的虚线)2. 调整lamp的光线入射方向,通过下方工具栏的rotate进行调整3. 在灯光属性`shadow`中,选在`Ray Shadow`,如果想看其效果,可以按f12查看渲染后的效果,不过现在只能显示一部分,需要设置好camera位置后才能看到完整的城市
4. 在`properties`——>`world`中勾选`Ambient Occlusion`(环境光遮蔽), 调整光线效果## camera 相机1. 选中camera, 通过`scaling`将camera调大2. 通过`translate`,移动camera到合适的位置3. 通过`rotate`,旋转camera到合适的角度4. **在`properties`—>`camera`—>`perspective`—>`lens`——>`Clipping`**中:- 将end设置大一些(1w~5w),防止场景被切割掉,按数字0可以随时查看在camera中的效果- 将`focal length`焦距调整小一些,来获得全景,配合rotate进行调整- `shift`可以对camera角度进行微调5. camera一共有三种模式:Perspective (透视模式) 、Orthographic(正交模式)、Panoramic(全景模式),上面说的是Perspective模式,大家可以试试不同的模式,看看效果,比如下图中我就用了Panoramic模式,三种模式的说明6. 按数字键0可以查看当前的camera视窗中的物体,这里有一个小技巧,可以在3d view中将角度调整好之后,按control + option + 0设置相机位置,而不需要通过旋转缩放等繁琐的操作来制定相机位置7. 相机位置设置好后,可以按f12看渲染出来的效果。
8. [调整景深和焦距,产生虚化效果],这个太复杂就没有做,其实可以导出后用PS、pixelmator等图片处理软件制作## 导出1. 在`properties`—>render`—>`resolution`中设置分辨率,和输出路径`output`,frame range都设置成1,不然会输出一大堆图片2. 点击animation开始渲染,渲染结束后就会在指定的路径下生成相应的图片
## ENDone more thing: blender一些快捷键- m: 移动物体到其它图层- t: 打开左侧工具栏- n: 打开右侧工具栏- 0: 摄影机所含盖的视窗- f12: 算图输出- b: 矩形框选- control + mouse left: 自由曲线选择- shift + A: 创建新物体- tab: 编辑开启,关闭- a: 全选/取消全选- option + c: mesh转为curves- control + j: merge object文 | sshuair .  Play with Geodata.
欢迎加入GeoHey技术支持QQ群:164183186


GeoHey地理位置服务领先者  让我们一起探索地理位置的价值为这个世界创造一个使用地图的新方式
微博ID:GeoHey微信服务号:geohey_com
访问网站 http://geohey.com联系&合作邮箱:contact@geohey.com
长按识别二维码关注
 
更多精彩内容点击“阅读原文”

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存