Java Android OpenGL ES 1:用四边形填充显示

Java Android OpenGL ES 1:用四边形填充显示,java,android,opengl-es,model-view,orthographic,Java,Android,Opengl Es,Model View,Orthographic,我正在创建一个只在横向模式下运行的应用程序。我正在尝试使用纹理四边形创建背景,尽管我还不担心纹理。我一直试图简单地从drawOverlayGL10 gl绘制一个四边形,在禁用gl_深度_测试的情况下填充屏幕,但每当我这样做时,四边形不会完全填充屏幕,我可以在屏幕底部和顶部看到glClearColor的条带 无法使用我用于所有其他对象的modelview矩阵绘制它,我尝试使用gluOrtho2D和glOrthof绘制它,但两者都不起作用。我真的不明白近剪裁平面和远剪裁平面是如何与正交图形一起工作的

我正在创建一个只在横向模式下运行的应用程序。我正在尝试使用纹理四边形创建背景,尽管我还不担心纹理。我一直试图简单地从drawOverlayGL10 gl绘制一个四边形,在禁用gl_深度_测试的情况下填充屏幕,但每当我这样做时,四边形不会完全填充屏幕,我可以在屏幕底部和顶部看到glClearColor的条带

无法使用我用于所有其他对象的modelview矩阵绘制它,我尝试使用gluOrtho2D和glOrthof绘制它,但两者都不起作用。我真的不明白近剪裁平面和远剪裁平面是如何与正交图形一起工作的。每当我尝试使用glOrtho2D或glOrthof绘制它时,虽然场景的其余部分仍被渲染,但四边形始终没有绘制

这是我尝试用正交矩阵画图

private void drawOverlay(GL10 gl) {
    gl.glDisable(GL10.GL_DEPTH_TEST);
    gl.glMatrixMode(GL10.GL_PROJECTION);
    gl.glPushMatrix();
    gl.glLoadIdentity();
    GLU.gluOrtho2D(gl, 0f, 1f, 1f, 0f);
    gl.glMatrixMode(GL10.GL_MODELVIEW);
    gl.glLoadIdentity();
    background.draw(gl, 1.0f, 1.0f, 1.0f, 1.0f);
    gl.glEnable(GL10.GL_DEPTH_TEST);
    gl.glMatrixMode(GL10.GL_PROJECTION);
    gl.glPopMatrix();
    gl.glMatrixMode(GL10.GL_MODELVIEW);
}
我从onDrawFrame开始调用该函数-在绘制任何其他内容之前:

public void onDrawFrame(GL10 gl) {
    drawOverlay(gl);
    gl.glLoadIdentity
    //...
}
以下是如何创建背景:

background = new ShapePostcard(1f, 1f);
我很确定我不能用普通的modelview矩阵让四边形覆盖屏幕,但基本上我所做的只是在onDrawFrame中绘制背景,然后在禁用深度测试的情况下进行其他操作


谢谢你的支持

绘制填充屏幕的四边形的最简单方法是将投影和模型设置为单位矩阵,然后绘制坐标为[-1,-1]到[1,1]的网格。这是你看到边界时画的吗? 我是说


OpenGL ES不支持四边形

 (x, y, widht, height) = (-1,-1, 2, 2)