曲面レイトレ入門
- 12. Bezier Clipping
●
CP ( Control Points )から凸包を作る
●
凸包の辺と直線の交差位置の最小値最大値を
求める
●
最小値最大値の範囲が大きければ曲線を半分
に分割する。小さければその範囲で曲線を切
り取る。
●
十分に小さくなるまで繰り返す。
- 14. 光線 vsBezier 曲面
1. 光線を Z 軸の座標系に曲面を変形する
2. 曲面に2次元の回転をして Bezier Clipping
しやすくする
3.U 方向、 V 方向それぞれ交互に Bezier
Clipping 法を繰り返す
4. 十分に範囲が小さくなるまで 2, 3 を繰り返
し、最後に Bilinear 曲面と交差を求める。
- 15. 光線を Z 軸に
●
光線を Z 軸にする座標系を定義する。
T = -Ray.org
R = [dot(Upper,Ray.dir),Upper,Ray.dir]^t
M = R*T
●
曲面のすべての CP を座標系に変換
– Bezier は affine 保存性があるため CP を affine 変
換すればその曲面も affine 変換される