本文记录Shader将模型顶点渲染到屏幕上的流程及流程简介
流程:
顶点着色器->光栅化->片段着色器
->alpha测试->模板测试->深度测试
->Blend Gbuffer->front buffer->frame buffer
->显示器
1.顶点着色器
(1)计算顶点的颜色
(2)将顶点由物体坐标系变换到相机坐标系
2.光栅化
将顶点转换成像素
(既,四个顶点,用差值转换成为一个像素面)
如(0,0,0)(0,100,0)(100,0,0)(100,100,0)四个顶点,那么转化成为像素后,就是100*100个像素
3.片段着色器(也叫 片元着色器)
(1)纹理采样 从纹理中将像素值赋给对应像素
(2)像素跟灯光计算(逐片元计算)
(如上4个点,顶点着色器会计算4次,经过光栅化后,片段着色器会计算100*100次,所以,运算优先放在顶点着色器)
4.三次测试
alpha测试:挑选合格的像素显示(例如Shader设置了像素值范围)
模板测试:挑选合格的像素显示(像素不止携带了RGBA信息,还有模板信息)
深度测试:挑选合格的像素显示(例如,远距离的像素被近距离的像素遮挡,那远距离的像素则不显示)
5.Blend
将当前要渲染的像素和意境渲染的像素进行混合运算
6.Gbuffer
中转、暂存 (包括RGBA,模板值,深度值等)
7.front buffer和frame buffer
两者交替在屏幕显示