2015年12月28日

製作3D地形模型(使用Maperative、Blender、MeshLab)


http://www.thingiverse.com/thing:1229560
最近又對立體模型、3D列印感興趣了,不過要作什麼好呢?突然覺得地形模型好像不錯,可是怎麼作呢?

剛好最近看數學函數建模的資料,東連西連看到一個利用OSM為圖資的地圖軟體Maperative,就從這個軟體開始,讓我拼湊出製作地形模型的方式了。

下面這個是新竹地區的3D模型
新竹3D地形模型


這個則是送進3D印表機印出來的成果,可以用摸的摸出台地、丘陵、河川等地形特徵,要隨意用什麼視角看也都是可以的。
hsinchu02_annotation

從頭前溪、鳳山溪出海口往陸地看去,新竹平原的北有湖口台地、南有香山丘陵、東有雪山山脈,形成一個地形隘口,就像是畚箕一樣,所以這稱作為畚箕嘴地形,從立體模型上更能看出這個特徵。這個畚箕嘴地形也就是造就九降風的原因,讓新竹有了「風城」的稱號。

hsinchu03_annotation

我製作了台北和新竹的立體模型,都放在Thingiverse,不過我都有把z軸比例拉大,讓山高一點
http://www.thingiverse.com/thing:1229560


這麼酷的模型怎麼作呢?我錄製了三段影片,分別說明如何從Maperative取得地形資料檔,還有用MeshLab減面,再利用Blender建模,都在以下這個播放清單
https://www.youtube.com/playlist?list=PLm6x13NbsKl72M9QbExIUv9NoqNK65tJi


Maperative是免費軟體,圖資來自OSM,而高度資料應該是來自NASA的DTM,因為我以前作過Garmin的等高線地圖圖資,我看到兩個的DTM缺失值是一樣的。
找到要製作的地方之後,兩步就可以產出3D檔
Map/Set Printing Bounds
Tools/Export to 3D
得到的是Collada格式的檔案
maperative

檔案先用Blender轉成stl,再匯入MeshLab去作減面
File/Import Mesh
Filters/Remeshing,Simplification and Reconstruction/Quadric Edge Collapse Decimation
用預設值apply之後,Export Mesh as...另外存一個stl檔
然後再開啟那個stl檔,重複作上面的減面手續
作幾次不一定,看你的需求,重點是面數減少卻又不會影響模型外觀。

MeshLab



最後用Blender 把本來只有表面的模型,加上底部。這部份用寫的有點困難,總之就是加一個方塊去跟本來的表面作布林運算。
blender


你看我們作一個台灣模型這麼辛苦,如果是日本的地理模型就很簡單了
日本的國土地理院就有網站服務可以直接選定範圍製作出3D列印模型檔
http://cyberjapandata.gsi.go.jp/3d/index.html

他們那個番外篇也很有趣
http://cyberjapandata.gsi.go.jp/3d/sample/sample/sample.html
把立體模型對應的地圖剪貼到模型上面,就可以做出立體地圖了

如果用我上面的方式要作也很容易,因為Maperative就有自動產出對應的地圖圖片了,印出來貼在模型上就可以了。