コンピューターグラフィックス

目次

第1節レイトレーシングの概要と特徴

第2節光線の種類と追跡

第3節光線と物体の交差判定

第4節レイトレーシングの高速化


テスト

Logをみる

Back
 

第11章 レイトレーシング 

第2節 光線の種類と追跡

  レイトレーシングの手順はまず、視点からすべてのスクリーンにむけて視線を発射しますが、この視線が物体と交差した場合、物体の反射性・透過性・他の物体と光源の位置などによって3種類の光線が発生します。その3つはshadow ray、refraction ray、reflection rayの3種類の光線です。

shadow ray

 shadow rayは実際に発生する光線ではありません。これはこの交差点の影の計算を行うための光線で、物体と光線の交差が起こると、この地点から光源に向けて直線の光線を発射します。これが光源到達前にほかのオブジェクトと交差した場合はこの交差点は影とります。(その光源からの光はうけない)この光線の追跡はこの一回のみで再帰性はないです。

refraction ray

 refraction rayは物体と光線が交差した際に物体を透過していく光線を追跡する光線です。この光線はsnellの法則にしたがって追跡し、これを再帰的に繰り返します。

snellの法則

 snellの法則は物体に対し光線が上の図のように入射した場合v1/v2 = sinθ1/sinθ2が成立するという法則です。vは物体中の光の進む速さを示し、物質1と物質2の進む速さが違うほど、屈折は大きくなります。

reflection ray

 reflection rayは光線が物体と交差した場合に、物体の表面で反射する鏡面反射光を追跡する光線です。(拡散反射ではない)鏡面反射光は正反射と同じ方向へ進むので、それを追跡します。この光線は再帰的に追跡します。

追跡の終了

 reflection ray・refraction rayの二つは、再帰的に追跡を行いますが、もちろん永遠に追跡を行うわけではないです。どこかで追跡を終了する必要があるわけですが、その判断基準として

・光線が物体(オブジェクト)に接触せずに光源や背景にいたった場合

・接触した物体が透過性を持たず、拡散反射成分のみで鏡面反射性分を持たない場合

これらは追跡不能により追跡を終了しますが、光線がいつまでたっても追跡不能にならないと計算が延々と続いてしまうので

・光が反射・屈折を繰り返せば当然光は弱くなるので、光の強さに一定の値を定めその値を下回ったら追跡を終了する

のようなルールを付け加える必要があります。光線がこれらの条件を満たし、追跡が終了した段階ですべての効果を足し合わせ、画素の色・光の強さを決定するのです。

反射光の追跡

 reflection rayの追跡は正反射にしたがって行います。追跡を行う方向単位ベクトルをX交点における法線ベクトル(交点に垂直な単位ベクトル)をYとすると、反射光の方向Zは次の式で表せます。

                Z=(X・Y)X-Y

透過屈折光の追跡

 refraction rayは光線が物体と交差する前の屈折率をN1、物体の屈折率をN2、交差点の法線ベクトルをXとし、入射光の方向をV、N1/N2=1/Y とすると次式で示すことができます。

Z={Y(X・V)−√{1−Y^2(1−(N・V)^2)}X−YV

  

******************************