夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

レイトレーシングについて歴史を交えまとめる その7  再帰的レイトレーシング

本日はグラフィック枠です。

現在レイトレーシングにいてアルゴリズム面を中心に学んでいます、

1979年に登場したレイトレーシングは現実の物理学的な光の動きの逆のプロセスをコンピュータ内で計算することでコンピュータグラフィックスの処理として反射、屈折、散乱といったレンダリング処理をリアルに計算できるようになりました。

 レイトレーシング自体はピクセルごとにレイを放ち、オブジェクトとの交差点を判定し、さらにその座標からレイを飛ばし、最終的に光源までそれを行い、各衝突の過程において、光や物体の挙動についての結果を用いてレンダリングを行っています。

現時点まででカメラ座標の定義、レイとオブジェクトの交差についてみていきました。

レイとオブジェクトの交差ではオブジェクトの形状によって異なるアルゴリズムが用いられています。

基本的な考え方としてはレイのベクトルが形状に対して領域ないに存在するか?を判定しています。

今回もひきつづき以下の文献をもとに理解を進めていきます。今回はセクション2.5を見ていきます。

https://inst.eecs.berkeley.edu/~cs294-13/fa09/lectures/scribe-lecture1.pdf

再帰レイトレーシング(Recursive Ray Tracing)

レイトレーシングアルゴリズムは視点からレイを投射して、物体と交差した際に新たなレイを投射、そのレイが別の物体に交差した場合、さらに新たなレイが投射されます。(反射レイ、屈折レイ)

このようにプロセスを祭器的に繰り返すことで鏡面反射、ガラスというような光のシミュレートが必要となるオブジェクトの描画が可能となります。

 つまり再帰レイトレーシングとは屈折や反射のレイを計算に取り入れることを指します。

 今回はこの再帰レイトレーシングのプロセスを見ていきます。

再帰レイトレーシングを行うために各ピクセルでは次のような処理が動きます。

・プライマリアイレイを追跡し、交差点を見つける。

 プライマリレイとは視点から出る最初のレイを指します。

・すべての高原に対してセカンダリシャドウレイを追跡する。

 交差点が見つかった場合その点から各高原に向けセカンダリシャドウを追跡する

・反射、屈折レイを追跡する

最後に反射または屈折した光線を追跡し、ピクセルの最終的な色を決定します。

〇シェーディングモデル

再帰レイトレーシングでは、プロセスの最後に反射レイと屈折レイが追加され、シェーディングアルゴリズムが拡張されています。

レイトレーシングを実装するためのソフトウェア、ハードウェアをレイトレーサーと呼んでいます。

一般的なレイトレーサーでは作成されるレイの数を制御するために再帰のレベルを定義しています。

 再帰のレベルとは計算の複雑さであり、どれだけ深く反射レイや屈折レイを追跡するかのレベルを設定するという意味です。

 これは計算の負荷に相当します。

この計算式は次のようになります。

 \displaystyle
I = K_a + K_e + \sum_{i=1}^{n}V_i L_i max(l_i ・ n, 0) + K_s max(h_i ・n ,0))^{s}) + K_R I_R + K_r I_r
 

基本的な式は前回のライティングの計算に再帰レイトレーシングの項目が増えています。

redhologerbera.hatenablog.com

ここでK_RとI_R:は反射光の成分を表し、K_Rは反射率を、I_Rは反射光の強度を意味します。反射光は、光が物体に当たって反射することによって生じる光です。

K_rとI_rは屈折光の成分を表し、K_rは屈折率を、I_rは屈折光の強度を意味します。屈折光は、光が透明な物体を通過する際に方向が変わることによって生じる光です

以上がセクション2.5.1の内容になります。

本日は以上です。