在 OpenGL ES 1.1 中,您可以使用glRotatef()
旋转模型,但 OpenGL ES 2.0 中不存在该函数。
那么,在OpenGL ES 2.0中如何进行旋转呢?
为了遵循克里斯蒂安所说的,您需要自己跟踪模型视图矩阵并操纵它来执行您需要的旋转。然后,您将矩阵作为统一传递给着色器,并执行如下操作:
attribute vec4 position;
uniform mat4 modelViewProjMatrix;
void main()
{
gl_Position = modelViewProjMatrix * position;
}
我发现核心动画 CATransform3D 辅助函数非常适合执行所需的正确矩阵操作。您可以旋转、缩放和平移 CATransform3D,然后读出其 4x4 矩阵元素以创建所需的模型视图矩阵。
如果你想看看它的实际效果,这个示例 iPhone 应用程序 http://www.sunsetlakesoftware.com/sites/default/files/CubeExample.zip我创建了如何使用 OpenGL ES 1.1 和 2.0 执行立方体旋转的演示。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)