FPS камера в OpenGL - PullRequest
       5

FPS камера в OpenGL

0 голосов
/ 05 сентября 2018

Я довольно новичок в 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));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...