プロシージャル技術による山岳の生成

プロシージャル技術の下地となっているフラクタル理論の解説のあと、宮田氏は、そのフラクタル理論を応用して自然物を再現するプロシージャル技術の紹介へと移る。

まず紹介されたのは「山岳の表現」だ。

紹介されたメソッドは2つ。

1つ目は「フラクタルブラウン運動」(FBM:Fractional Brownain Motion)で山の起伏を与える方法だ。

フラクタルブラウン運動はブラウン運動の式を指数パラメータを設けて拡張したものであり、このHの与え方でブラウン運動の軌道の起伏の出方が変わってくる。H=1/2がブラウン運動で、Hが1/2より大きいときには軌跡の振動が緩やかで、Hが1/2より小さいときには逆に振動が激しいものとしている。

フラクタルブラウン運動はブラウン運動をパラメータHを導入して一般化・拡張したもの

(※画像クリックでアニメーションGIFが開きます) Hが1/2より小さいので軌跡の振動が大きい

(※画像クリックでアニメーションGIFが開きます) H=1/2。これがブラウン運動

(※画像クリックでアニメーションGIFが開きます) Hが1/2より大きいと軌跡の振幅は緩やかだ

フラクタルブラウン運動は一次元の情報なので、これを3Dの山岳地形の起伏として利用するためには工夫が必要だ。宮田氏によれば、よく用いられるのは、あらかじめ適当な数のポリゴンで分割した平面グリッドの各頂点に対し、このフラクタルブラウン運動の軌跡で変位してやる(ディスプレースメント・マッピングに相当する)実装法だという。

宮田氏は、この方法で再現した山岳地形の作例を披露しているKen Musgrave氏の作例を紹介した。

グリッドに分割されている地形ジオメトリをフラクタルブラウン運動の軌跡で変位させ、3Dの、山としての起伏を生成する

フラクタル理論による山岳表現、もう一つの方法は、前出のフラクタル理論基本編でも取りあげた再帰分割法を応用した技法だ。

これは、初期形状のポリゴンモデルを、乱数などによって適当な変位(凹凸)量を伴って、反復的に分割(実質的には細分化)していく方法になる。結果として凹凸付きのサブディビジョンされたような地表モデルを得ることができる。

この図の例では一枚の四辺形を4つの三角形で再帰分割していくものになっている。分割のたびにランダムな凹凸変位を適用することで複雑な地表モデルが得られる

宮田氏、自らの作例。この例では基本形状として山のおおよその形を与え、細かい凹凸をフラクタルを使って生成したとのこと

実在するかどうかは問題とせず、それなりに説得力のある地形シーンが必要なケースはゲームではよくあることだ。毎回マップが変わってプレイすることに価値が見出せるような、たとえばリアルタイムストラテジーゲーム用のマップ生成には向いているかもしれない。

このようなプロシージャル技術による山岳生成において、最も先進的なソフトウェアとして宮田氏が紹介したのは英Planetside Software社の「Terragen」だ。

TerragenはGUIベースで操作できるプロシージャル技術を実装した地形(景観)オーサリング・ツールとなっている。

実際の地形生成は、パーリンノイズなどの算術ノイズなどを組み合わせて凹凸を表すテクスチャ「ハイトマップ」を生成し、これを十分な頂点数を持つ地表ポリゴンモデルに対してディスプレースメント・マッピングすることで実現される。プロシージャル技術ベースなので、ノイズの種類を切り換えたり、山や谷の高さや深さ、その凹凸の凹凸頻度などにまつわるパラメータを調整することで全く別の地形を生成することできる。

Terragenは商用利用の場合はUS$199~US$299だが、評価目的や非営利利用の場合は無料で利用することができる。無償版ではレンダリング解像度が800×600ドットに限定されると言った細かい機能制限はあるが、地形生成を試すだけであれば十分楽しむことが出来る。興味がある人は是非、英Planetside Software社のサイトからダウンロードして試してみよう。

Terragenのメイン画面。現在のバージョンは"2"だ。Macintosh版もリリースされている

Terragenによってプロシージャル生成された山岳や地形。かなりリアルだ

動画
Terragenでは生成した地形を惑星のような球体に適用することが出来る。また、カメラを移動させるアニメーション機能も搭載している。このムービーはそうした機能を活用して制作されたものだ。
(WMV形式 21秒 625KB)