ハイトフィールドとプロシージャル地形

Terragenでは、ハイトフィールドとプロシージャルの2種類の地形を使用する事が出来ます。両方の地形タイプを同じシーンで使用する事が出来ます。ハイトフィールドでプロシージャルのオペレータを使用したり、プロシージャルをハイトフィールドに変換して、ハイトフィールド固有の操作を実行したり(または他のアプリケーションにエクスポートしたり)する事が出来ます。

ハイトフィールドは、地形データを保存、表現するためのより伝統的なフォーマットです。最も単純なフォーマットのハイトフィールドは、標高やグレースケール値を順番に並べたものです。標高の情報は最終的に数値で表されますが、グラフィックアプリケーションで編集するために、黒から白へのスペクトルに沿った値として解釈する事が出来ます。つまり、ハイトフィールドは2次元であり、他の画像フォーマットと非常によく似ている事を意味しますが、一般的には単一の「チャンネル」であり、グレースケールとして表現されます。各値(または「ポイント」)間の距離や、地球上の地形の位置(「ジオリファレンス」)などの追加情報を含める事が出来ますが、基本的なハイトフィールドの概念は、グリッド内の標高値から成り立っています。

ハイトフィールドが有用な理由は以下の通りです:
  • ハイトフィールドには絶対値が格納されており、他の画像フォーマットと同様に読み込みや編集が可能です。
  • 侵食シミュレーションなどの特定の地形関連の編集機能は、ハイトフィールド上で行う方がはるかに簡単です。

ハイトフィールドの制限事項は以下の通りです:
  • 各ポイントで許可される標高の値は1つだけなので、オーバーハングや洞窟などの形状は扱う事が出来ません。
  • ハイトフィールドの解像度とディティールには限界があります。そのため、地形の解像度が高いほど、ファイルサイズも大きくなります。ある時点までハイトフィールドが大きくなり過ぎると、簡単に読み込んでレンダリングする事が出来なくなります。これは惑星スケールよりもずっと前の段階です。

プロシージャル地形は、ハイトフィールドの問題の多くを解決しますが、それ自体にいくつかの制限があります。プロシージャルとは、基本的に地形の形状を定義する数学的な関数です。この関数は、ほぼすべてのスケールで正確に計算する事が出来ます。関数の側面はランダム化されますが、ランダム化には境界が設定されます。これにより、例えば地球の地形の基準のように、目的の範囲内で無限のバリエーションが可能になります。その結果、理論的には無限のディティールを実現し、似たような「スタイル」の地形を惑星全体を覆うほどに作成する事が出来ます。

具体的には、プロシージャルの利点は以下の通りです:
  • 無限の多様性があり、惑星を含むあらゆる地形サイズに容易に対応する事が出来ます。
  • 3次元で計算されているので、オーバーハングなどの形状を作成する事が出来ます。

一方、プロシージャルの欠点はは以下の通りです:
  • 細部を表現するためにはレンダリング中に計算する必要があり、レンダリング時間が長くなります。
  • 編集が難しく、侵食シミュレーションなどの地形関連の編集機能を適用する事が困難です。

幸い、Terragenでは、1つのシーンでハイトフィールドとプロシージャルを簡単に組み合わせる事が出来ます。両方のアプローチのバランスを取ることで、それぞれの長所を活かしつつ、短所を最小限に抑える事が出来ます。明示的な地形形状が必要なシーンで、視点が地形に比較的近い場合は、慎重に編集されたハイトフィールドでベースを作成し、プロシージャルのディスプレースメントを選択的にブレンドすることで、リアルで小さなスケールのディティールを追加する事が出来ます。大規模なシーンでは、前景に重要な特徴があり、地平線までリアルな地形が必要な場合、前景のハイトフィールドをブレンドし、背景に無限のプロシージャル地形を配置する事が出来ます。また、複数のハイトフィールドとプロシージャルを異なるエリア、異なるスケールで使用する事も可能で、非常に難しいプロジェクトも実現可能となります。

これらの概念とその実際的な影響については、地形と水面で詳しく説明しています。
最終更新:2021年08月17日 12:46