html5時代的webGL的效率?

本人迷茫,希望大神指點qwq

現在html5已經開始流行起來,我一共有3個問題:

1.基於web的OpenGL,使用JavaScript腳本的效率能不能趕上C++?(google的V8引擎)

2.未來的3D遊戲還是要以C類語言的開發為主?

3.web真的是萬能的嗎?


1. 目前WebGL的數據傳輸是直接基於VBO的,合理地使用它不會導致圖形效率過低。(除非你每幀都要手動生成數據並且刷新到顯存里)

2. webgl現在火的原因不僅僅是性能方面與傳統gl有所可比,更在於它為遊戲提供了一個統一的平台,包括桌面端,移動端,以及不同的操作系統。在相當長時間裡webgl是很樂觀的。

3. 不是,用合適的工具做合適的事情。


1.不能.

2.目前來看底層C/C++是跑不掉的,畢竟你肯定得用圖形庫.這個狀態還會維持很久.

3.別聽他們瞎扯,當然不是.


以前自己研究過一些WebGL(主要是基於three.js)

做過一個WebGL demo的站點: meiroo的HTML5探索

補充一些自己的看法:

WebGL圖形渲染的效率還是不錯的。做一些頁面3D效果,簡單立體展示都不成問題。

至於3D遊戲情況就比較複雜了:

大型3D遊戲不可避免的要佔用過多系統資源,而且對效率要求很高,所以肯定是不合適的。

小型3D遊戲其實也有幾個點:(copy 自剛剛另一個回答)

WebGL依賴瀏覽器,PC端尤其是手機端不支持WebGL的瀏覽器還有很多。在這種情況下,使用WebGL可能導致一部分用戶無法運行。

另外一點就是資源載入,運行WebGL程序所需要的資源,大多數情況下需要下載的,會導致載入非常慢。當沒有網路的情況下,如果沒有進行本地緩存會無法運行(HTML5的本地緩存好像也有大小限制)。

部分瀏覽器運行WebGL也不太穩定,有時候會掛掉。

=====

不過目前倒是有一些方案。可以把WebGL製作的效果本地化。

如這個工具可以將WebGL直接打包成一個iOS應用(Android也有):phoboslab/Ejecta · GitHub

從原理上來說,就是有一個iOS應用,跑了一個只支持canvas標籤的瀏覽器,這個瀏覽器解析WebGL非常快,而且可以載入本地資源。所以就可以克服上面的幾個問題(然而貌似沒幾個這麼做的。。。)


推薦閱讀:

星游視野:打碎3D無鎖定的遊戲商業謊言

TAG:HTML5 | OpenGL | WebGL | C | 3D遊戲開發 |