首页 > 技术文章 > 如何在 Internet Explorer 11中开启 WebGL

linn 2013-11-05 11:21 原文

原文地址:http://www.hiwebgl.com/?p=1210

 

国外开发者Francois Remy在泄露版Windows Blue附带的Internet Explorer 11中发现,WebGL接口已经封装完成,但功能上还未能开放支持。在这之后,另一名开发者Rafael Rivera继续深入挖掘,竟然发现了在此版本的Internet Explorer 11中开启WebGL支持的方法。

实际上方法简单地称奇。首先你必须已经安装了Windows 8 Blue build 9364和最新的显卡驱动(系统自带的显卡驱动在OpenGL方面支持不足),然后只需要简单地导入以下的注册表脚本即可。

1
2
3
4
5
6
7
8
9
10
11
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:00000000

需要特别值得注意的是其中最后一个FEATURE_WEBGL_HLSL_SHADERS的键值,如果设置为1,那么会让Internet Explorer 11使用IESL代替GLSL作为着色器语言。如果设置为0,则符合先在大多数WebGL应用的习惯。

目前IE 11对WebGL的支持度仍然非常有限,你可以把一下代码另存为HTML文件,然后在IE 11中打开,你会发现网页中出现一片蓝色的区域,而这正代表着网页成功获得了名为“experimental-webgl”的3D绘制上下文——Internet Explorer 11终于支持WebGL了!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<body onload="demo()">
<canvas style="height: 100%; width: 100%" id='webgl' />
</body>
 
<script>
var gl = {};
function demo()
{
  var canvas = document.getElementById("webgl");
  try
  {
    gl = canvas.getContext("experimental-webgl");
  } catch(e) { }
 
  if (gl) {
    gl.clearColor(0, 0.678, 0.937, 1.0);
    gl.clear(gl.COLOR_BUFFER_BIT);
  }
}
</script>

推荐阅读