[Astro] #106 PLY点群データビューアを自作 — React Three Fiber + SOR高速ノイズ除去
iPhone LiDARや写真測量で取得した点群データ(PLY)をブラウザ上で閲覧・編集できるWebツールの実装記録。Three.jsのPointsとPLYLoaderによる描画、高さベースヒートマップ、軸別スライス断面、レイキャストによる計測ツール、空間ハッシュグリッドで高速化したSORノイズ除去、PLY/GLBエクスポートまでの全工程。
iPhone LiDARや写真測量で取得した点群データ(PLY)をブラウザ上で閲覧・編集できるWebツールの実装記録。Three.jsのPointsとPLYLoaderによる描画、高さベースヒートマップ、軸別スライス断面、レイキャストによる計測ツール、空間ハッシュグリッドで高速化したSORノイズ除去、PLY/GLBエクスポートまでの全工程。
LiDARの基本原理、産業用からスマホ搭載まで各種LiDARの性能と価格帯、フォトグラメトリとの比較、点群データとメッシュの関係、Three.jsでの表示方法、Scaniverseなどのスキャンアプリの実用性まで、3Dクリエイター視点で整理した記事。
3D Model Explorer — Linux版がそのままMACで動いた記録
3D Model Explorer — WPF → Avalonia UI でのLinux移植記録 #02
Debian 12 (bookworm) 環境で .NET 8 SDK と Avalonia UI を導入する際に遭遇したビルドエラー(NETSDK1045 / CS9057 / CS1705 / CS1061)の解決手順まとめ。
3D Model Explorer — VRM/PMXファイルのサムネイル一覧・管理デスクトップアプリの開発記録 #01
特定のPMXモデルで MMDAnimationHelper の GrantSolver が undefined.quaternion でクラッシュする問題の原因調査と修正。PMXバイナリのチェックツール開発、ランタイムボーン配列のズレの発見、sanitizeGrants によるロード時パッチまで。
BlenderからのFBXエクスポート設定から、UnityでのBake Axis Conversion、Prefabの完全解体まで、Three.js上のWeb環境へVRMを無事に持ち込むためのパイプライン防備録です。
スキニング計算がCPUからGPUへ移行した歴史、「1頂点あたり4ボーン」制限の理由、glTF/VRMのJOINTS_0/WEIGHTS_0が何を表しているかを、VRM→PMX変換で実際にこのデータを読み書きした体験から解説する。
LBSのキャンディラッパー現象を克服するために生まれた2つのアプローチ。回転と平行移動を保持する二重四元数スキニング(DQS)と、特定ポーズで補正形状を重ねがけするPose Space Deformation。計算量と品質のトレードオフを数学の視点から解説する。
1990年代後半、剛体パーツの隙間問題を解決したスキニング技術が登場した。1つの連続メッシュを複数ボーンで変形させるLBSの数学的構造、頂点ウェイトの仕組み、そしてこの方式が抱える最大の弱点「キャンディラッパー現象」を、VRM→PMX変換で手動スキニングを実装した体験と合わせて解説する。
1990年代前半の3Dキャラクターは、体のパーツが剛体として分割されていた。FK階層行列による駆動、関節の隙間問題、そしてスキニング登場前夜の技術的制約を、当時のゲームと数学の両面から振り返る。