Google runs Quake in a browser using HTML5 > 60FPS
554 1
[1 楼] babayu [资深泡菜]
10-4-4 22:04
Google runs Quake in a browser using HTML5 UP 60FPS
only supported browsers are Safari and Chrome, but expect IE 9 and others to be compliant in the near future.
視頻:
http://www.※※※※※※※.com/watch?v=fyfu4OwjUEI&feature=player_embedded

Google code page quake2-gwt-port
http://code.google.com/p/quake2-gwt-port/



[babayu 编辑于 2010-04-04 22:10]
[2 楼] babayu [资深泡菜]
10-4-4 22:53
为了渲染本地Chrome中的3D图形,Google使用的是WebGL。这样做的问题在于WebGL依赖于OpenGL 2.0,而并非所有的Windows系统都安装了它的驱动。ANGLE (近似本地图形层引擎 Almost Native Graphics Layer Engine)项目试图在WebGL和DirectX之间建立简单的层,用来支持Chrome在任意Windows系统中都可以处理3D图形。

WebGL(Web图形库)是:
一种基于OpenGL ES 2.0、跨平台、免版税的针对低级3D图形API的web标准,它通过HTML5 的Canvas元素暴露出来,作为文档对象模型(Document Object Model)的接口。熟悉OpenGL ES 2.0 API的开发者会发现,WebGL使用的是GLSL基于着色的API,它在语义上与底层的OpenGL ES 2.0 API拥有类似的结构。它与OpenGL ES 2.0的规格非常相近,只是其中有一些为期望在内存托管语言,像※※※※※※※※※※,之外使用它所做的特别处理。

实际上,WebGL让浏览器具备了在本地处理3D图形的能力,而所有主要的浏览器厂商——Apple、Google、Mozilla以及Opera等等——都是WebGL工作组的成员,Khronos组(一个非盈利的协会)的成员中,一部分是推动者:AMD、Apple、ARM、Intel、Motorola、Nokia、NVIDIA、Sun、德州机器,还有很多贡献者:创新、戴尔、EA、Google、IBM、Opera、Mozilla,以及许多其它与图形领域有关系的公司。
WebGL是在Gecko 1.9.3中引入的图形特性,它将会在Firefox 3.7中发布。Khronos指出在Max OS X 10.6的WebKit每夜构建中会支持WebGL。另外,它也被包含在所有的Chromium版本和Chrome开发版本中。当前在Opera中还没有为WebGL提供支持,但据来自Khronos的消息,那是指日可待的。

但是存在这样的问题,当前对WebGL的实现是基于OpenGL 2.0运行的,而并非所有Windows的机器上都会安装它的驱动,或者对于某些图形卡来说根本就不存在。这使得在这样的系统中我们无法通过WebGL进行3D渲染。而这也正是Google使用ANGLE所要解决的问题,它会在WebGL和DirectX之间创建简单的层,用来在Windows中不依赖于OpenGL驱动来支持Chrome进行3D渲染。

ANGLE还会帮助开发者在Windows中创建原型,并且也将手机和嵌入式系统作为将来的目标,因为OpenGL ES本来就是专门针对这样的系统所设计的。ANGLE已经基于新的BSD许可公开了源码。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

提起GPU,我们首先想到的是它在游戏上的应用,DirectX和OpenGL已为大家所熟知,然而现在,GPU即将找到新的舞台——AMD、爱立信、Google、Mozilla、NVIDIA以及Opera等公司与Khronos通力合作,即将创建一种多平台环境可用的WebGL标准。

WebGL标准将完全免费,预计在2010年上半年发布,Google Chrome和Mozilla Firefox显然会支持该标准。Khronos公司日前透露了WebGL绘图技术标准的一些细节,这种绘图技术标准允许把※※※※※※※※※※和OpenGL ES 2.0结合在一起,为多种浏览器提供3D加速功能,更有意义的是,这种技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂3D结构的网站页面,甚至可以用来设计3D网页游戏。GPU已经不再局限于本地应用,网络应用中GPU也将大显身手。

在本周的新闻发布会上,Mozilla标准传播者Arun Raganathan说,网络应用目前广泛使用2D图形,我们认为Firefox的下一个目标是3D,我们期待着一种新的3D Web应用程序,以此来沟通OpenGL开发人员和Web开发人员。
-------------------------------------------------------------------------------
WebGL 簡介、以及目前的瀏覽器

WebGL 的全名是「Web Graphics Library」,他的官方網站是:http://www.khronos.org/webgl/,同時也有官方的專用微基百科。

他是由 OpenGL 的管理組織 Khronos Group,基於 OpenGL ES 2.0 所規範、跨平台的網頁 3D 呈現的標準。目前除了 Microsoft (Internet Explorer) 以外的幾家主要瀏覽器公司,大多都是 WebGL Working Group 的成員,包括了 Apple (Safari)、Google (Chrome)、Mozilla (Firefox) 和 Opera (Opera)。

使用 WebGL 的好處,在於如果網頁瀏覽器有支援的話,就可以在不需要額外安裝 plug-in 的情形下,使用 ※※※※※※※※※※ 和 OpenGL ES 2.0 的語法,來編寫出 3D 的 web 應用程式,同時也可以使用顯示卡來做顯示的硬體加速。而在網頁呈現的編排部分,WebGL 是會把最後結果,畫在 Canvas 這個 HTML5 的元素上;也由於他是使用 Canvas 這個元素,所以他基本上也是整合進整個 DOM (Document Object Model) 的架構的~

所以,基本上要寫 WebGL 的程式,程式開發者必需要熟悉 HTML、※※※※※※※※※※ 以及 OpenGL ES 2.0(包含 GLSL),才能夠編寫出使用 WebGL 的 Web App。

而目前 WebGL 還在草案階段,大部分的網頁瀏覽器現行版本,都也還不能直接支援 WebGL。如果想要取得可以支援 WebGL 的瀏覽器的話,目前有幾個選擇:
FireFox 3.7 Alpha 版
目前最新的版本是 Minefield Alpha4 Pre-release,官方網頁是 http://www.mozilla.org/projects/minefield/
下載請到 Firefox Nightly Builds 網頁選擇不同平台的版本。
下載、安裝後,預設還是不能支援 WebGL 的,請依以下方法進行設定:
請在網址列輸入「about:config」,進到設訂頁面
透過 filter 的功能,找到「webgl.enabled_for_all_sites」,並將他的值改為「true」
Chromium 瀏覽器
Google Chrome 的 Open Source 開發版,網頁是 http://dev.chromium.org/
可到其 buildbot 的網站內,取得各版本的最新版本。
Windows 版、MAC 版、Linux 版、Linux 64 版
預設不支援 WebGL,需要在執行時加上「--enable-webgl」、「--no-sandbox」這兩個參數
執行範例:「chrome.exe --enable-webgl --no-sandbox」
注意,必須關閉鎖有的 Chromium 瀏覽器後,再重新執行
MacOS X 10.6 的 Safari 4
僅適用於 MacOS X 10.6
下載、並安裝 nightly build 的 webkit
預設並不支援 WebGL,需開啟 Terminal,並輸入「defaults write com.apple.Safari WebKitWebGLEnabled -bool YES」來開啟對 WebGL 的支援。

而在瀏覽器都安裝好、設訂完成後,就可以到 WebGL wiki 的 Demo Repository,隨便找幾個範例看看是不是能正常執行了~

[babayu 编辑于 2010-04-04 22:58]