OpenGL glm庫的投影矩陣公式 glm::perspective

這兩天都被 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);  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章