opengl:glesemulator
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
opengl:glesemulator [2015/01/26 00:05] – [OpenGL の GL ES Compatibility] oga | opengl:glesemulator [2015/01/26 00:14] – [OpenGL の GL ES Compatibility] oga | ||
---|---|---|---|
行 45: | 行 45: | ||
対象の GPU 機能を再現することが目的です。 | 対象の GPU 機能を再現することが目的です。 | ||
そのため対象ハード相当の機能が再現されており、PVRTC や ATITC など固有の専用テクスチャも読み込める点が特徴です。 | そのため対象ハード相当の機能が再現されており、PVRTC や ATITC など固有の専用テクスチャも読み込める点が特徴です。 | ||
- | 例えば ASTC 対応 GPU はまだ入手できる状態にありませんが、Mali の Emulator を使えば ASTC をロードすることができます。 | + | 例えば ASTC 対応 GPU がなかった時代でも Emulator |
逆に GPU に無い機能は disable されているため、他の OpenGL ES 環境よりも使える機能に制限がかかることがあります。 | 逆に GPU に無い機能は disable されているため、他の OpenGL ES 環境よりも使える機能に制限がかかることがあります。 | ||
行 52: | 行 52: | ||
HOST PC 側のビデオカード (GPU) の影響を受けるため、必ずしもどの環境でも安定して動作するとは限りません。 | HOST PC 側のビデオカード (GPU) の影響を受けるため、必ずしもどの環境でも安定して動作するとは限りません。 | ||
GPU の種類だけでなくドライバのバージョンによって相性問題が生じるので、安定動作を望むならある程度の試行錯誤が必要です。 | GPU の種類だけでなくドライバのバージョンによって相性問題が生じるので、安定動作を望むならある程度の試行錯誤が必要です。 | ||
+ | すべての Emulator が安定して動く環境を探すのは意外に困難です。 | ||
開発用なので、アプリケーションにそのまま組み込んで利用することはできません。 | 開発用なので、アプリケーションにそのまま組み込んで利用することはできません。 | ||
- | |||
- | |||
行 82: | 行 81: | ||
Tegra 2/3/4 は OpenGL ES 3.0 をサポートしないこともあり、更新が止まっているようです。 | Tegra 2/3/4 は OpenGL ES 3.0 をサポートしないこともあり、更新が止まっているようです。 | ||
次の Tegra K1 は OpenGL 4.4 をサポートすると言われており、Emulation する必要がなくなりました。 | 次の Tegra K1 は OpenGL 4.4 をサポートすると言われており、Emulation する必要がなくなりました。 | ||
- | |||
- | |||
- | ====== Angle Project ====== | ||
- | |||
- | Windows の Direct3D 9/11 上に OpenGL ES 2.0 を実装したライブラリです。 | ||
- | OpenGL のドライバがなくても動作できることが特徴となります。 | ||
- | |||
- | * [[https:// | ||
- | |||
- | 例えば 旧 Atom の Z シリーズ (GMA500~ PowerVR SGX 搭載) には OpenGL のドライバがありませんでした。 | ||
- | Angle Project のライブラリを用いることで、OpenGL ES 2.0 用プログラムを実行できるようになります。 | ||
- | (VAIO type P , Windows 7 x86 で確認) | ||
- | |||
- | 使い方は前述の GPU Emulator と全く同じで、libEGL や libGLESv2 を使うだけです。 | ||
- | lib 名や呼び出し規約が同一なので、他の GPU Emulator と入れ替えて使用できます。 | ||
- | |||
- | **注意**: build 時に copy される d3dcompiler_46.dll も必要です。eglInitialize() が失敗する場合は d3dcompiler_46.dll が存在していない可能性があります。 | ||
- | |||
- | |||
- | |||
- | |||
- | build 手順 (VisualStudio 2010~) | ||
- | |||
- | - git でソースを clone | ||
- | - projects/ | ||
- | - build | ||
- | |||
- | そのままだと D3D9 ベースの 32bit 版が作られます。 | ||
- | 64bit ライブラリを build するには下記の手順が必要です。(2014/ | ||
- | |||
- | - Configuration Manager で platform に x64 を追加する。(win32 を元にして新規に作る) | ||
- | - libEGL / libGLESv2 の Property を開く | ||
- | - x64 の Linker → General → Additional Library Directories を開く | ||
- | - path を「~/ | ||
- | |||
- | Direct3D 11 を有効にするにはソース内の define を変更します。 | ||
- | |||
- | * src/ | ||
- | |||
- | この場合 HOST PC が D3D11 対応の場合は D3D11 を利用し、対応していない場合は D3D9 が用いられます。 | ||
- | |||
- | ↓Direct3D 9 で走らせた場合 | ||
- | |||
- | < | ||
- | GL_VERSION: OpenGL ES 2.0 (ANGLE 1.3.d70707b435ef) | ||
- | GL_RENDERER: | ||
- | GL_VENDOR: Google Inc. | ||
- | GL_SHADING_LANGUAGE_VERSION: | ||
- | </ | ||
- | |||
- | ↓Direct3D 11 の場合 | ||
- | |||
- | < | ||
- | GL_VERSION: OpenGL ES 2.0 (ANGLE 1.3.d70707b435ef) | ||
- | GL_RENDERER: | ||
- | GL_VENDOR: Google Inc. | ||
- | GL_SHADING_LANGUAGE_VERSION: | ||
- | </ | ||
- | |||
- | |||
- | Direct3D 11 で動作可能になったことで、現在 OpenGL ES 3.0 への対応も進められているようです。 | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ====== Mesa 3D ====== | ||
- | |||
- | Ubuntu の場合の install 方法 | ||
- | |||
- | < | ||
- | $ sudo apt-get install libgl1-mesa-dev libgles2-mesa-dev mesa-utils-extra | ||
- | </ | ||
- | |||
- | OpenGL ES 2.0 / 3.0 API を利用できます。 | ||
- | ES 3.0 が使えるかどうかは HOST GPU/ | ||
- | 対応しているバージョンを調べるには、mesa-utils-extra に含まれている es2_info コマンドを使います。 | ||
- | ただし llvmpipe はソフトウエアレンダラ。 | ||
- | |||
- | < | ||
- | // Ubuntu 14.04 : VMware Player | ||
- | EGL_CLIENT_APIS: | ||
- | GL_VERSION: OpenGL ES 2.0 Mesa 10.1.0 | ||
- | GL_RENDERER: | ||
- | |||
- | // Ubuntu 14.04 : RADEON HD 6750M | ||
- | EGL_CLIENT_APIS: | ||
- | GL_VERSION: OpenGL ES 3.0 Mesa 10.1.0 | ||
- | GL_RENDERER: | ||
- | |||
- | // Ubuntu 14.04 : Intel HD 4000 | ||
- | EGL_CLIENT_APIS: | ||
- | GL_VERSION: OpenGL ES 3.0 Mesa 10.1.0 | ||
- | GL_RENDERER: | ||
- | GL_EXTENSIONS: | ||
- | </ | ||
- | |||
- | es2_info コマンドは | ||
- | Nexus 7 (2012) 上の Ubuntu 13.04 desktop など、ARM ベースの Linux 上でも使えます。 | ||
- | |||
- | ライブラリは libEGL / libGLESv2 をリンクします。 | ||
- | |||
- | < | ||
- | FLB_LIBFLAGS= -lm -lEGL -lGLESv2 -lX11 | ||
- | </ | ||
行 200: | 行 94: | ||
- | + | ^ GPU ^ OpenGL API ^ ES2 Compatibility | |
- | ^ GPU ^ OpenGL API ^ ES2 Compatibility | + | | GeForce |
- | | GeForce | + | | RADEON |
- | | RADEON | + | | Intel HD Graphics |
- | | Intel HD Graphics | + | |
* Context = EXT_create_context_es2_profile | * Context = EXT_create_context_es2_profile | ||
+ | |||
+ | EGL ではなく WGL や GLX 等の Native API を使いますがそれ以外の API は共通です。 | ||
+ | 安定して動くので、Mobile との共通アプリケーションを走らせる場合に有効です。 | ||
+ | |||
+ | |||
行 349: | 行 247: | ||
define symbol GL_ES が定義されているので、RADEON の方法よりも互換性が高いといえるでしょう。 | define symbol GL_ES が定義されているので、RADEON の方法よりも互換性が高いといえるでしょう。 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ====== Angle Project ====== | ||
+ | |||
+ | Windows の Direct3D 9/11 上に OpenGL ES 2.0 を実装したライブラリです。 | ||
+ | OpenGL のドライバがなくても動作できることが特徴となります。 | ||
+ | |||
+ | * [[https:// | ||
+ | |||
+ | 例えば 旧 Atom の Z シリーズ (GMA500~ PowerVR SGX 搭載) には OpenGL のドライバがありませんでした。 | ||
+ | Angle Project のライブラリを用いることで、OpenGL ES 2.0 用プログラムを実行できるようになります。 | ||
+ | (VAIO type P , Windows 7 x86 で確認) | ||
+ | |||
+ | 使い方は前述の GPU Emulator と全く同じで、libEGL や libGLESv2 を使うだけです。 | ||
+ | lib 名や呼び出し規約が同一なので、他の GPU Emulator と入れ替えて使用できます。 | ||
+ | |||
+ | **注意**: build 時に copy される d3dcompiler_46.dll も必要です。eglInitialize() が失敗する場合は d3dcompiler_46.dll が存在していない可能性があります。 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | build 手順 (VisualStudio 2010~) | ||
+ | |||
+ | - git でソースを clone | ||
+ | - projects/ | ||
+ | - build | ||
+ | |||
+ | そのままだと D3D9 ベースの 32bit 版が作られます。 | ||
+ | 64bit ライブラリを build するには下記の手順が必要です。(2014/ | ||
+ | |||
+ | - Configuration Manager で platform に x64 を追加する。(win32 を元にして新規に作る) | ||
+ | - libEGL / libGLESv2 の Property を開く | ||
+ | - x64 の Linker → General → Additional Library Directories を開く | ||
+ | - path を「~/ | ||
+ | |||
+ | Direct3D 11 を有効にするにはソース内の define を変更します。 | ||
+ | |||
+ | * src/ | ||
+ | |||
+ | この場合 HOST PC が D3D11 対応の場合は D3D11 を利用し、対応していない場合は D3D9 が用いられます。 | ||
+ | |||
+ | ↓Direct3D 9 で走らせた場合 | ||
+ | |||
+ | < | ||
+ | GL_VERSION: OpenGL ES 2.0 (ANGLE 1.3.d70707b435ef) | ||
+ | GL_RENDERER: | ||
+ | GL_VENDOR: Google Inc. | ||
+ | GL_SHADING_LANGUAGE_VERSION: | ||
+ | </ | ||
+ | |||
+ | ↓Direct3D 11 の場合 | ||
+ | |||
+ | < | ||
+ | GL_VERSION: OpenGL ES 2.0 (ANGLE 1.3.d70707b435ef) | ||
+ | GL_RENDERER: | ||
+ | GL_VENDOR: Google Inc. | ||
+ | GL_SHADING_LANGUAGE_VERSION: | ||
+ | </ | ||
+ | |||
+ | |||
+ | Direct3D 11 で動作可能になったことで、現在 OpenGL ES 3.0 への対応も進められているようです。 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ====== Mesa 3D ====== | ||
+ | |||
+ | Ubuntu の場合の install 方法 | ||
+ | |||
+ | < | ||
+ | $ sudo apt-get install libgl1-mesa-dev libgles2-mesa-dev mesa-utils-extra | ||
+ | </ | ||
+ | |||
+ | OpenGL ES 2.0 / 3.0 API を利用できます。 | ||
+ | ES 3.0 が使えるかどうかは HOST GPU/ | ||
+ | 対応しているバージョンを調べるには、mesa-utils-extra に含まれている es2_info コマンドを使います。 | ||
+ | ただし llvmpipe はソフトウエアレンダラ。 | ||
+ | |||
+ | < | ||
+ | // Ubuntu 14.04 : VMware Player | ||
+ | EGL_CLIENT_APIS: | ||
+ | GL_VERSION: OpenGL ES 2.0 Mesa 10.1.0 | ||
+ | GL_RENDERER: | ||
+ | |||
+ | // Ubuntu 14.04 : RADEON HD 6750M | ||
+ | EGL_CLIENT_APIS: | ||
+ | GL_VERSION: OpenGL ES 3.0 Mesa 10.1.0 | ||
+ | GL_RENDERER: | ||
+ | |||
+ | // Ubuntu 14.04 : Intel HD 4000 | ||
+ | EGL_CLIENT_APIS: | ||
+ | GL_VERSION: OpenGL ES 3.0 Mesa 10.1.0 | ||
+ | GL_RENDERER: | ||
+ | GL_EXTENSIONS: | ||
+ | </ | ||
+ | |||
+ | es2_info コマンドは | ||
+ | Nexus 7 (2012) 上の Ubuntu 13.04 desktop など、ARM ベースの Linux 上でも使えます。 | ||
+ | |||
+ | ライブラリは libEGL / libGLESv2 をリンクします。 | ||
+ | |||
+ | < | ||
+ | FLB_LIBFLAGS= -lm -lEGL -lGLESv2 -lX11 | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
opengl/glesemulator.txt · 最終更新: 2015/06/24 16:18 by oga