2

MultMatrix 似乎只乘以 4x4 矩阵,这对于 OpenGL 的目的是有意义的,但我想知道 OpenGL 中是否存在更通用的矩阵乘法函数。

4

2 回答 2

2

不,可以通过查看文档轻松验证,包括GL Shader Language。最大的矩阵数据类型是 4x4。

确实,通过以非常棘手的方式使用 OpenGL 原语,让 GPU 进行更通用的数学运算,包括用于加密目的的字符串和文本操作是一整套工艺。但是,您要求使用通用矩阵乘法函数。

OpenCL 是一个不同的故事。它没有乘法原语,但它是为一般数值计算而设计的,因此示例和库非常常见。

您还可以轻松地在CUDA中为 NVIDIA 处理器编写通用矩阵乘法。他们的教程包括这样一个例程的设计。

于 2012-12-31T04:37:10.447 回答
1

很多人认为,传统 OpenGL(直到 OpenGL-2.1)的矩阵乘法在某种程度上会更快。不是这种情况。固定函数流水线矩阵操作函数都在 CPU 上执行,并且只在绘图调用之前按需更新 GPU 矩阵寄存器。

使用 OpenGL 进行矩阵数学乘法没有任何好处。如果你想做 GPGPU 计算,你必须使用 OpenCL 或计算着色器来做这件事,并且要真正从中受益,它必须应用于一个非常好的并行化问题。

于 2012-12-31T08:36:43.657 回答