Unity Shader学习日记 part 1 基础知识
开始记录shader的学习,写的就比较简洁了
渲染管线
简而言之,渲染其实就是将一系列的数据分阶段转为屏幕图像的过程。
而这里的数据就是指一些顶点,纹理,光照等等的相关数据,那么在这个的渲染过程中,数据的处理是分成了三个阶段,分别是应用阶段,几何阶段,光栅化阶段。接下来分别来看看这三个阶段。
应用阶段
应用阶段由cpu主导,通过cpu将需要的数据转递给gpu,这些数据会用于后续的阶段。
需要了解的是,cpu通知gpu的操作,是DrawCall。在DrallCall过多时出现的性能瓶颈是由cpu造成的,这一问题可以通过批处理技术优化。
几何阶段
图元:几何数据的基本单元,包括点,线,三角形。
几何阶段主要是对顶点处理,进行一系列的坐标转换,并且裁剪画面以外的图元。在这个阶段中需要注意顶点着色器,他是完全可编程的,主要做一些坐标转换,顶点属性处理,顶点插值等等。
光栅化阶段
在这个阶段,主要是根据上一个阶段输入的数据计算每一个图元所覆盖的像素,并且为这些像素进行颜色计算等工作。说白了,就是确定那些像素显示什么颜色。同样的,这个阶段中的片元着色器同样的完全可编程的,他主要做一些光照计算,纹理映射,材质属性处理,阴影计算等等。
主要记录一些渲染的基础知识,后面开始更矩阵相关的知识。