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

问题描述 投票:6回答:1

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

webgl libgdx three.js
1个回答
4
投票

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

  1. 要考虑的第一个因素是您习惯使用的语言,Three.js使用JavaScript而libGDX使用Java。虽然libGDX导出到WebGL,但仅仅因为它使用GWT,你仍然使用Java进行编码。
  2. LibGDX专门(如你所说)在移动和(在某种程度上)桌面应用程序。如果您的目标是创建适用于Web以及移动和桌面的东西,那么应该考虑使用libGDX。但是,如果你只想为网络编程,那么我会考虑做Three.js,原因我稍后会解释。
  3. LibGDX主要用于游戏开发,所以如果您正在制作的应用程序是游戏,您可以考虑使用libGDX,因为它使3D游戏编程变得简单易用(并且您将能够将其移植到多个平台,而不是只有网络,但移动和桌面)。但如果你正在制作别的东西,Three.js可能是更好的选择。
  4. 如果您的分发平台将成为您的Web版本,我建议坚持使用Three.js,因为libGDX对于它的WebGL导出并不好。最大问题之一(可解决但难以处理)是libGDX不会阻止使用默认浏览器密钥。但是,如果您确实选择使用libGDX,请务必查看this以解决该问题(或多或少)。
  5. 在大多数情况下,如果您的主要平台将是Web,您将需要使用用于Web开发的语言进行编程。如果使用Three.js框架在JavaScript中编程,代码将更清晰,运行更快。同时,如果您使用libGDX,它实际上将Java代码转换为JavaScript编码,使其效率低下且体积庞大,并且将包含许多无用或可简化的JavaScript代码行。这不是libGDX(或者更确切地说是GWT)本身的问题,而是自动化编程语言翻译时无法避免的问题。举个例子,使用编程语言Haxe,如果你将HelloWorld Haxe编译为C ++,它包含一堆不必要的变量和方法(在C ++源代码中),你可以摆脱它们。在这种情况下也一样。

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

© www.soinside.com 2019 - 2024. All rights reserved.