欢迎光临散文网 会员登陆 & 注册

OpenGL实例教程12:摄像机移动

2023-03-28 21:20 作者:阿西拜-江西  | 我要投稿

前面学习了如何放置相机。下一步是允许用户控制它。控制相机将使用两个输入设备:

键盘,控制位置

鼠标,改变朝向

本节只介绍通过键盘控制位置,下一节将介绍如何通过鼠标控制朝向。最终将实现类似第一人称视角射击游戏的效果:

通过键盘移动位置

我们将以传统的方式支持四个方向键。相机变换是由位置、目标和向上向量定义的。当使用键盘移动时,只改变了位置。不能倾斜相机或旋转它,目标和向上向量将不受影响。

为了控制键盘,将使用另一个GLUT API: glutSpecialFunc()。该函数注册了一个回调函数,当单击“特殊”键时触发。特殊键包括:功能键、方向键、上页键、下页键、首页键、结束键、插入键。如果想捕获普通键(字符和数字),请使用glutKeyboardFunc()。

Camera库:

camera.h

camera.cpp

前后移动比较简单,左右移动将使用叉乘,通过右手法则可以判断方向。

应用程序实现代码:


OpenGL实例教程12:摄像机移动的评论 (共 条)

分享到微博请遵守国家法律