我有一些3D物体。但我想只旋转其中一些旋转效果。我需要旋转物体,而不是相机。我怎么能用GLFW呢?请举个例子。
答案 0 :(得分:2)
首先,如果您使用GLFW,OpenGL中的旋转工作方式相同。 如果您使用不带着色器的OpenGL(固定管道),要仅旋转场景中的对象A,您应该:
glMatrixMode(GL_MODELVIEW);
glPushMatrix(); // save the current GL_MODELVIEW matrix
glRotatef(angle, 0, 1, 0); // rotate your object
drawObjectAHere(); // draw object A
glPopMatrix(); // restore the GL_MODELVIEW matrix
更多信息: How to rotate a specific object in openGL?
如果使用着色器,则应自行创建旋转矩阵,并将其发送到顶点着色器。 此库可用于创建旋转矩阵:http://glm.g-truc.net/0.9.7/index.html 我希望,本教程也很有用,可以了解如何在着色器中使用此矩阵来旋转对象:http://www.geeks3d.com/20111115/how-to-compute-the-position-in-a-vertex-shader-glsl-opengl-part-3/