大家好
本期视频的链接地址是:
https://www.bilibili.com/video/av27484266
大家也可以直接在bi站首页搜索:New程序媛 ,即可看到相应视频
链接:https://pan.baidu.com/s/12KImUN6UpVQA6lpOyKRtNg 密码:oohm
视频搭配文章一起效果更赞哦
今天丹丹给大家带来的还还还是摄像机知识
上一讲中丹丹给大家解析了透视投影的矩阵推导,今天给大家来说说正交投影矩阵的推导。
构建正交投影矩阵比构建透视投影矩阵要简单。
观察空间的(xe ,ye,ze) 通过线性映射到NDC。我们只需将长方体缩放为正方体,然后移动它到原点。
还是跟上一推中一样,我们使用线性关系推导矩阵中的所有元素。
将(r,1)代入到(xe,xn)
将( t,1)代入到(ye ,yn)
将(-f,1)代入到(ze,zn)
由于正交投影不需要w分量,因此GL_PROJECTION矩阵的第4行保持为(0,0,0,1)。因此,正交投影的完整GL_PROJECTION矩阵是:
好啦~正交投影矩阵推导完成。
glm库中正交投影的设置函数是:
接着我们就来封装一下咱们的摄像机类。
有了摄像机类,我们就可以在代码中替换使用如下了:
1、声明摄像机对象
2、绘制时从camera对象中获取view 和projection Matrix
3、设置鼠标和键盘的回调函数
4、编辑鼠标和键盘的回调函数
完成如上代码,我们就可以轻松的实现鼠标拉进拉远摄像头,并且右键控制摄像机的俯仰角和偏航角度啦~
丹丹期待大家的意见和建议,欢迎小伙伴们积极留言
领取专属 10元无门槛券
私享最新 技术干货