2016-07-14 1 views
0

j'ai un sommet (que je ne montrerai/rendu dans la scène)GLES20 Comment obtenir la position globale du sommet après la traduction et tourner

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

Et j'ai un maillage, que je traduis et mis en rotation à l'aide:

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); 

Comment appliquer ces traductions et les rotations au sommet, et obtenir sa position globale (x, y, z) après?

Répondre

0

Utilisez la méthode Matrix.multiplyMV:

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); 

Notez que vous devrez ajouter un groupe homogène de coordonnées à votre vecteur pour le faire fonctionner.

+0

est-il un moyen d'ajouter plusieurs sommets, au lieu de boucler un par un? –

+0

Pas que je le saurais, mais je ne suis pas très expérimenté avec Android. – BDL