如何在Internet Explorer 11中開啟WebGL

2021-01-04 中文業界資訊站
感謝Lao3D的投遞

正如我們

上周報導的

,國外開發者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大家庭!

相關焦點

  • Windows 10系統internet explorer無法顯示該網頁怎麼辦?
    在平時工作之餘,我們偶爾會使用ie瀏覽器來看視頻或者瀏覽新聞,可是有不少用戶反映說打開ie然後進入某些網頁時會提示出internet explorer無法顯示該網頁,那麼當你遇到Win10系統internet explorer無法顯示該網頁怎麼辦?不知道的朋友趕緊看看小編整理的解決方法吧!
  • Internet explorer 10下載_Internet explorer 10官方下載-太平洋...
    下載中心 Internet explorer 10
  • 微軟向7億用戶提供Internet Explorer 11發布預覽版
    在IE10的基礎上,InternetExplorer11速度更快,提升了數億臺Windows7設備上的網絡平臺體驗,不僅同時實現了對WebGL等技術標準的支持,也帶來了行業領先的JavaScript腳本性能表現。今年7月,我們發布了基於Windows7的IE11開發者預覽版。在這一版本中,我們把IE11帶到Windows7,並鼓勵開發者下載瀏覽器,測試自己的網站。
  • 在edge瀏覽器internet選項打開方法
    我們該如何在edge瀏覽器上打開internet,還不知道的老鐵,別著急,跟著小編一起來看internet選項打開方法吧。1、我們進入到edge瀏覽器之後,點擊右上角的三個點按鈕。2、在彈出的頁面中選擇更多工具選項。
  • 在edge瀏覽器internet選項打開方法
    我們該如何在edge瀏覽器上打開internet,還不知道的老鐵,別著急,跟著小編一起來看internet選項打開方法吧。1、我們進入到edge瀏覽器之後,點擊右上角的三個點按鈕。2、在彈出的頁面中選擇更多工具選項。
  • iPhone 用戶稱 Android 是手機上的 Internet Explorer
    眾所周知,Internet Explorer 曾是 Microsoft 的默認 Windows 瀏覽器,其在 Windows 10 中被 Microsoft Edge 取代之前,經常被廣告軟體,彈出廣告和惡意軟體作為目標,並遭到惡意下載和瀏覽器劫持。
  • 瀏覽器中禁用WebGL
    Chrome上禁止WebGL的方法: 在啟動快捷方式裡加上–disable-webgl。 Firefox4上禁止WebGL的方法:瀏覽器地址欄輸入about:config進入設置頁,在Filter中輸入webgl,找到 webgl.disabled,設置成true。如果結果中存在webgl.enabled_for_all_sites的話,設成false。然後重啟瀏覽器。
  • 圖形學基礎——WebGL 基礎(上)
    webGL 程序的結構在HTML中,動態網頁包含HTML和JavaScript兩種語言,引入webgl後,還需要加入著色器語言GLSLES。#GLSLOpenGL 著色器語言讓開發者可以對渲染過程擁有更多的控制GLSL 參考:https://colin1994.github.io/2017/11/11/OpenGLES-Lesson04/#存儲限定符對於著色器語言,具有三種數據類型:attribute:只能在 vertex shader 中使用的變量,一般用於傳遞頂點數據
  • (IE9)Internet Explorer 9.0
    IE9中文正式版是微軟推出的ie9中文版本,internet explorer 9是微軟支持標準最規範的IE瀏覽器。IE9改進IE瀏覽器性能,IE9支持XP/win7,本站提供ie9中文版官方下載.
  • 如何在Internet Explorer中顯示菜單欄
    Edge瀏覽器中完全沒有菜單欄,因此無法顯示。在Internet Explorer中顯示菜單欄您可以臨時顯示菜單欄或將其設置為顯示,除非您明確隱藏它。要臨時查看菜單欄:確保Explorer是當前活動應用程式(通過單擊其窗口中的某個位置),然後按Alt鍵。此時,選擇菜單欄中的任何項目,直到您單擊頁面上的其他位置; 然後它再次變得隱藏起來。
  • 如何在Windows 10中重新啟動Explorer.exe進程
    它位於C驅動器的C:\Windows文件夾中。每當explorer.exe進程停止時,桌面將變為空白,然後重新打開。為了刷新explorer.exe,必須重新啟動它。使用以下方法可以重新啟動explorer.exe,以便可以刷新它。方法一:1.在Windows搜索欄中輸入「任務管理器」,然後單擊搜索結果頂部顯示的任務管理器選項。
  • 如何開發與Internet Explorer 11兼容的Web應用程式
    了解如何定製HTML和CSS以創建IE兼容的應用程式和UI。開發與Internet Explorer兼容的網頁有時很難。儘管微軟已經撤回了Internet Explorer的支持,但它仍然是用戶的熱門選擇。Internet Explorer與HTML的一些最重要的組件行為不當,無論是低高度,邊距還是填充。
  • 如何重啟Windows資源管理器(explorer.exe)
    方法一:任務管理器重啟Windows資源管理器打開任務管理器,在進程列表中找到「Windows資源管理器」,在其上點擊右鍵,在彈出的菜單中選擇「重新啟動」。如何退出Windows資源管理器的方法,只是要重新運行它,根據不同的情況需要採用不同的方法。
  • webgl 迷宮項目開發總結
    收穫webgl 三個js庫webgl-utils.jswebgl-debug.jscuon-utils.js圖片加載var img = new Image();img.src = '.這樣可以防止webgl在渲染的時候圖片還沒加載完而出現黑屏的問題。監聽鍵盤事件保證事件代碼只運行一次。否則會重複綁定多個事件,也就是按鍵一次會觸發多次事件處理。
  • 教你如何鎖定電腦瀏覽器主頁防止被篡改
    今天我將為大家帶來的教程為如何鎖定電腦瀏覽器主頁防止被篡改。我相信大家在使用電腦瀏覽器上網的過程中肯定遇到過這樣的情況。就是自己本來設置好的瀏覽器主頁被篡改了,自己卻不知道是怎麼回事。而且當你改回原來的主頁的時候,再次啟動瀏覽器你會發現又被篡改了。針對這樣的問題我們該如何解決呢。接下來我將教大家如何防止自己的電腦瀏覽器被惡意篡改的方法,希望對大家有用。
  • WebGL 入門-原生API介紹
    由於WebGL 規範仍在開發中,因此上下文仍處於「實驗」階段。當前,大部分瀏覽器都使用語法 canvas.getContext("experimental-webgl") 來獲取 WebGLRenderingContext。
  • 圖形學基礎——WebGL 基礎(下)
    Fragment shader programvarFSHADER_SOURCE='void main() {\n'+' gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);\n'+'}\n';functionmain(){// Retrieve <canvas> elementvar canvas = document.getElementById('webgl
  • 如何在 iOS 上開啟 WebGL
    WebGL,去年11月有人發現可以通過使用私有 API 將 WebGL 支持擴展到 UIWebView 的其他使用場合。自從 iOS 5.1.1 可以被成功越獄只會,在 iOS 上開啟 WebGL 就變得更加簡單了。
  • 微軟Internet Explorer 11 將於2021年終止支持
    玩懂手機網 8 月 26 日資訊,微軟為 Windows 10 加入了一個新的瀏覽器,但很多用戶依然在使用 Internet Explorer 瀏覽器,這讓微軟公司感到非常不放心,微軟公司最近發布消息表示 Internet Explorer 11 將會在 2021 年 8 月正式終止支持。
  • 八大瘋狂的 HTML5 Canvas 及 WebGL 動畫效果
    在過去的幾年中,我們想要製作卓越的網頁動畫只能使用Flash和Java Applet。而現在,使用腳本語言和渲染器在瀏覽器中實現瘋狂的動畫效果已經成為可能。究其原因,大概有以下幾點: 處理器的性能越來越高。我們的電腦已經有足夠的強大的能力去渲染最為複雜的動畫效果。 現在瀏覽器和web技術的不斷發展。