リアルタイム
CGアプリケーションための
グラフィクスライブラリ
CG Library(仮)
2015/2/26
株式会社プレミアムグラフィクス
間淵聡
mabuchi@premiumgraphics.co.jp
https://github.com/PremiumGraphics/DirectView
1
こんなのが作れます
2
自己紹介
• CAD/CAMメーカーでパッケージソフト開発
• 博士課程でリアルタイムCGを研究
• CAEメーカーで3D可視化担当
• 2014- 会社つくりました
• 2015- オープンソースにしました
3
なにを作っている?
• リアルタイム3DCGのためのライブラリ(図書館)
• コンパクトな本が並んだもの
• 自由に借りて(フォークして)OK
• CGアプリケーションを使いながら作りこんでいます
• 「汎用エンジン」ではないです
• Unreal, Unity とか既にあるので
• グラフィックス用のライブラリ
• グラフィクスAPIそのものではないです
4
なんで作った?
• CGアプリを作ろうとすると…
• 数学、ファイル入出力、2DGUI、3DGUI
• 沢山の機能が必要になる
• 十分な高級言語(Java,C#)を使うと…
• マネージド管理外の作業が必要になる
• 先進的な機能が使いにくい(多くはVetex, Fragment シェーダのみ)
• 大きなライブラリ(OpenSceneGraph,VTK)を使うと
• 必要な一部機能をちょっと使いたくても色々大変
5
なんで作った?
• 小さなライブラリを色々組み合わせると…
• データ構造やポリシーの統一が大変
• ゲームエンジン(Unity, Unreal etc.)を使うと...
• ベンダ依存が強くなりすぎてしまう
• 小回りがききにくい
• GLUTとかを使うと…
• ごく簡単なGUIのみに限定されてしまう
6
特徴:クロスプラットフォーム
• 理論上はWindows, Linux, Mac に依存なし
• 推奨開発環境は Visual Studio 2013 Community
• スマホ対応はしない予定
• 画面が小さすぎる
• タブレット対応は検討
• タッチパネルはCGソフトと相性がよさそう
7
特徴:標準への準拠
• Modern C++( C++11, C++14 )
• Boostは当面利用しない方針
• 一般的なTemplate は利用
• Template Meta Programmingは未定
• OpenGL3.2
• ジオメトリシェーダ
• 今後OpenGL4.x以降に対応する予定
8
特徴:テストケースの自動化
• TDD(テスト駆動開発)を採用
• 非GUI部のテストカバレッジは100%に近づけたい
• BDD(振る舞い駆動開発)については検討
9
特徴:緩いライセンス
• ライセンスはLGPL
• 将来的にMITライセンスにまで下げたい
• GPLは使わない、GPLにはしない予定
• 自由に利用できます
• 個人利用、教育、商用 etc
10
構成
数学ライブラリ
ベクトル
行列…
物理演算ライブラリ
流体演算…
グラフィクスライブラリ
色
画像…
ファイル入出力ライブラ
リ
STLファイルIO
OBJファイルIO…
可視化アプリ
DirectView
CGアプリ
CGStudio
ライブラリ
アプリケー
ション
アプリとライブラリはリポジトリを分割する予定
11
注意
• 今のところ開発途中です
• Ver0.5くらい
• まだAPIがガンガン変わります
• 環境(主にGPUドライバ)の問題
• 手元の3台NVIDIA, ATI, Intel のマシンでテスト
• それでも完璧にはならないかも…
12
サードパーティーライブラリ
• GoogleTest(New BSD license)
• 単体テストフレームワーク
• tinyXML2(LGPL)
• XML入出力用
• GLee(modified BSD license)
• OpenGL拡張用
• wxWidgets(LGPL)
• クロスプラットフォームGUI
• Qtよりライセンスが緩く、コンパクト
• 日本語ドキュメントは少ない
13
アプリケーションA:
可視化ソフトウェア DirectView
• 主に科学技術計算向け
14
アプリケーションB:
CGソフトウェア CGStudio
• 主に個人用途
• CGモデリング
• CGレンダリング
15
最後に
• 大体毎日改良してます
• https://github.com/PremiumGraphics/DirectView
• アプリケーションの詳細はHPで
• http://www.premiumgraphics.co.jp/
• フォローしてね!
• https://twitter.com/PreGra2015
• https://www.facebook.com/premiumgraphics2014
16

リアルタイムCGのためのグラフィックスライブラリ