我一直想知道是否有人对此有所了解
android.opengl.Matrix.multiplyMM
他们可以分享。
.
问的原因是,在通过OpenGL ES学习时,该方法被广泛用于各种计算。但是,我发现使用android.renderscript.Matrix4f比使用原始 float[] 数组更自然。问题是,Matrix4f 的乘法函数使用临时矩阵来执行操作,这导致内存效率低下。
解决这个问题的一种方法是创建我自己的Matrix4f并自己编写 multiply() 。我基于以下示例。它可能看起来很糟糕,但为我节省了所有 set()、get() 和循环,从而提高了性能。
但是,我仍然不想让multiplyMM离开。在源代码中,您可以读到该方法是native,因此应该更快地评估(是吗?)。这让我再次感到好奇。
.
因此,有谁知道:
- multiplyMM 的底层算法是什么?它使用临时工吗?
- 用起来会比自己写的乘法快吗?