Dies führt eine Standardmatrixmultiplikation zwischen der Matrix 'm' und dem Vektor 'in' durch. Das Ergebnis wird wieder in 'm' platziert. Um die 4x4-Matrix mit einem Vektor der Größe 3 zu multiplizieren, verhält sich diese Funktion so, als ob der Vektor float4 mit einem Wert von 1 für die w-Dimension wäre.
Für die Dokumentation zu dieser Funktion schauen Sie hier nach: http://developer.android.com/reference/renderscript/rs__matrix_8rsh.html
Im Folgenden finden Sie den tatsächlichen Code aus rs_core.c des AOSP:
extern float4 __attribute__((overloadable))
rsMatrixMultiply(const rs_matrix4x4 *m, float3 in) {
float4 ret;
ret.x = (m->m[0] * in.x) + (m->m[4] * in.y) + (m->m[8] * in.z) + m->m[12];
ret.y = (m->m[1] * in.x) + (m->m[5] * in.y) + (m->m[9] * in.z) + m->m[13];
ret.z = (m->m[2] * in.x) + (m->m[6] * in.y) + (m->m[10] * in.z) + m->m[14];
ret.w = (m->m[3] * in.x) + (m->m[7] * in.y) + (m->m[11] * in.z) + m->m[15];
return ret;
}
0 Stimmen
Schauen Sie sich hier developer.android.com/reference/android/opengl/Matrix.html an. Möglicherweise müssen Sie eine manuelle Matrixmultiplikation durchführen.