OpenGL入门第四步:摄像机视角变换与交互

本文是OpenGL入门系列的第四步,主要讲解如何实现摄像机视角的变换和交互功能。通过重写鼠标和键盘响应函数,实现相机的移动、旋转和缩放。初始化设置中,利用glm::LookAt函数建立相机坐标系。mouseMoveEvent函数处理鼠标移动,wheelEvent处理滚轮缩放,keyPressEvent和keyReleaseEvent处理键盘输入,改变相机移动方向。整个过程结合QT框架,提供了一种在OpenGL中控制视角的有效方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OpenGL入门第一步:创建窗口、重写虚函数-优快云博客

OpenGL入门第二步:颜色、纹理设置(解析)-优快云博客

OpenGL入门第三步:矩阵变换、坐标系统-优快云博客

OpenGL入门第五步:基础光照-优快云博客

 OpenGL入门第六步:材质-优快云博客

 OpenGL入门第七步:光照贴图-优快云博客

OpenGL入门第八步:投光物-优快云博客 

OpenGL入门第九步:多光源-优快云博客 

目录

函数解析 

具体代码


函数解析 

相机视角变换需要与鼠标键盘进行交互,需要重写鼠标和键盘响应函数。

初始化

timerEvent(QTimerEvent *event)函数:设置移动速度和对应按键移动方向,以及摄像机的摆放位置

glm::LookAt函数需要一个位置、目标和上向量。知道相机上方向和前方向,可以通过矩阵叉乘得到右方向,从而建立相机坐标系(右手坐标系)。位置是相机坐标系在整个世界坐标系下的位置。 

enterEvent(QEvent *event)函数

鼠标只要经过窗口就会被置于中心,不隐藏指针就是下面的效果。

 mouseMoveEvent(QMouseEvent *event)函数

 wheelEvent(QWheelEvent *event)函数:实现缩放效果。当视野变小时,场景投影出来的空间就会减小,产生放大了的感觉。

 keyPressEvent(QKeyEvent *event)、keyReleaseEvent(QKeyEvent *event)函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值