ポリゴンジオメトリ処理ライブラリ『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


スポンサーリンク

関連記事

clearcoat Shader
2D→3D復元技術で使われる用語まとめ
openMVGをWindows10 Visual Studio 2015環境でビルドする
SONYの自律型エンタテインメントロボット『aibo』
マイケル・ベイの動画の感覚
ROSの薄い本
OANDAのfxTrade API
OpenCVでPhotoshopのプラグイン開発
R-CNN (Regions with CNN features):ディープラーニングによる一般物体...
プロシージャル手法に特化した本が出てるみたい(まだ買わないけど)
『パシフィック・リム: アップライジング』のVFXブレイクダウン まとめ
『Deep Fluids』流体シミュレーションをディープラーニングで近似する
Google App Engine上のWordPressでAmazonJSを利用する
テスト
プログラミングスキルについて考える
機械学習で遊ぶ
Raspberry Pi 2を買いました
マルコフ連鎖モンテカルロ法
ゴジラ三昧
オープンソースのネットワーク可視化ソフトウェアプラットフォーム『Cytoscape』
書籍『ゼロから作るDeep Learning』で自分なりに学ぶ
UnityでOpenCVを使うには?
HD画質の無駄遣い
定数
Unityで360度ステレオVR動画を作る
PolyPaint
この本読むよ
オーバーロードとオーバーライド
ジュラシック・パークの続編『ジュラシック・ワールド』
OpenCVベースの背景差分ライブラリ『BGSLibrary』
『スター・ウォーズ 最後のジェダイ』のVFXブレイクダウン まとめ
Ambient Occlusionを解析的に求める
3Dデータ処理ライブラリ『Open3D』
CreativeCOW.net
書籍『ROSプログラミング』
機械学習手法『SVM(Support Vector Machine)』
SIGGRAPH ASIAのマスコット
参考になりそうなサイト
機械学習について理解するための可視化ツール『MLDemos』
物理ベースレンダリングのためのマテリアル設定チートシート
フルCGのウルトラマン!?
iPhoneアプリ開発 Xcode 5のお作法

コメント