OpenGL入门03.矩阵的操作

Posted stq_wyy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenGL入门03.矩阵的操作相关的知识,希望对你有一定的参考价值。

OpenGL中有三大矩阵,分别是模型矩阵(Model Matrix)、视口矩阵(View Matrix)和投影矩阵(Projection Matrix)。模型矩阵是在世界中摆放物体用的,视口矩阵是把物体从世界坐标系转换到视口坐标系中,即摆放虚拟摄像机用的,投影矩阵则是吧摄像机看到的物体的坐标从世界坐标系转换到投影坐标系。

三角形的初始状态

首先,矩阵的操作有缩放,旋转,平移

//缩放坐标,影响下边每一个分量
glScalef(0.1f, 0.1f, 0.1f);
//旋转
glRotatef(90.0f, 0.0f, 0.0f, 1.0f);
//移动
glTranslatef(1.0f, -1.0f, 0.0f);

将这段代码插入到glBegin之前,就可以看到效果了

需要注意的是,先旋转再平移和先平移再旋转,得到的结果并不相同。

//缩放坐标,影响下边每一个分量
glScalef(0.1f, 0.1f, 0.1f);
//移动
glTranslatef(1.0f, -1.0f, 0.0f);
//旋转
glRotatef(90.0f, 0.0f, 0.0f, 1.0f);

效果如下,明显的位置是不一样的。

除此之外,矩阵的操作还有压栈(glPushMatrix())、出栈(glPopMatrix())操作,用来处理复合运动的操作,后边再详细介绍。

以上是关于OpenGL入门03.矩阵的操作的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL入门程序

OpenGL入门8:摄像机

OpenGL入门之Matrix矩阵操作和坐标系统

OpenGL入门之Matrix矩阵操作和坐标系统

opengl矩阵向量

我的OpenGL学习进阶之旅关于OpenGL的着色器的向量和矩阵分类的访问方式: xyzw/rgba/stpq以及数组下标