11.2. 3Dマップビュー
3次元可視化サポートは3Dマップビューによって提供されます。 メニューから、3Dマップビューの作成や管理を行ったり、3Dマップビューを開くことができます:
 をクリックすると、新しい3Dマップビューを作成できます。ドッキング可能なフローティングのQGISパネルが現れます( 3Dマップビューダイアログ 参照)。これは2Dのメインマップキャンバスと同じ範囲とビューを持っており、このビューを3次元に変化させるためのナビゲーションツール群があります。 をクリックすると、新しい3Dマップビューを作成できます。ドッキング可能なフローティングのQGISパネルが現れます( 3Dマップビューダイアログ 参照)。これは2Dのメインマップキャンバスと同じ範囲とビューを持っており、このビューを3次元に変化させるためのナビゲーションツール群があります。
- をクリックすると、3Dマップビューマネージャが表示されます。ここでは、3Dマップビューの表示、複製、削除や名前の変更ができます。 
- 1つ以上の3Dマップビューを作成すると、ビューが のメニュー内にリスト表示されます。これをクリックすることで、表示・非表示を切り替えられます。たとえビューが非表示であっても、プロジェクトを保存することで、3Dマップビューは保存されます。 
 
図 11.23 3Dマップビューダイアログ
3Dマップビューパネルの上部には、以下のツールがあります。
 地物情報表示: クリックされた地点の地形情報、もしくはクリックされた3次元地物の情報を表示します(詳細については 地物の識別 を参照) 地物情報表示: クリックされた地点の地形情報、もしくはクリックされた3次元地物の情報を表示します(詳細については 地物の識別 を参照)
 アニメーション: アニメーションプレーヤー ウィジェットを表示/非表示 にします アニメーション: アニメーションプレーヤー ウィジェットを表示/非表示 にします
 3Dシーンの出力 :現在のビューを3Dシーン( 3Dシーンの出力 :現在のビューを3Dシーン(- .objファイル)として出力し、Blender等のアプリケーションで後処理できるようにします。地形とベクタ地物が3Dオブジェクトとしてエクスポートされます。エクスポート設定には以下のものが含まれ、レイヤの プロパティ やマップビューの 設定 を上書きします。
 ビューテーマの設定 :定義済みの マップテーマ から、から、マップビューに表示するレイヤの組み合わせを選択できます。 ビューテーマの設定 :定義済みの マップテーマ から、から、マップビューに表示するレイヤの組み合わせを選択できます。
- 
- 影 の表示や、 アイドーム照明(EDL) 、 環境光遮蔽(ambient occlusion) といった3Dレンダリングへの視覚効果の追加 
- ビューの同期( 2D地図ビューが3Dカメラに従う や、 3Dカメラが2D地図ビューに従う ) 
- 2D地図ビューにカメラの視界を表示 
 設定 :3Dマップビューの 設定 設定 :3Dマップビューの 設定
 
11.2.1. シーン設定
3Dマップビューはデフォルトの設定で開かれますが、設定のいくつかはカスタマイズが可能です。設定を変更するためには、3Dキャンバスパネルの上部にある  オプション メニューを展開し、
 オプション メニューを展開し、  ボタンを押すことで、 3Dコンフィグレーション ウィンドウを開きます。
  ボタンを押すことで、 3Dコンフィグレーション ウィンドウを開きます。
 
図 11.24 3Dコンフィグレーションダイアログ
3Dコンフィグレーションウィンドウには、3Dシーンを微調整するためのさまざまなオプションがあります。
11.2.1.1. 地形
- 地形 :まず、3Dビューの地形は地形タイルの階層によって表現されることに注意してください。カメラが地形に近づくと、十分なディテールを持たない既存のタイルはよりディテールの細かい小さいタイルに置き換えられます。各タイルは、標高ラスタレイヤに由来するメッシュジオメトリと、2Dマップレイヤに由来するテクスチャを持っています。 - 地形は以下の 型 があります。 - 平らな地形 
- 読み込まれた DEM ラスタ 
- オンライン サービスは、Mapzen ツールによって作成された 標高タイル を読み込みます。 -- 詳細については https://registry.opendata.aws/terrain-tiles/ を参照してください。 
- 読み込んだ メッシュ データセット 
 
- 高さ :地形の生成に使用するラスタレイヤまたはメッシュレイヤを選択します。ラスタレイヤには標高を表すバンドが含まれている必要があります。メッシュレイヤは、頂点のZ値が使用されます。 
- 鉛直スケール: 垂直軸のスケール係数です。スケールを大きくすると、地形の高さが誇張されます。 
- タイル解像度: 各タイルに使用する地形ラスタレイヤのサンプル数です。値が16の場合、各タイルのジオメトリは16x16の標高サンプルで構成されます。数値を高くするとより詳細な地形タイルが作成されますが、レンダリングが複雑になります。 
- スカートの高さ: 地形のタイル間に小さな亀裂が見られることがあります。この値を上げると地形タイルの周りに垂直方向の壁("スカート")が追加され、亀裂を隠すことができます。 
- オフセット: 地形を上下に移動します。例えば、シーン内の他のオブジェクトのグラウンドレベルに応じて地形の標高を調節するために使います。 - これは、地形の高さとシーン内のレイヤの高さの間に相違がある場合に便利です(例:相対的な垂直方向の高さのみを持つ点群など)。この場合、地形の高さをシーン内のオブジェクトの高さと一致するように手動で調整すると、ナビゲーションの操作性を向上できます。 
 
- メッシュレイヤを地形として使用する場合には、 三角形設定 (ワイヤフレームを表示、スムース三角形、詳細水準)と、 レンダリング色設定 (単一色または カラーランプ に基づく色)の設定ができます。詳細は メッシュレイヤの3Dビュープロパティ のセクションを参照してください。 
 地形シェーディング: 地形のレンダリング方法を選択できます。 地形シェーディング: 地形のレンダリング方法を選択できます。- シェーディングが無効 - 地形の色はマップテクスチャからのみ決定されます 
- シェーディングが有効 - 地形の色はPhongのシェーディングモデルを使用して決定されます。マップテクスチャ、地形の法線ベクトル、シーンの光源、地形マテリアルの 環境光の色 と 鏡面光の色 、 シャイネス(輝き) が考慮されます。 
 
11.2.1.2. 光源
光源 タブでは、  メニューをクリックして以下の光源を追加できます。
 メニューをクリックして以下の光源を追加できます。
- 最大8つの 点光源 : 空間に広がる光の球のように、全ての方向に光を放ちます。光源に近い物体は明るく、遠いものは暗くなります。点光源は設定位置( X、 Y 、 Z)と、 色、 強度 、 Attenuation(減衰) を持ちます。 
- 最大4つの 方向光源 :これは、オブジェクトから非常に遠く離れた場所にある巨大なフラッシュライトからの光を再現したもので、(例えば太陽のように)常に集中していて弱まることがありません。この光源はある一つの方向に平行な光線を放出しますが、光は無限遠まで届きます。方向光源は 方位角(Azimuth) を指定して回転させることができ、 高度 、 色 、 強度(Intensity) の設定があります。 
 
図 11.25 3D光源コンフィグレーションダイアログ
11.2.1.3. 影
 影を表示 をチェックすると、シーンに影を表示します。次の設定があります:
 影を表示 をチェックすると、シーンに影を表示します。次の設定があります:
- 方向光源 
- シャドーレンダリングの最大距離 :特にカメラが水平方向を向いている場合に、遠すぎるオブジェクトの影をレンダリングしないようにするための距離。 
- シャドーバイアス :マップサイズの違いによりエリアの一部が他よりも暗くなるセルフシャドウ効果を回避するための値です。小さいほど良いです。 
- シャドー解像度 :影の見た目をよりシャープにします。解像度パラメータを非常に大きくした場合、パフォーマンスが低下することがあります。 
11.2.1.4. カメラとSkybox
このタブでは、カメラ、3D軸、ナビゲーションの同期やSkyboxといったさまざまなパラメータを制御できます。
 
図 11.26 3Dカメラコンフィグレーションダイアログ
- カメラ パラメータグループは、 ダイアログで設定した デフォルトカメラ設定 の一部を上書きできます。 
 3D軸を表示 にチェックを入れると、3D軸ツールを有効化します。このパラメータグループは、軸のタイプや位置を設定できます。 3D軸を表示 にチェックを入れると、3D軸ツールを有効化します。このパラメータグループは、軸のタイプや位置を設定できます。- 座標参照系 タイプを使用すると、直交する軸で表現されます。 
- Cube タイプを使用すると、3Dキューブで表現されます。キューブの面は、カメラのビューの変更に使用できます: 例えば、 北 の面をクリックすると、カメラが北側から見るように設定されます。 
 
- ナビゲーションを同期 パラメータグループは、2D地図ビューを3Dカメラ位置に同期させたり、または3Dカメラ位置を2D地図ビューに同期させたり、あるいは双方向に同期させたりするオプションを追加します。一番下のオプションは、2Dマップビュー上に3Dカメラで見えている範囲を表示させます。 
 Skyboxを表示 にチェックを入れると、シーンのスカイボックスレンダリングを有効化できます。スカイボックスのタイプには、以下があります: Skyboxを表示 にチェックを入れると、シーンのスカイボックスレンダリングを有効化できます。スカイボックスのタイプには、以下があります:- パノラマテキスチャ 単一のファイルで、360° の視界に適用されます 
- 面(Distinct faces) シーンを囲む箱の6つの側面それぞれのテクスチャファイルを指定します 
 - スカイボックスのテクスチャの画像ファイルには、ディスク上のファイル、リモートURL、プロジェクトに埋め込まれたファイル( 詳細はこちら )が使用できます。 
11.2.1.5. 詳細設定
- 地図タイルの解像度: 地形タイルのテクスチャとして使用される2D地図画像の幅と高さ。256pxは、各タイルが256x256ピクセルの画像にレンダリングされることを意味します。数値が高いほど詳細な地形タイルが作成されますが、レンダリングが複雑になります。 
- 最大 画面誤差: 地形タイルをより詳細なタイル(または簡略なタイル)と交換する際のしきい値を指定します。すなわち、3Dビューがより高品質なタイルにどれだけ早く切り替えるかの値です。数値が低いほど、レンダリングの複雑さを犠牲にしてもシーンの詳細度が高くなります。 
- 最大 地上誤差: タイルをより詳細なタイルへと分割する操作が停止する地形タイル解像度の値です(タイルを分割してもそれ以上のディテールが得られません)。この値はタイルの階層の深さを制限します。値が小さいと階層が深くなり、レンダリングが複雑になります。 
- ズームレベル: ズームレベルの数を表示します(マップタイルの解像度と最大地上誤差に依存します)。 
 バウンディングボックスを表示する: 地形タイルの3Dバウンディングボックスを表示します(地形の問題のトラブルシューティングに役立ちます) バウンディングボックスを表示する: 地形タイルの3Dバウンディングボックスを表示します(地形の問題のトラブルシューティングに役立ちます)
 デバッグオーバーレイを表示: デバッグとプロファイルに関する便利な情報を表示するビジュアルオーバーレイです。これによって特にフレームグラフやシーングラフを素早く確認できます。 デバッグオーバーレイを表示: デバッグとプロファイルに関する便利な情報を表示するビジュアルオーバーレイです。これによって特にフレームグラフやシーングラフを素早く確認できます。
 アイドーム照明(EDL)を表示: 奥行きの感覚を高めるポストプロセス効果です。各ピクセルの奥行き(カメラからの距離)は隣接ピクセルの奥行きと比較され、奥行きの差に応じて強調表示され、エッジが目立つようになります。これはシーン全体に影響し、 環境光遮蔽(Ambient Occlusion) と組み合わせることができます。以下のパラメータを制御できます: アイドーム照明(EDL)を表示: 奥行きの感覚を高めるポストプロセス効果です。各ピクセルの奥行き(カメラからの距離)は隣接ピクセルの奥行きと比較され、奥行きの差に応じて強調表示され、エッジが目立つようになります。これはシーン全体に影響し、 環境光遮蔽(Ambient Occlusion) と組み合わせることができます。以下のパラメータを制御できます:- 照明の強度: コントラストを増加させ、より奥行き間隔を高めます 
- 照明の距離: 使用するピクセルの中心ピクセルからの距離を表します。エッジを太くする効果があります。 
 
- スクリーン空間への  環境光遮蔽(Ambient Occlusion) の追加: 環境光に当たりにくい部分により暗い影を適用するポストプロセス効果で、こちらも奥行き感を高めます。これはシーン全体に影響し、 アイドーム照明 と組み合わせることができます。以下のパラメータを制御できます: 環境光遮蔽(Ambient Occlusion) の追加: 環境光に当たりにくい部分により暗い影を適用するポストプロセス効果で、こちらも奥行き感を高めます。これはシーン全体に影響し、 アイドーム照明 と組み合わせることができます。以下のパラメータを制御できます:- 半径: 環境光遮蔽を計算する距離 
- 強度(Intensity): 効果の強さ(値が大きいほど暗くなる) 
- 遮蔽閾値(Occlusion Threshold): 隣接点がいくつ遮蔽されると効果が現れるか(50%より低い値の場合、アウトプットは暗くなるが、遮蔽の範囲は広くなることがある) 
 
 
図 11.28 アイドーム照明(EDL)および環境光遮蔽(SSAO)を使用した3Dマップの点群レンダリング
左上から順に、両方なし -- SSAOのみ -- EDLのみ -- SSAOとEDL両方
11.2.3. アニメーションの作成
アニメーションはキーフレーム(特定の時刻のカメラ位置)の集合に基づいています。アニメーションを作成するには、
 キーフレームを追加 ボタンをクリックして、 キーフレーム時間 を秒単位で入力します。キーフレーム コンボボックスには、キーフレーム時間の集合が表示されます。 キーフレームを追加 ボタンをクリックして、 キーフレーム時間 を秒単位で入力します。キーフレーム コンボボックスには、キーフレーム時間の集合が表示されます。
- ナビゲーションツールを使用してカメラを移動させ、カメラ位置を現在のキーフレーム時間に関連付けます。 
- 上の手順を繰り返して、必要な数のキーフレーム(時間とカメラ位置)を追加します。 
 ボタンをクリックして、アニメーションをプレビューします。QGISは設定したキーフレーム時間のカメラ位置/回転 を使用してシーンを生成し、キーフレーム間のカメラ位置/回転を補間します。アニメーションにはさまざまな 内挿 モードが利用可能です(例えば Linear(線形)、 InQuad、OutQuad、InCircなど -- 詳細は https://doc.qt.io/qt-5/qeasingcurve.html#EasingFunction-typedef を参照してください)。 ボタンをクリックして、アニメーションをプレビューします。QGISは設定したキーフレーム時間のカメラ位置/回転 を使用してシーンを生成し、キーフレーム間のカメラ位置/回転を補間します。アニメーションにはさまざまな 内挿 モードが利用可能です(例えば Linear(線形)、 InQuad、OutQuad、InCircなど -- 詳細は https://doc.qt.io/qt-5/qeasingcurve.html#EasingFunction-typedef を参照してください)。- アニメーションは、時間スライダーを動かすことでもプレビューできます。 ループ のチェックボックスにチェックを入れると、  ボタンをクリックしてアニメーションを停止するまでは、アニメーションを繰り返し再生します。 ボタンをクリックしてアニメーションを停止するまでは、アニメーションを繰り返し再生します。
 アニメーション出力フレーム を使用して、シーンを表す一連の画像を生成します。出力ファイル名の テンプレート や 出力フォルダ のほか、フレーム数/秒、 出力の幅、 出力の高さ を設定することができます。
 アニメーション出力フレーム を使用して、シーンを表す一連の画像を生成します。出力ファイル名の テンプレート や 出力フォルダ のほか、フレーム数/秒、 出力の幅、 出力の高さ を設定することができます。
11.2.4. 3Dベクタレイヤ
標高値を持つベクタレイヤは、ベクタレイヤのプロパティの 3Dビュー セクション内の Enable 3D Renderer をチェックすることで、3D マップビューに表示することができます。 3D ベクタレイヤのレンダリングを制御するためのオプションが多数用意されています。







 



