在 glMatrix、Sylvester 和 CanvasMatrix 之间选择?

发布于 2024-11-30 13:15:52 字数 572 浏览 2 评论 0原文

最后,我决定从头开始制作自己的 WebGL 3D 引擎,我从 http://www. khronos.org/webgl/http://learningwebgl.comhttps://developer.mozilla.org/en/WebGL

但问题是每个教程使用/推荐不同用于矩阵计算的库,所以我很困惑!

  • khronos 推荐 CanvasMatrix (但现在他们从 Apple 切换到 J3DI.js?)
  • Mozilla 一直推荐 Sylvester!
  • Learningwebgl.com推荐glMatrix

问题是:哪一个非常适合3D WebGL应用程序、图表和游戏? (性能和可用性都很重要)

谢谢

Finally, I decided to make my own WebGL 3D engine from the ground up, I begin tutorials from http://www.khronos.org/webgl/ and http://learningwebgl.com and https://developer.mozilla.org/en/WebGL

But problem is that each tutorial used/recommend different library for Matrix calculations, so I'm confused!

  • khronos recommend CanvasMatrix (but now they switch to J3DI.js from Apple ?)
  • Mozilla recommend Sylvester all the way!
  • Learningwebgl.com recommend glMatrix

Question is: Which one is well suited for 3D WebGL Applications, Charts and Games? (both performance and usability matters)

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泪冰清 2024-12-07 13:15:52

看看 http://greggman.github.io/webgl-matrix-benchmarks/ matrix_benchmark.html

我使用 glMatrix,它工作得很好。 API 有点奇怪。

var in = vec3.create([1, 2, 3]);

//overwrite 'in' in-place
vec3.scale(in, 2);

//write output to a different vector
var out = vec3.create();
vec3.scale(in, 2, out);

或者对于 glMatrix 2

var in = vec3.fromValues(1, 2, 3);

//overwrite 'in' in-place
vec3.scale(in, in, 2);

//write output to a different vector
var out = vec3.create();
vec3.scale(out, in, 2);

但它很快,它支持我想要的操作,而且很简单。此外,来源非常容易理解。

不过,我对其他人没有经验。

更新

http 提供了更多库的基准测试://stepheneb.github.io/webgl-matrix-benchmarks/matrix_benchmark.html。在我的 Mac 上的 Chrome 中,Closure 轻松获胜。在我电脑上的 Chrome 中,这更像是一个难以抉择的事情。我现在仍在使用 glMatrix,因为它位于单个 Javascript 文件中。

Look at http://greggman.github.io/webgl-matrix-benchmarks/matrix_benchmark.html

I use glMatrix, and it works fine. The API is a bit weird.

var in = vec3.create([1, 2, 3]);

//overwrite 'in' in-place
vec3.scale(in, 2);

//write output to a different vector
var out = vec3.create();
vec3.scale(in, 2, out);

Or for glMatrix 2

var in = vec3.fromValues(1, 2, 3);

//overwrite 'in' in-place
vec3.scale(in, in, 2);

//write output to a different vector
var out = vec3.create();
vec3.scale(out, in, 2);

But it's fast, it supports the operations I want, and it's straightforward. Additionally, The source is very understandable.

I have no experience with the others, though.

Update:

There are benchmarks of more libraries available at http://stepheneb.github.io/webgl-matrix-benchmarks/matrix_benchmark.html. In Chrome on my Mac, Closure wins pretty handily. In Chrome on my PC, it's much more of a toss-up. I'm still using glMatrix for now, since it lives in a single Javascript file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文