Libgdx主要关注Android并且是用java编写的,但显然它可以在浏览器上运行应用程序(webGL?)。 Three.js是一个令人印象深刻的javascript 3D库,它使用WebGL(或2d画布)进行渲染。 到目前为止,我没有看到这两者之间有任何比较,因为它们有不同的焦点,但我想知道差异,一个库可以做什么,另一个不能。
答案 0 :(得分:4)
我不认为我有资格谈论Three.js,但我已经将libGDX用于我的许多项目,并且知道它在WebGL(浏览器导出)方面的缺点。 / p>
要考虑的第一个因素是您习惯使用的语言,Three.js使用JavaScript而libGDX使用Java。虽然libGDX导出到WebGL,但仅仅因为它使用GWT,你仍然使用Java进行编码。
LibGDX专门用于移动和(在某种程度上)桌面应用程序中(如您所述)。如果您的目标是创建适用于Web以及移动和桌面的内容,则应考虑使用libGDX。但是,如果您只想为网络编写内容,那么我会考虑只是做Three.js,原因我稍后会解释。
LibGDX主要用于游戏开发,所以如果您正在制作的应用程序是一款游戏,您可以考虑使用libGDX,因为它可以让3D游戏编程变得简单易用(而且您也可以能够将其移植到多个平台,不仅仅是网络,还有移动和桌面)。但如果你正在制作别的东西,Three.js可能是更好的选择。
如果您的发布平台将成为您的网站版本,我建议坚持使用Three.js,因为libGDX对其WebGL导出不利。最大问题之一(可解决但难以处理)是libGDX不会阻止使用默认浏览器密钥。但是,如果您确实选择使用libGDX,请务必查看this以解决该问题(或多或少)。
在大多数情况下,如果您的主要平台将成为网络,那么您将希望使用适合网络开发的语言进行编程。如果使用Three.js框架在JavaScript中编程,代码将更清晰,运行更快。同时,如果您使用libGDX,它实际上将Java代码转换为JavaScript编码,使其效率低下且体积庞大,并且将包含许多无用或可简化的JavaScript代码行。这不是libGDX(或者更确切地说是GWT)本身的问题,而是在自动化编程语言翻译时无法避免的问题。举个例子,使用编程语言Haxe,如果你编译一个 HelloWorld Haxe到C ++它包含一堆不必要的变量和方法(在C ++源代码中),你可以摆脱它。在这种情况下也一样。
所以最终取决于你的目标。如果您打算坚持使用Web版本,请使用Three.js,否则应考虑使用libGDX。