★ 形状選択
32パッチ / 290制御点
★ 画面座標→UV座標 検出(レイトレーシング)
※詳しい説明は画面最下部を参照
(曲面をクリックしてください)
★ 抽出モード
f は 8×8 次のベジエ関数(透視)
光源方向は下の「表示設定」内のスライダーで調整します(曲面の陰影と共通)
★ ベジエクリッピング設定
OFF にすると単純4分割のみになり、判定ノード数の差が統計に現れます
統計
パッチ数—
f の次数—
判定ノード数—
凸包で棄却—
クリップで収縮—
輪郭線分数—
計算時間—
🖱 ドラッグ → 視点回転/🖱 ホイール → ズーム/🖱 クリック → UV座標検出(走査範囲=マウス指定の場合)
「走査範囲」を画面全体に切替えると、常時計算している輪郭線のスクリーン上バウンディングボックス内を
指定間隔で走査し、ヒットしたパッチ番号を色分け表示します(視点を変えたら再度「走査を実行」してください)。
■ ベジエクリッピング法によるレイ・曲面交差(レイトレーシング)
クリック位置を通る視線レイを、そのレイを含む2枚の平面(法線 n1, n2 はレイ方向に直交かつ互いに直交)の交線として表す。
各曲面の制御点をこの2平面までの符号付き距離に射影すると、2つの3×3次ベジエ関数
g1(u,v) = n1・(S−o)、g2(u,v) = n2・(S−o)(o=レイ原点)が得られ、
交点はまさに g1=0 かつ g2=0 となる (u,v) である。
列・行ごとの最小/最大係数がつくる包絡線(safeRangeBiv:本来は輪郭線抽出のUV範囲クリップに使う関数)を
g1, g2 それぞれに適用してu方向の安全範囲を求め、その積集合でu方向をクリップ→続けてv方向をクリップ、
という操作をu, v交互に反復すると、制御点の凸包性により交点UVへ収束する。
収束が遅い場合(複数交点や接線的交差)は4分割して両方を追跡する。