NURBS断面点列の3D Gaussian Splatting — X・Y・Z 3軸平面スライス法

rational Bézier clipping · arc-length resampling · anisotropic 3D Gaussians · EWA splatting
NURBS 曲面・断面点列
■X ■Y ■Z 断面
—
3D Gaussian Splatting
計算中…
—
★ 形状データ
視点を左右で同期
ドラッグ: 回転(Z軸が上) / ホイール・ピンチ: ズーム
断面の密度(点数の制御)
交線計算の再分割方式
ベジエクリッピング
4分割+枝刈り
切断に使う軸
⊥X
⊥Y
⊥Z
曲率適応(たわみを抑え、曲がった所に点を追加)
曲面境界でのはみ出しを抑制
点数(ガウシアン数)—
断面・点列の計算時間—
点数 ≈ 表面積 ÷ (h × 点間隔) × 軸数。断面枚数を2倍にすると点数は約4倍になります。
3D ガウシアン
ガウシアン
楕円輪郭
点のみ
陰影(法線で照明)
曲面表示(左画面)
半透明曲面
ベジエ制御網
断面線
点列
分割された部分曲面(葉)
統計
NURBS曲面数—
有理ベジエパッチ数—
断面間隔 h—
点間隔 Δs—
切断平面数—
断面線分数—
連結した断面曲線数—
点数(ガウシアン数)—
処理した部分曲面数—
葉(最終部分曲面)数—
葉の平均面積—
葉の総面積(交線を囲む面積)—
切り落とし回数 / 2・4分割回数—
断面・点列計算—
ソート+描画—
アルゴリズム
① 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ビューアで読めます。