渲染管线的功能:给定虚拟相机、三维物体、光源、照明模式、纹理等条件下绘制一幅二维图像
顶点变换
- 本地坐标系->世界坐标系
将每个物体模型的位置从以自己为中心的坐标系,摆放到整体游戏世界的具体某一位置中去,按照一定规则,改变物体的顶点位置
- 世界坐标系->观察坐标系
将每个物体模型的位置以世界为参考系,转换到以观察者为参考系(摄像机)
- 观察坐标系->投影坐标系
从观察者所在的坐标系中转换到观察者投影平面上,裁剪不需要渲染的部分
面处理
- 面的组装
- 面截取
- 面剔除
光栅化
将以向量为基本结构的面转换为一个个像素点
像素处理
对每个像素区进行着色,贴图
输入:像素的位置,深度,贴图坐标,法线,切线,颜色等
输出:每个像素的颜色,透明度
OpenGL使用着色器流程
- 创建着色器对象
- 源码关联到着色器对象
- 翻译着色器对象
- 创建程序对象
- 将着色器关联到程序对象