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


スポンサーリンク

関連記事

Zbrushでメカ物を作るチュートリアル動画
2012 昨日のクローズアップ現代を見た
SIGGRAPH ASIAのマスコット
pythonもかじってみようかと
PythonのStructure from Motionライブラリ『OpenSfM』
BlenderのPython環境にPyTorchをインストールする
『スター・ウォーズ 最後のジェダイ』のVFXブレイクダウン まとめ
ZBrushで仮面ライダー3号を造る 仮面編 横顔のシルエットをリファレンスに合わせる
Unite 2014の動画
Pythonのソースコードに特化した検索エンジン『Nullege』
顔のモデリング
Adobe Photoshop CS4 Extendedの3Dモデル編集機能
Unreal Engine 5の情報が公開された!
fSpy:1枚の写真からカメラパラメーターを割り出すツール
写真に3Dオブジェクトを違和感無く合成する『3DPhotoMagic』
ZBrushで仮面ライダー3号を造る 仮面編 ClipCurve
OpenCV 3.1のsfmモジュールを試す
機械学習で流体シミュレーションを近似する『Physics Forests』
プログラミングスキルとは何か?
粘土をこねるようなスカルプトモデリング
Mayaのレンダリング アトリビュート
イタリアの自動車ブランドFiatとゴジラがコラボしたCMのメイキング
iPhoneアプリ開発 Xcode 5のお作法
ZBrushで仮面ライダー3号を造る 仮面編 DynaMesh
HTML5・WebGLベースのグラフィックスエンジン『Goo Engine』
adskShaderSDK
池袋パルコで3Dのバーチャルフィッティング『ウェアラブル クロージング バイ アーバンリサーチ』
ブログをGoogle App EngineからAmazon EC2へ移行
『ローグ・ワン/スター・ウォーズ・ストーリー』"あのキャラクター"のメイキング
Maya には3 種類のシェーダSDKがある?
クラスの基本
Windows10でPyTorchをインストールしてVSCodeで使う
Blenderでよく使うaddon
ラクガキの立体化 3Dプリント注文
ZBrushで仮面ライダー3号を造る 仮面編 失敗のリカバー
Twitter APIのPythonラッパー『python-twitter』
Blender 2.8がついに正式リリース!
機械学習のオープンソースソフトウェアフォーラム『mloss(machine learning ope...
ラクガキの立体化 進捗
線画を遠近法で描く
CGレンダラ研究開発のためのフレームワーク『Lightmetrica (ライトメトリカ)』
UnityのMonoBehaviourクラスをシングルトン化する

コメント