html5時代的webGL的效率?
03-16
本人迷茫,希望大神指點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非常快,而且可以載入本地資源。所以就可以克服上面的幾個問題(然而貌似沒幾個這麼做的。。。)推薦閱讀: