SlideShare una empresa de Scribd logo
1 de 16
リアルタイム
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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (13)

HTML5 and Graphics
HTML5 and GraphicsHTML5 and Graphics
HTML5 and Graphics
 
Ohotech特盛#14 セッション4 予告編
Ohotech特盛#14 セッション4 予告編Ohotech特盛#14 セッション4 予告編
Ohotech特盛#14 セッション4 予告編
 
Sketch VS Photoshop Webデザイン4番勝負 - WCAN 2015 Autumn
Sketch VS Photoshop Webデザイン4番勝負 - WCAN 2015 AutumnSketch VS Photoshop Webデザイン4番勝負 - WCAN 2015 Autumn
Sketch VS Photoshop Webデザイン4番勝負 - WCAN 2015 Autumn
 
デザイナーにGitは必要?
デザイナーにGitは必要?デザイナーにGitは必要?
デザイナーにGitは必要?
 
Bootstrapにちょい足しアニメーション@春のJavascript祭り
Bootstrapにちょい足しアニメーション@春のJavascript祭りBootstrapにちょい足しアニメーション@春のJavascript祭り
Bootstrapにちょい足しアニメーション@春のJavascript祭り
 
Flashクリエイターはどこへ行く?~未来への道しるべ 会場リアルタイムアンケート結果
Flashクリエイターはどこへ行く?~未来への道しるべ 会場リアルタイムアンケート結果Flashクリエイターはどこへ行く?~未来への道しるべ 会場リアルタイムアンケート結果
Flashクリエイターはどこへ行く?~未来への道しるべ 会場リアルタイムアンケート結果
 
いい感じのフロントエンド開発環境を作ってみた
いい感じのフロントエンド開発環境を作ってみたいい感じのフロントエンド開発環境を作ってみた
いい感じのフロントエンド開発環境を作ってみた
 
入門HTML5/CSS3@HTML5 conference 2015 in 鹿児島
入門HTML5/CSS3@HTML5 conference 2015 in 鹿児島入門HTML5/CSS3@HTML5 conference 2015 in 鹿児島
入門HTML5/CSS3@HTML5 conference 2015 in 鹿児島
 
LIGでのDocker活用
LIGでのDocker活用LIGでのDocker活用
LIGでのDocker活用
 
初めてでもOK : )『concrete5』でサイトを作ろう!
初めてでもOK : )『concrete5』でサイトを作ろう!初めてでもOK : )『concrete5』でサイトを作ろう!
初めてでもOK : )『concrete5』でサイトを作ろう!
 
Stripeを1年使ってみて思ったこと
Stripeを1年使ってみて思ったことStripeを1年使ってみて思ったこと
Stripeを1年使ってみて思ったこと
 
HTML5とOSSで作るブラウザで簡単顔認識
HTML5とOSSで作るブラウザで簡単顔認識HTML5とOSSで作るブラウザで簡単顔認識
HTML5とOSSで作るブラウザで簡単顔認識
 
Acer MRヘッドセットで計算結果の可視化
Acer MRヘッドセットで計算結果の可視化Acer MRヘッドセットで計算結果の可視化
Acer MRヘッドセットで計算結果の可視化
 

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

Dart flightschool cloudendpoint with dart
Dart flightschool cloudendpoint with dartDart flightschool cloudendpoint with dart
Dart flightschool cloudendpoint with dart
啓介 大橋
 
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
 

Similar a リアルタイムCGのためのグラフィックスライブラリ (18)

デザインツール戦争とMaterial Theme Editor
デザインツール戦争とMaterial Theme Editorデザインツール戦争とMaterial Theme Editor
デザインツール戦争とMaterial Theme Editor
 
Creative Cloud デザインツールの便利な8つの機能 - ADC MEETUP ROUND 08 SESSION2 -
Creative Cloud デザインツールの便利な8つの機能 - ADC MEETUP ROUND 08 SESSION2 -Creative Cloud デザインツールの便利な8つの機能 - ADC MEETUP ROUND 08 SESSION2 -
Creative Cloud デザインツールの便利な8つの機能 - ADC MEETUP ROUND 08 SESSION2 -
 
Chrome 拡張のご紹介
Chrome 拡張のご紹介Chrome 拡張のご紹介
Chrome 拡張のご紹介
 
組み込みメーカーだからこそのAWS Cognitoの使い方
組み込みメーカーだからこそのAWS Cognitoの使い方組み込みメーカーだからこそのAWS Cognitoの使い方
組み込みメーカーだからこそのAWS Cognitoの使い方
 
Dart flightschool cloudendpoint with dart
Dart flightschool cloudendpoint with dartDart flightschool cloudendpoint with dart
Dart flightschool cloudendpoint with dart
 
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
 
JavaScriptでCGを扱う WebGL紹介
JavaScriptでCGを扱う WebGL紹介JavaScriptでCGを扱う WebGL紹介
JavaScriptでCGを扱う WebGL紹介
 
Mastering open cv kinectv1 marker based ar
Mastering open cv kinectv1 marker based arMastering open cv kinectv1 marker based ar
Mastering open cv kinectv1 marker based ar
 
cochica
cochicacochica
cochica
 
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみるSaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
 
Ml15minutes 190330
Ml15minutes 190330Ml15minutes 190330
Ml15minutes 190330
 
A practical guide to machine learning on GCP
A practical guide to machine learning on GCPA practical guide to machine learning on GCP
A practical guide to machine learning on GCP
 
Django で始める PyCharm 入門
Django で始める PyCharm 入門Django で始める PyCharm 入門
Django で始める PyCharm 入門
 
Computer Graphics from the Mathematical Aspects - Lecture 1
Computer Graphics from the Mathematical Aspects - Lecture 1Computer Graphics from the Mathematical Aspects - Lecture 1
Computer Graphics from the Mathematical Aspects - Lecture 1
 
ブラウザ自動化ツール カオスマップ風 - STAC2018 LT
ブラウザ自動化ツール カオスマップ風 - STAC2018 LTブラウザ自動化ツール カオスマップ風 - STAC2018 LT
ブラウザ自動化ツール カオスマップ風 - STAC2018 LT
 
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
 
普通のJavaエンジニアが、なぜ技術書を出版するに至ったか?
普通のJavaエンジニアが、なぜ技術書を出版するに至ったか?普通のJavaエンジニアが、なぜ技術書を出版するに至ったか?
普通のJavaエンジニアが、なぜ技術書を出版するに至ったか?
 
GANsの最新動向: 応用領域でのGANs (CVPR 2018 完全読破チャレンジ報告会)
GANsの最新動向: 応用領域でのGANs (CVPR 2018 完全読破チャレンジ報告会) GANsの最新動向: 応用領域でのGANs (CVPR 2018 完全読破チャレンジ報告会)
GANsの最新動向: 応用領域でのGANs (CVPR 2018 完全読破チャレンジ報告会)
 

Último

Último (10)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

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