IE11 で WebGL がサポートされるかもしれない

Posted :

IE11 で WebGL がサポートされるかもしれない。Windows Blue と呼ばれている次期 Windows の情報が出回っていて、それに搭載されている IE11 では、WebGL が動作したという情報がでている。ただし、あくまでも流出したビルドでの話なので、この後このままその通りになるかは確証がないので注意。

Web 上の情報、(Internet Explorer 11’s leaked build (new features) によると…

通常状態の IE11 では、WebGL の API がある、ただし、それらは動作しない (API はこの記事の最後参照)

レジストリーのフラグを切り替えると、WebGL の API が動作するようになる (GPU のドライバーは最新の状態にしておく必要があるらしい)

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl]

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_WEBGL]
"iexplore.exe"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_WEBGL_HLSL_SHADERS]
"iexplore.exe"=dword:00000001

FEATURE_WEBGL_HLSL_SHADERS のフラグにより、シェーダーは GLSL の代わりに IESL (HLSL の制限版) で動くらしい。このフラグを有効にしなければ、シェーダーには GLSL が有効になるらしい。

つまり、ゲーム開発における主要なシェーダーのどちらかを選択できるわけですね。WebGL が動作している様子は以下。

WebGL は既に正式な仕様としてリリースされているし、多くのブラウザーでも実装されているので、IE でもこのまま正式にサポートしてほしいところです。さて、これは IE11 のお話ですが、IE 10 では、自動アップデートがデフォルトで有効になっています。

ですので、現在の IE10 はそのまま IE11 になってくれるはずです(IEAK などで無効にされてなければ)。さらに、WindowsXP のライフサイクルが来年の 4 月で切れるため、今年は現在出回っている WindowsXP が、Windows7 または 8 にリプレイスされていくはずです。これからリプレースされる Windows OS にのっている IE は IE10 でしょうから、IE11 へのオートアップデートともに、WebGL の利用できる環境が大きく広がっていくのではないでしょうか。

該当ビルドの IE11 で有効だった WebGL の API (Internet Explorer 11’s leaked build (new features) より)

canvas, drawingBufferHeight, drawingBufferWidth, activeTexture, attachShader, bindAttribLocation, bindBuffer, bindFramebuffer, bindRenderbuffer, bindTexture, blendColor, blendEquation, blendEquationSeparate, blendFunc, blendFuncSeparate, bufferData, bufferSubData, checkFramebufferStatus, clear, clearColor, clearDepth, clearStencil, colorMask, compileShader, compressedTexImage2D, compressedTexSubImage2D, copyTexImage2D, copyTexSubImage2D, createBuffer, createFramebuffer, createProgram, createRenderbuffer, createShader, createTexture, cullFace, deleteBuffer, deleteFramebuffer, deleteProgram, deleteRenderbuffer, deleteShader, deleteTexture, depthFunc, depthMask, depthRange, detachShader, disable, disableVertexAttribArray, drawArrays, drawElements, enable, enableVertexAttribArray, finish, flush, framebufferRenderbuffer, framebufferTexture2D, frontFace, generateMipmap, getActiveAttrib, getActiveUniform, getAttachedShaders, getAttribLocation, getBufferParameter, getContextAttributes, getError, getExtension, getFramebufferAttachmentParameter, getParameter, getProgramInfoLog, getProgramParameter, getRenderbufferParameter, getShaderInfoLog, getShaderParameter, getShaderPrecisionFormat, getShaderSource, getSupportedExtensions, getTexParameter, getUniform, getUniformLocation, getVertexAttrib, getVertexAttribOffset, hint, isBuffer, isContextLost, isEnabled, isFramebuffer, isProgram, isRenderbuffer, isShader, isTexture, lineWidth, linkProgram, pixelStorei, polygonOffset, readPixels, renderbufferStorage, sampleCoverage, scissor, shaderSource, stencilFunc, stencilFuncSeparate, stencilMask, stencilMaskSeparate, stencilOp, stencilOpSeparate, texImage2D, texParameterf, texParameteri, texSubImage2D, uniform1f, uniform1fv, uniform1i, uniform1iv, uniform2f, uniform2fv, uniform2i, uniform2iv, uniform3f, uniform3fv, uniform3i, uniform3iv, uniform4f, uniform4fv, uniform4i, uniform4iv, uniformMatrix2fv, uniformMatrix3fv, uniformMatrix4fv, useProgram, validateProgram, vertexAttrib1f, vertexAttrib1fv, vertexAttrib2f, vertexAttrib2fv, vertexAttrib3f, vertexAttrib3fv, vertexAttrib4f, vertexAttrib4fv, vertexAttribPointer, viewport, …