Javascript SceneJS vs Three.JS vs 其他

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/6762726/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-23 23:05:30  来源:igfitidea点击:

SceneJS vs Three.JS vs others

javascriptwebgl

提问by oddy

Pros and cons anyone? Couldn't find a complete feature set for three.js library. Though I do know it's popular and in active development. Maybe someone have done some R&D on WebGL engines and can suggest which benefits each library gives?

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

回答by xeolabs

As SceneJS author I thought I'd throw this in if it helps: SceneJS is specialised towards fast rendering of large numbers of individually articulated objects, without game engine effects like shadows, reflections etc.

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

In other words it's aimed at requirements of CAD, medical anatomy, engineering visualisations, things with 1000's of nuts and bolts, organs etc.

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

It therefore has less flexibility than three.js, GLGE and PhiloGL.

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

It does however have a pure JSON API, which people have found integrates well with AJAX, parsers and databases (eg CouchDB).

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

So if you're writing a game I would point you at one of the other frameworks, but if you're writing a CAD viewer then SceneJS might do the trick.

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

回答by jterrace

I often use the popularity of a project on GitHub as an indicator of its success. While there are problems with this method, I do find it's often the best way to make a choice. Listing popular WebGL projects, in decreasing popularity by number of "stars":

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

This also mirrors what I've found when looking into these projects. three.js seems to be the most feature complete, has an extensive set of examples, a well-structured code base, and a thriving community.

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

回答by LarsH

This is basically a duplicate of WebGL Framework, but the answers have probably changed since then. See also Which WebGL framework should i learn?

这基本上是WebGL Framework的副本,但从那时起答案可能已经改变。另请参阅我应该学习哪个 WebGL 框架?

Since the world of WebGL is developing so fast right now, it would be difficult to find a complete, up-to-date comparison of WebGL frameworks. As soon as somebody spent the time researching such a thing, it would be obsolete. But here is an annotated list of WebGL frameworks:

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

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

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

If you start a project using one of these frameworks, and then if you update this list based on your experience, it will be more up to date than before.

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

By the way in looking just now at PhiloGL, I was impressed with the full set of API docs, and that they've ported all the WebGL lessons to use PhiloGL (source code only, no explanatory text). I don't see a tutorial per se; but they have several examples, so overall they're better off than three.js in regard to documentation.

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

A few more notes, for those who may come after (including myself):

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

  • CopperLicht seems to major on loading models from files, as opposed to generating geometry in code. It is not open source.
  • PhiloGL uses O3D for generating geometry, e.g. spheres.
  • Three.js comes with commonly-used textures.
  • CopperLicht 似乎主要从文件加载模型,而不是在代码中生成几何。它不是开源的。
  • PhiloGL 使用 O3D 来生成几何图形,例如球体。
  • Three.js 带有常用的纹理。

回答by sinisterchipmunk

I'm the author of Jax ( http://blog.jaxgl.com/what-is-jax), a framework with emphasis on test-driven, behavior-driven development and sheer productivity. Jax offers powerful code generators, an integrated application server and testing environment, and a cleanly-organized MVC (Model, View, Controller) architecture for your WebGL application.

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

Jax is designed first and foremost around Getting Stuff Done. It's a convention-over-configuration framework, which means that -- while you can certainly makeit do things however you like -- if you accept its conventions, you'll find there's very little up-front cost to getting your application off the ground.

Jax 首先是围绕“完成工作”而设计的。这是一个约定优于配置的框架,这意味着——虽然你当然可以让它做你喜欢的事情——如果你接受它的约定,你会发现让你的应用程序脱离地面。

In addition, Jax was designed around extensibility. It's easy to build meshes with whatever data set or algorithms you prefer to use, from loading them via JSON to generating them on the vertex shader; and the framework sports an honest-to-goodness plugin system so you can pick and choose additional functionality (such as collision detection) based on the needs of your application, without bloating the framework with things you don't care about.

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

It has loads of documentation and I'm adding more every chance I get; the quick-start page is now online at http://jaxgl.com, and a set of comprehensive guides are slowly making their way to http://guides.jaxgl.com. Links to the API documentation are available there, as well.

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

A growing selection of live demos of Jax in action are also alive and well on Github: http://sinisterchipmunk.github.com.

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