本日はグラフィック枠です。
現在レイトレーシングにいてアルゴリズム面を中心に学んでいます、
1979年に登場したレイトレーシングは現実の物理学的な光の動きの逆のプロセスをコンピュータ内で計算することでコンピュータグラフィックスの処理として反射、屈折、散乱といったレンダリング処理をリアルに計算できるようになりました。
レイトレーシング自体はピクセルごとにレイを放ち、オブジェクトとの交差点を判定し、さらにその座標からレイを飛ばし、最終的に光源までそれを行い、各衝突の過程において、光や物体の挙動についての結果を用いてレンダリングを行っています。
現時点まででカメラ座標の定義、レイとオブジェクトの交差についてみていきました。
レイとオブジェクトの交差ではオブジェクトの形状によって異なるアルゴリズムが用いられています。
基本的な考え方としてはレイのベクトルが形状に対して領域ないに存在するか?を判定しています。
今回もひきつづき以下の文献をもとに理解を進めていきます。今回はセクション2.4を見ていきます。
https://inst.eecs.berkeley.edu/~cs294-13/fa09/lectures/scribe-lecture1.pdf
〇ライティング計算
前回まででレイとオブジェクトの交差を検知するアルゴリズムを見ていきました。
レイトレーシングではピクセルごとにレイを放ち、オブジェクトにあたることを検知するだけに終わりません。
この際に形状の情報を収集して最終的にレンダリング計算に使用されています。
この時にライティングの計算をすることになります。
レイを使用して影の効果を作成すること自体は簡単です。オブジェクトとレイが交差した場合、交差点から光源へのレイを作成し、さらになにかと交差するかを判定。交差がある場合、光源から最初に交差した場所までに何かが存在し、最初に交差した場所は光源から見た場合影になっていることがわかります。
影の計算は次のようになります。
この式はフォン反射モデル(Phong reflection model)と呼ばれています。
ここで各記号は以下のようになります。
レイトレーシングにおける光の計算においてこれらのパラメータを使って、各ピクセルの色を計算します。
上記アルゴリズムがライティングに関しての計算アルゴリズムになります。
本日は以上です。