ArcGlobe の 3D テクスチャ オブジェクトについて

テクスチャを持つ 3D オブジェクトは、表示するフェイスごとに 3D ジオメトリとイメージ データを持つフィーチャです。たとえば、建築物、航空機、道路の設備、自動車などがそれに当たります。テクスチャを持つ 3D オブジェクトは通常、3D ビューで写真のようにリアルに表現するために使用します。ArcGIS では、テクスチャを持つ 3D オブジェクトは、マルチパッチ フィーチャとして格納されます。

ArcGlobe でテクスチャを持つマルチパッチ フィーチャを使用するときの一般的な問題の 1 つは、3D ナビゲーションの動作が遅くなる場合があることです。マルチパッチ フィーチャクラスにテクスチャを持つフィーチャが多数ある場合、またはテクスチャのサイズが非常に大きい(例: フェイスが 1,024 ピクセルより大きい)場合、この問題は悪化することがあります。

この問題を回避するために、テクスチャを持つマルチパッチ フィーチャは、現在のビューのカメラ位置からの距離に基づきイメージ テクスチャの解像度を自動的に調整します。各フィーチャでは、カメラまでの 3D 距離が個別に計算されるので、同じレイヤおよびフィーチャクラス内にある場合でも近距離のオブジェクトでは遠距離のオブジェクトよりも高い解像度でテクスチャが表示されます。

ArcGlobe には、テクスチャを持つ 3D オブジェクトの使用コストを低減するためにさらに 2 つの方法が用意されています。1 つ目の方法は、グラフィックス カード ハードウェアを活用して、カードでネイティブにテクスチャを圧縮することです。2 つ目の方法は、マルチパッチ フィーチャで使用されるテクスチャの解像度を低減することです。いずれの解決策でも、マルチパッチ レイヤで表示されるテクスチャの最高品質を制限することで、メモリの使用量を低減し、ナビゲーション性能を高めています。

テクスチャを持つマルチパッチ レイヤの表示プロパティを設定する方法については、「マルチパッチのシンボル表示」をご参照ください。

テクスチャとメモリ

メイン メモリ(RAM)、およびグラフィックス カードのテクスチャ メモリの両方が、テクスチャのレンダリングに使用されます。テクスチャがはじめにメイン メモリに読み込まれ、次にグラフィックス カードに送られてレンダリングされます。グラフィックス カードのテクスチャ メモリを使い尽くすと、オペレーティング システムがディスクへのページングを開始し、パフォーマンスが大幅に低下します。このため、RAM とグラフィックス カードのテクスチャ メモリの両方のメモリ使用量を減少すると、アプリケーションのパフォーマンスが向上し、より大きいデータセットを読み込むことができます。

ハードウェアによるテクスチャ圧縮

ハードウェアのテクスチャ圧縮は、3D グラフィックス カードの圧縮テクスチャのネイティブ サポートを活用して、テクスチャを持つ 3D オブジェクトのレンダリング パフォーマンスを向上します。

ArcGIS 9 以降、マテリアル テクスチャはディスク上に JPEG 圧縮形式で保持されています。読み込み時に、JPEG 圧縮テクスチャが解凍され、レンダリングのためにグラフィックス カードに送られるので、グラフィックス カードのテクスチャ メモリが使用されます。ただし、グラフィックス カードは JPEG 形式をネイティブにはサポートしないため、テクスチャの解凍時にパフォーマンスのオーバーヘッドがあります。さらに、圧縮されていないテクスチャのメモリは、ディスク上の JPEG 圧縮バージョンの数倍になります。

グラフィックス カードでは、特定のテクスチャの圧縮形式がサポートされています。これらは現在、OpenGL エクステンションを介して表示されます。エクステンションは次々に標準化されており、テクスチャ圧縮エクステンションもまもなく標準 OpenGL の一部になる予定です。サポートされている形式で圧縮されるテクスチャは、グラフィックス カードに直接送信できます。

ArcGIS 9.2 の ArcGlobe は、JPEG 圧縮ではなく、OpenGL がサポートする DXT 形式を使用して、テクスチャの圧縮と保持を行います。これにより、解凍によるオーバーヘッド、および RAM とテクスチャ メモリの両方のサイズが削減されます。JPEG と DXT の両方は非可逆圧縮形式であるため、圧縮テクスチャを使用する場合は画像品質がある程度、低下します。JPEG 圧縮したテクスチャ サイズは品質設定によって異なりますが、DXT の圧縮比は固定です(RGB の場合は 1:6、RGBA の場合は 1:4)。

ハードウェアによるテクスチャ圧縮は、ArcGlobe で、レイヤ レベルで有効にできます。

テクスチャの解像度の低減

テクスチャの解像度を低くすると、グラフィックス カードに送るテクスチャ ピクセル(テクセル)の量を低減できます。たとえば、640 x 480 のテクスチャを 320 x 240 にすると、メモリ サイズを 1/4 にできます。

表示品質を大幅に低下することなくテクスチャに適用できる解像度低減の度合いは、テクスチャによって異なります。たとえば、同じように並んでいる窓のテクスチャは、商店の看板よりも解像度を大幅に低くすることができます。

テクスチャ解像度の低減はレイヤ プロパティとして適用され、マルチパッチ レイヤにのみ適用できます。レイヤにテクスチャ解像度の低減を設定すると、レンダリングのメモリ要件が軽減され、ナビゲーションなどのその他のタスク用にリソースを解放します。[3D レイヤ → マルチパッチ フィーチャクラス(Layer 3D to feature Class)] ジオプロセシング ツールを使用してレイヤを新しいフィーチャクラスにエクスポートする場合は、必要に応じてテクスチャ解像度の低減を保持できます。標準の [データ] → [データのエクスポート] 機能では、出力フィーチャクラスにテクスチャ解像度の低減設定は反映されません。

OpenGL GLU ライブラリは ArcGIS をサポートするすべてのプラットフォームから利用でき、テクスチャ解像度の低減に使用されます。

ヒントヒント:
  • レイヤのテクスチャを完全に無効にすることを選択することもできます。ジオメトリは引き続き表示され、シンボルとして単純な色の使用が可能になります。

関連トピック

5/10/2014