US2S2L6——Shader的备用着色器
US2S2L6——Shader的备用着色器
回顾:ShaderLab的基本结构
ShaderLab主要由4个部分组成
- Shader的名字
- Shader的属性
- 1~n个子着色器
- 备用的Shader
本章代码关键字
1 | Fallback "备用Shader名" |
备用Shader
我们知道ShaderLab当中允许有多个 SubShader 子着色器
当执行渲染时,会从上到下使用第一个能够正常执行的 SubShader
子着色器来渲染对象
那有没有可能所有 SubShader
子着色器都不能够在显卡上执行呢?答案是肯定的
有可能出现在某一个设备上,我们自定义的所有 SubShader
都无法正常执行(设备显卡无法支持一些api等情况)
那么这时 备用Shader 就可以起到很大作用了,它至少可以让对象能够正常渲染出来
因此:备用Shader 主要作用就是当Shader文件中的所有 SubShader
子着色器都无法正常运行时
起到一个保险作用,让物体能够使用一个最低级的Shader去渲染出来(效果略差,但至少能够显示)
它的主要作用就是提供“救命稻草”,我们一般会使用较为低级的效果作为备用Shader,确保对象在低端设备上也能够正常渲染
备用Shader的语法
1 | Shader |
或
1 | Shader |
在 Fallback
关键词后面空格并通过一个字符串来告诉Unity:“最低级的Unity Shader”是谁
也可以直接关闭 Fallback
功能,但是如果关闭那就意味着“放弃治疗”(也就是使用该Shader的材质将会显示异常)
关于可以使用哪些Shader,可以直接在材质的Shader选项里查看:
例如:
1 | Shader "TeachShader/Lesson9" |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!