2016-07-14 9 views
0

Ich habe einen Scheitel (die ich in der Szene wird nicht angezeigt/Rendering)GLES20 Wie globale Position von Vertex zu erhalten, nachdem Verschieben und Drehen es

float vertex[] = { 
      1.0f, 1.0f, 1.0f, 
}; 

Und ich habe eine Masche, die ich übersetzt und gedreht wird:

Matrix.translateM(World.mModelMatrix, tmOffset, globalPositionX, globalPositionY, globalPositionZ); 


Matrix.rotateM(World.mModelMatrix, rmOffset, globalRotationZ, 0, 0, 1); 
Matrix.rotateM(World.mModelMatrix, rmOffset, globalRotationY, 0, 1, 0); 
Matrix.rotateM(World.mModelMatrix, rmOffset, globalRotationX, 1, 0, 0); 

Wie kann diese Übersetzungen und Drehungen auf den Scheitelpunkt anwenden und erhält seine globale Position (x, y, z) nach?

Antwort

0

Verwenden Sie die Matrix.multiplyMV Methode:

float vertex[] = { 1.0f, 1.0f, 1.0f, 1.0f }; 
float result[] = { 0.0f, 0.0f, 0.0f, 0.0f }; 

Matrix.multiplyMV(result, 0, matrix, 0, vertex, 0); 

Beachten Sie, dass Sie ein homogenes auf Ihre Vektor-Koordinate hinzufügen müssen, damit es funktioniert.

+0

Gibt es eine Möglichkeit, mehrere Scheitelpunkte hinzuzufügen, anstatt nacheinander zu schleifen? –

+0

Nicht, dass ich es wissen würde, aber ich bin nicht sehr erfahren mit Android. – BDL