three.js和libgdx在3D网页开发中的比较

7

Libgdx主要关注Android平台,是用Java编写的,但显然它也可以在浏览器(使用WebGL?)上运行应用程序。Three.js是一个非常令人印象深刻的Javascript 3D库,也同时使用WebGL(或2D画布)进行渲染。

到目前为止我还没有看到这两个库之间的比较,因为它们有不同的关注点,但是我想知道它们之间的区别,一个库可以做什么而另一个库做不了。


像这样的问题很难以合理的方式回答。通常你得到的答案会严重偏向于某个库,除非你稍微缩小一下范围。如果你想了解特定功能的支持,请列出它们,否则你可能和我们中的任何人一样能够进行两者的要点比较。 - Toji
我感到好奇的是,如果它们都很适合WebGL开发为什么在谷歌上不能同时找到'libgdx'和'three.js'这两个关键字。 - olanod
2
因为libgdx最初是一个桌面/Android框架,仅在几个月前添加了纯JavaScript/WebGL支持(已经部署到Facebook或Google Chrome商店等游戏)。由于语言(libgdx的情况下为Java,three.js的情况下为JavaScript/Coffescript)和平台选择(大多数人专注于Android或Web游戏,但通常不会同时专注于两者,尤其是业余爱好者),所以目标受众可能会有所不同。 - badlogic
1个回答

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 游戏编程(并且可以将其移植到多个平台,不仅限于 Web,还包括移动端和桌面端)。但是,如果你正在开发其他类型的应用,那么 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。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接