2016-04-17 69 views
-1

私はいくつかの3Dオブジェクトを持っています。しかし、回転効果でそれらの一部だけを回転させたい。私はカメラではなくオブジェクトを回転させる必要があります。 GLFWを使ってどうすればいいですか?私に例を挙げてください。オブジェクトを回転させるOpenGL GLFW

答えて

2

OpenGLの回転は、GLFWを使用する場合と同じ方法で動作します。 あなたがすべきシーンに回転するだけのオブジェクトAのために、シェーダ(固定パイプライン)なしでOpenGLを使用する場合:

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/

+0

オブジェクトが描かれている場合、それを移動させて基軸(X、Y、Z)の周りを回転させる方法は? – NoName2

+0

オブジェクトを描画した後、オブジェクトを移動または回転することはできません。最初にマトリックスを設定してから描画してください。オブジェクトを移動して回転させるには、glRotatef(angle、0.0,1.0,0.0)を組み合わせることができます。 glTranslatef(0.0,0.0、-5.0)に従います。ここでオブジェクトが回転してから平行移動します。したがって、オブジェクトは座標0.0,0.0、-5.0で回転します。 –

関連する問題