gl库是核心库
glu是实用库,包含有43个函数,函数名的前缀为glu。Glu为了减轻繁重的编程工作,封装了OpenGL函数,Glu函数通过调用核心库的函数,为开发者提供相对简单的用法,实现一些较为复杂的操作。
glut是实用工具库,基本上是用于做窗口界面的,并且是跨平台(所以有时你喜欢做简单的demo的话,可以光用glut就ok了)
glaux是OpenGL辅助库,包含有31个函数,函数名前缀为aux。这部分函数提供窗口管理、输入输出处理以及绘制一些简单三维物体。
opengl能实现的各种效果:
http://www.glprogramming.com/red/appendixi.html#plate1
把物体的数学描述以及与物体相关的颜色信息转换为屏幕上的像素,这个过程叫做光栅化rasterization。
在场景被光栅化之后但在绘制到屏幕之前,仍然可以根据需要对像素数据执行一些操作。
几何图元包括点、直线、多边形等,他们是通过顶点vertex指定的。
模型model根据几何图元创建,也叫物体object。
渲染是计算机根据模型创建图像的过程。
coordinate system 坐标系,坐标系统
根据opengl版本的不同,可编程的着色器能识别的状态的数量有所不同。
读完每一章时,都应该回头看一下图1-2,他是opengl图形处理管线,其实他是福特汽车公司采用的装配线。
在opengl3.1中,所有固定功能的顶点操作都删除了,必须使用顶点着色器
光栅化就是把几何数据和像素数据转换为片段fragment的过程,每个片段方块对应于帧缓冲区中的一个像素。
几乎所有opengl源代码文件都是以下面这两行开始的:
#include <GL/gl.h>
#include <GL/glu.h>
opengl3.0只是向opengl的功能集中添加了新的函数和特性,相比较而言,opengl3.1删除了标记为废除的函数。