视点变换和模型变换

本文介绍了OpenGL中的关键变换概念,包括视点变换和模型变换。详细解释了如何通过函数glMatrixMode(GL_MODELVIEW)设置模型视点矩阵,以及如何利用gluLookAt、glTranslate、glRotate和glScale等函数实现相机位置的调整和模型的位置、旋转及缩放。

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

  在OpenGL中,视点变换和模型变换被当做一种变换来看待。改变视点的位置和改变模型的位置是一个相对的过程,例如将物体从(0.0, 0.0, 0.0)移至(0.0, 0.0, -1.0)相当于将相机从(0.0, 0.0, 0.0)移至(0.0, 0.0, 1.0)。视点变换、模型变换将被合并,形成模型视点矩阵。可以使用函数glMatrixMode(GL_MODELVIEW)来指定当前矩阵模式为模型视点变换。在代码中,视点变换在模型变换之前指定,但投影变换和视口变换可以在绘图之前的任意时候指定。

 

一些建议:

(1)视点变换采用gluLookAt来改变相机的位置,朝向以及向上方向。

(2)模型变换使用glTranslate, glRotate, glScale来进行平移,旋转,缩放反射,从而改变物体在场景中位置。

 

void glRotatef( GLfloat angle, GLfloat x, GLfloat y, GLfloat z )

angle的方向与向量v(x,y,z)符合右手法则,如下图(一个三棱锥围绕y轴旋转90°):

2010080418034548.png 2010080418045796.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值