渲染流程
- 渲染目的:输入
3D
立体坐标,输出绘制后的2D
平面像素 - 工作流程:
顶点着色器->图元装配->几何着色器->光栅化->片段着色器->测试与混合
,整个工作流程被封装在GPU
内部,无法改变。运行在CPU
的代码调用各种OpenGL ES
的函数能够传递顶点数据,着色器数据给整个工作流程,达到我们的渲染需求
六大渲染阶段
顶点着色器
- 确定绘制图形的形状,接收开发者传入的顶点数据(3D坐标转换为2D坐标),变换处理完后传给图元装配阶段
图元装配
- 将顶点着色器传来的顶点数据并组装为图元,图元为点、线、三角形等最基本的几何图形
几何着色器
- 非必须提供
光栅化
- 将图元转化为一张二维图片,二维图片包含多个片段,每个片段包含了位置,颜色,深度等信息
片段着色器
- 控制屏幕上每个片段的显示颜色
测试与混合
- 丢弃不需要显示的片段
- 深度测试:当两个图形叠加在一起时,同一个位置的多个片段显示深度较小的片段,丢弃深度较大的片段
- 模版测试:对缓冲区中的图像数据做与运算进行过滤,只留下需要显示的区域
- 混合:显示带有透明度的片段