一个Shader可以针对不同的显卡配置多个SubShader【子着色器】

  1. Shader "File/Hibari"
  2. {
  3. Properties{}
  4. SubShader//子着色器
  5. {
  6. Tags {"键"="值"}//Tage【标签】
  7. LOD 100 //【细节等级】
  8. //ShaderLabCommands【渲染器命令】
  9. //渲染
  10. pass
  11. {
  12. //ShaderLabCommands【渲染器命令】
  13. }
  14. }
  15. Fallback "VertexLit"
  16. }

Tags 设置如何渲染

通过键值对的方式,设置Shader在流水线中的一些设置(例如控制渲染顺序) ⚠️注意:如果有多个键值对,用空格隔开

  1. SubShader
  2. {
  3. Tags {"RenderType"="Opaque" "Queue"="Transparent"}
  4. }

ShaderLabCommands 渲染命令

设置一些背面剔除、混合模式等操作

  1. SubShader
  2. {
  3. //ShaderLabCommands
  4. Call Off
  5. ZTest Always
  6. ZWeite On
  7. BlendOp Add
  8. LOD 100
  9. }

Pass 渲染语义块

一个Pass就是一次渲染,Pass用来写如何进行渲染的 ⚠️注意:一个SubShader可以有多个Pass(即多次渲染)但最少需要1个Pass

  1. SubShader
  2. {
  3. Pass
  4. {
  5. CGPROGRAM
  6. //渲染程序体
  7. ENDCG
  8. }
  9. }