OpenGL 数学库 GLM 投影矩阵公式 glm::perspective 已经抛弃角度的使用,转为使用弧度

来源:互联网 发布:如何在网络上推广产品 编辑:程序博客网 时间:2024/05/05 09:54

这两天都被 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);


0 0