2010-12-21 89 views
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(); 

我需要做些什么修改才能使它适合屏幕上的任何纹理,而不管它的长宽比如何?

回答

0

这可能有一些相关性。

Tiling texture bmp file as texture onto a rectangle in OpenGL?

您不妨考虑ARB扩展质感矩形作为一种替代方法(假设glTexImage2D?)http://glprogramming.com/red/chapter09.html

+0

如果我理解正确的一切(和我很可能不这样做,因为这是我第一次我只需要纹理矩形扩展,如果我的卡片不支持非幂次幂纹理。我已经能够创建纹理并将其显示在屏幕上,但是我的ortho安装程序正在制作四方形。我认为我的计算只是需要调整,但我不确定究竟需要做什么。 – 2010-12-21 20:51:45