UnityShader渲染过程---流水线

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35030499/article/details/82848961

什么是流水线

在工厂中组装衣服,工序 裁剪布料、缝合衣服、打包装箱。 每个 耗时5分钟。

(假设)单个工人需要自己负责所有工序,则一件衣服需要15分钟

现在一个新的方案出来,分工合作。裁剪只裁剪,打包只打包。

一个工人,做完自己工序,剩下交给下一个。这样效率提升了。 打包一件衣服出来 只需要5分钟,之前的工序已经做了。

流水线,调高工作效率。分工合作, 提高单位时间的生成量。

渲染管线

同理计算机处理渲染数据,也采用了流水线的方式。从模型顶点、纹理出发,最终渲染成显示在屏幕上的图像

渲染流程大致分为3个阶段 

  1. 应用阶段
  2. 几何阶段
  3. 光栅化阶段

具体:顶点着色器===>>光栅化===>>片段着色器===>>Alpha测试===>>模板测试===>>深度测试===>>Blend混合===>>GBuffer===>>FrontBuffer===>>FrameBuffer===>>显示器

顶点着色器:

1、计算顶点颜色

2、将物体坐标转换

光栅化:

顶点转化为像素

片元着色器:

纹理采样,像素,灯光计算

将顶点转化为像素,要理解什么是像素和分辨率。

(顶点着色器,和片元着色器,运算次数不是一个等级。顶点几千几百,片元上万百万

片元运算多,耗性能,效果更好。顶点次之)

Alpha测试:

不合适的像素进行舍弃

模板测试:像素不止有颜色信息,还有模板信息

深度测试:同理模板和aplha,通过的测试像素显示出来,否则丢弃

Blend: 混合,好理解。将要显示出的颜色,和已经显示的颜色混合。进行计算

猜你喜欢

转载自blog.csdn.net/qq_35030499/article/details/82848961