2017-02-21 5 views
-2

私たちはpngイメージとして半円を使用しています。私たちは、opengl rotate APIを使用している円の枠に合わせて回転しています。理由。ウィンドウを使用してopenglのpngイメージを回転する

glm::mat4 transform; 
transform = glm::rotate(transform, glm::radians(-60.0f), glm::vec3(m_fAltXPos, m_fAltYPos, 0.0f)); 
GLuint transformLoc = glGetUniformLocation(m_uiProgram, "transform"); 
glUniformMatrix4fv(transformLoc, 1, GL_FALSE, glm::value_ptr(transform)); 
    if (m_ucType == VTD_INTRUDER_RA) 
    glBindTexture(GL_TEXTURE_2D, m_uiTextures[VTD_INT_TEX_ORA]); 
    else 
    glBindTexture(GL_TEXTURE_2D, m_uiTextures[VTD_INT_TEX_OTA]); 

glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0); 

ここで、m_uiTexturesはテクスチャの読み込みに使用されます。

+4

"私たちは適切な解決策を得ていません" - 正確に何が期待されているのか、何が得られるのかを少し具体的にすることができます(スクリーンショットが役に立ちます)。 – domsson

答えて

1

私の推測では、「世界座標」変換なしで2次元表面上にクワッドを描いていますが、まだ3Dで回転しています。

glm :: rotateは、回転、回転角度、回転する軸の周りに行列を格納することを前提としています。 あなたは、x軸を中心に回転したい場合は:あなたは

transform = glm::rotate(transform, glm::radians(-60.0f), glm::vec3(0.0f, 0.0f, 1.0f)); 

transform = glm::rotate(transform,angle,glm::vec3(0.0f,1.0f,1.0f)' 

変更

transform = glm::rotate(transform, glm::radians(-60.0f), glm::vec3(m_fAltXPos, m_fAltYPos, 0.0f)); 

軸y、zの周りを回転したい

transform = glm::rotate(transform,angle,glm::vec3(1.0f,0.0f,0.0f); 

または多分

ちょうどあなたは2D空間で作業し、x軸またはy軸周りの回転から利益を得ることはありません。

関連する問題