在OpenGL ES 1.1中,您可以使用glRotatef()
来旋转模型,但OpenGL ES 2.0中不存在该功能。
因此,如何在OpenGL ES 2.0中执行旋转?
答案 0 :(得分:1)
要跟随基督徒的说法,你需要自己跟踪模型视图矩阵并操纵它来执行你需要的旋转。然后,您将矩阵作为制服传递到着色器,并执行以下操作:
attribute vec4 position;
uniform mat4 modelViewProjMatrix;
void main()
{
gl_Position = modelViewProjMatrix * position;
}
我发现核心动画CATransform3D辅助函数非常适合执行正确的矩阵操作。您可以旋转,缩放和转换CATransform3D,然后读出其4x4矩阵元素以创建所需的模型视图矩阵。
如果您希望看到这一点,我创建的this sample iPhone application显示了如何使用OpenGL ES 1.1和2.0执行多维数据集的旋转。
答案 1 :(得分:0)
如果没有固定的函数矩阵堆栈,则必须自己管理转换矩阵。参考关于矩阵和向量代数的一些介绍性材料,特别是关于3d变换的介绍性材料。然后你就会明白,glRotate之类的东西真的如此。