缓冲区是用来保存绘图过程中产生的图像数据的内存区域,OpenGL有颜色、深度、累积和模板等四种常用的缓冲区。
相关阅读
----OpenGL学习总结
由于缓冲区中可能保留有上一次绘图遗留下来的图像数据,这些数据会影响本次绘图,因此在绘制新图之前必须将它们清除掉。颜色缓冲区中存放的是图像的像素颜色数据,深度缓冲区存放的是用于图像消隐的深度信息。在一个三维场景中,距离视点较近的物体肯能部分地或全部地遮挡住距离视点较远的物体。将被遮挡的部分消去不显示的技术称为图像消隐技术。
清除缓冲区的两个步骤:设置清除值和清除缓冲区
设置当前颜色
根据需要设置当前颜色,一旦一种颜色被设置为当前颜色,其后所有物体都将用该颜色绘出,直到当前颜色被设置为新的颜色为止。glColor()。
绘制几何图形
OpenGL中用于绘图的函数有很多,基本几何图元的绘图函数。glBegin()和glEnd()函数之间调用函数完成点、线、和多边形的绘制。glBegin(GLenum mode);
输出图形
glFlush();函数启动OpenGL绘图命令的执行,并将图形光栅化后输出在设备上。
OpenGL是个状态机
什么是状态机?状态机是一种存在于理论中的机器,具有以下的特点:
它有记忆的能力,能够记住自己当前的状态。
它可以接收输入,根据输入的内容和自己的状态,修改自己的状态,并可以得到输出。
当它进入某个特殊的状态的时候,它不再接收输入,停止工作。
OpenGL也可以看成这样的一种机器:
1. OpenGL可以记录自己的状态(比如,当前所使用的颜色、是否开启了混合功能,等等。)
2. OpenGL可以接收输入(当我们调用OpenGL函数的时候,实际上可以看成OpenGL在接收我们的输入),根据输入的内容和自己的状态,修改自己的状态,并且可以得到输出(我们调用glColor3f,则OpenGL接收到这个输入后会修改自己的当前状态这个状态;我们调用glRectf,则OpenGL会输出一个矩形)
3. OpenGL可以进入停止状态,不再接收输入。这个可能在我们的程序中表现得不太明显,不过在程序退出前,OpenGL总会先停止工作的。
OpenGL是一个状态机,它保持自身的状态,除非用户输入一条命令让它改变状态。