OpenGL 数学库 GLM 投影矩阵公式 glm::perspective 已经抛弃角度的使用,转为使用弧度
Posted _Captain
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
以上是关于OpenGL 数学库 GLM 投影矩阵公式 glm::perspective 已经抛弃角度的使用,转为使用弧度的主要内容,如果未能解决你的问题,请参考以下文章