NURBS 点群 → NeRF 近似

area-uniform sampling · point splatting · hash-grid NeRF · volume rendering · Adam
★ 形状データ

★ 画質プリセット

高精細:点群 25 万点・学習画像 48 枚 × 192² px・ハッシュ表 2^18 × 16 レベル。1 ステップが約 6 倍重くなります(目安は毎秒 5 ステップ前後)。数分で輪郭が整い、その後も学習率減衰に合わせてゆっくり細部が詰まります。学習は別スレッドで進むので、その間も視点は動かせます。

① 点群サンプリング

有理ベジエに分解したパッチ上で、3D 面積に比例した一様サンプリングを行います。各点の色は「曲面ごとの色 × 固定光源のランバート陰影」で、視点に依存しない値です。

② 学習画像(点群の描画)

点を面積相当の円盤として Z バッファ描画し、2×2 超標本化で RGB・不透明度・深度を作ります。NeRF はこの画像群だけを見て学習します。

③ NeRF モデル(変更でリセット)

位置 x → 多重解像度ハッシュ格子(各レベル 2 特徴)→ MLP(1 隠れ層, ReLU)→ 密度 σ = exp(o₀)、色 c = sigmoid(o₁..₃)。

④ 学習

占有グリッド:点群がある 48³ セル(+隣接)だけを標本化し、空の空間を飛ばします。OFF にすると純粋な NeRF(全区間を標本化)になり、遅くなります。切り替えるとモデルはリセットされます。深度教師:点群の深度を追加の損失に使います(DS-NeRF 風)。学習率減衰:3 万ステップかけて学習率を 1/10 まで下げ、細部を詰めます。画像解像度を変えると、刻み数は画素の幅に合う値へ自動で変わります。

表示
統計
NURBS 曲面 / ベジエパッチ—
点数—
学習画素数—
パラメータ数—
占有セル率—
ステップ0
エポック(全画素を見た回数)—
ステップ / 秒—
標本点 / 光線—
学習 PSNR—
表示視点の PSNR—
入力点群NURBS から標本化した点
NeRF 描画同じ視点からボリュームレンダリング
どちらの画面もドラッグで回転、ホイール/ピンチでズーム(2 画面は同じカメラ)。下の学習画像をクリックするとその視点に移動します。
PSNR学習バッチ(指数平均)と表示視点
学習画像—