1
我有一个需要填充屏幕的640x480纹理。到目前为止,我可以使它具有方形纹理,但不是矩形纹理。如何使用OpenGL正交模式的矩形填充屏幕?
glViewport(0, 0, display->w, display->h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
double aspectRatio = (double)display->w/(double)display->h;
if (display->w <= display->h)
glOrtho(-1, 1, -1/aspectRatio, 1/aspectRatio, -1, 1);
else
glOrtho(-1 * aspectRatio, 1 * aspectRatio, -1, 1, -1, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
我需要做些什么修改才能使它适合屏幕上的任何纹理,而不管它的长宽比如何?
如果我理解正确的一切(和我很可能不这样做,因为这是我第一次我只需要纹理矩形扩展,如果我的卡片不支持非幂次幂纹理。我已经能够创建纹理并将其显示在屏幕上,但是我的ortho安装程序正在制作四方形。我认为我的计算只是需要调整,但我不确定究竟需要做什么。 – 2010-12-21 20:51:45