ora però ho un altro bel problema.
openGl ad ogni frame ridisegna la griglia, quindi ad ogni frame posso effettuare delle trasformazioni sull'oggetto.
Nel mio caso traslazione e rotazione. Faccio la traslazione per posizionarmi al centro della griglia, in realtà e la griglia che si sposta non io... poi utilizzando i sensori di orientamento effettuo 3 rotazioni, una su ogni asse. Prima X, poi Y e infine Z.
Considerate che il sistema di riferimento di openGL secondo documentazione é:
The coordinate space is defined relative to the screen of the phone
in its default orientation. The axes are not swapped when the device's
screen orientation changes.
The OpenGL ES coordinate system is used. The origin is in the
lower-left corner with respect to the screen, with the X axis horizontal
and pointing right, the Y axis vertical and pointing up and the Z axis
pointing outside the front face of the screen. In this system, coordinates
behind the screen have negative Z values.
Note: This coordinate system is different from the one used in the
Android 2D APIs where the origin is in the top-left corner.
Detto questo... se io ho il device in portrait, in verticale rispetto al pavimento, bene o male il risultato è buono, muovendo il device la griglia si muove a sua volta, però se ruoto intorno all'asse z (che punta verso di me), quindi è sto ruotando il cellualre come un volante di un auto verso dx o sx, e contemporaneamente ruoto intono all'asse x, il risultato non è come speravo.... il movimento della griglia diventa scattoso e poco spreciso.
La cosa mi fa pensare... perchè se effettuo una rotazione di 90° intorno all'asse Z e quindi portando il device in landscape il giochino non funziona più... questo credo perchè come dice la documentazione "The axes are not swapped when the device's screen orientation changes."
A questo punto leggendo la documentazione riguardo i sensori di orientamento, viene suggerito questo:
Note: It is preferable to use getRotationMatrix() in conjunction with remapCoordinateSystem() and getOrientation() to compute these values; while it may be more expensive, it is usually more accurate.
qualcuno ha già lavorato con questi metodi da potermi aiutare a capire se possono fare al caso mio?