Blog
「取得した湖底の地形データをカラーで3Dプリントしたい」の巻
(公開)作業ノートです。
以下の作業ではChatGPTも利用してみましたが、・・・ヤツは役立たずでした。
・・・・・・・・・・・
水中ドローンシミュレータを開発している芹澤さん(トライワース株式会社)から、「シミュレーターに実際の桧原湖の水没集落付近の水中の地形を反映させてみたい」という提案があった。
私自身も水中地形データを学術面以外のアウトリーチなどにもっと活用したいと常々考えていたところだったので、ちゃんと調べて確認することにした。芹澤さんの要望は、「地形データをOBJとFBXでデータをいただきたい」とのことだった。ちなみに、私は取得した地形データ(xyz)はもっぱらsurferで処理をしている。
Surferから3Dモデルをエクスポートする方法としては以下の2つ。
1.「3Dview」>Export 3D>3D pdf、もしくはvrmlに変換
2.Grid>Convertでgrdファイルをstlに変換
objに直接変化する方法はなかった・・・。というわけでググった・・・。
ググる・・・その1
surferで
・Grid>Convertでgrdファイルをtiff (DEM)に変換したファイル
・File>exportでgrdファイルをtiff (image)に変換したファイルーcolor relief(水深ごとに色分けしたカラー画像)
を作成。ここで注意事項として2つのファイルの
・Pixel dimension(800*800)-大きすぎない
・Output format(In tiles of 256*256 pixels each)ーよくわからん
そろえる・・・たぶん。
ウェブにあった3Dビュアーまではうまくいった。しかしexportしたobjファイルがどうもうまくいかない(一部分しかエクスポートできていない)。
SOCHIさんに相談したところ、データが大きい、スケールが大きい、2つのデータのピクセルは座標が異なる、などなどの可能性をご指摘いただいた。
何度か格闘したが、・・・あきらめた。
ググらず・・・その1
surferからgridファイルをstl変換→agisoft metashapeでstlからobjに変換
metashapeユーザーなので、この方法はぼんやり頭の片隅にあったのだが、すぐにできた。
しかし、この方法では色が付かないので、どうしても色付きモデルがほしいのである。
ググる・・・その2
複数メッシュからなる広範囲の数値標高モデルをざっくりとBlenderで扱う #QGIS - Qiita
1.gridファイルをqgisで読み取る。(標高zを0に近づける変換をしておく)
2.qgisのQgis2threejsアドオンでglTFで出力。
3.blenderでobjに変換
ググる・・・その3
Blender のアドオン BlenderGIS のインストール
BlenderGIS を用いて Blender に GeoTIFF 形式の高さマップ (height map) をインポート
これらの記事を参考に、Blenderのアドオン機能BlenderGISを活用することにした。
1.surferで
A. Grid>Convertでgrdファイルをtiff (DEM)に変換したファイル
B. File>exportでgrdファイルをtiff (image)に変換したファイルーcolor relief(水深ごとに色分けしたカラー画像)
を作成。(ググる・・・その1、と同じ)
2.1の二つのtiffをBlenderでimportする。
A. Dem_Dem_raw data bulid [slow]
B. Basemap on mesh
のモードでそれぞれインポートする。
なお、Bをインポートするときは「ジオメトリー」作業画面にした状態が良い・・・かもしれない(Bをインポートしても色テクスチャが反映されないときがある)。
3.地形の凹凸特徴を見やすくするためにZ軸に地形を伸ばす。トランスフォームでスケールZの数字を変える。
4.ファイル>エクスポート>waveform obj>ジオメトリの「色」にチェックを入れる。
5.完成!ーmetashapeで開いて確認・・・光源のようなものが3Dモデルにへばりつく????・・・力業でむりやり光源のメッシュを削除して再保存・・・(何が問題か引き続き要検討)。
・・・・・
次回はマッケラスの実践ノートを公開する、かも。