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

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

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

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

目录

函数解析 

具体代码


函数解析 

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

初始化

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

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

enterEvent(QEvent *event)函数

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

 mouseMoveEvent(QMouseEvent *event)函数

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

 keyPressEvent(QKeyEvent *event)、keyReleaseEvent(QKeyEvent *event)函数:键盘响应

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在实验五中,我们学习了基于OpenGL的三维变换和投影。通过这个实验,我们能够更好地理解和掌握OpenGL图形库的基本概念和使用方法。 首先,我们学习了OpenGL的三维变换。三维变换包括平移、旋转和缩放。平移是将物体沿着某个向量进行移动,旋转是将物体围绕某个轴旋转,而缩放是改变物体在不同方向上的尺寸。通过OpenGL提供的变换函数,我们可以实现这些三维变换操作。 其次,我们学习了OpenGL的投影。投影是将三维物体投影到二维屏幕上的过程。在实验中,我们主要学习了透视投影和正交投影两种投影方式。透视投影使远处的物体显得较小,近处的物体显得较大,而正交投影则使物体在不同位置保持相同的大小。通过设置视角、视口和投影矩阵,我们可以实现不同的投影效果。 通过实验,我们了解到OpenGL可以通过设置不同的变换和投影来实现各种复杂的图形效果。例如,可以通过组合平移、旋转和缩放操作,将一个简单的物体变换为复杂的形状。同时,通过调整投影参数,可以实现不同的视觉效果,如近大远小或保持物体大小不变。 总之,实验五基于OpenGL的三维变换与投影,帮助我们更好地理解和掌握了OpenGL图形库的相关概念和使用方法。这些知识对于我们在计算机图形学和计算机游戏开发中的应用非常重要。通过实践和练习,我们可以进一步提升对OpenGL的理解和运用能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值