ポリゴンジオメトリ処理ライブラリ『pmp-library (Polygon Mesh Processing Library)』

pmp-library (Polygon Mesh Processing Library)というポリゴンジオメトリを扱う割と新しいC++のライブラリ。MITライセンスなので商用利用も可能。

pmp-library (Polygon Mesh Processing Library)

pmp-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 GuideOverviewに書いてあって、ポリゴンのデータ構造を提供するコアモジュール、ジオメトリ処理アルゴリズムを提供するアルゴリズムモジュールと、オプションで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


スポンサーリンク

関連記事

Google製オープンソース機械学習ライブラリ『TensorFlow』のWindows版が公開された
Unityの新しいGUI作成システム『uGUI』
WordPressの表示を高速化する
Vancouver Film Schoolのデモリール
複数視点画像から3次元形状を復元するライブラリ『openMVG』
OpenCVの超解像(SuperResolution)モジュールを試す
機械学習で流体シミュレーションを近似する『Physics Forests』
ラクガキの立体化 分割ラインの変更・バランス調整
Python拡張モジュールのWindows用インストーラー配布サイト
TensorFlowでCGを微分できる『TensorFlow Graphics』
素敵なパーティクル
Javaで作られたオープンソースの3DCGレンダラ『Sunflow』
ゴジラ(2014)のメイキング
マジョーラ
ニューラルネットワークの構造を可視化するフレームワーク『TensorSpace.js』
After Effects全エフェクトの解説(6.5)
法線マップを用意してCanvas上でShadingするサンプル
レンダラ制作はOpenGL とか DirectX を使わなくてもできるんだぜ
ラクガキの立体化 進捗
Houdiniのライセンスの種類
人型3Dキャラクターアニメーション制作サービス『Mixamo』で遊ぶ
Deep Neural Networkによる顔の個人識別フレームワーク『OpenFace』
フォトンの放射から格納までを可視化した動画
『シン・ゴジラ』のコンセプトアニメーションのメイキング動画が公開された
オープンソースのSLAMライブラリ『Cartographer』
Python for Unity:UnityEditorでPythonを使えるパッケージ
書籍『メイキング・オブ・ピクサー 創造力をつくった人々』を読んだ
世界一下品なクマと世界一紳士なクマ
3Dデータ処理ライブラリ『Open3D』
ZBrush 2018での作業環境を整える
マルコフ連鎖モンテカルロ法
Konashiを買った
ZBrushでカスタムUIを設定する
『ピクサー展』へ行ってきた
ZBrushで仮面ライダー3号を造る 仮面編 リファレンス画像の表示
RSSフィードを読込んで表示するWordpressプラグイン『RSSImport』
スターウォーズ エピソードVIIの予告編
ZBrushのキャンバスにリファレンス画像を配置する
ラクガキの立体化 反省
UnityでTweenアニメーションを実装できる3種類の無料Asset
スクレイピング
ブラウザ操作自動化ツール『Selenium』を試す

コメント