我想在全屏上绘制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类的学生,那么对于这个基本错误,我会给您负面的意见。

10-05 17:42
查看更多