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

関連記事

「ベンジャミン·バトン数奇な人生」でどうやってCGの顔を作っ...

ZBrushの作業環境を見直す

Open Shading Language (OSL)

openMVGをWindows10 Visual Studi...

3Dスキャンしたテクスチャから照明を除去するUnityツール...

タダでRenderManを体験する方法

ZBrushでメカ物を作るチュートリアル動画

AmazonEC2のインスタンスをt1.microからt2....

Seleniumを使ったFXや株の自動取引

Mayaのシェーディングノードの区分

OpenCV 3.1から追加されたSfMモジュール

法線マップを用意してCanvas上でShadingするサンプ...

ZBrushでアヴァン・ガメラを作ってみる 口内の微調整・身...

オープンソースの取引プラットフォーム

OpenMayaのPhongShaderクラス

ドラマ『ファーストクラス』のモーショングラフィックス

ZBrushでアヴァン・ガメラを作ってみる

ZBrushでアヴァン・ガメラを作ってみる 頭頂部と首周りを...

シン・ゴジラのファンアート

iOSデバイスと接続して連携するガジェットの開発方法

DCGAN (Deep Convolutional GAN)...

Unityをレンダラとして活用する

トランスフォーマーの変形パターンを覚えるのは楽しいと思うんだ

Python for Unity:UnityEditorでP...

ROMOハッカソンに行ってきた

オープンソースのプリント基板設計ツール『KiCad』

Shader.jp:リアルタイム3DCG技術をあつかうサイト

フォトンの放射から格納までを可視化した動画

イタリアの自動車ブランドFiatとゴジラがコラボしたCMのメ...

Unityの薄い本

ZBrushのZScript入門

Maya 2015から標準搭載されたMILA

マジョーラ

Python.NET:Pythonと.NETを連携させるパッ...

VGGT:マルチビュー・フィードフォワード型3Dビジョン基盤...

ZBrushで基本となるブラシ

CEDEC 3日目

フリーで使えるスカルプト系モデリングツール『Sculptri...

ラクガキの立体化 3Dプリント注文

ManimML:機械学習の概念を視覚的に説明するためのライブ...

OpenGVの用語

WordPressのテーマを自作する

コメント