US2S2L7——Shader的编写形式

Shader的形式

通过之前的课程,我们已经对Shader文件的文件结构有一定的认识,并且学习了ShaderLab语法相关的知识

通过学习我们知道 在Unity Shader当中我们可以通过ShaderLab语法去设置很多内容
比如属性、渲染状态、渲染标签等等,但是其最主要的作用是需要指定各种着色器所需的代码

而这些着色器代码即可以放在 SubShader​ 子着色器语句块中,也可以放在其中的 Pass​ 渲染通道语句块中
不同的Shader形式放置着色器代码的位置也有所不同

我们一般会使用以下3种形式来编写Unity Shader:

  1. 表面着色器(代码量较少,可控性较低)
  2. 顶点-片元着色器(更为灵活,重点学习)
  3. 固定函数着色器(基本已弃用,了解即可)

我们应该如何选择呢?

  1. 固定函数着色器基本已弃用,不是我们学习的重点
  2. 对于PC、主机性能较高的设备,为了追求更好的效果,使用表面着色器可能更加的方便
  3. 对于移动设备,为了权衡效果和性能,优先使用顶点/片元着色器
  4. 在有很多自定义的渲染效果时,优先使用顶点/片元着色器,因为更灵活可控

而表面着色器的本质是对顶点/片元着色器的封装
所以我们在学习过程中,着重学习顶点/片元着色器开发的相关知识