#author("2023-08-10T14:16:33+09:00","default:pbcglab_user","pbcglab_user") #author("2024-06-28T16:16:42+09:00","default:pbcglab_user","pbcglab_user") *CG関連論文などの情報 [#d8ec11f1] -[[Physics-Based Animation:http://animationphysics.wordpress.com/]] 物理ベースのCGに関する研究について -[[Ke-Sen Huang's Home Page:http://kesen.realtimerendering.com/]] SIGGRAPHやEurographなどの論文サイトへのリンク *便利なライブラリ・ソース・ソフトウェア [#y7889fe0] **全般 [#z2df2628] -[[Eigen:http://eigen.tuxfamily.org/]] ベクトル,行列計算など線形代数関係のライブラリ.疎行列のソルバーなども含まれている.下記のCGALやPCL,VCG Libraryなどでも使われている.ヘッダだけなのでどの環境でも導入しやすい -[[glm::https://github.com/g-truc/glm]] 主にOpenGL向けの線形代数関係のライブラリ.Eigenと同じく,header onlyのライブラリなので導入しやすい.行列のソルバーとかは含まれていないが,OpenGLで使う演算(投影行列や回転行列などの計算とか)に対応しているので,OpenGLでの描画とともに使う場合はおすすめ.特に新しめのOpenGLだと投影行列とか変換行列を自分で計算する必要があるので必須といって良いかも. -[[CGAL:http://www.cgal.org/]] CG分野で使われている幾何学的なアルゴリズムがたくさん含まれているライブラリ.三角形メッシュ生成,ボロノイ図,ポリゴンのブール演算,凸包生成,AABB, Kd-Treeなど **シミュレーション関係 [#he80c6d8] -[[DualSPHysics:http://dual.sphysics.org/]] SPH法のライブラリ -[[mantaflow:http://mantaflow.com/]] CG分野で開発された主にグリッドをベースとした流体シミュレーションライブラリ.Blenderのシミュレーションエンジンとしても使える. -[[Bartels:https://github.com/dilevin/Bartels]] 物シミュ用の軽量なライブラリ MatlabをC++から使うためのラッパーとか,便利なものを入れたライブラリっぽい -[[ParaView:http://www.paraview.org/]] 流体シミュレーション結果の可視化などに使える -[[Vega FEM:http://run.usc.edu/vega/]] C/C++で書かれた3次元変形シミュレーション用ライブラリ.名前にもあるようにFEMがメインだがバネ-質点系のコードも含まれている. -[[PARDISO:http://www.pardiso-project.org/]] インテルの数値演算ライブラリMKLにも[[含まれている:https://software.intel.com/en-us/node/470282]]高速な疎行列ソルバー.正定値対称行列だけでなく,非対称,不定値(indefinite)にも対応している.上記のEigenにはこれに対応する[[インタフェース:https://eigen.tuxfamily.org/dox/group__PardisoSupport__Module.html]]が用意されている. -[[Chrono:https://projectchrono.org/]] 剛体メインの物理シミュレーションエンジン.FEMによる変形やGranular flowにも対応している. -[[sand6:http://bipop.inrialpes.fr/people/gdaviet/code/sand6/]] MPMによる砂のシミュレーションのコード. **数値計算関係 [#j3768237] -[[Numerical Recipes:http://www.nr.com/]] -[[LAPACK:http://www.netlib.org/lapack/index.html]] -[[GSL]] - GNU Scientific Library -[[IML++:http://math.nist.gov/iml++/]] 反復法ソルバーライブラリ(リチャードソン,チェビシェフ反復法,CG,BiCGSTAB,GMRES,QMR) -[[Lis:https://www.ssisc.org/lis/index.ja.html]] 並列反復解法ライブラリ(線形システム,固有値問題) **メッシュ関係 [#ed42bcc9] -[[Gmsh:http://gmsh.info/]] FEM用の四面体メッシュ生成用ソフトウェア/ライブラリ -[[VCG Library:http://vcg.isti.cnr.it/vcglib/]] 三角形メッシュ,四面体メッシュ等を扱うライブラリ.メッシュの簡素化,平滑化,ハウスドルフ距離やGeodesic path(表面に沿ったパス)の計算,等値面の抽出と追跡,細分割,ポアソンディスクサンプリングなど -[[TetWild:https://github.com/Yixin-Hu/TetWild]] 曲面などで構成されるモデルから四面体メッシュ生成.2D版は [[TriWild:https://github.com/wildmeshing/TriWild]] -[[Polygon Mesh Processing Library(pmp-library):http://www.pmp-library.org/]] ポリゴンメッシュ処理や可視化ができるオープンソースのC++ライブラリ.可視化についてはOpenGLでのメッシュ可視化のためのクラス([[pmp::SurfaceMeshGL:http://www.pmp-library.org/classpmp_1_1_surface_mesh_g_l.html]])があるのでそれを使ったり,[[JavaScriptでビルドする:http://www.pmp-library.org/installation.html#autotoc_md38]]ことでブラウザで簡単に確認できるみたい([[JavaScriptのデモ:https://www.pmp-library.org/mpview.html]]). [[githubへのリンク:https://github.com/pmp-library/pmp-library/]] -[[OpenMesh:https://www.graphics.rwth-aachen.de/software/openmesh/]] ハーフエッジ構造でポリゴンメッシュを扱えるC++ライブラリ(Python bindingsもあるので,Pythonからでも使える). ポリゴンやエッジの分割,エッジのflip,collapseなどにも対応.OBJ,OFF,PLY,STLなどCG分野でよく使われるファイル形式の読み書きにも対応している. -[[libigl:https://libigl.github.io/]] メッシュを対象とした研究とか開発で使えるような機能をまとめたシンプルなヘッダーオンリーのライブラリ.OFF形式の読み込み,OBJ形式の書き込みや簡単なメッシュビューワ機能もあるので,とりあえずメッシュを読み込んで何か処理するというプログラムを書きたいときによさそう. -[[El Topo:http://www.cs.ubc.ca/labs/imager/tr/2009/eltopo/eltopo.html]] 三角形ポリゴンで表された表面形状の移流・トラッキングするソフトウェア. 分離や結合などのトポロジー変化にも対応.[[githubへのリンク:https://github.com/tysonbrochu/eltopo]] -[[LosTopos:http://www.cs.columbia.edu/cg/multitracker/code/]] El Topoをベースに多層流体にも対応したもの. -[[PyMesh:https://pymesh.readthedocs.io/en/latest/]] Pythonでポリゴンメッシュ処理を行えるライブラリ.obj,stlとかのメッシュファイルの入出力に加えて,GmshとかTetgenの四面体メッシュファイルの入出力にも対応している.ポリゴンエッジの分割/削除とか,メッシュ間のブール演算などできるのでPythonでメッシュを扱う場合はこれでよさそう.物シミュ的にはFEMのための剛性行列とかラプラシアン行列の計算にも対応しているところがよさそう. -[[SDFGen:https://github.com/christopherbatty/SDFGen]] 三角形メッシュからグリッド上に定義された符号付距離場(Signed Distance Field)を計算するシンプルなコード. -[[LSCM:https://github.com/icemiliang/lscm]] 三角形メッシュからConformal Mapを最小自乗法(Least Square)で生成するコード. -[[Stop Motion OBJ:https://github.com/neverhood311/Stop-motion-OBJ]] 連番OBJファイルからアニメーションを作ることができるBlenderプラグイン **グリッド・点群などデータ構造関係 [#v5c8a61f] -[[OpenVDB:http://www.openvdb.org/]] 3次元ボリュームデータの格納など.陰関数場を扱ったり,パーティクルデータから表面を抽出,メッシュ生成するなども可能 -[[PCL:http://pointclouds.org/]] Point Cloud Library. 大規模点群を扱うライブラリ.点群からの表面生成,セグメンテーション,点群のフィルタリング,レジストレーションなど **レンダリング関係 [#i098905f] -[[Embree:https://www.embree.org/]] Intel提供のCPUベースレイトレーサー.交差判定などをやりたいときに便利そう **その他 [#y93d2f8b] -[[FFTW:https://www.fftw.org/]] DFT(離散フーリエ変換)のライブラリ.C言語.多次元もOK. -[[FFTSS:https://www.ssisc.org/fftss/]] FFTW互換のDFTライブラリ.FFTWの高速化(並列化)バージョンといった感じのもの. -[[Wavelet]] Wavelet変換ライブラリ