Upload
nguyennguyet
View
224
Download
0
Embed Size (px)
Citation preview
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
OpenGL ESによるモバイル・組込みグラフィックス
株式会社ディジタルメディアプロフェッショナル桐井敬祐
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
Agenda
DMPのご紹介 DMPグラフィックスIPのご紹介
OpenGL ES概要– OpenGL ES 1.1とOpenGL ES 2.0– プログラマブルシェーダ概要– OpenGLの歩み– OpenGLとOpenGL ES– EGL
ワーキンググループの活動アップデート KTXファイルフォーマット
OpenGL ESトレーニングコース、E-ラーニングのご紹介 PICA200搭載GPU実機デモ
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
DMPの概要 会社名:(株)ディジタルメディアプロフェッショナル (略称DMP)www.dmprof.com 事業内容:
– 独自開発した3Dグラフィックス技術のライセンス– グラフィックスプロセッサーの開発・販売– グラフィックス関連ソフトウエア製品の開発・販売– 3Dグラフィックスに関する技術コンサルティング、トレーニング
所在地:東京都武蔵野市 JR三鷹駅から徒歩2分 会社設立:2002年7月
ULTRAY®2000 Chip(SIGGRAPH 2005)
PICA®200 IPコア(SIGGRAPH 2006)
OpenGL ES セミナールーム
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
DMP グラフィックスIPソリューション 組込み機器向け高性能・低消費電力グラフィックスIP コア 高性能2D/3DグラフィックスIP 低電力モバイルから高性能アミューズメントまでサポート ビルディング・ブロック構造によるスケーラブルなアーキテクチャ
(企業部門 最高賞)
フォトリアリスティック3DグラフィックスIPコア(OpenGL ES 1.1 互換 + 独自拡張)PICA200
標準3DグラフィックスIPコアPICA200Lite (OpenGLES 1.1 )
SMAPH-S (OpenGLES 2.0 )
OpenVG 1.1対応ベクターグラフィックスIPコアSMAPH-F
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
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
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
OpenGL ESの普及
Source: Jon Peddie Research, March 2009 © Khronos Group
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
Khronos Group
Khronos Groupとは?– 2000年1月にさまざまなプラットフォームとデバイスでリッチメディアのオーサリングと再生を可能にするためのオープンスタンダードAPIを作成するために3Dlabs, ATI, Discreet, Evans&Sutherland, Intel, nVIDIA, SGI, およびSun Microsystemsを含む主要な会社によって設立されました。
– Khronos Groupは、さまざまなプラットフォームとデバイスでダイナミックなメディアのオーサリングと再生を可能にするためにオープンスタンダードAPIの作成に焦点をあわせられたメンバーによって資金を供給された産業共同体です。
– すべてのKhronosメンバーが、Khronos API仕様の開発に貢献することができ、公開前の様々な段階で投票する権限が与えられています。
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
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と後方互換性はありません。
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
OpenGL ES 2.0プラットフォーム
すでにメジャーな携帯電話では対応済み– iPhone(iOS), Parm Pre(WebOS), Android, etc.
SDK、解説本が入手可能– iOS Dev Center(SDK), Palm Developer Center(PDK), Android Developers(SDK, NDK), etc.
WebGL*などで活用され始めている *OpenGL ES 2.0のJavaScriptバインディング
– Firefox, Safari, Opera, Chromeが対応
– 各種ユーティリティライブラリ、BlenderでのWebGLエクスポート
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
プリミティブ合成
座標変換とライティング
プリミティブ処理
ラスタライザ
テクスチャ処理
カラー加算 フォグ
アルファテスト
デプスステンシル ブレンド ディザ
フレームバッファ
API
三角形/線/点
頂点
OpenGL ES 1.1固定機能パイプライン
フラグメント
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
プリミティブ合成
バーテックスプロセッサ
プリミティブ処理
ラスタライザ
フラグメントプロセッサ
デプスステンシル ブレンド ディザ
フレームバッファ
API
三角形/線/点
頂点
OpenGL ES 2.0プログラマブルパイプライン
フラグメント
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
プログラマブルシェーダ
シェーダとは、シェーディングを行うプログラムの事で、頂点、フラグメントの特性を定義します。(固定機能パイプラインは機能が制限されています)
アプリケーションはグラフィックスハードウエア上の処理をコントロールすることができます。
最先端の特殊効果を作り出すことが可能です。 固定機能パイプラインで可能な処理のすべてと、より多くに対応可能です。 CPUで行っていた従来の処理の一部をGPUで処理することで、他の処理の為にCPUを解放することができます。
写実的質感表現 Non-photorealisticRendering (NPR)
手続き型テクスチャマッピング
頂点アニメーション 画像処理
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
OpenGL ES 2.0のシェーダ
2種類のシェーダ– バーテックスシェーダ
バーテックスプロセッサで動くシェーダ
頂点単位で行う処理をプログラム
入力:頂点、法線、カラーなど/出力:ポジション、頂点カラーなど
– フラグメントシェーダ
フラグメントプロセッサで動くシェーダ
フラグメント単位で行う処理をプログラム
入力:フラグメントカラー、テクスチャ座標など/出力:フラグメントカラー、テプス値など。
シェーダ記述言語(GLSL ES)を用いて作成します– アセンブラ言語よりも保守が容易です。
– マルチプラットフォームでH/WベンダやOSに依存しません。
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
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 が使用可能glNormal, glVertexPointer, glNormalPointer, glTexCoordPointer, etc.
従来の頂点属性に関するAPIは削除し、glVertexAttribPointerに移行。
マトリックス 従来のマトリックス処理に関するAPIが使用可能glMatrixMode, glLoadIdentity, glPushMatrix, etc.
従来のマトリックス処理に関するAPIは削除。
ライティング 従来のライティングに関するAPIが使用可能glLight, glMaterial, etc.
従来のライティングに関するAPIは削除。
テクスチャ 従来のglTexEnvが使用可能。CUBEMAPは拡張機能。 glTexEnvは削除。CUBEMAPをサポート。
フォグ 従来のフォグに関するAPIが使用可能glFog, etc.
フォグに関するAPIは削除。
ユーザークリップ 従来のユーザークリップに関するAPIが使用可能。glClipPlane, etc.
ユーザークリップに関するAPIは削除。
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
OpenGL ES 1.1と2.0
バージョン OpenGL ES 1.1 OpenGL ES 2.0
アルファテスト 従来のAPIで利用可能 glAlphaFunc, etc. アルファテストに関するAPIは削除
ロジックオペレーション 従来のAPIで利用可能 glLogicOp, etc. ロジックオペレーションに関するAPIは削除
ポイントスプライト 従来のAPIで利用可能 仕様変更
フレームバッファオブジェクト(FBO)
拡張機能 サポート
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
OpenGLの歩み1990 2000 2010
★ ★
OpenGL 1.01992.01
★★ ★ ★
OpenGL 1.11997.01
Texture Object Ext.
OpenGL 1.21998.03
Volume Texture Ext.Packed Pixels Ext.
Normal Rescaling Ext.Separate Specular Ext.
Texture LOD Ext.Image Processing Ext.
etc.
OpenGL 1.2.11998.10
Multi-Textureing Ext.
OpenGL 1.32001.08
Compressed Textures Ext.
Cubemaps Ext.Multi-sampling Ext.
Texture Combine Ext.etc.
OpenGL 1.42002.07
Automatic mipmap Ext.H/W Shadowing Ext. etc.
★
OpenGL 1.52003.07
Vertex Buffer Objects(VBO) Ext.Occlusion Queries
Ext.etc.
★
OpenGL 2.02004.09
Vertex Programs Fragment Shaders
Multiple Render Targets Ext. etc.
★
OpenGL 2.12006.07
Pixel Buffer Object Ext. etc.
OpenGL 3.02008.07
Frame Buffer Objects(FBO) Ext.
Vertex Array Objects(VAO) Ext.
Hardware Instancing Ext.
★ ★★
OpenGL 3.1, 3.22009.03, 08
Geometry shaderTexture Buffer Object
Copy Buffer API (OpenCLとの連携)固定機能、イミティエイトモードなどレガ
シー機能を拡張機能に、etc.
★★
OpenGL 3.3, 4.02010.03
OpenGL 4.12010.07
DirectX 11と同等機能を提供Tessellation Control Shader
Tessellator(固定機能)Tessellation Evaluation Shader
OpenGL ES 2.0完全互換
DirectX1.01995.09
DirectX8.02000.11
DirectX9.02002.12
DirectX 102006.11
DirectX 112009.10
ARB発足1992
Khronos Group発足 ARBがKhronos Groupに
2006
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
OpenGLとOpenGL ESOpenGL 1.3
OpenGL 1.5GLSL 1.00(拡張機能)
OpenGL 2.0GLSL 1.20
OpenGL 3.0GLSL 1.30
OpenGL 3.1GLSL 1.40
OpenGL 3.2 (Core Profile)
GLSL 1.50
固定機能パイプライン拡張
GL_ARB_compatibility
OpenGL 3.2 (Conpatibility Profile)
GLSL 1.50 (C.P.)
2003 OpenGL ES 1.0
2004 OpenGL ES 1.1
2007 OpenGL ES 2.0GLSL ES 1.00
OpenGL ES Halti
OpenGL 4.1 (Core Profile)
GLSL 4.10
OpenGL 4.1 (Conpatibility Profile)
GLSL 4.10 (C.P.)
完全互換
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
EGL
OpenGL ESにはEGLと呼ばれる共通プラットフォーム・インターフェース層の仕様があります。
EGLは、OpenGL ESのディスプレイや、コンテキスト、サーフェーイスを管理する外部レイヤーです。
各種モバイルAPI間の相互運用の中核※EGLという呼称は、従来のOpenGLの各種OS, Windowシステムに対する拡張レイヤーの呼称に倣ったものです。GLX: OpenGL Extension for the X Window SystemAGL: OpenGL Extension for the Apple MacintoshPGL: OpenGL Extension for IBM OS/2 WarpWGL: OpenGL Extension for Microsoft Windows95/98/NT
– クライアントAPI間のバッファ、テクスチャ、およびビデオストリーム等の効率的な共有
© Khronos Group
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
ワーキンググループの活動アップデート
次世代OpenGL ES (Halti)
– WGでは2009年半ばから仕様策定作業にフォーカス
– マーケットが必要とする時期にリリース予定
– 既存OpenGL ES 2.0のエコシステム拡大を阻害しない
ARB / ES Convergence Group– OpenGL - OpenGL ESのサブ委員会
– ロードマップ共有を引続き推進
エコシステム– OpenGL ES 2.0 Reference Cardの作成→Webサイトからダウンロード可能
» http://www.khronos.org/opengles/2_X/– KTXファイルフォーマット(後述)
!!!"#$%&'&("&%)*&+,')-,(./01023$%&'&(24%&5+2627,8"20/10
9+,'4:2;<2/"02=>?2@5AB#27,C,%,'B,2DE%F
9+,'4:!";<2
"G'"'"'H"G'"'"'H
D5%%,'I2J,%I,K2<IEI,2G/"LH!"#$% &'()$*#$!"#$% &'()$*#$
J,%I,K2=%%EM(2G/"NH
!"#$% *!+$ ,-.$"/01'(!+$# *,0!#$ ./!",$0#$
,-.$23!"#$%23
./!",$0!"#$%#$!"#$%#$
!"#$%23
O%E!=%%EM( 1/#$ 4/)",#$O%E!;-,P,'I( 1/#$ 4/)", ,-.$
!"#!4$*#$1/#$23
,-.$23
!"#!4$*
9+,'4:2;<2D&PPE'F2<M'IEK2
330$,)0"5,-.$"QEP, 6'07*3893:3'07;383<3<3<383:3'07=3683'07*9#$
= ==
"
;%%&%(2G/"RH4,I;%%&% """"""
G/"SH2"
" #$" #$
,'07$, #$,'07$,23
,'07$, *!+$#',' )*'7$#$
)*'7$
,'07$,*!+$ #','#$
,'07$,23
#$,'07$, &'()$
#','#$,'07$,23&'()$23
JA,!+&%I2E'F2D-A++A')D&'I%&--A')2I$,2JA,!+&%I2G/"1/"1H
O,+I$7E'),C " >#$"JA,!+&%I % - ? @#$
>&A'I(2)-T>&A'I<AU,
:A',2<,)P,'I(2:A',VAFI$ ?!#,@#$
>&-M)&'(2W%&'IWEB, #!0#$
#!023D5--WEB, 1/#$#$
1/#$233
>'4,/0 )"!,*#$
>AK,-27,BIE')-,(2>AK,-<I&%,A ."'1$ .'0'1#$
."'1$23
X,KI5%A')2"
"
,$%,)0$#$,$%,)0$23
X,K?PE),/O ,'07$, ($&$( !",$0"'(>/01',?!#,@ @$!7@, A/0#$0 >/01',,-.$ #','#$
,'07$,233
!",$0"'(>/01',23
>/01',23
D&'8,%(A&'2C%&P274Y=2+AK,-2B&P+&','I(2I&2A'I,%'E-2I,KI5%,2B&P+&','I(ZYE(,2?'I,%'E-2W&%PEI 74Y= ?'I,%'E-2D&P+&','I(
D&+MX,K?PE),/O ,'07$, ($&$(!",$0"'(>/01', % - ?!#,@
@$!7@, A/0#$0#$,'07$,2"
!",$0"'(>/01',23!""#$"%&'()"*+"
,'07$, ($&$(?!#,@ @$!7@, >/01',
,-.$ #','#$,'07$,23
>/01'," ,-.$ !""#$"%&'()"*+"",'07$, ($&$(
% - ?!#,@ @$!7@,#$,'07$,233
>/01'," ,-.$ !""#$"%&'()"*+"
D&P+%,((,F2X,KI5%,2?PE),(2D&P+%,((,FX,K?PE),/O ,'07$, ($&$(
!",$0"'(>/01', ?!#,@ @$!7@,A/0#$0 !1'7$B!+$ #','#$
,'07$,3'"#3!",$0"'(>/01', !""#$"%&'()"*+
,'07$, ($&$(?!#,@ @$!7@,
>/01', !1'7$B!+$ #','#$,'07$,3'"#3!",$0"'(>/01', !""#$"%&'()"*+
X,KI5%,2>E%EP,I,%(2,'07$, ."'1$
.'0'1#$,'07$, ."'1$
.'0'1*#$,'07$,23."'1$23
4,',%EI,[A+PE+ ,'07$,#$,'07$,23
YA'FX,KI5%, ,'07$, ,$%,)0$#$O,-,I,X,KI5%,( " ,$%,)0$*#$4,'X,KI5%,( " ,$%,)0$*#$
;'5P,%EI,F2@5,%A,(,'07$, &'()$
#','#$,'07$,23&'()$23
X,KI5%,2@5,%A,(2?(X,KI5%, ,$%,)0$#$
4:2OEIE2XM+,(2
4:2XM+,[A'AP5P2YAI2VAFI$
%
%
%
.,0A!,*
.,0A!,*
7,EFA')2>AK,-(27,EF>AK,-( % - ?!#,@ @$!7@,
>/01', ,-.$ #','#$>/01',2"Q&I,237,EF>AK,-(\]"
>/01',C,-.$
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
KTXファイルフォーマット
KTX - Khronos TeXture– Khronos Groupが定めるOpenGL, OpenGL ES向けテクスチャファイルフォーマット
– 昨年より検討・策定作業を進め2010年7月にリリース
– 軽量なフォーマット
– http://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/
非圧縮・圧縮テクスチャのサポート– 格納イメージデータは、非圧縮だけではなく圧縮テクスチャフォーマットも格納可能
» e.g. ETC1, ATITC, S3TC, etc.
– 1つのKTXファイル内に、1Dテクスチャから、すべてのmipマップレベルを含むテクスチャ、cubeマップテクスチャ等を格納する事が可能。
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
KTXファイルフォーマット関連ツール
libktx– KTXファイルの読み書きを行うためのライブラリ
– 便利で使いやすいライブラリ
» ETC1(圧縮テクスチャフォーマット)をサポートしていないハードウエア向けに解凍してくれるローダも提供
» mipマップ生成機能も提供
toktx– KTXファイルを netpbmフォーマット(.pam, .pgm, .ppmファイル)から作成
– テクスチャ圧縮機能は未対応
いずれもBSD-likeライセンス(修正BSDライセンス)によるオープンソース化
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
KTXファイルフォーマットの今後
将来的にはテクスチャ圧縮などの機能を追加できるオプションを提供
本ファイルフォーマットを通じて1つのファイルが各社のテクスチャ圧縮に対応
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
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/
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
OpenGL ES プログラミング・トレーニングI
• 学習項目
• 到達目標- OpenGL ESのアーキテクチャ、実装プラットフォームに関する概要を理解する。
- OpenGL ES1.1を使って作成されたプログラムを理解することができる。
- OpenGL ES1.1を使った、組込みシステム向け3Dグラフィックスアプリケーションを作成できる。
• 定員: 12名(先着順)
• 受講料- 一般 49,560円 (税込、1名2日間)
- Khronosメンバー 45,000円 (税込、1名2日間)
(1)はじめに(2)OpenGL ES概要(3)EGLについて(4)プリミティブの描画(5)ビューポートの設定(6)変換(7)デプスバッファ(8)シーンの描画
(9)アニメーション(10)視野(11)ライティング(Ⅰ)(12)ブレンディング(13)ピクセル・オペレーション(14)フォグ(15)フレームバッファ・オペレーション(16)まとめ
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
OpenGL ESプログラミング・トレーニングII
•学習項目
•到達目標- OpenGL ES 1.1の標準機能(一部拡張機能)を使用して、よりリアリティの高い表現を実現できる。- OpenGL ES 1.1アプリケーションのパフォーマンスに関する考察を行う事ができる。- プログラマブル・シェーダの概念を理解する。
•定員: 12名(先着順)
•受講料- 一般 49,560円 (税込、1名2日間)
- Khronosメンバー 45,000円 (税込、1名2日間)
(1)はじめに(2)ライティング(II)(3)バッファ・オブジェクト(4)拡張:ポイントスプライト(5)拡張:マトリックスパレット(6)テクスチャマッピング(Ⅱ)(7)圧縮テクスチャ(8)ドローテクスチャ
(9)動的キューブマッピング(10)平面反射(11)Dot3バンプマッピングとスペキュラーマッピング(12)ステンシルシャドウ(13)パフォーマンス評価のヒント(14)その他のTips(15)OpenGL ES 2.0の概要 (16)まとめ
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
GLSLシェーダプログラミング• 学習項目
• 到達目標- OpenGL ES 2.0のアーキテクチャを理解する。
- GLSL 1.1を使って作成されたシェーダ・プログラムを理解する事ができる。
- GLSL 1.1を使った簡単なシェーダ・プログラムを作成する事ができる。
• 定員: 12名(先着順)
• 受講料- 一般 99,750円 (税込、1名2日間)
- Khronosメンバー 94,500円 (税込、1名2日間)
1日目:(1) はじめに
(2) OpenGL ES 2.0の基礎
(3) GLSLの文法
(4) バーテックスシェーダ
2日目:
(5) フラグメントシェーダ
(6) 座標系
(7) ライティング
(8) デバッグ方法
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
Android 3Dグラフィックス・ラーニングキット
英語版も販売開始!
• Android上で、組込み用途向け標準3DグラフィックスAPIであるOpenGL ESを使用したプログラミングの基礎を学習します。
•ナレーションとアニメーションによりAndroid SDKの使い方、OpenGL ES APIの詳細、サンプルソースコードの詳細をわかりやすく解説
•直感的なインターフェースで学習項目の選択とキーワード検索が可能•ダウンロード、詳細は http://www.dmprof.com/
‣利用料金: 4,998円(税込)
‣利用期間 : 1年間
‣ページ数: 231ページ
‣再生時間: 約4時間
© 2010 Digital Media Professionals Inc. All rights reserved.Visualize the future
PICA®200 “御影(MIKAGE)” デモンストレーションFuturemark社と共同 開発したPICA®200リアルタイムデモ・コンテンツOpenGL ES 1.1 + 拡張パック + DMP拡張API( )をフルに活用2G
行列パレットスキニング平面反射環境マップ
バンプマップピクセル単位ライティング
ソフトシャドウ・セルフシャドウ表面下散乱
プロシージャルテクスチャポリゴンサブディビジョン
2G
ムービー版ダウンロード:http://www.dmprof.com/