ユーザ用ツール

サイト用ツール


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