地形データを使ってシーンを作成

  • 地理院地図より地形を作成

今回から地図データを使って地形を作る、というテーマに挑戦していきます。
国土地理院ウェブサイト( https://www.gsi.go.jp/top.html )で提供されている地図や航空写真、立体地図を使っていくことにしました。

国土地理院で提供されているデータ

まず、国土地理院が提供されているデータの使用ライセンスや条件を確認していきます。
「リンク・利用規約について」( https://www.gsi.go.jp/GSI/chosaku.htm )より、
出展を記載すれば自由に利用できると書いてあります。
ただし、加工した場合はそのことを記載すること、とのことでした。
詳しい情報は、「リンク・利用規約について」のURLからご確認くださいませ。
このShade3Dチュートリアルでもこの規約にのっとって活用していきます。
ここでは、データを加工せずにそのまま使用します。

では、Shade3Dで使うにあたってどのようなデータが利用できそうか見ていきます。

  • 地図
  • 航空写真(国土地理院では「空中写真」で統一しているようです)
  • 立体地図

これらについては国土地理院ウェブサイトのトップページ( https://www.gsi.go.jp/top.html )をスクロールして「地理院地図」より利用できます。

注意点として、WebブラウザはGoogle Chromeを使用するようにしてください。
一部Webブラウザでは正しく動作しない場合がありました。

立体地図を見る

3Dとして見栄えのある「立体地図」を見ていきます。
Webブラウザで「地理院地図」を開きます。「立体地図」もここから表示できます。

映えそうな場所として富士山を取り出していきます。
マウスドラッグで拡大した場所に移動して、左下の「+」を押してズームしていきます。

「ツール」を選択すると、右端にメニューが表示されます。

ツールから「3D」を選択します。

サブメニューが表示されるので「大」を選択しました。

以下のようなウィンドウが表示されました。

富士山にズームして視点を変えると以下のようになりました。

立体地図の情報をファイル出力

「地理院地図」の「立体地図」では、STL/VRML/WebGL向けの出力ができます。
このうち、3DCGツールで読み込めるものはSTL/VRMLとなります。
STLはテクスチャファイルが含まれません。
VRML形式(wrl)はShade3Dではサポートされていません。
正確には、過去のShade3DではプラグインとしてVRMLファイルを読み込めたのですが現在はサポート外になっています。
今の3DCGツールでは、Shade3Dに限らずVRML形式はあまり使われていないかもしれません。

そこで、STL形式で形状(ジオメトリ)データ、VRML形式からテクスチャファイル、を別々にダウンロードして、
Shade3D側で組み合わせることにします。

右下の「ダウンロード」ボタンを押して、それぞれのファイルをダウンロードします。
STLファイルより「dem.stl」、VRMLファイルより「texture.png」をダウンロードしました。

Shade3Dで立体地図を表示

Shade3Dにdem.stlをインポート

Shade3Dを起動します。
メインメニューの「ファイル」-「インポート」-「STL」を選択し、「dem.stl」をインポートします。
STLインポートダイアログボックスで、座標変換はY軸が上向き、Z軸が手前向きとなるようにします。
なお、「リセット」ボタンを押すことで座標変換は初期状態になります。

透視図のナビゲーションツールのコンテキストメニューより「テクスチャ」を選択すると、以下のようになりました。

透視図でズームしていくと一部の山がカクカクになっているため、
形状情報ウィンドウの「限界角度」を30から50に変更しました。

テクスチャを割り当て

テクスチャ「texture.png」を割り当てていきます。
読み込んだ地形形状は上面図で見ると正方形になっています。

また、テクスチャ「texture.png」も正方形です。

この場合は、単純に上面図で平行投影すればよさそうです。
形状のポリゴンメッシュに対してUV図面でUVを割り当てていきます。

UV図面を表示し、UVメニューより「UV作成」を選択します。
ツールパラメータで「投影UV作成」を選択、「投影面」を「上面図」としました。

ツールパラメータで「全ての面を展開」ボタンを押します。

これで、対象のポリゴンメッシュ形状に対してUVが割り当てられました。

次に、ポリゴンメッシュの表面材質のマッピングとして「texture.png」を割り当てていきます。
ツールボックスの「作成」-「その他」-「イメージ」より、「texture.png」をシーンに読み込みます。

ポリゴンメッシュの表面材質を新規作成し、マッピングにテクスチャを割り当てました。
ここでは「Shade3Dマテリアル」の「イメージ/拡散反射」を指定しています。

透視図では以下のようになりました。

富士山にズームすると、きちんと高さがあることが確認できます。

航空写真の立体地図を見る

次に空中写真(航空写真)を使った立体地図をShade3D上で作成します。
地理院地図の左上の「地図」のアイコンをクリックすると、左にオプションが表示されます。
ここで「写真」を選択します。

黒い「<」をクリックするとオプションが閉じます。
以下のように航空写真が表示されました。

航空写真自体が複数の範囲ごとの組み合わせになっているため、範囲ごとに色合いが異なっています。
この部分は仕様としてそのまま進めます。

「ツール」-「3D」を選択し、3D表示します。
以下のように3D表示されました。

前述と同様に、STLファイル/VRMLファイルより「dem.stl」「texture.png」を出力します。

Shade3Dで空中写真の立体地図を表示

以降はShade3Dの作業になります。
前述と同様に、「dem.stl」のインポートとUV割り当て。
「texture.png」のインポートと表面材質として割り当てを行います。

富士山にズームすると以下のようになりました。

レンダリングすると以下のようになりました。

カメラアニメーションを行う

カメラを配置して、ウォークスルーしてみました。
ボールジョイント内にカメラを入れています。

アニメーションレンダリングした結果は以下のようになりました。
レンダリングは、大域照明無しのレイトレーシングを使用しています。

このように、「地理院地図」の「立体地図」を使用することで、様々な場所の地形を3Dとして扱うことができます。
日本の特徴的な地形や山岳は「立体地図を見る(ギャラリー編)」( https://maps.gsi.go.jp/3d/gallery.html )に一覧されていますので、
学習しながら見ていくことができます。
山岳地帯を立体地図にすることで、より映える地形を得ることができそうです。
以下は知床岳の地形をShade3Dに読み込んでみました。

今回は見栄えのする「立体地図」をShade3Dに取り込む流れを解説しました。
次回は、地図では避けて通れない緯度・経度や実際の距離についての解説を予定しています。

カテゴリー: 地形データを活用