我想在全屏上绘制opengl纹理。
(纹理:128x128 ===>设备屏幕:320x480)
下面的代码效果很好,但是纹理很小。
我只需要使用glFrustumf函数(而不是glOrthof函数)。
如何以全屏尺寸绘制纹理?
// this is android source code
float ratio = (float) screenWidth / screenHeight;
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
gl.glFrustumf(-ratio, ratio, -1, 1, 1, 10);
GLU.gluLookAt(gl, 0.0f, 0.0f, -2.5f, // eye
0.0f, 0.0f, 0.0f, // center
0.0f, 1.0f, 0.0f); // up
// draw blah blah
最佳答案
为什么只需要使用glFrustum
?规范的方法是切换到glOrtho
绘制背景,然后切换到glFrustum
进行常规绘制。
顺便说一句:gluLookAt
必须出现在模型视图矩阵中,而不是像现在这样在投影矩阵中发生。从目前的情况来看,您的代码已损坏,如果您是我的OpenGL类的学生,那么对于这个基本错误,我会给您负面的意见。