数Iの範囲です


直線のパラメータ表示、二次関数の判別式。高校数学で出てきましたね〜、聞いただけで頭痛くなる人多そう。
レイトレーシングで3Dグラフィックスをやろうとすると、こういうのと無縁ではいられません。たとえば、物体としてある球が空間内においてあったら、この球が視線の先にあるかどうか判定しないといけない。そういうときは、視線(直線)と球面の交差判定をすることになります。
ここでまず直線を式で表さないといけない。平面なら直線ってax+by+c=0で簡単に表せるけど、空間だと簡単な式にはできません。むしろ、起点と方向ベクトルでパラメータ表示することになります。はい、パラメータ表示が出てきた。
次に球面との交差判定。球の方程式と連立させて一本の二次方程式にします。これが解を持たないか、2個持つか、重解を持つか、それを判定するのが判別式。
コンピュータグラフィックスの講義ではこういう細かい実装のことはやらなかったので高校数学を思い出すのに必死。とりあえず何とか輝度計算なしのレイトレーシングまでできました。球がめり込んでます。