Javascript 在glMatrix、Sylvester和CanvasMatrix之间选择?

Javascript 在glMatrix、Sylvester和CanvasMatrix之间选择?,javascript,webgl,Javascript,Webgl,最后,我决定从头开始制作自己的WebGL 3D引擎,从和开始学习教程 但问题是,每个教程都使用/推荐了不同的矩阵计算库,所以我很困惑 khronos推荐CanvasMatrix(但现在他们从Apple切换到J3DI.js?) Mozilla一路推荐Sylvester Learningwebgl.com推荐glMatrix 问题是:哪一个最适合3D WebGL应用程序、图表和游戏?(性能和可用性问题) 谢谢你看http://glmatrix.googlecode.com/hg/benchmar

最后,我决定从头开始制作自己的WebGL 3D引擎,从和开始学习教程

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

  • khronos推荐CanvasMatrix(但现在他们从Apple切换到J3DI.js?)
  • Mozilla一路推荐Sylvester
  • Learningwebgl.com推荐glMatrix
问题是:哪一个最适合3D WebGL应用程序、图表和游戏?(性能和可用性问题)

谢谢你看http://glmatrix.googlecode.com/hg/benchmark/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);
或用于GL2矩阵

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);
但是它很快,支持我想要的操作,而且很简单。此外,来源是非常可以理解的

不过,我没有和其他人打交道的经验

更新:


网站上提供了更多图书馆的基准。在我的Mac上的Chrome浏览器中,Closure非常容易地获胜。在我的电脑上使用Chrome,这更像是一个折腾。我现在仍在使用glMatrix,因为它存在于一个Javascript文件中。

遗憾的是,它们没有针对numeric.js和Sylvester进行基准测试。据介绍,Sylvester在3x3(或更高)矩阵逐矩阵乘法方面实际上比Google Closure快,至少在我的系统上是这样的(WinXP/32,Chrome 20)。我的基准测试(拉请求待定)。西尔维斯特很慢。为什么它比关闭要快?答案是:该基准测试闭包的通用矩阵函数,而不是那些专用于WebGL的函数。好吧,在glMatrix 2.2.0 vec3.create中,它不接受参数,如图所示创建一个参数将创建一个长度为零的vec3,但vec3.fromValues(1,2,3)将起作用