我看到知乎,learning OpenGL都有这个问题,就是glm库不知道什么时候更新代码,在创建matrix的时候,以前需要传入
glm::radians(fov),我最近在写代码的时候总是发现,视角与3d空间比例不一致的问题,导致我的camera常常需要位移非常远的距离才能实现和以前一样的观察窗口,直到我今天写一个聚光灯的效果的时候,我发现怎么样的调试,我的视口总是被照亮的,我一开始是怀疑我的view矩阵据问题了,然后已知debug,自己手写lookat矩阵也无济于事,直到想起来投影矩阵的视口也是将模型投影到窗口来,我就想把视角调大,然后我无论怎么调整,都发现视口变化没有多大区别,于是我回忆了一下透视投影矩阵的创建过程,果断点开了glm库的源码,不看不知道,不知道什么时候glm把在外面求的glm::radians直接内置到matrix里面去了,可把我坑害的惨,调试了一晚上没搞出来,然后点开源码才发现代码变了。
他把本应该在外面求的角度值移到里面来了。希望这篇文章能够帮助到大家解决视口不一致的问题。