功能
- 构建一个三维场景
可利用glut提供的各种简单形体来搭建,或者读入别的模型,并加入光照效果 - 用键盘操作一个物体(如一艘飞船,或一个机器人),在三维场景中漫游
视点可以放在物体上,或跟随物体,利用gluLookAt()函数来实现对视点的控制
思路
1、开始想直接利用OpenGL的glulookAt函数,但发现并不好用
2、之后参考他人资料寻思构造一个摄像机类,通过摄像机类达到控制视点,这部分通过参考LearnOpenGL上的摄像机类进行实现
实验结果
实验效果图

程序控制键说明
- w,s,a,d分别控制视点的前进,后推,左移,右移
- q,e控制视点进行左旋转,右旋转
- 方向键LEFT、RIGHT、UP、DOWN,视线方向转向左,视线方向转向右,视线方向转向上,视线方向转向下
- Page_UP、Page_Down,视点位置升高,降低
实验思考
glulookAt()
一般gluLookAt()用于从世界坐标系到眼坐标系的转换,但是由于OpenGL里面模型视图矩阵直接将本地坐标系转换为眼坐标系,所以gluLookAt()应该被用来设置模型视图矩阵,但是有一点得注意了:
gluLookAt()的调用应该在场景绘制初glLoadIdentity()函数调用之后,在所有的glTranslate*()、glRotate*()、glScale*()函数调

本文介绍如何使用OpenGL和gluLookAt()函数构建并漫游三维场景。通过键盘控制物体移动,实现视点变换,包括前后左右移动、旋转及升降。文中详细解释了gluLookAt()函数的正确调用时机及其在模型视图矩阵中的作用。
最低0.47元/天 解锁文章
815

被折叠的 条评论
为什么被折叠?



