Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid Sensors for OpenGL
    primarykey
    data
    text
    <p>I want to get the android sensors to work with opengl to rotate the opengl's camera to wherever the phone is pointing to.</p> <p>To elaborate: if the player is looking at east, I'd like to the opengl's camera points east too on the game; if the player points to the sky, I'd like to point the opengl's camera to the sky and so on.</p> <p>I've tried using <code>getRotationMatrix</code> and load the matrix on the opengl but it only works on the up-down direction, if I turn the cell to the sides, there is no difference. Here is what I've done so far (the app is in landscape mode):</p> <pre><code> public void onSensorChanged(SensorEvent evt) { int type=evt.sensor.getType(); float alpha = 0.8f; //Smoothing the sensor data a bit if (type == Sensor.TYPE_MAGNETIC_FIELD) { geomag[0]=geomag[0]*alpha+evt.values[0]*(1-alpha); geomag[1]=geomag[1]*alpha+evt.values[1]*(1-alpha); geomag[2]=geomag[2]*alpha+evt.values[2]*(1-alpha); } else if (type == Sensor.TYPE_ACCELEROMETER) { gravity[0]= gravity[0]*alpha+evt.values[0]*(1-alpha); gravity[1]= gravity[1]*alpha+evt.values[1]*(1-alpha); gravity[2]= gravity[2]*alpha+evt.values[2]*(1-alpha); } if ((type==Sensor.TYPE_MAGNETIC_FIELD) || (type==Sensor.TYPE_ACCELEROMETER)) { rotationMatrix = new float[16]; SensorManager.getRotationMatrix(rotationMatrix, null, gravity, geomag); SensorManager.remapCoordinateSystem( rotationMatrix, SensorManager.AXIS_Y, SensorManager.AXIS_MINUS_X, rotationMatrix ); if (AOGLRenderer.rotationmatrix==null) AOGLRenderer.rotationmatrix = new float[16]; AOGLRenderer.rotationmatrix = rotationMatrix; } } </code></pre> <p>and in the opengl code:</p> <pre><code> gl.glClear(GL10.GL_COLOR_BUFFER_BIT | // OpenGL docs. GL10.GL_DEPTH_BUFFER_BIT); gl.glLoadIdentity(); if (rotationmatrix!=null) gl.glLoadMatrixf(rotationmatrix, 0); gl.glPushMatrix(); gl.glTranslatef(0, 0, -70); g.draw(gl); gl.glPopMatrix(); alpha+=2f; gl.glTranslatef(0, -15, 0); c.draw(gl); </code></pre> <p>I'd like that someone who actually did it could share their code! I'd really appreciate it! Thank you all!</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload