java - 适用于 JOGL + 通用矩阵数学的快速 Java 矩阵库?

标签 java matrix jogl

我有兴趣在 JOGL 2 中编写一个 OpenGL 应用程序,使用着色器而不是固定功能管道。我需要在 CPU 端做一些 4x4 double 矩阵数学运算,以替换固定功能管道的推送/弹出/转换业务。同一个应用程序还将包含一些需要对大型矩阵进行操作的机器学习代码。我已经查看了 JBLAS 的机器学习内容(并且由于我已经将 JNI 用于 JOGL,所以依赖另一个 native 库的缺点很小),但我不确定它是否是 GL 的最佳选择-相关矩阵。想法?

最佳答案

你只需要操作 4x4 矩阵吗?大多数通用线性代数库都针对大型矩阵进行了高度优化,而很少关注较小的矩阵。我写 EJML 的部分原因是为了解决这个问题并激励其他开发人员针对小矩阵进行优化。 EJML 对于小矩阵来说是最快的,但也有可能做得更好。

如果您真的需要很多性能,我不会使用任何常见的怀疑,而是推出您自己的高度特化的代码。应该有可能多次击败通用库。

2x2 矩阵的简单示例:

public class Matrix2x2 {
  double a11,a12,a21,a22;
}

public static void mult( Matrix2x2 a , Matrix2x2 b , Matrix2x2 c ) {
  c.a11 = a.a11*b.a11 + a.12*b.a21;
  c.a12 = a.a11*b.a12 + a.12*b.a22;
  c.a21 = a.a21*b.a11 + a.22*b.a21;
  c.a22 = a.a21*b.a12 + a.22*b.a22;
}

注意我没有尝试编译这段代码,它只是一个例子。

关于java - 适用于 JOGL + 通用矩阵数学的快速 Java 矩阵库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6312329/

相关文章:

java - 为什么每个玩家的积分会不断重置?

java - 如何将策略文件添加到嵌入 html 文件的 jar 小程序中

java - 读取实体 A 时从实体 B 读取值(在非 PK 列上左连接)- JPA 2.0

java - java.util.concurrent.ConcurrentLinkedQueue#head 初始化后如何更新?

python - 如何在Python中获得巨大对角矩阵的伪逆?

python - 在 Python 中复制字符串列表的最佳方法是什么?

java - 将 OpenGL 深度缓冲区转换为距相机的世界空间 z 距离?

java - 线程 "main"javax.media.opengl.GLException : No default device available 中出现异常

r - 如何从R中的矩阵创建边列表?

java - 在java OpenGL中从屏幕(视口(viewport))导出图像