2015-08-26 84 views
0

如何轉換左側接口的相機?需要圍繞「向上」向量旋轉「眼睛」向量!轉換攝像頭OpenGL

void Transform::left(float degrees, vec3& eye, vec3& up) { 
    float c = cosf(degrees * (pi/180)); 
    float s = sinf(degrees * (pi/180)); 
} 

mat4 Transform::lookAt(vec3 eye, vec3 up) { 

    glm::mat4 view = glm::lookAt(
     glm::vec3(eye.x, eye.y, eye.z), 
     glm::vec3(0.0f, 0.0f, 0.0f), 
     glm::vec3(up.x, up.y, up.z) 
     ); 
    return view; 
} 

回答

1

通過原始,未旋轉,視線矢量的旋轉矢量相乘計算一旋轉視線矢量,並傳遞到lookAt功能。

float rotX = cosf(angle * (pi/180)); 
float rotY = sinf(angle * (pi/180)); 

glm::vec3 rotatedEye = glm::vec3(eye.x * rotX , eye.y * rotY, eye.z) 

glam::mat4 view = lookAt(rotatedEye, up); 

請注意,每當您的相機向量改變時,您將需要計算一個新的視圖矩陣。