2014-03-05 90 views
1

我正在試圖用glm創建視圖矩陣。我知道glm::lookAt並瞭解它是如何工作的。我想知道是否有類似的功能會實現不同的參數。例如,是否有一個函數需要一個上矢量,一個方向與方向垂直的矢量(?),以及一個角度? (即天空就是這樣,我向左轉動N度/弧度,向上仰角M度/弧度)。用glm創建視圖矩陣

+0

知道這些就應該是微不足道的,將它們轉換成一組參數LOOKAT需求。 – Kromster

回答

3

您可以只用合成一組操作的建立矩陣:

// define your up vector 
glm::vec3 upVector = glm::vec3(0, 1, 0); 
// rotate around to a given bearing: yaw 
glm::mat4 camera = glm::rotate(glm::mat4(), bearing, upVector); 
// Define the 'look up' axis, should be orthogonal to the up axis 
glm::vec3 pitchVector = glm::vec3(1, 0, 0); 
// rotate around to the required head tilt: pitch 
camera = glm::rotate(camera, tilt, pitchVector); 

// now get the view matrix by taking the camera inverse 
glm::mat4 view = glm::inverse(camera); 
+0

謝謝,這應該有助於解決我眼前的問題。但是,我仍然很想知道glm中是否有其他'方便'函數來創建矩陣。 – DXsmiley