IE11（2013年10月）における WebGL 対応状況

> IE11 Preview 版における WebGL 対応状況 
> http://qiita.com/cx20/items/7083218cdd6d70744b94

以前（3か月ほど前）に IE11 Developer Preview 版における WebGL の対応状況について調べましたが、
9月に Release Preview 版が公開され、10月にアップデートが行われていた為、再度、WebGL の対応状況について確認してみました。

WebGL の対応状況については、以下のサイトにて行いました。

> ■ Device Initialization - Samples - Turbulenz Engine
> http://biz.turbulenz.com/sample_assets/device_initialization.canvas.release.html

|テストに使用したブラウザ|バージョン|
|:------------|:--------:|
|Windows 7 + Chrome 30|30.0.1599.101 m|
|Windows 7 + Firefox 24|24.0|
|Windows 7 + IE11 Developer Preview|11.0.9431.0|
|Windows 7 + IE11 Release Preview|11.0.9600.16411|

|項目        |Chrome 30|Firefox 24|IE11 Developer Preview|IE11 Release Preview|
|:-----------|:-------:|:---------:|:---------:|:---------:|
|Vendor|WebKit|Mozilla|Microsoft|Microsoft|
|Renderer|WebKit WebGL|Mozilla|Internet Explorer|Internet Explorer|
|Renderer Version|WebGL 1.0|WebGL 1.0|WebGL 0.9|**WebGL 0.92**|
|Shading Language Version|WebGL GLSL ES 1.0|WebGL GLSL ES 1.0|WebGL GLSL ES 0.9|**WebGL GLSL ES 0.92**|
|Video Ram|0 MB|0 MB|0 MB|0 MB|
|OCCLUSION_QUERIES|false|false|false|false|
|NPOT_MIPMAPPED_TEXTURES|false|false|false|false|
|TEXTURE_DXT1|true|true|false|false|
|TEXTURE_DXT3|true|true|false|false|
|TEXTURE_DXT5|true|true|false|false|
|TEXTURE_ETC1|false|false|false|false|
|INDEXFORMAT_UINT|true|false|false|false|
|ANISOTROPY|16|16|1|**16**|
|TEXTURE_SIZE|16384|16384|16384|16384|
|CUBEMAP_TEXTURE_SIZE|16384|16384|16384|16384|
|3D_TEXTURE_SIZE|0|0|0|0|
|RENDERTARGET_COLOR_TEXTURES|1|1|1|1|
|RENDERBUFFER_SIZE|16384|16384|16384|16384|
|FILEFORMAT_WEBM|true|true|false|false|
|FILEFORMAT_MP4|true|true|true|true|
|FILEFORMAT_JPG|true|true|true|true|
|FILEFORMAT_PNG|true|true|true|true|
|FILEFORMAT_DDS|true|true|true|true|
|FILEFORMAT_TGA|true|true|true|true|
|[WebGL Extensions](http://www.khronos.org/registry/webgl/extensions/)|11個|7個|-|**2個**|

|WebGL Extensions 項目|Chrome 30|Firefox 24|IE11 Developer Preview|IE11 Release Preview|
|:-----------|:-------:|:---------:|:---------:|:---------:|
|[ANGLE_instanced_arrays](http://www.khronos.org/registry/webgl/extensions/ANGLE_instanced_arrays/)                |  |  |  |  |
|[EXT_texture_filter_anisotropic](http://www.khronos.org/registry/webgl/extensions/EXT_texture_filter_anisotropic/)|△|○|  |○(New)|
|[OES_element_index_uint](http://www.khronos.org/registry/webgl/extensions/OES_element_index_uint/)                |○|○|  |  |
|[OES_standard_derivatives](http://www.khronos.org/registry/webgl/extensions/OES_standard_derivatives/)            |○|○|  |  |
|[OES_texture_float](http://www.khronos.org/registry/webgl/extensions/OES_texture_float/)                          |○|○|  |○(New)|
|[OES_texture_float_linear](http://www.khronos.org/registry/webgl/extensions/OES_texture_float_linear/)            |○|○|  |  |
|[OES_texture_half_float](http://www.khronos.org/registry/webgl/extensions/OES_texture_half_float/)                |○|  |  |  |
|[OES_texture_half_float_linear](http://www.khronos.org/registry/webgl/extensions/OES_texture_half_float_linear/)  |○|  |  |  |
|[OES_vertex_array_object](http://www.khronos.org/registry/webgl/extensions/OES_vertex_array_object/)              |○|  |  |  |
|[WEBGL_compressed_texture_s3tc](http://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/)  |△|○|  |  |
|[WEBGL_debug_renderer_info](http://www.khronos.org/registry/webgl/extensions/WEBGL_debug_renderer_info/)          |  |  |  |  |
|[WEBGL_debug_shaders](http://www.khronos.org/registry/webgl/extensions/WEBGL_debug_shaders/)                      |  |  |  |  |
|[WEBGL_depth_texture](http://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/)                      |△|  |  |  |
|[WEBGL_lose_context](http://www.khronos.org/registry/webgl/extensions/WEBGL_lose_context/)                        |○|○|  |  |
（※ **太字**は変更箇所です。「○」はベンダー接頭辞「なし」、「△」はベンダー接頭辞「あり」を表しています。）

以下は、[wgld.org](http://wgld.org/) さんの所のサンプルでの動作確認結果です。

> ■ WebGL 開発支援サイト wgld.org
> http://wgld.org/

|WebGL サンプル|Chrome 30|Firefox 24|IE 11 Developer Preview|IE 11 Release Preview|
|:-------|:-------:|:--------:|:-----------:|:-----------:|
|[WebGL のコンテキストを取得し初期化するサンプル](http://wgld.org/s/sample_001 )|○|○|○|○|
|[三角形ポリゴンをレンダリングするサンプル](http://wgld.org/s/sample_002 )|○|○|○|○|
|[頂点色を付加してポリゴンをレンダリングするサンプル](http://wgld.org/s/sample_003 )|○|○|○|○|
|[複数モデルをレンダリングするサンプル](http://wgld.org/s/sample_004 )|○|○|○|○|
|[モデルを移動・回転・拡大縮小しながらレンダリングするサンプル](http://wgld.org/s/sample_005 )|○|○|○|○|
|[インデックスバッファ( IBO )を使ったレンダリングのサンプル](http://wgld.org/s/sample_006 )|○|○|○|○|
|[カリングと深度テストを利用したサンプル](http://wgld.org/s/sample_007 )|○|○|○|○|
|[立体モデル(トーラス)を描画するサンプル](http://wgld.org/s/sample_008 )|○|○|○|○|
|[トーラスを平行光源によるライティングで描画するサンプル](http://wgld.org/s/sample_009 )|○|○|○|○|
|[トーラスを拡散光と環境光によるライティングで描画するサンプル](http://wgld.org/s/sample_010 )|○|○|○|○|
|[トーラスを拡散光と環境光、反射光によるライティングで描画するサンプル](http://wgld.org/s/sample_011 )|○|○|○|○|
|[トーラスをフォンシェーディングで描画するサンプル](http://wgld.org/s/sample_012 )|○|○|○|○|
|[トーラスと球を点光源によるライティングで描画するサンプル](http://wgld.org/s/sample_013 )|○|○|○|○|
|[四角形ポリゴンをテクスチャを使って描画するサンプル](http://wgld.org/s/sample_014 )|○|○|○|○|
|[マルチテクスチャを使って描画するサンプル](http://wgld.org/s/sample_015 )|○|○|○|○|
|[テクスチャパラメータを変化させながら描画するサンプル](http://wgld.org/s/sample_016 )|○|○|○|○|
|[アルファブレンディングを有効にしてレンダリングするサンプル](http://wgld.org/s/sample_017 )|○|○|○|○|
|[ブレンドファクターを変化させながらレンダリングするサンプル](http://wgld.org/s/sample_018 )|○|○|○|○|
|[minMatrixb.js でクォータニオンを使うサンプル](http://wgld.org/s/sample_019 )|○|○|○|○|
|[マウス座標を取得してモデルを回転させるサンプル](http://wgld.org/s/sample_020 )|○|○|○|○|
|[クォータニオンによる球面線形補間を用いたサンプル](http://wgld.org/s/sample_021 )|○|○|○|○|
|[クォータニオンでビルボードを実装するサンプル](http://wgld.org/s/sample_022 )|○|○|○|○|
|[点や線をレンダリングするサンプル](http://wgld.org/s/sample_023 )|○|○|○|○|
|[ポイントスプライトを使ってレンダリングするサンプル](http://wgld.org/s/sample_024 )|○|○|○|○|
|[ステンシルバッファを使ってレンダリングするサンプル](http://wgld.org/s/sample_025 )|○|○|○|○|
|[ステンシルバッファでアウトラインをレンダリングするサンプル](http://wgld.org/s/sample_026 )|○|○|○|○|
|[フレームバッファを使ってテクスチャへオフスクリーンレンダリングするサンプル](http://wgld.org/s/sample_027 )|○|○|○|○|
|[ブラーフィルターによるぼかし処理を行なうサンプル](http://wgld.org/s/sample_028 )|○|○|×|○(New)|
|[バンプマッピングを行なうサンプル](http://wgld.org/s/sample_029 )|○|○|○|○|
|[視差マッピングを行なうサンプル](http://wgld.org/s/sample_030 )|○|○|○|○|
|[キューブ環境マッピングによるレンダリングを行なうサンプル](http://wgld.org/s/sample_031 )|○|○|○|○|
|[キューブ環境バンプマッピングによるレンダリングを行なうサンプル](http://wgld.org/s/sample_032 )|○|○|○|○|
|[屈折マッピングによるレンダリングを行なうサンプル](http://wgld.org/s/sample_033 )|○|○|○|○|
|[動的キューブマッピングによるレンダリングを行なうサンプル](http://wgld.org/s/sample_034 )|○|○|○|○|
|[トゥーンレンダリングを行なうサンプル](http://wgld.org/s/sample_035 )|○|○|○|○|
|[射影テクスチャマッピングを行なうサンプル](http://wgld.org/s/sample_036 )|○|○|×|×|
|[光学迷彩でトーラスをレンダリングするサンプル](http://wgld.org/s/sample_037 )|○|○|×|×|
|[シャドウマッピングを行なうサンプル](http://wgld.org/s/sample_038 )|○|○|×|×|
|[高解像度シャドウマップを行なうサンプル](http://wgld.org/s/sample_039 )|○|○|×|×|
|[グレイスケール変換を行なうサンプル](http://wgld.org/s/sample_040 )|○|○|×|○(New)|
|[セピア調変換を行なうサンプル](http://wgld.org/s/sample_041 )|○|○|×|○(New)|
|[sobel フィルタ適用するサンプル](http://wgld.org/s/sample_042 )|○|○|×|○(New)|
|[laplacian フィルタ適用するサンプル](http://wgld.org/s/sample_043 )|○|○|×|○(New)|
|[gaussian フィルタ適用するサンプル](http://wgld.org/s/sample_044 )|○|○|×|○(New)|
|[グレアフィルタを適用するサンプル](http://wgld.org/s/sample_045 )|○|○|×|○(New)|
|[被写界深度によるレンダリングのサンプル](http://wgld.org/s/sample_046 )|○|○|×|○(New)|
|[距離フォグを適用したレンダリングのサンプル](http://wgld.org/s/sample_047 )|○|○|×|○(New)|
|[パーティクルフォグを適用したレンダリングのサンプル](http://wgld.org/s/sample_050 )|○|○|×|×|
|[ステンシル鏡面反射を適用したレンダリングのサンプル](http://wgld.org/s/sample_051 )|○|○|○|○|
|[半球ライティングを適用したレンダリングのサンプル](http://wgld.org/s/sample_052 )|○|○|○|○|
|[リムライティングを適用したレンダリングのサンプル](http://wgld.org/s/sample_053 )|○|○|○|○|

IE11（2013年10月更新版）にて、フィルター系の機能が使えるようになっているようです。

IE11 を標準ブラウザとする Windows 8.1 が正式リリースされた為、IE11 への機能追加は行わないのかと思っていましたが、少しずつ、機能追加が行われているようです。

参考までに、IE11 における、WebGL API の未実装関数の一覧を作成してみました。
（一覧情報を作成するにあたって、[WebGL API 仕様](https://www.khronos.org/registry/webgl/specs/1.0/) と、[IE11 WebGL API Method](http://msdn.microsoft.com/en-us/library/ie/dn302341(v=vs.85).aspx) を比較をしました。）
もしかしたら、そう遠くない時期に、これらの未実装関数が実装されるのかも知れません（だとうれしいのですが。。。）

|関数名           |IE11 Developer Preview|IE11 Release Preview  |
|:----------------|:--------------------:|:--------------------:|
|bindAttribLocation     |×|○(New)|
|blendColor             |×|×|
|bufferSubData          |×|○(New)|
|clearStencil           |×|×|
|colorMask              |×|○(New)|
|compressedTexImage2D   |×|×|
|compressedTexSubImage2D|×|×|
|deleteBuffer           |×|○(New)|
|deleteProgram          |×|○(New)|
|deleteRenderbuffer     |×|○(New)|
|deleteShader           |×|○(New)|
|deleteTexture          |×|○(New)|
|detachShader           |×|○(New)|
|finish                 |×|×|
|flush                  |×|×|
|getProgramInfoLog      |×|○(New)|
|hint                   |×|×|
|isBuffer               |×|○(New)|
|isContextLost          |×|○(New)|
|isFramebuffer          |×|○(New)|
|isProgram              |×|○(New)|
|isRenderbuffer         |×|○(New)|
|isShader               |×|○(New)|
|isTexture              |×|○(New)|
|lineWidth              |×|×|
|sampleCoverage         |×|×|
|stencilFunc            |×|×|
|stencilFuncSeparate    |×|×|
|stencilMask            |×|×|
|stencilMaskSeparate    |×|×|
|stencilOp              |×|×|
|stencilOpSeparate      |×|×|
|validateProgram        |×|○(New)|
|vertexAttrib1f         |×|×|
|vertexAttrib1fv        |×|×|
|vertexAttrib2f         |×|×|
|vertexAttrib2fv        |×|×|
|vertexAttrib3f         |×|×|
|vertexAttrib3fv        |×|×|
|vertexAttrib4f         |×|×|
|vertexAttrib4fv        |×|×|

なお、IE11 Release Preview は以下のサイトよりダウンロード可能となっています。
（Windows 7/Windows Server 2008 R2 にて利用可能です。） 

> ■ Internet Explorer 11 Release Preview のダウンロード - Microsoft Windows
> http://windows.microsoft.com/ja-jp/internet-explorer/ie-11-worldwide-languages