libigl:軽量なジオメトリ処理ライブラリ

このlibiglは、ヘッダーファイルだけで構成された軽量なジオメトリ処理系のライブラリだそうです。ライセンスはMozilla Public License(MPL)で、特許を含まないコードなら改変、再頒布OK。

libigl



libiglは、シンプルなC++ジオメトリ処理ライブラリです。libiglには、離散化された微分幾何学計算、余接ラプラシアンや対角化質量行列などの有限要素行列、シンプルなファセット面とエッジベースのトポロジデータ構造、OpenGLやGLSLのためのMesh表示ユーティリティ幅広い機能が備わっています。また、行列操作のための豊富なコア機能により、Eigenライブラリの機能をMatLabのように扱うことができます。

これは、ヘッダーのみのライブラリです。使用前にライブラリをビルドする必要はありません。iglヘッダー(例:#include )をインクルードするだけでそのまま利用できます。各ヘッダーファイルには関数が1つずつ入っています。(例:igl/cotmatrix.hにはigl::cotmatrix()関数が入っている)。ほとんどがn行3列の頂点位置座標行列V、m行3列の三角形インデックス行列Fに格納された一般的な三角形Mesh上で動作するよう調整されています。

また、必要に応じてライブラリをStatic Libraryにプリコンパイルしておけば、あなたのプロジェクトの全体のコンパイル時間を短縮することもできます。これはあくまでコンパイル時間の短縮のみです。(実行時の動作・パフォーマンスは変わりません。)ハッキリしない場合、ヘッダーのみのデフォルトモードを使用してください。(つまり、使いたいヘッダーファイルのみをインクルードしてください)

libiglは、Eigenライブラリに大きく依存しています。我々はMATLABで多くのプロトタイピングを行っており、便利なMATLABからlibigl+Eigenへの変換テーブルを用意しています。

我々は定期的にMac OS X環境のclang、Linux環境のgcc、Windows環境のVisual Studio 2015 Community Editionでコンパイルテストを実施しています。


スポンサーリンク

libiglを利用しているプロジェクト一覧を見ると、Adobe ResearchとかPixar Researchがいたりして、業界のデファクトスタンダード感がありますね。(オイラは全然知らなかった。。。)


スポンサーリンク


中にcopyleftっていうサブディレクトリがあるけど、逆に言うと、このサブディレクトリ以外は改変・配布しちゃまずいってことなのかな?

チュートリアルが充実しているようなので、ちょこちょこと遊んでみるかな。

Tutorial

libigl tutorial



libiglのリポジトリの成長をGourceで可視化した動画見つけた。2011年から始まったってことで良いのかな。



http://www.gradientspace.com/tutorials/2020/1/2/libigl-in-unreal-engine

最近はPythonバインディングも用意されています↓

libigl python bindings


スポンサーリンク

関連記事

SIGGRAPH Asia
Unity Scriptコーディング→Unreal Engine Scriptコーディング
Multi-View Environment:複数画像から3次元形状を再構築するライブラリ
AMIMOTO(PVM版)で作成したインスタンスをAMIMOTO (HVM版)へ移行する
MythTV:Linuxでテレビの視聴・録画ができるオープンソースプロジェクト
Google XML Sitemap Generatorプラグインを3.4.1へダウングレード
AmazonEC2のインスタンスをt1.microからt2.microへ移行する
OpenCVのfindEssentialMat関数を使ったサンプルを読んでみる
ZBrushの練習 手のモデリング
ZBrushでアヴァン・ガメラを作ってみる
トランスフォーマーの変形パターンを覚えるのは楽しいと思うんだ
Physically Based Rendering
Raspberry Pi 2を買いました
ZBrushで作った3Dモデルを立体視で確認できるVRアプリを作る
ポリゴンジオメトリ処理ライブラリ『pmp-library (Polygon Mesh Process...
OpenCVでカメラ画像から自己位置認識 (Visual Odometry)
Unityで強化学習できる『Unity ML-Agents』
OpenCVの三角測量関数『cv::triangulatepoints』
Faster R-CNN:ディープラーニングによる一般物体検出手法
ジュラシック・パークの続編『ジュラシック・ワールド』
Google App Engine上のWordPressでFlickrの画像を貼る
ブログのデザイン変えました
リアルタイム レイトレーシングAPI『DirectX Raytracing (DXR)』
映画から想像するVR・AR時代のGUIデザイン
スクラッチで既存のキャラクターを立体化したい
ZBrushでゴジラ2001を作ってみる 身体のシルエット出し
Runway ML:クリエイターのための機械学習ツール
Phongの表現力パネェ 材質別のPhong Shader用パラメータ一覧
MB-Lab:Blenderの人体モデリングアドオン
Maya 2015から標準搭載されたMILA
Google Colaboratoryで遊ぶ準備
MFnDataとMFnAttribute
Javaで作られたオープンソースの3DCGレンダラ『Sunflow』
GeoGebra:無料で使える数学アプリ
ZBrushでアヴァン・ガメラを作ってみる 頬の突起を作り始める
3Dモデルを立体視で確認できるVRアプリを作っている
ジュラシック・パークのメイキング
Blender 2.81でIntel Open Image Denoiseを使う
ZBrushCoreのTransposeとGizmo 3D
フリーのUV展開ツール Roadkill UV Tool
ZBrushで仮面ライダー3号を造る 仮面編 ClipCurve
iPhone・iPod touchで動作する知育ロボット『ROMO』

コメント