用于3D Web开发的three.js vs libgdx

ola*_*nod 6 webgl three.js libgdx

Libgdx主要关注Android并且是用java编写的,但显然它可以在浏览器上运行应用程序(webGL?).Three.js是一个令人印象深刻的javascript 3D库,它使用WebGL(或2d画布)进行渲染.到目前为止,我没有看到这两者之间的任何比较,因为它们有不同的焦点,但我想知道差异,一个库可以做什么,另一个不能.

Dea*_*eed 5

我认为我没有资格谈论 Three.js,但我已经在我的许多项目中使用了 libGDX,并且知道它在 WebGL(浏览器导出)方面的缺点。

  1. 首先要考虑的因素是你使用的是什么语言,Three.js 使用 JavaScript 而 libGDX 使用 Java。而且虽然 libGDX 导出到 WebGL,只是因为它使用 GWT,你仍然用 Java 进行编码。

  2. LibGDX 专门用于(如您所说)移动和(在一定程度上)桌面应用程序。如果您的目标是创建可在 Web 以及移动和桌面上运行的内容,则应考虑使用 libGDX。但是,如果您只想为 Web 编程,那么我真的会考虑只使用 Three.js,原因稍后解释。

  3. LibGDX 主要用于游戏开发,因此如果您制作的应用程序是游戏,您可以考虑使用 libGDX,因为它使 3D 游戏编程变得简单而轻松(并且您将能够将其移植到多个平台,而不是只有网络,但移动和桌面)。但是,如果您正在制作其他东西,Three.js 可能是更好的选择。

  4. 如果您的分发平台将是您的网络版本,我建议您坚持使用 Three.js,因为 libGDX 对其 WebGL 导出并不是那么好。最大的问题之一(这是可以解决的,但处理起来很痛苦)是 libGDX 不会阻止使用默认浏览器密钥。但是,如果您确实选择使用 libGDX,请务必查看此内容以解决该问题(或多或少)。

  5. 在大多数情况下,如果您的主要平台将是网络,那么您将希望使用一种用于网络开发的语言进行编程。如果您使用 Three.js 框架在 JavaScript 中编程,则代码将更简洁、运行速度更快。同时,如果您使用 libGDX,它本质上将 Java 代码转换为 JavaScript 编码,使其效率低下且体积庞大,并且将包含许多无用或可以简化的 JavaScript 代码行。这不是 libGDX(或 GWT)本身的问题,而是自动化编程语言翻译时无法避免的问题。举个例子,使用编程语言Haxe,如果你编译一个HelloWorldHaxe to C++ 它包含一堆你可以摆脱的不必要的变量和方法(在 C++ 源代码中)。在这种情况下也是如此。

所以最终这取决于你的目标是什么。如果您打算只使用 Web 版本,请使用 Three.js,否则应考虑使用 libGDX。