CG関連論文などの情報

便利なライブラリ・ソース・ソフトウェア

全般

  • Eigen ベクトル,行列計算など線形代数関係のライブラリ.疎行列のソルバーなども含まれている.下記のCGALやPCL,VCG Libraryなどでも使われている.ヘッダだけなのでどの環境でも導入しやすい
  • glm: 主にOpenGL向けの線形代数関係のライブラリ.Eigenと同じく,header onlyのライブラリなので導入しやすい.行列のソルバーとかは含まれていないが,OpenGLで使う演算(投影行列や回転行列などの計算とか)に対応しているので,OpenGLでの描画とともに使う場合はおすすめ.特に新しめのOpenGLだと投影行列とか変換行列を自分で計算する必要があるので必須といって良いかも.
  • CGAL CG分野で使われている幾何学的なアルゴリズムがたくさん含まれているライブラリ.三角形メッシュ生成,ボロノイ図,ポリゴンのブール演算,凸包生成,AABB, Kd-Treeなど

シミュレーション関係

  • mantaflow CG分野で開発された主にグリッドをベースとした流体シミュレーションライブラリ.Blenderのシミュレーションエンジンとしても使える.
  • Bartels 物シミュ用の軽量なライブラリ MatlabをC++から使うためのラッパーとか,便利なものを入れたライブラリっぽい
  • ParaView 流体シミュレーション結果の可視化などに使える
  • Vega FEM C/C++で書かれた3次元変形シミュレーション用ライブラリ.名前にもあるようにFEMがメインだがバネ-質点系のコードも含まれている.
  • PARDISO インテルの数値演算ライブラリMKLにも含まれている高速な疎行列ソルバー.正定値対称行列だけでなく,非対称,不定値(indefinite)にも対応している.上記のEigenにはこれに対応するインタフェースが用意されている.
  • Chrono 剛体メインの物理シミュレーションエンジン.FEMによる変形やGranular flowにも対応している.
  • sand6 MPMによる砂のシミュレーションのコード.

数値計算関係

  • IML++ 反復法ソルバーライブラリ(リチャードソン,チェビシェフ反復法,CG,BiCGSTAB,GMRES,QMR)
  • Lis 並列反復解法ライブラリ(線形システム,固有値問題)

メッシュ関係

  • Gmsh FEM用の四面体メッシュ生成用ソフトウェア/ライブラリ
  • VCG Library 三角形メッシュ,四面体メッシュ等を扱うライブラリ.メッシュの簡素化,平滑化,ハウスドルフ距離やGeodesic path(表面に沿ったパス)の計算,等値面の抽出と追跡,細分割,ポアソンディスクサンプリングなど
  • TetWild 曲面などで構成されるモデルから四面体メッシュ生成.2D版は TriWild
  • Polygon Mesh Processing Library(pmp-library) ポリゴンメッシュ処理や可視化ができるオープンソースのC++ライブラリ.可視化についてはOpenGLでのメッシュ可視化のためのクラス(pmp::SurfaceMeshGL)があるのでそれを使ったり,JavaScriptでビルドすることでブラウザで簡単に確認できるみたい(JavaScriptのデモ). githubへのリンク
  • OpenMesh ハーフエッジ構造でポリゴンメッシュを扱えるC++ライブラリ(Python bindingsもあるので,Pythonからでも使える). ポリゴンやエッジの分割,エッジのflip,collapseなどにも対応.OBJ,OFF,PLY,STLなどCG分野でよく使われるファイル形式の読み書きにも対応している.
  • libigl メッシュを対象とした研究とか開発で使えるような機能をまとめたシンプルなヘッダーオンリーのライブラリ.OFF形式の読み込み,OBJ形式の書き込みや簡単なメッシュビューワ機能もあるので,とりあえずメッシュを読み込んで何か処理するというプログラムを書きたいときによさそう.
  • El Topo 三角形ポリゴンで表された表面形状の移流・トラッキングするソフトウェア. 分離や結合などのトポロジー変化にも対応.githubへのリンク
  • LosTopos El Topoをベースに多層流体にも対応したもの.
  • PyMesh Pythonでポリゴンメッシュ処理を行えるライブラリ.obj,stlとかのメッシュファイルの入出力に加えて,GmshとかTetgenの四面体メッシュファイルの入出力にも対応している.ポリゴンエッジの分割/削除とか,メッシュ間のブール演算などできるのでPythonでメッシュを扱う場合はこれでよさそう.物シミュ的にはFEMのための剛性行列とかラプラシアン行列の計算にも対応しているところがよさそう.
  • SDFGen 三角形メッシュからグリッド上に定義された符号付距離場(Signed Distance Field)を計算するシンプルなコード.
  • LSCM 三角形メッシュからConformal Mapを最小自乗法(Least Square)で生成するコード.
  • Stop Motion OBJ 連番OBJファイルからアニメーションを作ることができるBlenderプラグイン

グリッド・点群などデータ構造関係

  • OpenVDB 3次元ボリュームデータの格納など.陰関数場を扱ったり,パーティクルデータから表面を抽出,メッシュ生成するなども可能
  • PCL Point Cloud Library. 大規模点群を扱うライブラリ.点群からの表面生成,セグメンテーション,点群のフィルタリング,レジストレーションなど

レンダリング関係

  • Embree Intel提供のCPUベースレイトレーサー.交差判定などをやりたいときに便利そう

その他

  • FFTW DFT(離散フーリエ変換)のライブラリ.C言語.多次元もOK.
  • FFTSS FFTW互換のDFTライブラリ.FFTWの高速化(並列化)バージョンといった感じのもの.
  • Wavelet Wavelet変換ライブラリ

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-06-28 (金) 16:16:42