2012-08-14 185 views
10

有人可以解釋three.js渲染器之間的區別嗎?哪一個更快?哪一個更標準並跨瀏覽器? svg渲染器和dom渲染器如何工作? 當我在下面的代碼中使用webGl而不是canvas渲染器時,我有不同的結果,爲什麼它應該發生?
cube = new THREE.Mesh(new THREE.CubeGeometry(200, 200, 200, 1, 1, 1, materials), new THREE.MeshFaceMaterial());
canvas和webGL有很大的不同嗎?哪一個我應該用於高度瀏覽的網站?THREE.js渲染器

+1

它取決於你想要繪製的東西......我認爲它的名字表明WebGL渲染器使用OpenGL,因此速度更快(因爲它使用GPU),而Canvas和SVG更弱因爲他們計算3d-> 2d transforamtions並不是所有的對象都支持... – EliSherer 2012-08-14 14:05:53

+0

我想繪製一些複雜的3D素材,所以網絡G1可以更有用,但有很多瀏覽器不支持webGl。 – Erfan 2012-08-15 07:39:13

回答

16

如果您的目標是創建3D圖形,您確實想創建僅支持WebGL的應用程序。其他Three.JS渲染器更像是黑客和概念證明,而不是可以爲您提供真實3D的東西。如果您的目標不是製作令人驚歎的圖形,那麼您可以簡單地使用靜態PNG圖像,GIF動畫或YouTube剪輯,並具有更好的向後兼容性。 <canvas>渲染後端僅用於非常非常簡單的圖形(如沒有紋理的旋轉立方體)並且具有<canvas>作爲後備在許多情況下不起作用。

例如,https://tinkercad.com/home/是僅WebGL的web應用程序。他們在webshaped.fi會議上的估計是,大約50%的網站受衆可以訪問WebGL內容。這可能聽起來很低,但它仍然遠高於在移動設備或桌面上安裝應用程序的用戶,因此使用WebGL部署3D的會話率要高於其他部署機制。

另見http://webglstats.com/

WebGL是也是一個面向未來的技術 - 它不會消失。目前,你的主要目標是桌面,但在移動適應成爲現實之前,這只是時間的問題,2 - 3年。

+0

Excellent.Thanks,所以我將使用Web Gl,但是你知道什麼是SVG Renderer和DOM Renderer嗎? – Erfan 2012-08-15 07:30:36

+1

它們是使用HTML元素呈現概念的證明,並且不會產生您希望在現實生活中使用的呈現結果。我預計它們將在未來從Three.js核心中退出。 – 2012-08-15 07:34:30

2

結合WebGLRenderer作爲其未來的證明和IMP是大多數THREE.js方法的作品。

例如, ParticleSystem在CanvasRenderer中不起作用