レイ トレーシングの概念
 
 
 

レイ トレーシングは、ライトがシーンを移動する様子をシミュレートするレンダリング アルゴリズムです。すなわち、ライトは、光源から放出され、特定のマテリアル プロパティを持つジオメトリ オブジェクトによって反射または屈折し、最終的に通常はカメラのフィルム上にある観察者の視点に表示されます。シーンの可視部分だけをレンダーして計算負荷を最小限に抑えるため、このアルゴリズムは逆方向に動作します。すなわち、カメラから開始して、光線を現在選択しているビューの方向に送ります。この光線がオブジェクトに当たると、オブジェクトのマテリアルが評価され最終的なカラー情報が返されて格納されます。マテリアルに反射性または屈折性がある場合、シーンにさらに光線が送られて最終的なカラーに与える光線の影響が計算されます。このプロセスは、特定の走査デプスが得られるまで再帰的に繰り返されます。

レイ トレーシングはスキャンラインやラスタライザなどの他の技法と組み合わせて、まず主に観察者に可視となるオブジェクトの検出とシェーディングをアクセラレートすることができます。この場合、より負荷の大きいレイ トレーシング アルゴリズムは据え置かれ、二次的なエフェクトを計算しなければならなくなって初めて計算されます。

レイ トレーシングの使用例

レイ トレーシングはこれらのすべての機能を提供しますが、徹底的な処理を行うため、レイ トレーシングを使用したレンダリングは他の方法より一般的に時間がかかります。

注:レイ トレーシングとスキャンライン/ラスタライザの使用はシーンのレンダリングに作用する場合がありますが、レンダーの結果はシーンのセットアップ方法によっても異なります。たとえば、使用環境などがレンダリング イメージに作用します。黒い部屋の中にある非常に反射するクロムめっきのオブジェクトは、戸外の環境にある同じ反射するクロムめっきのオブジェクトとは全く異なるレンダーを生成します。

同様に、シーン内のライティングも最終レンダーに作用します。たとえば、ポイント ライトは、単一のポイントからライトを放出し、電球の効果をシミュレートします。これは、ホット スポットがあるソフト シャドウを生成します。ディレクショナル ライトは、対照的に、ホット スポットのない均一なライティングを生成し、戸外の太陽光線をシミュレートします。

レイ トレーシングとスキャンライン

スキャンライン アルゴリズムが有効な場合は、シーン内のすべてのオブジェクトが 2-D プレーンに投影されます。オブジェクトは、次に垂直順序と水平順序に従ってソートされます。この技法は、次に関係するオブジェクトを見つけるために 3D シーンを繰り返し検索する必要がないため、レイ トレーシングよりもレンダリング時間が短くて済みます。

オブジェクトが透明な場合は、ずっとスキャンライン レンダリングが使用されます(光線の方向は変更されません)。反射または屈折がある場合は、光線がベンドし始めるまでスキャンラインが使用されます。ベンドし始めると、mental ray は有効になっていればレイ トレーシングに切り替わります。

スキャンライン アルゴリズムの制限事項

スキャンライン アルゴリズムはレイ トレーシングより効率的ですが、いくつかの制限事項があります。スキャンライン アルゴリズムは、ピンホール カメラが使用されている場合しか使用できず、魚眼レンズや被写界深度ディストーションなどの湾曲レンズ シェーダでは使用できません。

高速スキャンライン(Rapid Motion とも呼ばれる)

mental ray 3.2 ではより高速なスキャンライン アルゴリズムが導入されました。ラスタライザです(以前の名前は Rapid Motion)。ラスタライザ アルゴリズムは、高度なデプスの複雑さにより、a) モーション ブラーと b) シーンのレンダーを加速します。このアルゴリズムは、カラーを三角形にベイク処理することによって、モーション ブラーを短縮します。三角形が移動すると、ベイク処理されたカラーが、三角形が移動したすべてのピクセルで再利用されます。新しいカラーを再評価する必要はありません。ただし、ラスタライザには制限があります。反射はシェーディング時に計算されるため(そして、シェーディングは 1 回だけ計算され再利用されるため)、オブジェクトが移動したとき、反射と屈折はオブジェクトとともに変更されず、ずっと一定のままです。