|
レイトレーシング法は,視点からスクリーン上の各画素を通る光線(レイ)を放射し,それぞれのレイについて,すべてのポリゴンとの交差判定を行い,交点のうち最も視点に近い交点を求めるというものです.
ここでは,複数の球体が描画される様子を確認して,レイトレーシング法による隠面消去について理解してください.
|
Main Windowでは,球体が描画される様子を確認します.また,視点や最大追跡回数を変更します.
Controlでは,視点情報や球体の光学的性質を確認したり変更できます.
Depth Windowでは,視点から放たれた光線が反射/屈折した最大回数が画像として表示されます.
Trace Windowでは,視点から放たれた光線がどの位置で反射/屈折して空間内を進んでいったかが表示されます.
Main Window
画面には球体が描画されます.通常は球体がワイヤフレームで表示されますが,Displayボタンを押すと,レイトレーシング法による描画が開始されます.
・視点の変更
光線追跡モード(後述)がOFFになっている場合に画面内をドラッグすると,視点が移動します(Controlで視点を変更することもできます).
・最大追跡回数の指定
#Depthテキストボックスに値を入力してからEnterキーを押すと,最大追跡回数を指定できます.この回数を増やすと,複数の球体が相互に反射している様子をより正確に再現できますが,増えた回数分だけ描画にかかる時間が増大します.
・Depth Windowの表示/非表示の切替
Depth Windowボタンを押すと,視点からの光線が反射/屈折した回数を示すDepth Windowの表示/非表示が切り替わります.
・Trace Windowの表示/非表示の切替
Trace Windowボタンを押すと,視点からの光線がどの位置で反射/屈折したかを示すTrace Windowの表示/非表示が切り替わります.
・Controlの表示/非表示の切替
Controlボタンを押すと,視点情報や球体の光学的性質の情報が表示されるControl Windowの表示/非表示が切り替わります.
・描画の実行
Displayボタンを押すと,レイトレーシング法による描画が実行されます.
・初期状態への復帰
Resetボタンを押すと,視点と球体の光学的特性がすべて初期状態に戻ります.
Depth Window
各画素における計算により,反射/屈折した回数が表示されます.
反射/屈折の回数が多いほど明るく表示され,球体と一度も交差しなかった箇所は黒で表示されます.
Trace Window
画面上に表示される球体を右斜めの視点位置から見た状態が表示されます.
光線追跡モードがONになっている場合は,画面上でマウスボタンを押すと視点からその箇所へと放たれた光線が反射/屈折しながら進む様子がTrace Windowに表示されます.
球体外部にある光線は白,球体内部にある光線は灰色で表示されます.
・光線追跡モードのON/OFF
Trace modeチェックボックスで,光線追跡モードのON/OFFを選択します.ただし,このモードはMain Windowの球体がワイヤフレームで表示されている場合には無効です.
Control
Control上部には,現在の視点のθ:Theta(方位角),φ:Phi(仰角),R(距離)の値が表示されます.
Control中央部にはすべての球体に適用される環境光の強さ,下部にはそれぞれの球体の光学的特性が表示されます.
・視点の変更
θ:Theta(方位角),φ:Phi(仰角),R(距離)の各スクロールバーを移動すると,視点が変更されます(Main Windowの画面上で多面体をドラッグすることで,視点を変更することもできます).
・環境光成分の変更
ambientスクロールバーをドラッグするか,テキストボックスに値を入力してからEnterキーを押すと,すべての球体に適用される環境光の強さが変更されます(0.0~1.0).
・球体の選択
1つ1つの球体の光学的特性を変更するには,まずBall Idプルダウンメニューで変更したい球体の番号を選択します.選択した球体の大まかな色がプルダウンメニュー右に表示されるので,選択時の参考にしてください.
・反射特性の変更
Propertyプルダウンメニューで球体の反射特性を選択すると,反射特性が変更されます.鏡面(Mirror),透明(Transparent),その他(Others)の3種類の反射特性からいずれか1つを選択することができます.
・拡散反射率の変更
diffuseスクロールバーをドラッグするか,テキストボックスに値を入力してからEnterキーを押すと,拡散反射率が変更されます.値が大きいほど,球体の光源を向いている部分の明るさが増します(0.0~1.0).
・鏡面反射率の変更
specularスクロールバーをドラッグするか,テキストボックスに値を入力してからEnterキーを押すと,鏡面反射率が変更されます.値が大きいほど,球体のハイライト成分が強くなります(0.0~1.0).
・ハイライト特性の変更
nスクロールバーをドラッグするか,テキストボックスに値を入力してからEnterキーを押すと,鏡面反射光のハイライト特性が変更されます.値が大きいほど,ハイライトがシャープになります(0~80).
・屈折率の変更
Optical indexスクロールバーをドラッグするか,テキストボックスに値を入力してからEnterキーを押すと,球体の相対屈折率が変更されます(0.0~2.5).
・初期状態への復帰
Resetボタンを押すと,視点が初期状態に戻ります.なお,球体の属性は初期状態に戻らないので注意してください.
|
レイトレーシング法による描画が終了した後にTrace WindowのTrace modeチェックボックスをONにすると,光線追跡モードとなります.このモードのときに画面上でマウスボタンを押すと,視点からその箇所へと放たれた光線が反射/屈折する様子がTrace Windowに表示されます.
Trace modeチェックボックスをOFFにする,またはControlで視点を変更した場合にはこのモードが解除され,画面上でのドラッグ操作の役割は再び視点方向の変更となります.
レイトレーシング法の長所としては,アルゴリズムが単純であるためにプログラムが容易であること,多角形に限らず,視線との交点を求められるものであれば何でもレイトレーシング法による描画が可能となることがあげられます.また,隠面消去だけに限らず,反射/屈折などの複雑な現象を描画するのに非常に適した手法です.
しかしその反面,各画素ごとに計算を行わなければならないため,画面全体の描画に時間がかかるという欠点があります.
なお,レイトレーシング法による描画中は,ほとんどの操作が無効となります.