シーンの一定の場所にオブジェクトを描画するアプリを作成していますが、携帯電話を動かすと、カメラがビューを変更し、すべてのオブジェクトが表示されるはずです (携帯電話で完全に回転すると)。
onDrawFrame メソッドで gl.glMultMatrixf(rotationMatrix, 0) を使用し、オブジェクトを完全に描画すると (回転行列は SensorManager から取得されます)
@Override
public void onDrawFrame(GL10 gl) {
gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity();
gl.glMultMatrixf(rotationMatrix, 0);
gl.glTranslatef(0f, 0f, -10f);
//draw object
pyramid.draw(gl);
}
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
gl.glViewport(0, 0, width, height);
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
GLU.gluPerspective(gl, 45.0f, (float) width / (float) height, 0.1f, 100.0f);
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
}
しかし、私が使用しようとすると:
GLU.gluLookAt( gl, 0.0f, 0.0f, 0.0f, x, y, z, 0.0f, 1.0f, 0.0f );
gl.glPushMatrix();
//draw object
pyramid.draw(gl);
私のオブジェクトは常に画面上の同じ場所にあり、カメラの動きに従います。2番目の例で何が間違っていますか?