1
我正在試圖用glm創建視圖矩陣。我知道glm::lookAt
並瞭解它是如何工作的。我想知道是否有類似的功能會實現不同的參數。例如,是否有一個函數需要一個上矢量,一個方向與方向垂直的矢量(?),以及一個角度? (即天空就是這樣,我向左轉動N度/弧度,向上仰角M度/弧度)。用glm創建視圖矩陣
我正在試圖用glm創建視圖矩陣。我知道glm::lookAt
並瞭解它是如何工作的。我想知道是否有類似的功能會實現不同的參數。例如,是否有一個函數需要一個上矢量,一個方向與方向垂直的矢量(?),以及一個角度? (即天空就是這樣,我向左轉動N度/弧度,向上仰角M度/弧度)。用glm創建視圖矩陣
您可以只用合成一組操作的建立矩陣:
// 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);
謝謝,這應該有助於解決我眼前的問題。但是,我仍然很想知道glm中是否有其他'方便'函數來創建矩陣。 – DXsmiley
知道這些就應該是微不足道的,將它們轉換成一組參數LOOKAT需求。 – Kromster