【发布时间】:2013-07-14 15:38:43
【问题描述】:
我对使用 OpenGL ES 2.0 还是很陌生。我也在使用 iPhone 和 GLM 数学库。正如我所引用的,我一直在使用本教程:http://tomdalling.com/blog/modern-opengl/03-matrices-depth-buffering-animation/ 但我发现很难找到 2D OpenGL 教程。
我正在尝试旋转 2D 精灵,但图像被扭曲了。 例如,旋转角度为 0 度:http://i.imgur.com/yBTN2ST.png,旋转角度为 45 度:http://i.imgur.com/cY5IJcg.png
在我的精灵类中
glm::mat4 projection = glm::ortho(0.0f, 480.0f, 0.0f, 320.0f);
glUniformMatrix4fv(projectionUniform, 1, GL_FALSE, glm::value_ptr(projection));
glm::mat4 newModel = glm::rotate(glm::mat4(), 0.0f, glm::vec3(0, 0, 1));
glUniformMatrix4fv(modelUniform, 1, GL_FALSE, value_ptr(newModel));
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
在我的顶点着色器中
vec4 newPosition = vec4(position + offset, 0.0, 1.0);
gl_Position = model * projection * newPosition;
我认为部分问题在于图像在没有考虑纵横比的情况下被旋转,我不确定如何解决这个问题。
谢谢
【问题讨论】:
标签: c++ ios rotation opengl-es-2.0 glm-math