我在 iPhone 上使用 opengl es 1.1。
我最初为肖像写了所有看起来很棒的东西,但是当我切换到横向模式时,图形似乎被拉伸了......
关于如何取消拉伸的任何线索?
我基本上遵循本教程,但添加了正方形并添加了 shouldAutorotateToInterfaceOrientation 但图形仍然被拉伸: http ://www.71squared.com/2011/03/tutorial-14-moving-to-3d/
代码:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
- (void)drawFrame
{
[(EAGLView *)self.view setFramebuffer];
// Replace the implementation of this method to do your own custom drawing.
static const GLfloat squareVertices[] = {
-0.33f, -0.33f, 0.0f,
0.33f, -0.33f, 0.0f,
-0.33f, 0.33f, 0.0f,
0.33f, 0.33f, 0.0f
};
static const GLubyte squareColors[] = {
255, 255, 0, 255,
0, 255, 255, 255,
0, 0, 0, 0,
255, 0, 255, 255,
};
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
// Position the camera back from the origin and slightly raised i.e. {0, 3, -6}
static GLfloat z = 0;
gluLookAt(0, 5, -10, 0, 0, 0, 0, 1, 0);
z += 0.075f;
// GL DRAW ARRAYS STUFF GOES HERE
[(EAGLView *)self.view presentFramebuffer];
}
- (void)initOpenGLES1
{
// Set the clear color
glClearColor(0, 0, 0, 1.0f);
// Projection Matrix config
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
CGSize layerSize = self.view.layer.frame.size;
gluPerspective(45.0f, (GLfloat)layerSize.width / (GLfloat)layerSize.height, 0.1f, 750.0f);
// Modelview Matrix config
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
// This next line is not really needed as it is the default for OpenGL ES
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDisable(GL_BLEND);
// Enable depth testing
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
glDepthMask(GL_TRUE);
}