什么是流水线
在工厂中组装衣服,工序 裁剪布料、缝合衣服、打包装箱。 每个 耗时5分钟。
(假设)单个工人需要自己负责所有工序,则一件衣服需要15分钟
现在一个新的方案出来,分工合作。裁剪只裁剪,打包只打包。
一个工人,做完自己工序,剩下交给下一个。这样效率提升了。 打包一件衣服出来 只需要5分钟,之前的工序已经做了。
流水线,调高工作效率。分工合作, 提高单位时间的生成量。
渲染管线
同理计算机处理渲染数据,也采用了流水线的方式。从模型顶点、纹理出发,最终渲染成显示在屏幕上的图像
渲染流程大致分为3个阶段
- 应用阶段
- 几何阶段
- 光栅化阶段
具体:顶点着色器===>>光栅化===>>片段着色器===>>Alpha测试===>>模板测试===>>深度测试===>>Blend混合===>>GBuffer===>>FrontBuffer===>>FrameBuffer===>>显示器
顶点着色器:
1、计算顶点颜色
2、将物体坐标转换
光栅化:
顶点转化为像素
片元着色器:
纹理采样,像素,灯光计算
将顶点转化为像素,要理解什么是像素和分辨率。
(顶点着色器,和片元着色器,运算次数不是一个等级。顶点几千几百,片元上万百万
片元运算多,耗性能,效果更好。顶点次之)
Alpha测试:
不合适的像素进行舍弃
模板测试:像素不止有颜色信息,还有模板信息
深度测试:同理模板和aplha,通过的测试像素显示出来,否则丢弃
Blend: 混合,好理解。将要显示出的颜色,和已经显示的颜色混合。进行计算