3D地形ビューアとは?
3D地形ビューアは、グレースケールの高さマップ画像をインタラクティブな3D地形に変換します。明るさが標高に対応する高さマップをアップロードし、あらゆる角度から地形を周回して探索できます。
読み込み時にハイトマップは三角ポリゴンメッシュへサンプリングされます。解像度で生成される頂点数を調整でき、低解像度は回転が滑らかに、高解像度は稜線がくっきり出ます。配色は地形色(高度に応じて青・緑・茶・白へ)、衛星調のフラットシェーディングに加え、砂漠・火山・極地の各テーマ、そして純粋なワイヤフレームから選べます。真上視点に切り替えれば平面の正射図になり、最小/平均/最大の標高パネルでコントラストを把握できます。正方形であれば PNG でも JPG でも使えます。
使い方
- グレースケールの高さマップ画像(PNGまたはJPG)をアップロードします。白が最も高い標高、黒が最も低い標高を表します。
- 高さスケールを調整して地形の起伏を強調または平坦化し、配色(等高線、衛星写真、砂漠、火山、極地、ワイヤーフレーム)と地形解像度を選択します。
- ドラッグで地形の周りを周回、スクロールでズームし、お気に入りの視点のスクリーンショットをPNGとしてエクスポートします。
使用するタイミング
- Perlin ノイズや Photoshop で作ったハイトマップを、Unity や Unreal へ取り込む前に下見する。
- 実世界の DEM(数値標高モデル)タイルをブログ記事用の 3D 図版に仕立てる。
- プロシージャル地形スクリプトの整合性チェックとして、ハイトマップを出力して回り込んで眺める。
結果
ゲーム開発者が512×512のパーリンノイズ高さマップをアップロードし、高さスケールを150%に設定、等高線カラーを適用。RPGの山岳峠シーンに最適なカメラアングルを回転させながら探しました。
よくある質問
- ハイトマップの画素サイズはどれくらいが良い?
- 256×256〜1024×1024 の正方形が最も扱いやすいです。ビューアは選択した解像度にダウンサンプリングするので、4096px の入力はデフォルト設定で 1 辺あたり約 512 頂点まで間引かれます。正方形でない画像は正方形領域に引き伸ばされます。
- なぜ地形が平らな板に見えるの?
- ハイトマップのコントラストが低すぎる(ほぼ灰色の画像はほぼ平らなメッシュになります)か、高さスケールのスライダーが最小値のいずれかです。スケールを 150〜200% に上げ、元画像のヒストグラムを任意の画像編集アプリで確認してください。
- 白=高、黒=低という対応は固定?
- はい。ビューアはピクセルのグレー値をそのまま高度に対応させます。255(白)が最高点、0(黒)が地面です。ハイトマップが逆方向の慣例で作られている場合は、「高さを反転」をオンにすればその場で直せます。
- 衛星画像のテクスチャやカラーマップを重ねられる?
- 今のところできません。ビューアは高度に応じたプロシージャルシェーディングまたはワイヤフレームだけを使います。本物の衛星テクスチャを貼りたいなら、メッシュを Blender や QGIS(QGIS2threejs プラグイン)のような、別途ディフューズテクスチャを扱える環境へエクスポートしてください。
- 書き出される PNG はどれくらいの大きさ?
- PNG は画面のキャンバス解像度に合わせて出力されます。ビューポート次第で 1200×800 前後になることが多いです。ダウンロード時のカメラ角度・照明・配色がそのまま記録されるので、エクスポート前に整えておきましょう。