我怎么能这样做,所以我可以将像素坐标插入gl.glTranslatef()? 目前,我这样做是为了让纹理出现在屏幕的底部:
gl.glPushMatrix();
gl.glTranslatef(1.45f, -2.76f, 0);
gl.glScalef(1 / scaleX, 1 / scaleY, 0);
Square sq = getTexture(resourceId);
sq.draw(gl);
gl.glPopMatrix();
无需插入" 1.45f,-2.76f,0"值,纹理出现在屏幕的中心。如何使用像素坐标定位纹理?我纹理的大部分尺寸都是32x32,还有几个16x16。
在我使用((GL11Ext)gl).glDrawTexfOES()渲染我的纹理之前,我无法对纹理执行任何转换,例如我无法旋转它们等等。
答案 0 :(得分:0)
我不知道您如何设置投影,但您应该使用glOrtho和glViewport来设置您的场景。给出一个大小(宽度,高度)的窗口:
// init opengl at some previous point
gl.glViewport(0, 0, width, height);
// choose bottom-left corner, e.g. (0,0)
// use your own values for near and far planes
float left = 0, bottom = 0, near = 0.1f, far = 1000.0f;
gl.glMatrixMode(GL_PROJECTION);
gl.glOrtho(left, left + width, bottom, bottom + height, near, far);
gl.glMatrixMode(GL_MODELVIEW);
gl.glLoadIdentity();
您将获得应用程序的像素坐标(左下角(左下角))