您现在的位置:首页 >> 家电科技 >> 内容

Internet Explorer 11中将支持开启WebGL功能

时间:2013/4/1 13:20:51 点击:

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

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

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了!

<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>

下面附上IE 11运行LearningWebGL教程第15课实例的视频:

回顾过去,自从WebGL这项新的网页图形规范提出伊始,微软就从未表露出喜色。在2011年6月,微软更是雇佣一家欧洲安全机构对WebGL提出最强烈的质疑,认为让网页直接暴露给GPU是非常危险的行为。如果真要认真地从技术上讲,微软当时主要发难于跨域资源、DoS攻击以及直接操控GPU。

虽然作为一个刚刚诞生的技术标准,WebGL的确有很多路要走,但是如此兴师动众的指责让很多对这项新技术充满希望的开发者感到微软有些过分。当时开发者普遍认为微软对于WebGL的指责不是从技术角度出发的,而是完全出于商业目的。著名的WebGL开发者和布道师Gregg Tavares更是祭出一篇题目直接带着脏字的战斗檄文直斥微软。参见:《WebGL Security and Microsoft Bullshit》

在震惊业界的斥责之后,WebGL工作组把工作重心转移到了致力于解决安全问题上,一直到今天Khronos Group在GDC 2013上最新公布的WebGL 1.0.2标准中还是把安全放在了首位。

随后在2012年,微软指责WebGL的多项安全软肋都已经取得了极为有效的解决进展:现在CORS已经可以有效的解决跨域资源的问题;而许多厂商也已经部署了GL_ARB_robustness扩展来解决DoS攻击问题,并且WebGL工作组还在继续寻找其他的解决办法。至于直接操控GPU的问题,则是无法避免的,只要一种技术可以直接与GPU对话都会造成一定程度的安全威胁,在2011年于墨尔本召开的一次技术大会上,有人用相同的原理在 Microsoft Silverlight 5、Adobe Flash 11和WebGL上实现了同样的漏洞攻击。

尽管微软仍然对WebGL持抗拒态度,但是在2011年8月举办的Siggraph 2011上,却爆出IE 10即将支持Typed Array(类型化数组)的消息。微软拒绝了WebGL,但却抵不住诱惑,引进了因为WebGL才诞生的Typed Array,这项技术允许开发者直接在Web上操控二进制数据。2011年12月1日,微软IE官方博客发表了一片名为《 Working with Binary Data using Typed Arrays》的文章,正式为 IE10 引进了Type Array。

时光荏苒,微软此后在多个场合多次被问到关于WebGL的问题,但微软发言人永远都是微笑的避而不答,当然有时候也会重复一下安全问题这个老梗。

2012年3月6日,在香港举办的World Internet Developers’ Summit活动中,微软高级布道师Giorgio Sardo做了《切绳子游戏的幕后故事》的演讲,在提问环节中有人提出IE将会在什么时候支持WebGL的问题,他的回答是“Not now”。令人感动的是他没直接说“never”实在是太给面子了。

随着WebGL的日渐成熟,越来越多的WebGL实例和应用脱引而出,微软逐渐意识到了不管他们是否要支持WebGL,他们现在缺乏一种网页图形技术来让自己的浏览器在网页视觉领域和Mozilla、Google、Opera来抗衡。

2012年11月,CNET 的记者 Shankland 采访了微软网络标准工作组的领导人、同时也是 W3C HTML 工作组的联合主席 Paul Cotton。他依然用安全问题作为挡箭牌,但是却破天荒指出IE团队对开发者关于IE缺乏图形API的诟病深表理解,他说:“我们依然坚持对 WebGL 的安全问题表示担忧。如果要我们支持 WebGL,那么就必须毫无余地的解决这些安全问题。从 IE8、IE9 到 IE10,每次我们宣布添加新的特性的时候,都会有人反馈要求支持其他功能,而在这些人们呼吁的功能中 WebGL 绝对是位居前五位的。我们对 IE 博客上的留言非常清楚,也很明白现在的状况。在 Web 上开发可交互的 3D 图形的确很棒。如果我们可以解决安全问题,那我想我们会认真地寻找一种为 Web 引入 3D 图形的方法!

此后,Windows Blue泄露,开发者意外发现IE 11已经封装好WebGL接口,并且可以通过注册表开启支持,这样才有了本文开头的一幕。

这正是四年盘踞龙虎斗,微软终将入大流!欢迎IE 11加入WebGL大家庭!

 来源:网络
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:

原创新闻
本类推荐
  • 没有
  • 红榜家电网(hbea3w.com) © 2019 版权所有 All Rights Reserved.

  • 冀ICP备1008645号 站长QQ:1628745004 / 1010435635
  • Powered by hbea3w V3.0sp1
  • 香港黄大仙解签124期 奇台县| 云霄县| 新蔡县| 文成县| 准格尔旗| 丹江口市| 雷州市| 新绛县| 工布江达县| 西乡县| 娄底市| 寿光市| 连平县| 楚雄市| 大宁县| 云梦县| 皋兰县| 水城县| 嘉定区| 绥棱县| 陈巴尔虎旗| 孙吴县| 吉首市| 三亚市| 榆树市| 老河口市| 峨边| 邢台县| 绵阳市| 松潘县| 关岭| 博乐市| 苍南县| 高陵县| 修武县| 彩票| 山西省| 洱源县| 吴江市| 常山县| 筠连县| 昆山市| 泉州市| 越西县| 华宁县| 庐江县| 建德市| 苗栗市| 宁南县| 芦溪县| 兴隆县| 九龙坡区| 贡山| 屯门区| 固阳县| 运城市| 平江县| 桦南县| 车险| 虞城县| 景谷| 丹寨县| 甘肃省| 顺昌县| 台南市| 荣成市| 博爱县| 蓬莱市| 孟州市| 鄄城县| 长宁区| 卓资县| 萝北县| 南宫市| 贺州市| 洛阳市| 无棣县| 太白县| 松滋市| 宁晋县| 鄂托克旗| 延津县| 定边县| 柞水县| 长顺县| 府谷县| 宜宾县| 阳信县| 富锦市| 娱乐| 孟州市| 龙游县| 霍城县| 横峰县| 临潭县| 德化县| 大足县| 迭部县| 崇明县| 乐安县| 武夷山市| 昌黎县| 西和县| 射洪县| 万全县| 自治县| 崇信县| 项城市| 景洪市| 泽州县| 辽宁省| 梁山县| 郴州市| 马尔康县| 海南省| 长垣县| 连城县| 西丰县| 云林县| 鹤山市| 龙口市| 新民市| 西华县| 曲麻莱县| 余姚市| 罗山县| 永胜县| 安多县| 道真| 台江县| 凤冈县| 德格县| 湘阴县| 乌兰察布市| 永年县| 炉霍县| 黑河市| 广水市| 唐海县| 宁阳县| 电白县| 筠连县| 定结县| 拉萨市| 大荔县| 理塘县| 会理县| 石阡县| 山东省| 兴隆县| 博罗县| 尚志市| 青神县| 彰化市| 仪征市| 化州市| 遵义市| 拉萨市| 米脂县| 勐海县| 重庆市| 阳春市| 韶关市| 额尔古纳市| 安阳市| 曲麻莱县| 新泰市| 新余市| 历史| 通城县| 岳西县| 朝阳区| 广东省| 老河口市| 霍邱县| 自贡市| 光泽县| 石林| 五指山市| 黑龙江省| 津市市| 历史| 清流县| 宁南县| 苏尼特左旗| 明水县| 牡丹江市| 疏附县|