落下: 三角形メッシュ / ベジエ曲面(8パッチ)トーラス | 固定: Three.js球 / OBJメッシュ
中心間距離だけを閾値と比較。計算量 O(1)。穴・形状は無視。最速。
dist < r₁ + r₂
⚠ 布など扁平形状には不向き。
汎用: トーラス専用ではなく、どんな三角形メッシュにも使える。
Phase A: 落下物の頂点(8個おき) → 球バウンディング球と距離比較
Phase B: 球頂点(8個おき) → 落下物近似球と距離比較
計算量 O(n/8)。ベジエ布・トーラス・任意OBJすべてに適用可。
法線 n = 中心間ベクトル正規化。速度を分解:
・法線成分 → ×(1+e) 反転(反発)
・接線成分 → ×0.8 保持(摩擦)
重なり量分だけ位置補正。
全頂点を球中心から離す方向へ変位。影響量 = max(0,1-d/5) 線形減衰。毎フレーム lerp(cur,orig,0.12) で復元。
4×2=8パッチ。ハーミート→ベジエ変換で制御点導出。
P[1][j]=S+Sᵤ·Δu/3
P[2][j]=S-Sᵤ·Δu/3
内部点は Sᵤᵥ·ΔuΔv/9 で補正。
1枚のバイキュービックベジエパッチ。4×4=16個の制御点を波形に配置し布状曲面を生成。
スライダー「波の高さ」で制御点Y座標を変化。衝突判定は②と同じ頂点サンプリングを使用。
🔴制御点ケージ / 🌈パッチ境界 可視化可能。
v/f をパースし三角形メッシュ生成。バウンディング球で自動正規化。デフォルト: 低ポリ球(8×12)。OBJアップロード可。