XCode 的 OpenGL 模板似乎在解决这个我在过去 3 小时里一直试图理解的“拉伸”视口问题。
在iphone“OpenGL ES Application”模板中,在屏幕上上下弹跳的彩色方块根本就不是真正的方块!
ES1Renderer.m(也是 ES2 文件)
static const GLfloat squareVertices[] = {
-0.5f, -0.33f,
0.5f, -0.33f,
-0.5f, 0.33f,
0.5f, 0.33f,
};
但由于非方形视口的拉伸/挤压效果,它在设备/模拟器上看起来是方形的。我试图通过摆弄 glFrustumf() 来修复它,但这似乎并没有改变纵横比。
当我用 1:1 的宽度:高度喂给 glViewport() 时,我能够让事情看起来不错(没有拉伸)。但这似乎不是答案,因为它抵消了视口的位置。
纠正这种拉伸的正确方法是什么,为什么 XCode 不这样做?