OPenGL坐标

OpenGL坐标系可分为

  • 世界坐标系
  • 当前绘图坐标系。

1.世界坐标系

在OpenGL中,世界坐标系是以屏幕中心为原点(0, 0, 0),且是始终不变的。屏幕向右为x正轴正向,屏幕向上为y正轴正向,屏幕向外为z正轴正向。

单位长度这样来定:窗口范围按此单位恰好是(-1,-1)到(1,1),即屏幕左下角坐标为(-1,-1),右上角坐标为(1,1)。

2.当前绘图坐标系

是绘制物体时的坐标系。程序刚初始化时,世界坐标系和当前绘图坐标系是重合的。

当用glTranslatef(),glScalef(), glRotatef()等对当前绘图坐标系进行平移、伸缩、旋转变换之后,世界坐标系和当前绘图坐标系不再重合。

注意:

这里的平移旋转是将当前绘图坐标系看做一个整体在世界坐标系中进行旋转平移。然后,改变以后,再用glVertex3f()等绘图函数绘图时,都是在当前绘图坐标系进行绘图,所有的函数参数也都是相对当前绘图坐标系来讲的。

3.openGL使用右手坐标

从左到右,x递增

从下到上,y递增

从远到近,z递增

4.绘图的基本过程

  • 初始化GC
  • 进行投影变换->视口变换->模型变换,
  • 完成变换过程,把数据缓存到帧缓冲区,
  • 把帧缓冲区数据填充到渲染缓冲区
  • 然后,渲染到屏幕上。