OpenGL ESによるモバイル・組込みグラフィックス

OpenGL ESによるモバイル・組込みグラフィックス
株式会社ディジタルメディアプロフェッショナル
桐井敬祐
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
Agenda

DMPのご紹介

OpenGL ES概要
–
–
–
–
–
OpenGL ES 1.1とOpenGL ES 2.0
プログラマブルシェーダ概要
OpenGLの歩み
OpenGLとOpenGL ES
EGL

ワーキンググループの活動アップデート

KTXファイルフォーマット

DMPグラフィックスIPのご紹介

OpenGL ESトレーニングコース、E-ラーニングのご紹介

PICA200搭載GPU実機デモ
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
DMPの概要
 会社名:(株)ディジタルメディアプロフェッショナル (略称DMP)www.dmprof.com
 事業内容:
–
–
–
–
独自開発した3Dグラフィックス技術のライセンス
グラフィックスプロセッサーの開発・販売
グラフィックス関連ソフトウエア製品の開発・販売
3Dグラフィックスに関する技術コンサルティング、トレーニング
 所在地:東京都武蔵野市 JR三鷹駅から徒歩2分
 会社設立:2002年7月
OpenGL ES
セミナールーム
®
ULTRAY 2000 Chip
(SIGGRAPH 2005)
PICA®200 IPコア
(SIGGRAPH 2006)
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
DMP グラフィックスIPソリューション
 組込み機器向け高性能・低消費電力グラフィックスIP コア
 高性能2D/3DグラフィックスIP  低電力モバイルから高性能アミューズメントまでサポート
 ビルディング・ブロック構造によるスケーラブルなアーキテクチャ
(企業部門 最高賞)
フォトリアリスティック
標準3DグラフィックスIPコア OpenVG 1.1対応
3DグラフィックスIPコア
PICA200Lite (OpenGLES 1.1 )
SMAPH-F
SMAPH-S (OpenGLES 2.0 )
ベクターグラフィックスIPコア
(OpenGL ES 1.1 互換 + 独自拡張)
PICA200
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
Lineup
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
OpenGL ES概要

OpenGL ESとは?
– OpenGL ES (OpenGL for Embedded Systems)とは、組込みシステム上の2D、3Dのグラ
フィックスのためのロイヤリティのいらないクロスプラットフォームAPIです。
– デスクトップ向けOpenGLのサブセット版です。
– OpenGL ESは、OpenGLを携帯電話、PDA(携帯情報端末)、家電などに組込まれる表示システ
ムでの利用をターゲットに、必要十分な機能に絞り込んでコンパクトな規格にまとめたもので
す。
– Khronos Groupが仕様策定を行っています。
– スマートフォン、携帯ゲーム機、メディアプレーヤ、車載機器、タブレット等、最も広く採用
されている3DグラフィックスAPIです。
– 主要な組込み機器向けOSでネイ
ティブ 3D APIとして採用されてい
ます。
© Khronos Group
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
OpenGL ESの普及
Source: Jon Peddie Research, March 2009
Visualize the future
© Khronos Group
© 2010 Digital Media Professionals Inc. All rights reserved.
Khronos Group

Khronos Groupとは?
– 2000年1月にさまざまなプラットフォームとデバイスでリッチメディアのオーサリングと再生を
可能にするためのオープンスタンダードAPIを作成するために3Dlabs, ATI, Discreet,
Evans&Sutherland, Intel, nVIDIA, SGI, およびSun Microsystemsを含む主要な会社によって設
立されました。
– Khronos Groupは、さまざまなプラットフォームとデバイスでダイナミックなメディアのオーサ
リングと再生を可能にするためにオープンスタンダードAPIの作成に焦点をあわせられたメン
バーによって資金を供給された産業共同体です。
– すべてのKhronosメンバーが、Khronos API仕様の開発に貢献することができ、公開前の様々な
段階で投票する権限が与えられています。
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
OpenGL ES 1.xと2.x

OpenGL ESの2つのバージョン
– 組込みシステム業界の様々な要求に対応するため、OpenGL ESのロードマップには1.xと2.xと
いう、平行して発展する2つのトラックがあります。
– OpenGL ES 1.x
» 固定機能パイプライン
» OpenGL ES 1.0 .....ソフトウエア実装向け
» OpenGL ES 1.1 ..... 3Dアクセラレータ向け
» Common, Common Liteプロファイルの2種類をサポート
– OpenGL ES 2.x
» プログラマブルパイプライン
» Commonプロファイルのみサポート
» OpenGL ES 1.xと後方互換性はありません。
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
OpenGL ES 2.0プラットフォーム

すでにメジャーな携帯電話では対応済み

SDK、解説本が入手可能

WebGL*などで活用され始めている
Visualize the future
*OpenGL ES 2.0のJavaScriptバインディング
© 2010 Digital Media Professionals Inc. All rights reserved.
OpenGL ES 1.1固定機能パイプライン
三角形/線/点
頂点
プリミティブ
座標変換と
プリミティブ
処理
ライティング
合成
ラスタライザ
フラグメント
テクスチャ
API
処理
アルファ
デプス
テスト
ステンシル
Visualize the future
カラー加算
ブレンド
© 2010 Digital Media Professionals Inc. All rights reserved.
フォグ
ディザ
フレーム
バッファ
OpenGL ES 2.0プログラマブルパイプライン
三角形/線/点
頂点
プリミティブ
バーテックス
プリミティブ
処理
プロセッサ
合成
ラスタライザ
フラグメント
フラグメント
API
プロセッサ
デプス
ステンシル
Visualize the future
ブレンド
© 2010 Digital Media Professionals Inc. All rights reserved.
ディザ
フレーム
バッファ
プログラマブルシェーダ

シェーダとは、シェーディングを行うプログラムの事で、頂点、フラグメントの特性を
定義します。(固定機能パイプラインは機能が制限されています)

アプリケーションはグラフィックスハードウエア上の処理をコントロールすることがで
きます。

最先端の特殊効果を作り出すことが可能です。

固定機能パイプラインで可能な処理のすべてと、より多くに対応可能です。

CPUで行っていた従来の処理の一部をGPUで処理することで、他の処理の為にCPUを
解放することができます。
写実的質感表現
Non-photorealistic
Rendering (NPR)
Visualize the future
手続き型
テクスチャマッピング
頂点アニメーション
© 2010 Digital Media Professionals Inc. All rights reserved.
画像処理
OpenGL ES 2.0のシェーダ

2種類のシェーダ
– バーテックスシェーダ
バーテックスプロセッサで動くシェーダ
頂点単位で行う処理をプログラム
入力:頂点、法線、カラーなど/出力:ポジション、頂点カラーなど
– フラグメントシェーダ
フラグメントプロセッサで動くシェーダ
フラグメント単位で行う処理をプログラム
入力:フラグメントカラー、テクスチャ座標など/出力:フラグメントカラー、テプス値など。

シェーダ記述言語(GLSL ES)を用いて作成します
– アセンブラ言語よりも保守が容易です。
– マルチプラットフォームでH/WベンダやOSに依存しません。
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
OpenGL ES 1.1と2.0
バージョン
OpenGL ES 1.1
OpenGL ES 2.0
プロファイル
Common, Common-Lite
Common
プログラマブルシェーダ
使用不可
GLSL ES 1.00 (GLSL 1.10のサブセット)
マルチサンプリング
glEnable/glDisableで切替
マルチサンプルバッファ使用時は常に有効(有効
化/無効化の切替は削除)
ジオメトリ
マトリックス
従来の頂点属性に関するAPI が使用可能
従来の頂点属性に関するAPIは削除し、
glNormal, glVertexPointer, glNormalPointer,
glTexCoordPointer, etc.
glVertexAttribPointerに移行。
従来のマトリックス処理に関するAPIが使用可能
従来のマトリックス処理に関するAPIは削除。
glMatrixMode, glLoadIdentity, glPushMatrix, etc.
ライティング
従来のライティングに関するAPIが使用可能
従来のライティングに関するAPIは削除。
glLight, glMaterial, etc.
テクスチャ
従来のglTexEnvが使用可能。CUBEMAPは拡張機能。
glTexEnvは削除。CUBEMAPをサポート。
フォグ
従来のフォグに関するAPIが使用可能
フォグに関するAPIは削除。
glFog, etc.
ユーザークリップ
従来のユーザークリップに関するAPIが使用可能。
ユーザークリップに関するAPIは削除。
glClipPlane, etc.
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
OpenGL ES 1.1と2.0
バージョン
OpenGL ES 1.1
OpenGL ES 2.0
アルファテスト
従来のAPIで利用可能 glAlphaFunc, etc.
アルファテストに関するAPIは削除
ロジックオペレーション
従来のAPIで利用可能 glLogicOp, etc.
ロジックオペレーションに関するAPIは削除
ポイントスプライト
従来のAPIで利用可能
仕様変更
フレームバッファオブ
拡張機能
サポート
ジェクト(FBO)
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
OpenGLの歩み
1990
2000
OpenGL 1.2.1
1998.10
Multi-Textureing Ext.
OpenGL 1.1
1997.01
OpenGL 1.4
2002.07
OpenGL 3.0
2008.07
OpenGL 2.0
2004.09
Automatic mipmap Ext.
H/W Shadowing Ext. etc.
2010
Vertex Programs Ext.
Fragment Shaders Ext.
Multiple Render Targets Ext.
etc.
OpenGL 3.3, 4.0
2010.03
OpenGL 4.1
2010.07
Frame Buffer Objects(FBO)
Ext.
Vertex Array Objects
(VAO) Ext.
Hardware Instancing Ext.
DirectX 11と同等機能を提供
Tessellation Control Shader
Tessellator(固定機能)
Tessellation Evaluation Shader
OpenGL ES 2.0完全互換
Texture Object Ext.
★
OpenGL 1.0
1992.01
★
OpenGL 1.2
1998.03
Volume Texture Ext.
Packed Pixels Ext.
Normal Rescaling Ext.
Separate Specular Ext.
Texture LOD Ext.
Image Processing Ext.
etc.
★★
★
OpenGL 1.3
2001.08
Compressed
Textures Ext.
Cubemaps Ext.
Multi-sampling Ext.
Texture Combine Ext.
etc.
★
★
OpenGL 1.5
2003.07
Vertex Buffer
Objects(VBO) Ext.
Occlusion Queries
Ext.
etc.
★
★
★
★★ ★★
OpenGL 2.1
2006.07
Pixel Buffer Object Ext. etc.
OpenGL 3.1, 3.2
2009.03, 08
Geometry shader
Texture Buffer Object
Copy Buffer API (OpenCLとの連携)
固定機能、イミティエイトモードなどレガ
シー機能を拡張機能に、etc.
DirectX1.0
1995.09
Visualize the future
DirectX8.0
2000.11
DirectX9.0
2002.12
© 2010 Digital Media Professionals Inc. All rights reserved.
DirectX 10
2006.11
DirectX 11
2009.10
OpenGLとOpenGL ES
OpenGL 1.3
OpenGL ES 1.0
OpenGL 1.5
OpenGL ES 1.1
GLSL 1.00(拡張機能)
OpenGL 2.0
OpenGL ES 2.0
GLSL 1.20
GLSL ES 1.00
OpenGL 3.0
GLSL 1.30
OpenGL 3.1
GLSL 1.40
固定機能
パイプライン拡張
GL_ARB_compatibility
OpenGL 3.2
OpenGL 3.2
(Core Profile)
(Conpatibility Profile)
GLSL 1.50
GLSL 1.50 (C.P.)
OpenGL 4.1
OpenGL 4.1
(Core Profile)
(Conpatibility Profile)
GLSL 4.10
GLSL 4.10 (C.P.)
Visualize the future
完全互換
© 2010 Digital Media Professionals Inc. All rights reserved.
OpenGL ES Halti
EGL

OpenGL ESにはEGLと呼ばれる共通プラットフォーム・インターフェース層の仕様が
あります。

EGLは、OpenGL ESのディスプレイや、コンテキスト、サーフェーイスを管理する外
部レイヤーです。

各種モバイルAPI間の相互運用の中核
– クライアントAPI間のバッファ、テクス
チャ、およびビデオストリーム等の効率
※EGLという呼称は、従来のOpenGLの各種OS, Windowシス
テムに対する拡張レイヤーの呼称に倣ったものです。
GLX: OpenGL Extension for the X Window System
AGL: OpenGL Extension for the Apple Macintosh
PGL: OpenGL Extension for IBM OS/2 Warp
WGL: OpenGL Extension for Microsoft Windows95/98/NT
的な共有
© Khronos Group
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
ワーキンググループの活動アップデート

次世代OpenGL ES
– WGでは2009年半ばから仕様策定作業にフォーカス
– マーケットが必要とする時期にリリース予定
– 既存OpenGL ES 2.0のエコシステム拡大を阻害しない

ARB / ES Convergence Group
– OpenGL - OpenGL ESのサブ委員会
– ロードマップ共有を引続き推進

エコシステム
– OpenGL ES 2.0 Reference Cardの作成→Webサイトからダウンロード可能
– KTXファイルフォーマット(後述)
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
KTXファイルフォーマット

KTX - Khronos TeXture
– Khronos Groupが定めるOpenGL, OpenGL ES向けテクスチャファイルフォーマット
– 昨年より検討・策定作業を進め2010年7月にリリース
– 軽量なフォーマット

非圧縮・圧縮テクスチャのサポート
– 格納イメージデータは、非圧縮だけではなく圧縮テクスチャフォーマットも格納可能
» e.g. ETC1, ATITC, S3TC, etc.
– 1つのKTXファイル内に、1Dテクスチャから、すべてのmipマップレベルを含むテクスチャ、
cubeマップテクスチャ等を格納する事が可能。
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
KTXファイルフォーマット関連ツール

libktx
– KTXファイルの読み書きを行うためのライブラリ
– 便利で使いやすいライブラリ
» ETC1(圧縮テクスチャフォーマット)をサポートしていないハードウエア向けに解凍して
くれるローダも提供
» mipマップ生成機能も提供

toktx
– KTXファイルを .pam, .pgm, .ppmファイルから作成
– テクスチャ圧縮機能は未対応

いずれもBSD-likeライセンスによるオープンソース化
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
KTXファイルフォーマットの今後

将来的にはテクスチャ圧縮などの機能を追加できるオプションを提供

本ファイルフォーマットを通じて1つのファイルが各社のテクスチャ圧縮に対応
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
Khronos Group公認トレーニングコース

開催場所:㈱ディジタルメディアプロフェッショナル セミナールーム
– JR三鷹駅徒歩2分

開催スケジュール(定期的に開催)
– OpenGL ESプログラミング・トレーニング Ⅰ 2010年11月11日(木)∼12日(金)10:00∼17:00
– OpenGL ESプログラミング・トレーニングⅡ 2010年11月18日(木)∼19日(金)10:00∼17:00
– GLSLシェーダプログラミング 基礎コース 2010年12月9日(木)∼10日(金)10:00∼17:00

お申し込み、詳細は http://www.dmprof.com/
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
OpenGL ES プログラミング・トレーニングI
•
•
学習項目
(1)はじめに
(9)アニメーション
(2)OpenGL ES概要
(10)視野
(3)EGLについて
(11)ライティング(Ⅰ)
(4)プリミティブの描画
(12)ブレンディング
(5)ビューポートの設定
(13)ピクセル・オペレーション
(6)変換
(14)フォグ
(7)デプスバッファ
(15)フレームバッファ・オペレーショ
(8)シーンの描画
ン
(16)まとめ
到達目標
- OpenGL ESのアーキテクチャ、実装プラットフォームに関する概要を理解する。
- OpenGL ES1.1を使って作成されたプログラムを理解することができる。
- OpenGL ES1.1を使った、組込みシステム向け3Dグラフィックスアプリケーションを作成できる。
•
•
定員: 12名(先着順)
受講料
-
一般 49,560円 (税込、1名2日間)
Khronosメンバー 45,000円 (税込、1名2日間)
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
OpenGL ESプログラミング・トレーニングII
• 学習項目
(1)はじめに
(9)動的キューブマッピング
(2)ライティング(II)
(10)平面反射
(3)バッファ・オブジェクト
(11)Dot3バンプマッピングとスペキュラーマッピング
(4)拡張:ポイントスプライト
(12)ステンシルシャドウ
(5)拡張:マトリックスパレット
(13)パフォーマンス評価のヒント
(6)テクスチャマッピング(Ⅱ)
(14)その他のTips
(7)圧縮テクスチャ
(15)OpenGL ES 2.0の概要
(8)ドローテクスチャ
(16)まとめ
• 到達目標
- OpenGL ES 1.1の標準機能(一部拡張機能)を使用して、よりリアリティの高い表現を実現できる。
- OpenGL ES 1.1アプリケーションのパフォーマンスに関する考察を行う事ができる。
- プログラマブル・シェーダの概念を理解する。
• 定員: 12名(先着順)
• 受講料
-
一般 49,560円 (税込、1名2日間)
Khronosメンバー 45,000円 (税込、1名2日間)
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
GLSLシェーダプログラミング
• 学習項目
1日目:
2日目:
(1) はじめに
(5) フラグメントシェーダ
(2) OpenGL ES 2.0の基礎
(6) 座標系
(3) GLSLの文法
(7) ライティング
(4) バーテックスシェーダ
(8) デバッグ方法
• 到達目標
- OpenGL ES 2.0のアーキテクチャを理解する。
- GLSL 1.1を使って作成されたシェーダ・プログラムを理解する事ができる。
- GLSL 1.1を使った簡単なシェーダ・プログラムを作成する事ができる。
• 定員: 12名(先着順)
• 受講料
-
一般 -
Khronosメンバー 94,500円 (税込、1名2日間)
99,750円 (税込、1名2日間)
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
Android 3Dグラフィックス・ラーニングキット
• Android上で、組込み用途向け標準3DグラフィックスAPIであるOpenGL ES
を使用したプログラミングの基礎を学習します。
•ナレーションとアニメーションによりAndroid SDKの使い方、OpenGL ES
APIの詳細、サンプルソースコードの詳細をわかりやすく解説
•直感的なインターフェースで学習項目の選択とキーワード検索が可能
•ダウンロード、詳細は
http://www.dmprof.com/
‣利用料金: 4,998円(税込)
‣利用期間 : 1年間
英語版も
‣ページ数: 231ページ
販売開始!
‣再生時間: 約4時間
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.
PICA®200 “御影(MIKAGE)” デモンストレーション
Futuremark社と共同 開発したPICA®200リアルタイムデモ・コンテンツ
OpenGL ES 1.1 + 拡張パック + DMP拡張API( 2G )をフルに活用
行列パレットスキニング
平面反射
環境マップ
2G
バンプマップ
ピクセル単位ライティング
ソフトシャドウ・セルフシャドウ
表面下散乱
プロシージャルテクスチャ
ポリゴンサブディビジョン
ムービー版ダウンロード:
http://www.dmprof.com/
Visualize the future
© 2010 Digital Media Professionals Inc. All rights reserved.