Android GLU.glu2D翻转我的纹理

Android GLU.glu2D翻转我的纹理,android,opengl-es,Android,Opengl Es,多亏了堆栈溢出,我很快就能解决我一直遇到的许多问题。我这个周末还有一个 我有一个叫做GameObject2D的对象,它基本上是一个带有一些纹理的正方形。在3D中投影此对象时,一切都正常。我使用一个名为prepare3Ddrawing的方法来实现这一点。然后我想做二维绘图,所以我有一个我正在使用的方法,准备二维绘图投影矩阵。我尝试了两种不同版本的prepare2Ddrawing,但无法通过seam使其正常工作。首先是我的3d准备 private void prepare3Ddrawing(GL10

多亏了堆栈溢出,我很快就能解决我一直遇到的许多问题。我这个周末还有一个

我有一个叫做GameObject2D的对象,它基本上是一个带有一些纹理的正方形。在3D中投影此对象时,一切都正常。我使用一个名为prepare3Ddrawing的方法来实现这一点。然后我想做二维绘图,所以我有一个我正在使用的方法,准备二维绘图投影矩阵。我尝试了两种不同版本的prepare2Ddrawing,但无法通过seam使其正常工作。首先是我的3d准备

private void prepare3Ddrawing(GL10 gl)
    {   
        gl.glLoadIdentity();
        gl.glViewport(0, 0, getWidth(), getHeight());
        gl.glDisable(GL10.GL_DITHER);
        gl.glEnable(GL10.GL_DEPTH_TEST);
        gl.glMatrixMode(GL10.GL_PROJECTION);
        gl.glLoadIdentity();
        GLU.gluPerspective(gl, 45.0f, (float)getWidth()/(float)getHeight(),0.1f,100.0f);    
    }
这是我的2D版本,它把原点放在左下角而不是左上角

private void prepare2Ddrawing(GL10 gl)
    {   
        gl.glDisable(GL10.GL_DEPTH_TEST);
        gl.glLoadIdentity();
        gl.glMatrixMode(GL10.GL_PROJECTION);
        gl.glLoadIdentity();
        GLU.gluOrtho2D(gl,0,getWidth(), 0, getHeight());
        gl.glMatrixMode(GL10.GL_MODELVIEW);
        gl.glLoadIdentity();
    }

我相信我需要正确的GLU.gluOrtho2D(gl…)组合才能得到正确的结果。有什么想法吗?谢谢

GLU.gluOrtho2D(gl,0,getWidth(),0,getHeight())具有参数left、right、bottom和top。如果您想要“类似屏幕”的坐标,您需要将顶部设置为“0.0”,底部设置为“getHeight()。此方法基本上用于设置坐标系。例如,如果您需要绘制一些图形,您希望(0,0)位于中间,左if(-1,0),顶部为(0,1),因此参数为(-1,1,-1,1),但如果您希望具有类似于最常见屏幕坐标系的内容,您将希望(0,0)位于左上角,而(宽度,高度)位于右下角(0,宽度,高度,0)。或者为了简单起见:只需在视图的左上角和右下角插入所需的坐标。

GLU.gluOrtho2D(gl,0,getWidth(),0,getHeight())具有参数left,right,bottom,top。如果您想要“类似屏幕”的坐标,您需要将顶部设置为“0.0”,底部设置为“getHeight()。此方法基本上用于设置坐标系。例如,如果您需要绘制一些图形,您希望(0,0)位于中间,左if(-1,0),顶部为(0,1),因此参数为(-1,1,-1,1),但如果您希望具有类似于最常见屏幕坐标系的内容,您将希望(0,0)位于左上角,而(宽度,高度)位于右下角(0,宽度,高度,0)。或者为了简单起见:只需在视图的左上角和右下角插入所需的坐标即可。

除了它仍会翻转我的2D对象,而且因为我进行剔除的方式和匹配纹理的方式,对象不再显示。然后只需交换顶点顺序或切换剔除或切换纹理坐标或镜像纹理图像。。。看起来你做了这样一个组合,你只需要交换一些东西。除了它仍然会翻转我的2D对象,而且因为我的剔除方式和我如何匹配纹理,对象不再出现。然后只需交换顶点顺序或切换剔除或切换纹理坐标或镜像纹理图像。。。看起来你做了这样一个组合,你只需要交换一些东西。