Я довольно новичок в opengl и пытаюсь использовать его для своего приложения для Android. Я создал класс камеры, и я смог включить ось Y (рыскание), но я все еще не нашел способ включить оси Z и X. любая помогает?
import android.opengl.GLU;
import javax.microedition.khronos.opengles.GL10;
public class Camera
{
private Vertex3f _position = new Vertex3f(-20.0f,2.0f,0.0f);
private Vertex3f _rotation = new Vertex3f(0.0f,0.0f,0.0f);
public Camera()
{
}
public void updateCamera(GL10 gl)
{
// UP Y
GLU.gluLookAt(gl,
this._position.x,
this._position.y,
this._position.z,
this._position.x+(float) Math.cos(Math.toRadians(_rotation.y)),
this._position.y,
this._position.z+(float) Math.sin(Math.toRadians(_rotation.y)),
0.0f,
1.0f,
0.0f);
}
public void set_position(Vertex3f _position) {
this._position = _position;
}
public Vertex3f get_position() {
return _position;
}
public void set_rotation(Vertex3f _rotation) {
this._rotation = _rotation;
}
public Vertex3f get_rotation() {
return _rotation;
}
}
и для обновления камеры:
@Override
public void onDrawFrame(GL10 gl) {
gl.glClear(GL10.GL_COLOR_BUFFER_BIT
| GL10.GL_DEPTH_BUFFER_BIT);
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
camera.updateCamera(gl);
mCubeOpenGL.draw(gl);
}
для отправки тангажа крена:
public void orientationUpdate(double pitch,double roll,double yaw){
camera.set_rotation(new Vector3((float) roll, (float) yaw,(float) pitch));
}