一、OpenGL概述
OpenGL:API,对图形硬件设备特性进行访问的软件库
二、图形学名词
1.渲染:计算机从模型创建最终图像的过程。OpenGL就是一种基于光栅化的渲染系统。
2.模型:模型是通过图元(点、线、三角形)构建的。
3.着色器:可看成专门为GPU编译的一种小型程序。最常用的有:顶点着色器,片元着色器
4.像素:显示器上最小的可见单元,所有的像素都保存到帧缓存中。
三、渲染图像的过程
1.从OpenGL的几何图元中设置数据,用于构建形状。
2.使用不同的着色器(shader)对输入的图元数据执行计算操作,判断位置、颜色及其他渲染属性。
3.光栅化:将输入图元的数学描述转化为与屏幕位置对应的像素片元。
4.对每个片元执行片元着色器决定最终颜色、位置。
四、渲染管线
顶点 -> 顶点着色器 -> 细分控制着色器 -> 细分计算着色器 -> 几何着色器 -> 图元设置 -> 剪切 -> 光栅化 -> 片元着色器
1.顶点着色
处理顶点相关的数据,可能非常简单(传递着色器),可能十分复杂
2.细分着色
进一步处理数据
3.几何着色
在光栅化之前对几何图元作进一步处理
4.图元装配
将顶点与相关几何图元组织起来
5.剪切
顶点落在视口之外时,对与顶点相关的图元做出改动,以保证相关像素不在视口外。
6.光栅化
将图元转换为片元
7.片元着色
由片元着色器(fragment shader)计算片元的最终颜色和深度值。
顶点着色决定图元的位置,片元着色决定片元的颜色。
8.逐片元操作
使用深度测试(depth test,即Z buffering)和模板测试(stencil test)决定一个片元是否可见。
若片元通过了所有的测试,则绘制到帧缓存中。
若有融合模式(blending),则片元颜色与该像素当前颜色相叠加,写入帧缓存。
像素数据通常保存在纹理贴图中。