pmp-library (Polygon Mesh Processing Library)というポリゴンジオメトリを扱う割と新しいC++のライブラリ。MITライセンスなので商用利用も可能。
pmp-library (Polygon Mesh Processing Library)
pmp-libraryは、デジタルジオメトリ処理のための新しいC++オープンソースライブラリです。
特長
シンプルで効率的なデータ構造
pmp-libraryは、ポリゴンサーフェスメッシュを格納・処理するためのシンプルで効率的なhalfedgeのメッシュデータ構造をコアとしており、高い柔軟性を維持しつつ、使いやすさとパフォーマンスを重視して慎重に設計・実装されています。
試行・テスト済みのアルゴリズム
コアのデータ構造に加えて、このライブラリは、Quadric ErrorベースのMesh Simplification、曲率適応再メッシュ化、細分割、スムージング、パラメータ化など、標準的なジオメトリ処理アルゴリズムの実装を提供します。
すぐに使える可視化ツール
ラピッドプロトタイピングをサポートするために、pmp-libraryはOpenGLベースのメッシュビューアと可視化ユーティリティを提供します。さらに、pmp-libraryをJavaScriptにコンパイルすれば、メッシュを処理するアプリケーションをブラウザ上で直接実行することもできます。デモについては、こちらを参照してください。
ソースコードはGitHubで公開されている↓
https://github.com/pmp-library/pmp-library/
さらに詳しくはUser GuideのOverviewに書いてあって、ポリゴンのデータ構造を提供するコアモジュール、ジオメトリ処理アルゴリズムを提供するアルゴリズムモジュールと、オプションでOpenGLベースの可視化モジュールを備えているそうです。
コアモジュール
ライブラリのコアは、ポリゴンサーフェスメッシュを表現するためのシンプルで効率的なデータ構造
pmp::SurfaceMeshを提供します。そして、3D点やベクトルなどの基本的な型、タイミングやメモリプロファイリングのための基本的なユーティリティクラスも定義されています。
アルゴリズムモジュール
アルゴリズムモジュールは、再メッシュ化やMesh Simplificationなどの標準的なジオメトリ処理アルゴリズムを実装しています。
クラスの構造や名前は単純でわかりやすいスキームで設計されており、1つのクラスが1種類のタスクを提供し、クラス名もタスクを表しています。
例:pmp::SurfaceRemeshingクラスはサーフェスメッシュで動作する再メッシュ化アルゴリズムを提供します。
可視化モジュール
可視化を容易に作成するために、pmp-libraryはオプションとして基本的なビューア機能を持つpmp::MeshViewerなどの可視化モジュールを備えています。データのレンダリングに対応するOpenGLコードはpmp::SurfaceMeshGLにあります。シンプルにするために、このクラスはpmp::SurfaceMeshを継承しています。
チュートリアルでhalfedgeのデータ構造について図で解説されている。
ところで、今流行りのPythonでジオメトリを扱えるライブラリが無いかと探してみたらPyMeshなるライブラリが存在するのね↓
https://pymesh.readthedocs.io/
https://github.com/PyMesh/PyMesh
関連記事
ラクガキの立体化 反省
世界一下品なクマと世界一紳士なクマ
チャットツール用bot開発フレームワーク『Hubot』
JavaScriptとかWebGLとかCanvasとか
グローバルイルミネーションに手を出す前に、やり残したことがあ...
トランスフォーマー :リベンジのメイキング (デジタルドメイ...
Maya API Reference
OpenCVで顔のランドマークを検出する『Facemark ...
SIGGRAPH論文へのリンクサイト
科学技術計算向けスクリプト言語『Julia』
OpenCVで動画の手ぶれ補正
第1回 3D勉強会@関東『SLAMチュートリアル大会』
オーバーロードとオーバーライド
アニゴジ関連情報
ハリウッド版「GAIKING」パイロット映像
ZBrushで基本となるブラシ
2012のメイキングまとめ(途中)
ガメラ生誕50周年
Faster R-CNN:ディープラーニングによる一般物体検...
機械学習手法『Random Forest』
Manim:Pythonで使える数学アニメーションライブラリ
Super Resolution:OpenCVの超解像処理モ...
白組による『シン・ゴジラ』CGメイキング映像が公開された!
Phongの表現力パネェ 材質別のPhong Shader用...
MFnMeshクラスのsplit関数
Open3D:3Dデータ処理ライブラリ
Point Cloud Libraryに動画フォーマットが追...
WebGL開発に関する情報が充実してきている
ZBrushでアヴァン・ガメラを作ってみる 頭頂部の作り込み...
AMIMOTO(PVM版)で作成したインスタンスをAMIMO...
Mayaのプラグイン開発
3D Gaussian Splatting:リアルタイム描画...
参考書
ZBrush キャラクター&クリーチャー
ZBrushでアヴァン・ガメラを作ってみる おでこ(?)のバ...
OpenCVでカメラ画像から自己位置認識 (Visual O...
ManimML:機械学習の概念を視覚的に説明するためのライブ...
NumSharp:C#で使えるNumPyライクな数値計算ライ...
Google Colaboratoryで遊ぶ準備
ZBrushでアヴァン・ガメラを作ってみる 下半身のバランス...
Mechanizeで要認証Webサイトをスクレイピング
Physics Forests:機械学習で流体シミュレーショ...
 
  
  
  
  


コメント