画像は常に大量のテキストよりも多くを話します。これが私がやろうとしていることです:
円の中心にあるのがユーザーの電話位置(原点)です。アプリはカスタム カメラ ビューを表示し、OpenGL シーンも表示します (見ている場所によって異なります)。OpenGL シーンは単純な立方体のみで構成されており、ユーザーが正しい方向を見ていると、立方体がレンダリングされます。
私は OpenGL を初めて使用し、カメラの前に立方体を表示することに成功しましたが、静的です。360° ビューを移動できません。
センサーからデバイスの向きを取得します:
int type = event.sensor.getType();
float[] data;
if (type == Sensor.TYPE_ACCELEROMETER) {
mGData = data;
} else if (type == Sensor.TYPE_MAGNETIC_FIELD) {
mMData = data;
} else {
// we should not be here.
return;
}
for (int i=0 ; i<3 ; i++)
data[i] = event.values[i];
SensorManager.getRotationMatrix(mR, mI, mGData, mMData);
SensorManager.getOrientation(mR, mOrientation);
私の知る限り、3 つの同時直交回転角度は mOrientation に格納されます。しかし、その後は?メソッドのようなものを作りたかったGLU.lookAt(0, 0, 0, X, Y, Z, ?, ?, ?)
のonDrawFrame
ですが、うまくいきませんでした。あの男ができないと言ったようなものを作りたいです(ここの最後の段落を参照してください:https://stackoverflow.com/a/9114246/1304830)。
で使用したコードは次のonDrawFram
とおりです。
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glMatrixMode(GL10.GL_MODELVIEW);
// Look in a direction (with the sensors)
gl.glLoadIdentity();
GLU.gluLookAt(gl, 0.0f, 0.0f, 0.0f, ?, ?, ?, ?, ?, ?); // Where I need help
gl.glPushMatrix();
// Place the cube in the scene
gl.glTranslatef(0, 0, -5);
mCube.draw(gl);
ご協力いただきありがとうございます