Shader学习(一):基本概念

Shader语言

  • 计算机的图形渲染,主要由OpenGL或DirectX来完成。

  • OpenGl使用的是GLSL sharder语言,DirectX使用的是HLSL sharder语言。

  • 英伟达公司出的CG语言具有跨平台的特性,能够在两个平台上都适用。

  • unity三种Shader语言都可以运行。

Unity Shader的分类

unity中使用的是ShaderLab编写。ShaderLab是对三种语言进行了重新封装。unity中的Shader分为以下的三类。

表面着色器(Surface Shader)

表面着色器是unity对一些Shader进行了封装,比普通的shader书写简单。

可以认为表面着色器是对顶点/片元着色器的封装,实际编译的时候,表面着色器会被转成顶点/片元着色器。

当光源较多时,适合使用表面着色器,unity的表面着色器已经处理了很多的光照细节。

顶点/片元着色器(Vertex/Fragment Shader)

基本的着色器。

实现的效果更强大,所有的功能都提供。

固定函数着色器(Fixed Function Shader)

在一些旧的设备上特定使用的着色器。目前使用的很少。