Problem with ProjMatrix

Started by
0 comments, last by Brother Bob 11 years, 3 months ago

Hey there!

I am working on my own 2d sprite framework for android, but I am struggling with defining the right projection-matrix.

Please take a look at the attached screenshot...

If I use a normal Matrix.frustumM call it works as expected, but as soon as I use orthoM there´s only a line on the screen...

Here´s the code where the projectionmatrix is defined:


@Override
    public void onSurfaceChanged(GL10 unused, int width, int height) {
        // Adjust the viewport based on geometry changes,
        // such as screen rotation
        GLES20.glViewport(0, 0, width, height);
        
        Matrix.orthoM(mProjMatrix, 0, 0, width, 0, height, -1f, 1f);
    }

Here the matrix is used and multiplied by the view matrix:


@Override
    public void onDrawFrame(GL10 unused) {

        // Draw background color
        GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
        
        
        Matrix.setLookAtM(mVMatrix, 0, 0, 0, -3, 0f, 0f, 0f, 0f, 1.0f, 0.0f);
        
        // Calculate the projection and view transformation
        Matrix.multiplyMM(mVPMatrix, 0, mProjMatrix, 0, mVMatrix, 0);
        
        Square.getInstance().draw(mVPMatrix);
    }

Here is a part of the draw()-method where the matrix gets passed to the shader:


// Apply the projection and view transformation
        GLES20.glUniformMatrix4fv(mMVPMatrixHandle, 1, false, mVPMatrix, 0);

Advertisement

You should not expect perspective and orthographic projections to give comparable results in general. They are fundamentally different projections.

This topic is closed to new replies.

Advertisement