レンダリング方法


概要

Terragenは、2つの異なるレンダリング方法を使用します。
  • マイクロポリゴン・レンダリング
  • レイトレーシング・レンダリング
異なるレンダリング技法を標準として、シーンのレンダリング時に同時に使用するため、TGはハイブリッドレンダラーを呼ぶに相応しいです。ここで、2つの方法に関する予備知識とTGでの使用方法について説明します。

Micropolygon(マイクロポリゴン)レンダリング

マイクロポリゴン・レンダリングは、サーフェスをレンダリングして、レンダリングされた画像のピクセルよりも小さなポリゴンやマイクロポリゴンに分割する技法です。これらのマイクロポリゴンは、その後ディスプレースメントと陰影付けされます。ディスプレースメントについては、こちら(ディスプレースメント)で詳しく参照出来ます。シェーディングは、基本的にサーフェスカラーや照明などの要素を考慮して、マイクロポリゴンのために色を計算するプロセスです。

マイクロポリゴンレンダリングは、プロシージャルデータのレンダリングに最適です。プロシージャルデータは、数式を使用して必要に応じて計算されるものです。プロシージャル型の主な例は、フラクタルです。あなたがこれまでにフラクタル観覧プログラムを使った事があるなら、フラクタルがほぼ無限に拡大する事が出来るのをご存知でしょう。これは、フラクタルが計算上で生成され、ズームするたびにフラクタルの新しいビューが計算されるためです。ディテールの量は多かれ少なかれ無制限です。プロシージャルデータの詳細は、こちら(プロシージャルデータ)で詳しく参照出来ます。

プロシージャルデータのレンダリングは、TGの中核となるものです。プロシージャルデータにより、TGは大量のデータを保存する事無く、ディティールの非常に高いレベルで複雑なサーフェスをレンダリングする事を可能にします。

マイクロポリゴンレンダリングは、どのくらいのレンダリングが必要かを制限するのに役立つため、プロシージャルデータのレンダリングに最適です。事実上無限のディティールレベルのプロシージャルデータがある場合、処理の負担、ディテールの過不足、見栄えの良し悪しといった細部のレンダリング間のバランスを取る必要があります。理想的なレベルのディテールは、完成した画像のピクセルより多少小さいポリゴンです。これはカメラからの距離に応じて、適切なレベルのディティールが使用される事も意味します。カメラから離れたエリアは、あまり詳細に描画する事が出来ません。カメラに近いエリアのピクセルは、実世界スペースの数ミリメートルをカバーしているのに対して、カメラから遠いエリアのピクセルは、数十、数百、数千メートルをカバーしている場合があるからです。マイクロポリゴンレンダリングは、サーフェスを適切なレベルのディティールを与えるポリゴンに分割する効果的な技法です。

マイクロポリゴンレンダラーの別の大きな利点は、ディスプレースメントを効率的に処理する事が出来ます。TGの強みの1つは、膨大な量のディスプレースメントです。サーフェスがマイクロポリゴンに分割されると、それらのマイクロポリゴンの各々は、任意の方向に3D空間内を移動する事が出来ます。このようにマイクロポリゴンを動かす事をディスプレースメントと言います。ディスプレースメントについては、こちら(ディスプレースメント)で詳しく参照出来ます。

地形、水面、空をレンダリングするには、マイクロポリゴンレンダリングがデフォルトで使用されます。

Raytracing(レイトレーシング)レンダリング

レイトレーシングは、TGが使用するもう1つのレンダリング手法です。レイトレーシングは、他のレンダラで使用されている共通技法であるため、あなたはすでにレイトレーシングの機能に精通しているかもしれません。これは、ラインや光線をシーンに投影する事で作動します。これらの光線の1つがシーン内のエレメントに当たると、レンダラーはシーンエレメントの陰影を計算します。光線はまた、例えば雲を通過する際にシーンを通って陰影情報を収集する事もあります。

光線には主に2つの種類があります。1つは一次光線です。一次光線はカメラから始まり、画像のピクセルを通してシーンに投影されます。あなたの目の前に網戸のメッシュの断面を持っていたとしましょう。一次光線は目から始まり、メッシュ内の穴の1つ(レンダリングされた画像内のピクセルに相当)を通って世界に飛び出します。光線は、あなたの目の前にある物体に当たったところで終わるでしょう。レンダリングされた画像の各ピクセルに複数の光線を使用する事により、より高品質の結果が得られます。

もう一方は二次光線です。二次光線は、一次光線がシーン内のエレメントに当たる箇所から始まります。二次光線の好例は反射光線です。一次光線がシーン内の反射オブジェクトに当たったとしましょう。反射面上のその点が実際にどのようなものを反映しているのか、それをどのような色で反映させるべきかの両方を見つける必要があります。これは、シーンに二次光線を発し、それが何に行き当たるかを確認する事によって検出されます。二次光線は、照明や陰影の計算などにも使用されます。

ノードパラメータには、"Enable secondary(二次光線を有効化)"や"Visible to other rays(他の光線で表示)"などのパラメータ名が表示されます。これらのパラメータは、通常、ノードがどのように二次光線と相互作用するかに影響します。オブジェクトノードの、"Visible to other rays"のチェックボックスからチェックを外して下さい。これは、オブジェクトがカメラに見えていても、二次光線を当てない事を意味します。これの1つの結果は、オブジェクトが反射で表示されなくなります。

実際にTGでシーンをレンダリングするためにレイトレーシングを単独で使用する事はありませんが、『Render』ノードの[Avbanced]タブにある"Ray trace everything(not recommended)"パラメータをオンにすると、これを行う事が出来ます。しかし、パラメータ名が示唆するように、これは推奨されません。これの大きな理由は、レイトレースがまだディスプレースメントに対応していない事や、少なくとも効率的でありません。試してみると、高レベルのディティールの地形でさえぼんやりとしたレンダリングになる事に気付くでしょう。『Render』ノードにある『Render subdiv settings』ノードの"Ray detail multiplier"パラメータなど、結果を改善するために調整する事の出来る他の設定がありますが、レンダリング時間を大幅に延ばす事になります。

レンダリング

デフォルトでは、TGはマイクロポリゴンレンダリングとレイトレーシングの両方を使用してハイブリッド方式でレンダリングします。地形、水面、空をレンダリングするには、マイクロポリゴンレンダリングが使用されます。レイトレーシングは、主に、反射、照明、陰影のための二次光線として使用されます。

重要な点は、レイトレーシングは、インポートしたモデルなどのオブジェクトをレンダリングするための、デフォルトの方法としても使用されることです。これは、『Render』ノードの"Ray trace objects"パラメータによってコントロールされます。オブジェクトにレイトレーシングが使用される理由は、レイトレーシングが効果的な静的データであり、レイトレースを使用して効率的にレンダリングする事が出来ます。レイトレースは、マイクロポリゴンレンダラで達成出来るレンダリング品質設定よりも高い視覚品質を提供する事が出来ます。要約すると、レイトレーシングは、オブジェクトの見栄えを良くし、より速くレンダリングします。

オブジェクトにレイトレーシングを使用する事の1つの欠点は、レイトレースがディスプレースメントに対応していない事です。ディスプレースメントデータをバンプマッピングデータに変換する事は出来ますが、バンプマッピングはディスプレースメントと同じ視覚品質を提供しません。木の樹皮のテクスチャについて考えてみましょう。ディスプレースメントを使用すると、木の樹皮は実際の3D形状を持つことが出来て、幹の陰影はかたまりコブや隆起を示します。バンプマッピングによって、樹皮の形状は照明効果を使用して見せかけ良くします。基礎となる表面は滑らかなままですが、本物の3D形状のような見た目を与えます。しかし、幹の陰影を見ると、基礎となるジオメトリの平らな形状に気付きます。

シーンが見栄えの良いようにモデル上でディスプレースメントを必要とする場合は、"Ray trace objects"のチェックを外す必要があります。これにより、オブジェクトはマイクロポリゴンレンダラーを使用してレンダリングされます。また、『Render』ノードの"Micropoly detail"と"Anti-aliasing"パラメータの設定値を増やす事も出来ます。

また、大気をレンダリングするためにレイトレーシングを使用する事も出来ます。Terragen 4からは、『Render』ノードにある"Defer atmo/cloud"パラメータがデフォルトで有効になっているため、AA2はかなり低く、大気のレンダリング品質(雲を含む)の大部分がアンチエイリアスレベルによって決まります。大気をレイトレーシングする事で、マイクロポリゴンレンダラーよりも細かい設定で、より良い品質の結果を得る事が出来ますが、オブジェクトをレンダリングするほどのメリットはありません。最良の結果を得るには、いくつかの試行錯誤が必要となるでしょう。

オブジェクトや大気にレイトレーシングを使用する場合、品質と処理速度は、アンチエイリアスやサンプリング設定に大きく依存しますが、マイクロポリゴンレンダリングよりもはるかに優れています。こちら(レイトレースオブジェクトと大気/雲を遅延)で詳しく参照出来ます。