本日はグラフィック枠です。
現在レイトレーシングにいてアルゴリズム面を中心に学んでいます、
1979年に登場したレイトレーシングは現実の物理学的な光の動きの逆のプロセスをコンピュータ内で計算することでコンピュータグラフィックスの処理として反射、屈折、散乱といったレンダリング処理をリアルに計算できるようになりました。
レイトレーシング自体はピクセルごとにレイを放ち、オブジェクトとの交差点を判定し、さらにその座標からレイを飛ばし、最終的に光源までそれを行い、各衝突の過程において、光や物体の挙動についての結果を用いてレンダリングを行っています。
現時点まででカメラ座標の定義、レイとオブジェクトの交差についてみていきました。
レイとオブジェクトの交差ではオブジェクトの形状によって異なるアルゴリズムが用いられています。
基本的な考え方としてはレイのベクトルが形状に対して領域ないに存在するか?を判定しています。
今回もひきつづき以下の文献をもとに理解を進めていきます。今回はセクション2.5を見ていきます。
https://inst.eecs.berkeley.edu/~cs294-13/fa09/lectures/scribe-lecture1.pdf
〇再帰的レイトレーシング(Recursive Ray Tracing)
レイトレーシングのアルゴリズムは視点からレイを投射して、物体と交差した際に新たなレイを投射、そのレイが別の物体に交差した場合、さらに新たなレイが投射されます。(反射レイ、屈折レイ)
このようにプロセスを祭器的に繰り返すことで鏡面反射、ガラスというような光のシミュレートが必要となるオブジェクトの描画が可能となります。
つまり再帰的レイトレーシングとは屈折や反射のレイを計算に取り入れることを指します。
再帰的レイトレーシングを行うために各ピクセルでは次のような処理が動きます。
・プライマリアイレイを追跡し、交差点を見つける。
プライマリレイとは視点から出る最初のレイを指します。
・すべての高原に対してセカンダリシャドウレイを追跡する。
交差点が見つかった場合その点から各高原に向けセカンダリシャドウを追跡する
・反射、屈折レイを追跡する
最後に反射または屈折した光線を追跡し、ピクセルの最終的な色を決定します。
〇シェーディングモデル
再帰的レイトレーシングでは、プロセスの最後に反射レイと屈折レイが追加され、シェーディングアルゴリズムが拡張されています。
レイトレーシングを実装するためのソフトウェア、ハードウェアをレイトレーサーと呼んでいます。
一般的なレイトレーサーでは作成されるレイの数を制御するために再帰のレベルを定義しています。
再帰のレベルとは計算の複雑さであり、どれだけ深く反射レイや屈折レイを追跡するかのレベルを設定するという意味です。
これは計算の負荷に相当します。
この計算式は次のようになります。