opengl:platform_3dapi
Platform 毎の 3D API 対応状況
3D API
OS | App 記述言語 | 3D API | Native からの利用 | Shadering 言語 |
---|---|---|---|---|
iOS | Objective-C/Objective-C++/Swift | EAGL / GLK + ES 2.0 / 3.0 / Metal | GLSL 1.0/3.0/Metal | |
Android | Java | Java ES 2.0 / 3.0 / 3.1 Ext | EGL + ES 2.0 / 3.0 / 3.1 Ext | GLSL 1.0/3.0/3.1 |
Windows Phone 8 | C#/C/C++ | XNA/Direct3D11(9_3) | Direct3D11(9_3) | hlsl 3.0 |
PS Mobile | C# | 独自 + Cg | – | Cg |
webOS | HTML5/JavaScript | OpenGL ES 2.0 | GLSL 1.0 | |
Ubuntu Touch | QML/JavaScript/Python/C++ | OpenGL ES 2.0 | GLSL 1.0 | |
Firefox OS | HTML5/JavaScript | WebGL (GLES 2.0) | – | GLSL 1.0 |
Tizen | HTML5/JavaScript/C++ | OpenGL ES 2.0 | GLSL 1.0 |
比較
OS | HOST | App 言語 | Framework | Native SDK | 3D API | Shader Language | Shader Model |
---|---|---|---|---|---|---|---|
iOS | Mac OS X | Objective-C/Objective-C++/Swift | Cocoa | C/C++ | OpenGL ES 2.0/3.0/Metal | GLSL 1.0/3.0/Metal | SM 4.0/5.0 |
Android | Windows/OS X/Linux | Java | Android | C/C++ NDK (jni) | OpenGL ES 2.0/3.0/3.1 AEP | GLSL 1.0/3.0/3.1 | SM 4.0/5.0 |
Windows Phone 8 | Windows 8 x64 | C#/C/C++ | .NET Framework | C/C++ | XNA/Direct3D11(9_3) (*1) | HLSL | SM 3.0 |
PS Mobile | Windows | C# | PS Mobile SDK | – | 独自 + Cg | Cg | SM 3.0 |
webOS | Windows/OS X | HTML5/JavaScript | C/C++ PDK | OpenGL ES 2.0 | GLSL 1.0 | SM 3.0 | |
Ubuntu Touch | Ubuntu | QML/JavaScript/Python/C++ | Qt | C/C++ | OpenGL ES 2.0 | GLSL 1.0 | SM 3.0 |
Firefox OS | HTML5/JavaScript | – | WebGL (GLES 2.0) | GLSL 1.0 | SM 3.0 | ||
Tizen | Windows/OS X/Ubuntu | HTML5/JavaScript/C++ | C/C++ | OpenGL ES 2.0 | GLSL 1.0 | SM 3.0 | |
OS | HOST | App 言語 | Framework | Native SDK | 3D API | Shader Language | Shader Model |
NaCl | Windows/OS X/Linux | C/C++ | C/C++ | OpenGL ES 2.0 | GLSL 1.0 | SM 3.0 | |
WebGL/HTML5 | Browser | HTML5/JavaScript | – | WebGL (GLES 2.0) | GLSL 1.0 | SM 3.0 | |
OS | HOST | App 言語 | Framework | Native SDK | 3D API | Shader Language | Shader Model |
Windows | Windows | C#/C/C++ ~ | .NET Framework | C/C++ | Direct3D11 / OpenGL 4.4 (*2) | HLSL / GLSL ~4.4 | SM 5.0 |
Mac OS X | Mac OS X | Objective-C/Objective-C++ ~ | Cocoa | C/C++ | OpenGL 4.1 | OpenGL ~ 4.1 | SM 5.0 |
Linux | Linux | C/C++ ~ | C/C++ | OpenGL 4.4 (*2) | OpenGL ~ 4.4 | SM 5.0 | |
Chrome OS |
- (*1) Direct3D11 9_3 = API セットは D3D11 だが使える機能は Direct3D9 相当
- (*2) GPU に依存します (Intel HD Graphics : 4.0~4.2、 GeForce: 4.4、RADEON HD : 4.3 )
コード共有化など
C/C++ で書いたコードは多くのプラットフォームに移植可能。 Native Code のサポートは動作速度目的だけでなく、プラットフォームを超えた共通言語としての側面も併せ持っています。 ただし UI など専用 API は C++ から呼び出せないケースがほとんどです。
3D API は一部を除いてほぼ OpenGL ES 2.0 で統一されています。 Native から OpenGL を呼べない場合でも、 GLSL は共有できることになります。
opengl/platform_3dapi.txt · 最終更新: 2015/03/03 21:50 by oga