shader和渲染管线
shader:
shader中文意思着色器,是一种较为短小的程序片段,用于告诉图形硬件如何计算和输出图像,过去用汇编语言来编写,现在也可以用高级语言来编写。
Shader开发语言
HLSL: 主要用于Direct3D。平台:windows。
GLSL: 主要用于OpenGL。 平台:移动平台(iOS,安卓),mac(only use when you target Mac OS X or OpenGL ES 2.0)
CG:与DirectX 9.0以上以及OpenGL 完全兼容。运行时或事先编译成GPU汇编代码。
CG比HLSL、GLSL支持更多的平台。
Unity Shader采用CG/HLSL作为开发语言。
渲染管线:
shader按渲染管线分类一般可分为固定渲染管线和可编程渲染管线。
渲染管线(Rendering Pipeline)代表Gpu渲染流程,渲染管线主要分为三个阶段:应用程序阶段,几何阶段,光栅阶段。
-
应用程序阶段
应用程序阶段,使用高级编程语言(C、C++、JAVA 等)进行开发,主要和CPU、内存打交道,诸如碰撞检测、场景图建立、空间八叉树更新、视锥裁剪等经典算法都在此阶段执行。在该阶段的末端,几何体数据(顶点坐标、法向量、纹理坐标、纹理等)通过数据总线传送到图形硬件。
-
几何阶段
几何阶段,主要负责顶点坐标变换、光照、裁剪、投影以及屏幕映射,该阶段基于GPU进行运算,在该阶段的末端得到了经过变换和