我有一些3D对象。但我只想用旋转效果旋转其中的一部分。我需要旋转物体,而不是相机。我如何使用GLFW来实现它?请举个例子吧。
发布于 2016-04-17 15:39:41
首先,无论是否使用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/
https://stackoverflow.com/questions/36672546
复制相似问题