首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

New程序媛OpenGL全解析之—摄像机(三)

大家好

本期视频的链接地址是:

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、编辑鼠标和键盘的回调函数

完成如上代码,我们就可以轻松的实现鼠标拉进拉远摄像头,并且右键控制摄像机的俯仰角和偏航角度啦~

丹丹期待大家的意见和建议,欢迎小伙伴们积极留言

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180723G1Y8IW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券