2012-05-30 40 views
5

Libgdx主要關注Android,用java編寫,但顯然它可以在瀏覽器上運行應用程序(webGL?)。 Three.js是一個非常令人印象深刻的JavaScript 3D庫,它使用WebGL(或2d canvas)以及渲染。 到目前爲止,我還沒有看到這兩者之間的任何比較,因爲他們有不同的側重點,但我想知道它們之間的區別,一個圖書館可以做什麼,另一個不能。three.js vs libgdx用於3D網頁開發

+0

這樣的問題很難以合理的方式回答。通常你會得到的答案會嚴重偏向一個圖書館或另一個圖書館,除非你縮小了一點。如果你想知道對特定功能的支持,請列出它們,否則你可能和我們任何一個人一樣能夠對這兩者進行重點比較。 – Toji

+0

我很好奇的是,如果他們都是衆所周知的,適合webGl開發,爲什麼你不能在谷歌的同一頁面找到'libgdx'和'three.js'。 – olanod

+2

因爲libgdx最初是作爲桌面/ Android框架開始的,並且在幾個月前添加了純Javascript/WebGL支持(遊戲已經部署到例如Facebook或Google Chrome商店)。目標受衆可能會因語言不同(Java語言在libgdx中,Javascript/Coffescript在three.js中)和平臺選擇(大多數人或者專注於Android或網頁遊戲,但通常不是兩者,特別是業餘愛好者) 。 – badlogic

回答

3

我不認爲我有資格談論Three.js,但是我已經使用了libGDX來處理我的許多項目,並且在WebGL(瀏覽器導出)方面知道它的缺點。

  1. 要考慮的第一個因素是您習慣的語言,Three.js使用JavaScript,而libGDX使用Java。儘管libGDX導出到WebGL,但僅僅因爲它使用GWT,您仍然使用Java進行編碼。

  2. LibGDX是專門的(如你所說)在移動和(在某種程度上)桌面應用程序。如果你的目標是創造一些在網絡上以及移動和桌面上運行的東西,那麼應該考慮libGDX。然而,如果你只想爲網絡編程,那麼我會考慮只是在做Three.js,我會稍後解釋。

  3. LibGDX主要用於遊戲開發,所以如果你正在製作的應用程序是一款遊戲,那麼你可以考慮libGDX,因爲它使得3D遊戲編程變得簡單易行(你可以將它移植到多個平臺,不僅僅是網絡,而是移動和桌面)。但是如果你做了其他的事情,Three.js可能是更好的選擇。

  4. 如果您的分發平臺將成爲您的網頁版本,我會建議堅持使用Three.js,因爲libGDX對於WebGL導出不太好。最大的問題之一(這是可以解決的,但需要付出一定的代價)是libGDX不會阻止使用默認瀏覽器密鑰。但是,如果您選擇使用libGDX,請確保您查看this以解決該問題(或多或少)。

  5. 大多數情況下,如果您的主要平臺將是網絡,您需要使用適用於Web開發的語言進行編程。如果使用Three.js框架在JavaScript中編程,代碼將更乾淨,運行速度更快。同時,如果您使用libGDX,它實質上會將Java代碼轉換爲JavaScript代碼,從而導致代碼效率低下且體積龐大,並且會包含許多無用或簡化的JavaScript代碼。這不是libGDX(或GWT)本身的問題,而只是在自動化編程語言轉換時無法避免的問題。舉個例子,使用編程語言HaXe,如果你編譯了一個HaXe到C++,它包含了一堆你可以擺脫的不必要的變量和方法(在C++源代碼中)。在這種情況下也一樣。

所以最終它取決於你的目標。如果您打算堅持只使用Web版本使用Three.js,否則應考慮libGDX。