对OpenGL中坐标变换的理解

在opengl中,对物体进行的每一次坐标变换,就是将物体的坐标与相应的4*4变换矩阵相乘。所以一系列的坐标变换,就是和一系列的矩阵一一相乘。要进行坐标变换,首先要声明glMatrixMode(GL_MODELVIEW),就是定义了一个队列来存放各种变换矩阵。每一个和变换有关的操作,实际上就是往这个队列的尾部放相应的变换矩阵。

在变换之前,第一件事就是glLoadIdentity(),这个是清空队列,并往里放第一个单位矩阵。这个可以将物体的位置恢复到初始坐标。

如果在变换的过程中,想要把某一个位置保存下来,就要用glPushMatrix()往另一个容器,矩阵堆栈中压入这个位置,以后不管经历了多少变换,只要用glPopMatrix(),就能清空变换矩阵队列,将上一个压入的位置取出来,成为当前变换矩阵。

你可能感兴趣的:(python)