前言
今天开始,正式开始关于unity的Shader
接触Shader首先要从基本概念开始-渲染流水线
1,什么是渲染流水线
渲染流水线也叫渲染管线,指的不是具体某一样东西,而是一个流程。而Shader是渲染流程中的一个小小的,可编程的片段。渲染管线可以分为可编程渲染管线和固定渲染管线(已弃用)
2,渲染流水线工作过程
工作任务:
由CPU和GPU合作,将一个三维场景渲染为一张二维图像
实现过程:
渲染流水线可以分为应用阶段、几何阶段、光栅化阶段:
- 应用阶段
输出需要渲染的几何信息。用户搭建好场景后,由CPU进行处理后得到场景的几何信息,即渲染图元
- 几何阶段
用于处理所有和我们要绘制的几何相关的事情,这一阶段通常由GPU来完成,最终会输出屏幕空间的二维顶点坐标,每个顶点的深度值、折射等相关信息,并传递给下一个阶段
- 光栅化阶段
这一阶段使用上一阶段的数据来产生屏幕上的像素,并渲染处最终的图像。这一阶段同样是在GPU上来完成
3,详细流程
从CPU到GPU:
1,把数据加载到显存中
2,设置渲染状态
3,调用Draw Callf
GPU流水线:
1,顶点着色器
2,裁剪
3,屏幕映射
4,三角形设置
5,三角形遍历
6,片元着色器