什么是shader?

Shader其实就是专门用来渲染图形的一种技术,通过shader,我们可以自定义显卡渲染画面的算法,使画面达到我们想要的效果。小到每一个像素点,大到整个屏幕。

什么是渲染流水线

渲染管道也称为渲染流水线,就是CPU准备一些数据,然后告诉GPU渲染出一个二维的图像过程。
渲染管道的三个阶段:应用程序阶段,几何阶段,光栅化阶段
1.应用阶段(CPU)
主要就是CPU将硬盘中的数据加载后,和内存进行通讯,将需要显示的数据信息(顶点数据,纹理坐标,法线信息),传递给GPU处理
2.几何阶段(GPU)
几何阶段最重要的工作就是“变换三维顶点坐标”,变换的工作由矩阵运算完成。

空间
模型空间:3D物体的原始坐标,存储在模型中。
世界空间:物体放在场景中,才能构成整个游戏场景
观察空间:需要以相机为原点的3维空间
裁剪空间:物体是否在相机的渲染范围内
屏幕空间:3D物体,投影到屏幕上
物体最终显示:需要GPU进行一系列的矩阵运算,将模型空间下的网格顶点,转换到屏间下(转换点的过程是并行)
非模型网格顶点信息中记录的点,GPU会以线性插值的方式获得并显示

3.光栅化阶段(GPU)
使用上一个阶段(几何阶段)递过来的数据,对像素点进行染色,最终显示出来,染色过程为并行执行。

*小贴士: 因为unity的材质球自带着色器,所以是通过材质球将数据传递给gpu。但是其他引擎不一定