2010/03/13
OpenGL 4.0 / OpenGL 3.3
新しい OpenGL 仕様が発表されました。
・OpenGL Overview
OpenGL 4.0 は一言で言えば Direct3D 11 (DirectX11)。
シェーダーステージも増えテセレータが追加されています。
OpenGL 3.2 がほぼ Direct3D 10 相当でしたが、これで Direct3D との機能差が
一気に無くなりました。
整数演算や倍精度浮動小数演算(double)も D3D11 同様に追加されています。
OpenGL 3.3 は OpenGL 3.2 の拡張版です。まだ機能差を詳しく確認していませんが
Direct3D 10 に対する 10.1 の位置づけでしょうか。
OpenGL 4.0/3.3 共に OpenGL のバージョンとシェーダー言語のバージョン番号が
統一されました。
使う側から見れば D3D11 のスレッド対応や豊富な圧縮テクスチャが使えることは
非常に大きな優位点です。
しかしながら OpenGL 4.0 でもテセレーションなどほぼ同等のことができるように
なっています。モバイル向け OpenGL ES と互換性を取りやすい点を考えると OpenGL は
かなり魅力的な環境になったといえるでしょう。
関連エントリ
・OpenGL GLSL のバージョン
・OpenGL Overview
OpenGL 4.0 は一言で言えば Direct3D 11 (DirectX11)。
シェーダーステージも増えテセレータが追加されています。
OpenGL 3.2 がほぼ Direct3D 10 相当でしたが、これで Direct3D との機能差が
一気に無くなりました。
Direct3D11/DirectX11 OpenGL 4.0 ----------------------------------------------------------------------------- Vertex Shader Vertex Shader (GL_VERTEX_SHADER) Hull Shader Tessellation Control Shader (GL_TESS_CONTROL_SHADER) Domain Shader Tessellation Evaluation Shader (GL_TESS_EVALUATION_SHADER) Geometry Shader Geometry Shader (GL_GEOMETRY_SHADER) Pixel Shader Fragment Shader (GL_FRAGMENT_SHADER) Compute Shader OpenCL
整数演算や倍精度浮動小数演算(double)も D3D11 同様に追加されています。
OpenGL 3.3 は OpenGL 3.2 の拡張版です。まだ機能差を詳しく確認していませんが
Direct3D 10 に対する 10.1 の位置づけでしょうか。
OpenGL 4.0/3.3 共に OpenGL のバージョンとシェーダー言語のバージョン番号が
統一されました。
OpenGL 2.0 GLSL 1.1 vsh, fsh OpenGL 2.1 GLSL 1.2 vsh, fsh OpenGL 3.0 GLSL 1.3 vsh, fsh OpenGL 3.1 GLSL 1.4 vsh, fsh OpenGL 3.2 GLSL 1.5 vsh, fsh, gsh OpenGL 3.3 GLSL 3.3 vsh, fsh, gsh OpenGL 4.0 GLSL 4.0 vsh, fsh, gsh, tcsh, tesh tcsh= Tessellation Control Shader tesh= Tessellation Evaluation Shader
使う側から見れば D3D11 のスレッド対応や豊富な圧縮テクスチャが使えることは
非常に大きな優位点です。
しかしながら OpenGL 4.0 でもテセレーションなどほぼ同等のことができるように
なっています。モバイル向け OpenGL ES と互換性を取りやすい点を考えると OpenGL は
かなり魅力的な環境になったといえるでしょう。
関連エントリ
・OpenGL GLSL のバージョン
2010/03/12
Android NDK r3 と OpenGL ES 2.0
Android もついに OpenGL ES 2.0 対応となりました。
・Download the Android NDK
嬉しいのは NDK による正式対応という点。他のプラットフォームで開発していた
C/C++ のコードを移植できます。OpenGL ES 2.0 を使ったゲームエンジンなどを
そのまま共有できるようになったわけです。
モバイル系の 3D API はほぼ OpenGL ES 2.0 へ集中していますが、アプリケーション
の記述言語はプラットフォーム毎に異なっていました。
Palm Pre でも同様に PDK による C/C++ と OpenGL ES 1.1/2.0 対応が発表されている
ようです。
・Plug-in Development
OpenGL ES と同じように、C/C++ が共通で使える言語となっています。
Windows Phone 7 はどうなるでしょうか。
関連エントリ
・OpenGL を Direct3D 互換で使う
・Download the Android NDK
嬉しいのは NDK による正式対応という点。他のプラットフォームで開発していた
C/C++ のコードを移植できます。OpenGL ES 2.0 を使ったゲームエンジンなどを
そのまま共有できるようになったわけです。
モバイル系の 3D API はほぼ OpenGL ES 2.0 へ集中していますが、アプリケーション
の記述言語はプラットフォーム毎に異なっていました。
Platform OS アプリ記述言語 C/C++対応 3D API ------------------------------------------------------------------------------- iPhone/iPod touch iPhoneOS Objective-C/C++ C/C++ OpenGL ES 1.1/2.0 Android Android Java(dalvik) NDK C/C++ OpenGL ES 1.1/2.0 Palm Pre WebOS JavaScript PDK C/C++ OpenGL ES 1.1/2.0 Windows Phone 7 WindowsCE6 C# ? ?
Palm Pre でも同様に PDK による C/C++ と OpenGL ES 1.1/2.0 対応が発表されている
ようです。
・Plug-in Development
OpenGL ES と同じように、C/C++ が共通で使える言語となっています。
Windows Phone 7 はどうなるでしょうか。
関連エントリ
・OpenGL を Direct3D 互換で使う
2010/02/28
Dirct3D Mobile DeviceCaps 更新
Hybrid W-ZERO3 (WS027SH) と SC-01B の d3dmcaps 情報を送っていただいたので
更新しました。
・Direct3D Mobile DeviceCaps 一覧
SHARP Hybrid W-ZORO3 (WS027SH) は Qualcomm MSM7200A を搭載しており ATI 製
GPU core によるアクセラレータが有効となっていました。
・WILLCOM HYBRID W-ZERO3
機能も TouchDiamond 等、MSM7201A 内蔵 GPU に非常によく似ていることがわかります。
CPU も同じ ARM11 だしほぼ同等の機能&性能ではないかと考えられます。
特筆すべき点としては ZERO3 系で初めて 3Dアクセラレータを搭載したということ。
Qualcomm の MSM 系は採用機種も多く珍しい存在ではありませんが、3G 機能のおかげで
ZERO3 も 3D や GPS など他のスマートフォンと同等の機能が使えるようになりました。
docomo の SC-01B は d3dmcpas を見る限りハードウエアアクセラレータが無効と
なっているようです。ところが調べてみると、搭載されている S3C6410 自体は
高機能なことがわかります。
・SAMSUNG SC-01B
3D アクセラレータが載っており、OpenGL ES 2.0 対応なのでおそらく Shader も
使えるはずです。Direct3D Mobile に対応していないのは残念ですが、OpenGL ES なら
ハードウエアアクセラレータが使えるかもしれません。
CPU 自体も ARM11 core ながら 1176ZJF なので VFP がついています。
さすがに最新の Snapdragon 等 ARM v7+GL ES 2.0 系と比較するのは酷ですが
VFP や OpenGL ES 2.0 対応など全体的に Qualcomm MSM7~ 系より上だと感じました。
S3C6410 は SmartQ5 にも使われているようです。
更新しました。
・Direct3D Mobile DeviceCaps 一覧
SHARP Hybrid W-ZORO3 (WS027SH) は Qualcomm MSM7200A を搭載しており ATI 製
GPU core によるアクセラレータが有効となっていました。
・WILLCOM HYBRID W-ZERO3
機能も TouchDiamond 等、MSM7201A 内蔵 GPU に非常によく似ていることがわかります。
CPU も同じ ARM11 だしほぼ同等の機能&性能ではないかと考えられます。
特筆すべき点としては ZERO3 系で初めて 3Dアクセラレータを搭載したということ。
Qualcomm の MSM 系は採用機種も多く珍しい存在ではありませんが、3G 機能のおかげで
ZERO3 も 3D や GPS など他のスマートフォンと同等の機能が使えるようになりました。
docomo の SC-01B は d3dmcpas を見る限りハードウエアアクセラレータが無効と
なっているようです。ところが調べてみると、搭載されている S3C6410 自体は
高機能なことがわかります。
・SAMSUNG SC-01B
3D アクセラレータが載っており、OpenGL ES 2.0 対応なのでおそらく Shader も
使えるはずです。Direct3D Mobile に対応していないのは残念ですが、OpenGL ES なら
ハードウエアアクセラレータが使えるかもしれません。
CPU 自体も ARM11 core ながら 1176ZJF なので VFP がついています。
さすがに最新の Snapdragon 等 ARM v7+GL ES 2.0 系と比較するのは酷ですが
VFP や OpenGL ES 2.0 対応など全体的に Qualcomm MSM7~ 系より上だと感じました。
S3C6410 は SmartQ5 にも使われているようです。
2010/02/20
NetWalker PC-Z1 のその後と OpenGL ES 2.0 Emulator
NetWalker は OpenGL ES 2.0 テスト機として活躍しています。
解像度が高いのでフルスクリーンだと遅いけどシェーダーもきちんと動くし、
コンパイルは遅いけど自分でビルドできるのですっかり開発用になってしまいました。
GPU だけでなく ARM Cortex-A8 のテストにも良い感じで使えます。
NetWalker に使われている Freescale i.MX515 の GPU は AMD (ATI) Z430 です。
未確認ですが、おそらく Snapdragon 系 (QSD8250等) に使われているものと同じだと
思われます。ただし CPU core は同じ ARM v7 世代ですが異なるものです。
どれも ARM v7 で OpenGL ES 2.0 対応です。
Cortex-A8 は VFP が低速なので、速度を優先する場合はたとえスカラーであっても
積極的に NEON 命令を用いる必要があります。(参考)
Scorpion の VFP/NEON の場合は、果たしてどのような特性を示すでしょうか。
ほぼ 2択となった Desktop と違い、Mobile 向け GPU はまだまだ種類が豊富です。
それぞれ GPU 毎に各社から OpenGL ES 2.0 Emulator が提供されているようです。
ARM 製, NVIDIA 製のものもありました。
・AMD OpenGL ES Emulator
・Imagination POWERVR Insider
・ARM mali Developer Center OpenGL ES 2.0 Emualtor
・NVIDIA Developer Zone Tegra 250 Developer SDK
関連エントリ
・ARM Cortex-A8 の NEON と浮動小数演算最適化
・OpenGL ES 2.0 Emulator
・Direct3D Mobile と T-01A の Snapdragon
解像度が高いのでフルスクリーンだと遅いけどシェーダーもきちんと動くし、
コンパイルは遅いけど自分でビルドできるのですっかり開発用になってしまいました。
GPU だけでなく ARM Cortex-A8 のテストにも良い感じで使えます。
NetWalker に使われている Freescale i.MX515 の GPU は AMD (ATI) Z430 です。
未確認ですが、おそらく Snapdragon 系 (QSD8250等) に使われているものと同じだと
思われます。ただし CPU core は同じ ARM v7 世代ですが異なるものです。
NetWalker iPhone 3GS Nexus One他
i.MX515 S5PC100 QSD8250 (Snapdragon)
GPU ATI Z430 PVR SGX535 ATI Z430
CPU Cortex-A8 Cortex-A8 Scorpion
どれも ARM v7 で OpenGL ES 2.0 対応です。
Cortex-A8 は VFP が低速なので、速度を優先する場合はたとえスカラーであっても
積極的に NEON 命令を用いる必要があります。(参考)
Scorpion の VFP/NEON の場合は、果たしてどのような特性を示すでしょうか。
ほぼ 2択となった Desktop と違い、Mobile 向け GPU はまだまだ種類が豊富です。
それぞれ GPU 毎に各社から OpenGL ES 2.0 Emulator が提供されているようです。
ARM 製, NVIDIA 製のものもありました。
・AMD OpenGL ES Emulator
・Imagination POWERVR Insider
・ARM mali Developer Center OpenGL ES 2.0 Emualtor
・NVIDIA Developer Zone Tegra 250 Developer SDK
関連エントリ
・ARM Cortex-A8 の NEON と浮動小数演算最適化
・OpenGL ES 2.0 Emulator
・Direct3D Mobile と T-01A の Snapdragon
2010/02/07
DirectX SDK February 2010
DirectX SDK Feb10 がリリースされました。
・DirectX SDK February 2010
前回 August 2009 で Direct3D 11 が RTM したためあまり大きな変更が無いようです。
Direct3D の core 部分はもちろん変更なし。
D3D 周りはライブラリやツール更新が中心で DLL 番号も変わっていませんでした。
SDK 付属のドキュメント(マニュアル) Windows DirectX Graphics Documentation
に至っては August 2009 のまま。
ドキュメントに Direct3D 9, 10, 11 と 3バージョン併記されている状態はいつまで
続くのでしょうか。10,11 が FueatureLevel によって Direct3D 9 仕様を取り込んだ
ため、従来であれば刷新されていてもおかしくはない状態です。
Windows7 の普及次第かもしれません。
今後 Direct3D 11 対応のツールやドライバが増えてくれることを願うばかりです。
関連エントリ
・DirectX SDK August 2009 の解説と Direct3D 11 RTM
・DirectX SDK February 2010
前回 August 2009 で Direct3D 11 が RTM したためあまり大きな変更が無いようです。
Direct3D の core 部分はもちろん変更なし。
D3D 周りはライブラリやツール更新が中心で DLL 番号も変わっていませんでした。
SDK 付属のドキュメント(マニュアル) Windows DirectX Graphics Documentation
に至っては August 2009 のまま。
ドキュメントに Direct3D 9, 10, 11 と 3バージョン併記されている状態はいつまで
続くのでしょうか。10,11 が FueatureLevel によって Direct3D 9 仕様を取り込んだ
ため、従来であれば刷新されていてもおかしくはない状態です。
Windows7 の普及次第かもしれません。
今後 Direct3D 11 対応のツールやドライバが増えてくれることを願うばかりです。
関連エントリ
・DirectX SDK August 2009 の解説と Direct3D 11 RTM
| 次のページ(日付が古い方向)>>