SubShader

SubShader "SubShaderName" {
  ...
  // 全局变量区:变量声明,结构体声明,渲染状态声明
  ...
  Tags {ReplaceTag = "opaque"}
 
  UsePass "ShaderName/SubShaderName/PassName"
 
  Pass "PassName" {
    ...
  }
}

Tags

Shader 对象 章节我们了解了 Tags 的基本概念和用途,ShaderLab 中可以通过 Tags 指令直接声明和指定,无须通过 SubShader.setTag api 方式手动指定。

UsePass

如果一个 SubShader 包含多个 Pass,可以通过 UsePass 指令复用其他 Pass 对象,比如引擎内置的 PBR Pass: UsePass "pbr/Default/Forward"

内置 ShaderPass 路径
PBRpbr/Default/Forward
Unlitunlit/Default/Forward
Skyboxskybox/Default/Forward
Particle-shaderparticle-shader/Default/Forward
SpriteMaskSpriteMask/Default/Forward
SpriteSprite/Default/Forward

这篇文档对您有帮助吗?

On this page