如何在openGL es 2.0中的y轴上的新坐标中旋转(在x轴上旋转90度之后)

时间:2012-09-11 03:33:39

标签: opengl-es

我在x轴上旋转了一个90度的立方体,之后我想在y轴上旋转另一个90度,但它确实得到了预期的(来自我)结果,因为它之前是旋转的 我想旋转发生让我们说在世界坐标...我认为我的当前代码是重置身份矩阵,但如果我删除该行没有任何渲染。这是我的代码:

public void onDrawFrame(GL10 arg0) {
//      GLES20.glEnable(GLES20.GL_TEXTURE_CUBE_MAP);
        GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT);
        GLES20.glUseProgram(iProgId);

    cubeBuffer.position(0);
    GLES20.glVertexAttribPointer(iPosition, 3, GLES20.GL_FLOAT, false, 0, cubeBuffer);
    GLES20.glEnableVertexAttribArray(iPosition);

    texBuffer.position(0);
    GLES20.glVertexAttribPointer(iTexCoords, 3, GLES20.GL_FLOAT, false, 0, texBuffer);
    GLES20.glEnableVertexAttribArray(iTexCoords);

    GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
    GLES20.glBindTexture(GLES20.GL_TEXTURE_CUBE_MAP, iTexId);
    GLES20.glUniform1i(iTexLoc, 0);


    Matrix.setIdentityM(m_fIdentity, 0);


    if(rotating == true)
    {
        rotate();
    }

    Matrix.rotateM(m_fIdentity, 0, -xAngle, 0, 1, 0);
    Matrix.rotateM(m_fIdentity, 0, -yAngle, 1, 0, 0);

    Matrix.multiplyMM(m_fVPMatrix, 0, m_fViewMatrix, 0, m_fIdentity, 0);
    Matrix.multiplyMM(m_fVPMatrix, 0, m_fProjMatrix, 0, m_fVPMatrix, 0);

// Matrix.translateM(m_fVPMatrix,0,0,0,1);         GLES20.glUniformMatrix4fv(iVPMatrix,1,false,m_fVPMatrix,0);

    GLES20.glDrawElements(GLES20.GL_TRIANGLES, 36, GLES20.GL_UNSIGNED_SHORT, indexBuffer);

// GLES20.glDisable(GLES20.GL_TEXTURE_CUBE_MAP);     }

0 个答案:

没有答案