Libgdx 主要专注于 Android 并且是用 java 编写的,但显然它可以在浏览器(webGL?)上运行应用程序。 Three.js 是一个非常令人印象深刻的 javascript 3D 库,它也使用 WebGL(或 2d Canvas )进行渲染。
到目前为止,我还没有看到这两者之间的任何比较,因为它们有不同的重点,但我想知道它们之间的区别,一个图书馆能做什么而另一个图书馆不能。
我认为我没有资格谈论 Three.js,但我在我的许多项目中都使用过 libGDX,并且知道它在 WebGL(浏览器导出)方面的劣势。
首先要考虑的因素是你习惯什么语言,Three.js 使用 JavaScript,libGDX 使用 Java。虽然 libGDX 导出到 WebGL,但这只是因为它使用 GWT,您仍然使用 Java 进行编码。 LibGDX(如您所说)专门用于移动和(在一定程度上)桌面应用程序。如果您的目标是创建适用于 Web 以及移动设备和桌面的东西,那么应该考虑使用 libGDX。但是,如果您只想为 Web 编程,那么我真的会考虑只使用 Three.js,原因我稍后会解释。 LibGDX 主要用于游戏开发,因此,如果您正在制作的应用程序是游戏,您可以考虑使用 libGDX,因为它使 3D 游戏编程变得简单易用(并且您可以将其移植到多个平台,而不是只有网络,但移动和桌面)。但是,如果您正在制作其他东西,Three.js 可能是更好的选择。 如果您的分发平台将是您的 Web 版本,我建议坚持使用 Three.js,因为 libGDX 不适合其 WebGL 导出。最大的问题之一(这是可以解决的,但处理起来很痛苦)是 libGDX 不会阻止使用默认浏览器 key 。但是,如果您确实选择使用 libGDX,请务必查看 this解决这个问题(或多或少)。 在大多数情况下,如果您的主要平台将是 Web,您将希望使用一种用于 Web 开发的语言进行编程。如果您使用 Three.js 框架在 JavaScript 中进行编程,那么代码运行起来会更加简洁和快速。同时,如果您使用 libGDX,它本质上会将 Java 代码转换为 JavaScript 编码,使其效率低下且体积庞大,并且将包含许多无用或可以简化的 JavaScript 代码行。这不是 libGDX(或者更确切地说是 GWT)本身的问题,而只是自动化编程语言翻译时无法避免的问题。举个例子,使用编程语言 Haxe,如果你将 HelloWorld Haxe 编译为 C++,它包含一堆不必要的变量和方法(在 C++ 源代码中),你可以摆脱它们。在这种情况下也是如此。 所以最终取决于你的目标是什么。如果您打算只使用 Web 版本,请使用 Three.js,否则应考虑使用 libGDX。