opengl:glesemulator
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
opengl:glesemulator [2015/01/26 00:11] – [Angle Project] 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 が安定して動く環境を探すのは意外に困難です。 | ||
開発用なので、アプリケーションにそのまま組み込んで利用することはできません。 | 開発用なので、アプリケーションにそのまま組み込んで利用することはできません。 | ||
- | |||
- | |||
行 103: | 行 102: | ||
EGL ではなく WGL や GLX 等の Native API を使いますがそれ以外の API は共通です。 | EGL ではなく WGL や GLX 等の Native API を使いますがそれ以外の API は共通です。 | ||
+ | 安定して動くので、Mobile との共通アプリケーションを走らせる場合に有効です。 | ||
+ | |||
行 246: | 行 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 への対応も進められているようです。 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
opengl/glesemulator.txt · 最終更新: 2015/06/24 16:18 by oga