アルゴリズム
① NURBS曲面をノット挿入で有理ベジエパッチに分解。
② X・Y・Z各軸に垂直な平面を間隔 h で配置。平面との符号付き距離は同次座標の制御値 Dᵢⱼ = Hᵢⱼ[a] − c·wᵢⱼ をもつベジエ関数になる。
・ベジエクリッピング:点 (i/n, Dᵢⱼ) の凸包が d=0 と交わる区間 [u₁,u₂](v も同様)の外側を de Casteljau 法で切り落とす。幅がしきい値以上しか縮まないときだけ長い方向に2分割。
・4分割+枝刈り:制御点の凸包が平面の片側なら捨て、そうでなければ (u,v) を一律に4分割。
・葉では境界曲線と平面の交点を Illinois 法で厳密に求め、断面線分とする(隣の葉と端点が一致)。
・各交点の法線と曲率は、元パッチの1・2階偏微分(第1・第2基本形式)から厳密に求める。
③ 平面ごとに線分を端点でつないで断面曲線にし、弧長 Δs ごとに点列を生成。
④ 各点に、断面接線 t・面内の直交方向 b・法線 n を主軸とする扁平な3Dガウシアン Σ = R·diag(σt², σb², σn²)·Rᵀ を置く(σt ∝ Δs, σb ∝ 断面間の面上距離)。曲面の境界(開いた縁・翼端など)付近では境界までの距離で σ を制限。曲率適応ONでは、2σ 先のたわみ (2σ)²|κ|/2 が ε 以下になるよう σ を制限し、接線方向の点間隔も詰める(κ は t, b 方向の法曲率)。
⑤ 描画は毎フレーム深度でソートし、Σ を画面へ射影した2D共分散 Σ' = J W Σ Wᵀ Jᵀ の楕円を奥から α合成(3DGS と同じ方式)。
x,y,z, nx,ny,nz, f_dc_0..2, opacity(logit), scale_0..2(log), rot_0..3 の標準形式。一般的な3DGSビューアで読めます。