Arseny Kapoulkine氏が、メッシュの最適化・簡略化・圧縮などに利用できるオープンソースライブラリ「meshoptimizer 1.3」をリリースしました。新たにVoxel Remesherや法線生成機能が追加されたほか、Simplify関連の改善や各種処理の高速化が行われています。
meshoptimizer 1.3

meshoptimizerは、GPUで効率良く描画できるようにメッシュデータを最適化するためのオープンソースライブラリです。
頂点・インデックスデータの最適化、メッシュ簡略化、Meshlet生成、圧縮など幅広い機能を備えており、C/C++ APIのほか、一部機能についてはJavaScript向けの「meshoptimizer.js」も提供されています。
また、glTFを自動的に最適化するコマンドラインツール「gltfpack」なども同プロジェクトから提供されています。
プロジェクト開始から約10年を迎えた今回の1.3では、新しいVoxel Remesherをはじめ、法線生成やSimplify関連の改善、各種処理の高速化などが実施されています。
新しいVoxel Remesher
今回の目玉となるのが、実験的機能として追加されたVoxel Remesher「meshopt_remesh」です。
入力メッシュを指定解像度のVoxel Gridへ変換し、各Voxelに元メッシュ表面の近似情報を格納。その情報をもとに、元のトポロジや正確な頂点位置に依存せず新しいメッシュを生成します。
従来のSimplifyでは基本的に元メッシュのトポロジを維持しながらポリゴンを削減するため、離れた形状同士を結合したり、内部構造を大胆に整理したりすることには制約があります。
Voxel Remesherではその制約を取り払い、一度形状をVoxelベースで再解釈してから新しいメッシュを作り直します。
- 元メッシュのトポロジに依存せずメッシュを再構築
- 指定したVoxel解像度を基準に形状を近似
- 均一性の高いテッセレーションを生成
- Voxelより小さな隙間などを閉じることが可能
- 近接したディテールを統合可能
- デフォルトでは内部を埋めた閉じたメッシュを生成
meshopt_RemeshSolveで元形状に近づくよう頂点位置を最適化- シート状の薄い形状も保持可能
- 生成後にさらにSimplifyを適用可能
また、現時点では実験的な機能であり、薄い形状では自己交差が発生する可能性なども明記されています。
Remesh → Simplify → Unwrap → Retexture
公式サイトではVoxel Remesherをブラウザ上で試せるオンラインデモも公開されています。
このデモでは単純なRemeshだけでなく、
Remesh → Simplify → Unwrap → Retexture
という一連の処理を確認できます。
Arseny Kapoulkine氏によると、Unwrapにはxatlas、Retextureにはthree-mesh-bvhを利用しているとのこと。
元のメッシュを再構築してSimplifyし、UVを生成した上で元モデルのテクスチャ情報を転送するところまで確認できるため、ゲーム開発におけるProxy MeshやHLOD生成などへの応用も考えられそうです。
法線生成機能も追加
Remeshでは元メッシュの頂点属性が破棄されるため、新しく生成されたメッシュには法線も改めて生成する必要があります。
そこで1.3では、新しい実験的APIとしてmeshopt_generateNormalsも追加されました。
指定したCrease Angleを基準にエッジをSoft / Hardへ分類し、接続するFace NormalからCorner Normalを生成します。さらにオプションでNormalのスムージング処理も適用できます。
Remesher専用というわけではなく、通常のメッシュに対しても利用できる汎用的な法線生成機能として提供されています。
Simplify関連も強化
1.3では既存のメッシュ簡略化機能にも複数の改善が加えられています。
meshopt_SimplifyPermissiveがStableへ移行- Geometric Border周辺のSimplify品質を改善
- Double-sided Geometry向け
meshopt_SimplifyPreserveFoldsを追加 - Attribute-aware Simplification向け
meshopt_SimplifyErrorClampedを追加 - foliage向けに
clusterlod.hへBorder Dilationを追加 - Attribute使用時のCluster Error推定を改善
meshoptimizerはMITライセンスで公開されています。

個人的には今回追加されたVoxel Remesherがかなり気になります
公式のオンラインデモで実際に試せるので
メッシュ最適化や自動LOD生成周りに興味のある方は要チェックです!










コメント