由于堆栈溢出,我非常接近解决我一直遇到的许多问题。这个周末我又买了一份。
我有一个名为 GameObject2D 的对象,它基本上是一个带有一些纹理的正方形。以 3D 投影此对象时,一切正常。我使用一种名为 prepare3Ddrawing 的方法来执行此操作。然后我想做二维绘图,所以我有一个我正在使用一种方法来为二维绘图准备投影矩阵。我已经尝试了两种不同版本的 prepare2Ddrawing 并且无法缝合以使其正常工作。首先是我的 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...) 组合才能获得正确的结果。有任何想法吗?谢谢!