【问题标题】:three.js vs libgdx for 3D web development用于 3D Web 开发的three.js vs libgdx
【发布时间】:2019-03-10 22:44:48
【问题描述】:

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

【问题讨论】:

  • 这样的问题很难以合理的方式回答。除非您稍微缩小范围,否则您得到的答案通常会严重偏向一个或另一个库。如果您想了解对特定功能的支持,请列出它们,否则您可能和我们中的任何人一样有能力对两者进行要点比较。
  • 我很好奇的是,如果它们都是众所周知的并且适合 webGl 开发,为什么你不能在谷歌的同一页面中找到'libgdx'和'three.js'。跨度>
  • 因为 libgdx 最初是一个桌面/Android 框架,并在几个月前添加了纯 Javascript/WebGL 支持(游戏已经部署到例如 facebook 或 Google Chrome 商店)。目标受众可能因语言(libgdx 为 Java,three.js 为 Javascript/Coffescript)和平台选择(大多数人专注于 Android 或网页游戏,但通常不会两者兼而有之,尤其是业余爱好者)而有所不同.

标签: webgl libgdx three.js


【解决方案1】:

我认为我没有资格谈论 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. 如果您的分发平台将是您的 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。

【讨论】:

    猜你喜欢
    • 2012-01-19
    • 2014-01-10
    • 2010-11-11
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多