返回介绍

ShaderLab语法:通道标记(PassTags)

发布于 2021-06-20 00:15:04 字数 2021 浏览 942 评论 0 收藏 0

通道利用标记告诉渲染引擎它们期望的渲染方式和渲染时间。

语法

Tags { "TagName1" = "Value1" "TagName2" = "Value2" }
指定 TagName1 的值为 Value1TagName2 的值为 Value2。你可以使用任意数量的标记。

详细信息

标记从根本上来说是键值对。在通道内,标记用于控制该通道在光照管线(环境光照、顶点光照、像素光照等等)中的作用和一些其他选项。请注意:以下经 Unity 认证的标记必须是在通道部分内,而非在子着色器内!

LightMode 标记

LightMode 标记定义通道在光照管线中的作用。有关详细信息,请参阅渲染器管线。这些标记很少手动使用;需要与光照交互的着色器通常被写作表面渲染器,于是所有的详细信息都会被注意到。

LightMode 标记的可能值有:

  • Always:总是渲染,不应用光照。
  • ForwardBase:用于正向渲染中,应用环境光照、主方向光照和顶点/SH 光照。
  • ForwardAdd:用于正向渲染中;以每个光照一个通道的方式应用附加的逐像素光照。
  • PrepassBase:用于延时光照中,渲染法线和高光指数。
  • PrepassFinal:用于延时光照中,通过组合纹理、光照和发射来渲染最终颜色。
  • Vertex:未对对象进行光照贴图时,用于顶点光照渲染中;应用所有的顶点光照。
  • VertexLMRGBM:已对对象进行光照贴图时,用于顶点光照渲染中;在光照贴图进行了 RGBM 编码的平台上。
  • VertexLM:已对对象进行光照贴图时,用于顶点光照渲染中;在光照贴图进行了双 LDR 编码的平台上(一般是移动平台和老式桌面 GPU)。
  • ShadowCaster:将对象渲染成阴影投射。
  • ShadowCollector:将对象的阴影收集到正向(Forward) 渲染路径的屏幕空间缓存中。

RequireOptions 标记

表示通道只有在满足某些外部条件时才能被渲染。可通过 RequireOptions 标记来实现,其值为空格隔开的选项的字符串。Unity 当前支持的选项:

  • SoftVegetation: 仅当质量设置中的“软植被”(Soft Vegetation) 开启时渲染该通道。

另请参阅

也可为子着色器赋予标记,请参阅子着色器标记

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文