【问题标题】:SceneJS vs Three.JS vs others [closed]SceneJS vs Three.JS vs其他[关闭]
【发布时间】:2011-07-20 13:26:48
【问题描述】:

任何人的优点和缺点?找不到 three.js 库的完整功能集。虽然我知道它很受欢迎并且正在积极开发中。也许有人对 WebGL 引擎进行了一些研发,并且可以建议每个库提供哪些好处?

【问题讨论】:

  • 当您说 WebGL 引擎时,您是指在 WebGL 之上运行的场景图形库吗? IE。您想要比较的集合是什么?
  • @larsh 第一个问题:确切地说,很抱歉造成混乱。第二个问题:易用性、动画、IK、支持、框架/库本身的内部架构(贡献)。
  • 我想知道画布后备。我想我在某处读到,如果 webgl 不可用,tree.js 可以回退到使用画布进行渲染。想想 ie。如果您必须显示相当简单的对象,我想知道这在实践中是如何工作的。其他选项是否也有这样的后备机制?

标签: javascript webgl


【解决方案1】:

作为 SceneJS 的作者,如果有帮助,我想我会加入:SceneJS 专门用于快速渲染大量单独连接的对象,没有阴影、反射等游戏引擎效果。

换句话说,它针对 CAD、医学解剖学、工程可视化、具有 1000 多个螺母和螺栓、器官等的需求。

因此它的灵活性低于 three.js、GLGE 和 PhiloGL。

但是它确实有一个纯 JSON API,人们发现它可以很好地与 AJAX、解析器和数据库(例如 CouchDB)集成。

因此,如果您正在编写游戏,我会向您指出其他框架之一,但如果您正在编写 CAD 查看器,那么 SceneJS 可能会成功。

【讨论】:

  • 这真的很有帮助,谢谢。
  • 更新:SceneJS v4 现在支持后期效果管道,启用景深等效果。所以现在我们有了反射,很快就会支持阴影:) scenejs.org/examples/…
  • @xeolabs 我刚刚注意到这个线程,并想我会问你。我正在构建类似的东西:matterport.com/3d-space/project-sky-12-dome-house,但没有 3D 数据,只有全景照片。我已经开始使用 Three.js,但是在分组、内存泄漏等方面存在一些问题,这导致我寻找替代方案。如果您正在构建我链接的网站,您会选择 Three.js 还是 SceneJS?
【解决方案2】:

我经常将项目在 GitHub 上的受欢迎程度作为其成功的指标。虽然这种方法存在问题,但我确实发现它通常是做出选择的最佳方式。列出受欢迎的 WebGL 项目,按“明星”数量递减受欢迎程度:

这也反映了我在研究这些项目时的发现。 three.js 似乎是功能最完整的,拥有大量示例、结构良好的代码库和蓬勃发展的社区。​​p>

【讨论】:

  • 这很有帮助。这种方法对不在 GitHub 上托管的项目有什么要说的吗,或者这是你提到的问题之一?例如,CopperLicht 经常获得高分,但并未托管在 GitHub 上。
  • @LarsH 这是问题之一,尽管我认为开源开发是一大优势。
  • @jterrace 好吧,上次我检查(1 个月前)three.js 中的文档还远未完成。甚至在您的列表中的一些项目也有更好(更完整)的文档。至于 GitHub——它不是唯一的在线源代码托管者。 Bitbucket、Codeplex、谷歌代码等。我正在寻找的是该领域的研发。在几个 WebGL 框架中的个人经验。
  • @oddy 我有亲身经历。 ThreeJS 有大量的示例和一个很棒的社区。强烈推荐。
  • @jterrace 在接受您的建议之前有一个简单的问题。除了 three.js,您还使用了哪些框架,以及您为什么不喜欢它们(总体而言)?
【解决方案3】:

这基本上是WebGL Framework 的副本,但从那时起答案可能已经改变。另见Which WebGL framework should i learn?

由于 WebGL 世界现在发展得如此之快,很难找到一个完整的、最新的 WebGL 框架比较。一旦有人花时间研究这样的东西,它就会过时了。但这里有一个带注释的 WebGL 框架列表:

http://www.khronos.org/webgl/wiki/User_Contributions

如果您使用这些框架之一启动项目,然后根据您的经验更新此列表,它将比以前更新。

顺便说一下,刚刚查看PhiloGL,我对完整的 API 文档集印象深刻,并且他们已将所有 WebGL 课程移植到使用 PhiloGL(仅源代码,没有解释性文本)。我本身没有看到教程;但是他们有几个例子,所以总的来说他们在文档方面比 three.js 更好。

还有一些注意事项,对于那些可能会关注的人(包括我自己):

  • CopperLicht 似乎主要用于从文件加载模型,而不是在代码中生成几何图形。它不是开源的。
  • PhiloGL 使用 O3D 生成几何图形,例如球体。
  • Three.js 自带常用纹理。

【讨论】:

  • +1 链接到khronos。至于名单更新。我不想去喝牛奶然后带着玩具马、psp和球回来。我在这里是为了您的建议(我已经回答了您关于我需要从框架中获得哪些功能的问题),而不是为了分享我自己的经验。如果我有,我不会征求意见,因为我已经完成了自己的专业。
  • @oddy:我主要指的是在您花一些时间研究您正在考虑开始的任何项目之后更新列表。您来这里是为了获得免费建议并接受了它。我们中的许多人从与他人分享我们花时间收集的知识中获得满足感。如果你不想用你学到的东西来更新 khronos 列表,那是你的选择。感谢您的 +1。
  • 请试着理解我为什么有些恼火。我询问了 stackoverflowers 使用过的库的优缺点。但是得到了一个可用库列表的链接,并建议选择three.js,而无需任何解释。
  • @oddy:不是“相反”。而是“另外”。你没有免费得到你想要的一切这一事实,没有理由批评那些给你部分你想要的东西的人。在您发表上述评论之前,您还获得了有关 three.js 的几条具体信息。
【解决方案4】:

我是 Jax (http://blog.jaxgl.com/what-is-jax) 的作者,这是一个强调测试驱动、行为驱动开发和纯粹生产力的框架。 Jax 为您的 WebGL 应用程序提供强大的代码生成器、集成的应用程序服务器和测试环境以及组织清晰的 MVC(模型、视图、控制器)架构。

Jax 首先是围绕“完成工作”而设计的。这是一个约定优于配置的框架,这意味着——虽然您当然可以它随心所欲地做事——如果您接受它的约定,您会发现几乎没有预先准备启动您的应用程序的成本。

此外,Jax 是围绕可扩展性设计的。使用您喜欢使用的任何数据集或算法构建网格都很容易,从通过 JSON 加载它们到在顶点着色器上生成它们;并且该框架具有一个诚实的插件系统,因此您可以根据应用程序的需要挑选和选择其他功能(例如碰撞检测),而不会因您不关心的事情而使框架膨胀。

它有大量的文档,我一有机会就会添加更多;快速入门页面现已在http://jaxgl.com 上线,一套综合指南正在慢慢向http://guides.jaxgl.com 提供。那里也提供了 API 文档的链接。

越来越多的 Jax 现场演示在 Github 上也很活跃:http://sinisterchipmunk.github.com

【讨论】:

  • 几个月前我在 Chrome 中尝试了“meadow”演示。它没有用。我第二次尝试了,第二次。它仍然不起作用。 Chrome 15.0.849.0 开发者-m。黑屏。 Dungeon demo 引发了一个关于已达到最大纹理数量且相机根本不移动的异常。 Jax 看起来还不像是“完成工作”的工具。至少今天不会。
  • 很抱歉演示对您来说效果不佳。 (其他演示是否正常工作?)不幸的是,我很幸运地没有意识到这个问题!我尝试非常快速地解决与 Jax 相关的问题,但如果它们从未被报告过,我就无法这样做。如果您在github.com/sinisterchipmunk/jax/issues 打开问题并列出您的视频卡(包括制造商、型号和驱动程序版本)和操作系统信息,以及可能显示在错误控制台中的任何额外信息,我可以开始查看可能是什么导致问题。
  • 请忽略。我相信这是浏览器的问题。 Build 15.0.874.5 dev-m 运行两个演示都没有任何问题。
  • 太棒了!谢谢你告诉我。
  • 我认为开发现在已经停止,但所有演示在 Chrome 中都再次被破坏。
猜你喜欢
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
  • 2021-10-25
  • 2018-04-10
  • 2011-03-23
  • 2023-04-01
  • 1970-01-01
  • 2016-06-10
相关资源
最近更新 更多