質問: シェーダーを開発したのは誰

OpenGL ES

OpenGL ES（OpenGL for Embedded Systems）は、主に携帯電話などの組み込みシステムで使用されている3次元コンピュータグラフィックス用 API である。
OpenGL ESは、従来から存在する（主にデスクトップPCやワークステーション向けの）クロスプラットフォームなリアルタイム3DグラフィックスAPIである OpenGL のサブセットである。OpenGL ESはオープン仕様でロイヤリティフリーであり、適合試験にパスすれば誰でもOpenGL ES実装を謳えるため、iOSやAndroid 、Symbian OSなどの携帯端末向けオペレーティングシステムで採用されているほか、プレイステーション3やニンテンドー3DSにも採用されており、ゲーム開発でも使用されている。OpenGL と同様にクロノス・グループによって管理されている。
バージョン
OpenGL ES 1.x系には1.0と1.1の2つが存在する。1.x系は、処理が固定されたシェーダー（固定機能シェーダー）のみに対応しており、プログラム可能なシェーディング機能（プログラマブルシェーダー）には対応していない。このため、フラットシェーディングあるいはグーローシェーディングといった、カスタマイズ不可能な頂点単位のシェーディング（陰影計算）や質感表現のみがサポートされている。ハードウェアアクセラレーションがサポートされていない複雑な陰影処理や各種エフェクトなどの高度な特殊効果を実現する場合にはGPU側の支援は受けられなくなるため、でない限りは動作速度は。
OpenGL ES 2.0は、プログラマブルシェーダーに対応した仕様であり、シェーディング言語GLSL ESに対応する一方で固定機能シェーダーは削除されている。OpenGL ES 2.0は1.x系との完全な後方互換性はない。陰影計算・質感表現をプログラマブルシェーダーで記述することによって、GPUによる支援が受けられるようになる。
OpenGL ES 1.0
OpenGL ES 1.0はOpenGL 1.3のサブセットとして2003年に登場した。Symbian OS と Android プラットフォームの公式3DグラフィックスAPIとして採用されている。また、SCEによるOpenGL ES 1.0の拡張版（）がプレイステーション3の公式グラフィックスAPIの１つとしてサポートされている[1]。
OpenGL ES 1.1
OpenGL ES 1.1はOpenGL 1.5のサブセットとして、2004年8月9日に発表。Android 1.6、iPhone、iPod touch、iPad等で広くサポートされている。1.0世代のハードウェアでもドライバーレベルのアップデートで1.1に対応可能とされる。
以下の機能がOpenGL ES 1.0に追加になっている。
バッファオブジェクト
自動ミップマップ生成
拡張テクスチャ処理
頂点スキニング機能
ユーザー定義クリッププレーン
拡張ポイントスプライト、ポイントスプライト配列
静的・動的状態クエリー
テクスチャ描画
新しいコア追加、プロファイル拡張
OpenGL ES 2.0
OpenGL ES 2.0はOpenGL 2.0のサブセットとして2007年に公開された。
iPhoneの3GS以降、iPod Touchの第3世代以降、iPad、Androidのバージョン2.2以降などでサポートされている。
プログラマブルシェーダーステージはバーテックスシェーダー（頂点シェーダー）とフラグメントシェーダー（ピクセルシェーダー）の2つをサポートする。頂点単位やピクセル単位の陰影計算・質感表現の制御がGPUにより支援される。
シェーディング言語はGLSL ES 1.0をサポートする。
なお、本家OpenGLはバージョン4.1でOpenGL ES 2.0プロファイルを扱うことができるようになっている。
WebGL 1.0は、ブラウザ上で利用できるOpenGL ES 2.0の派生規格であるが、細部に違いがある[2]。
OpenGL ES 3.0
OpenGL ES 3.0は2012年に発表された。2.0との後方互換性あり。
DirectX 10 (Direct3D 10) やOpenGL 3.2のジオメトリシェーダーはサポートされないが、マルチレンダーターゲット機能やマルチサンプルアンチエイリアス（MSAA）を標準サポートするようになり、またUniform BlockやTransform FeedbackなどのDirectX 10世代（統合型シェーダーアーキテクチャ世代）の機能を多数サポートする。
シェーディング言語はGLSL ES 3.0をサポートする。
なお、本家OpenGLはバージョン4.3でOpenGL ES 3.0プロファイルを扱うことができるようになっている。
WebGL 2.0は、ブラウザ上で利用できるOpenGL ES 3.0の派生規格であるが、細部に違いがある[3]。
OpenGL ES 3.1
OpenGL ES 3.1は2014年3月17日に発表された。ジオメトリシェーダーおよびDirectX 11 (Direct3D 11) やOpenGL 4.0のテッセレーションシェーダーはサポートされないが、本家OpenGL 4.3で採用されたコンピュートシェーダーなどを導入している[4]。3.0世代のハードウェアでもドライバーレベルのアップデートで3.1に対応可能とされる[5]。
シェーディング言語はGLSL ES 3.1をサポートする。
なお、本家OpenGLはバージョン4.5でOpenGL ES 3.1プロファイルを扱うことができるようになっている。
OpenGL ES 3.2
OpenGL ES 3.2は2015年8月10日に発表された。Google Android Extension Pack (AEP) にて拡張として定義されていた機能[6]、すなわちジオメトリシェーダーおよびテッセレーションシェーダー、そしてテクスチャ圧縮技術であるのサポートが標準化されたほか、本家OpenGL 4シリーズ同等の機能が多数追加される[7]。
シェーディング言語はGLSL ES 3.2をサポートする。
出典

関連項目
OpenGL
GLSL
WebGL
Direct3D
DirectX
Metal (API)
Vulkan (API)
外部リンク
（英語）