opengl 入门学习 随笔十

本文深入解析三维图形渲染中关键概念:模型视图矩阵、投影矩阵及视口矩阵的作用及应用,通过具体代码示例,详细说明如何在 OpenGL 中实现这些变换,为读者提供清晰的视觉效果实现路径。

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

在三维世界中,我们定义,根据观察者来观看模型的矩阵叫模型视图矩阵,其实也是相对的,模型相对于观察者来说;

当把模型映射到照相机的平面时要用到投影矩阵的概念;

同时将可以在照相机的平面定义视口的大小,这就是视口矩阵。

glMatrixModel(GL_MODELVIEW);
glLoadIdentity();
表示当前矩阵为模型视图矩阵,并且设置为单位阵。

进行模型视图变换主要涉及到三个函数:

glTranslate*
glScale*
glRotate*
分别表示平移、缩放和旋转。还有要注意,其实每一个操作相当于在当前矩阵上乘以了一个矩阵,所以代码的顺序和实际变换的顺序正好相反。

glMatrixModel(GL_PROJECTION);
glLoadIdentity();
表示当前矩阵为投影矩阵,并将其设置为单位阵。

可根据

glPerspective
glFrustum
这两个函数将当前的可视空间设置为透视投影空间;

可使用

glOrtho
函数设置当前可是空间为正交投影空间。
最后可以使用
glViewport
来定义视口。
在程序中我们经常要修改各种各样的矩阵,那么为了不将他们混淆,可以随时回到之前的状态;

glPushMatrix
glPopMatrix
负责保存和提出矩阵。
gluLookAt前三个参数表示观察者的位置,中间三个参数表示观察目标的位置,最后三个参数代表(0,0,0)到(x,y,z)的直线,它表示了观察者认为的“上方向”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值