版權聲明:本文轉自http://blog.csdn.net/huutu 轉載請帶上 http://www.liveslives.com/
這兩天都被 glm::perspective 所困擾,圖像顯示出來的是倒立的,上下顛倒了。
glm::mat4 proj = glm::perspective(60.0f, 1.0f, 0.3f, 1000.0f);
今天才硬着頭皮 去看了 glm::perspective 函數的實現,然後和 透視投影矩陣計算公式對比。
才發現原來傳入 的 視野角度 fovy 是要 弧度!!!
例如我們要設置 60 度 的視野角度,應該使用
glm::mat4 proj = glm::perspective(glm::radians(60.0f), 1.0f, 0.3f, 1000.0f);
至於爲什麼直接傳入角度,圖像會上下顛倒。
推測是因爲
Radians = (π / 180) * Degrees
所以
Degrees = (Radians * 180 ) / π
所以對於 glm::perspective
如果我們傳入 3 ,就差不多有 180 度角的視野範圍。
然後我們傳入4 ,就超過了180度了,所以圖像就會顛倒了。
所以以後注意要這樣使用
glm::mat4 proj = glm::perspective(glm::radians(60.0f), 1.0f, 0.3f, 1000.0f);