着色器剥离
Unity 编译单个着色器源文件中的大量着色器变体。着色器变体的数量取决于着色器中包含的关键字数量。在默认着色器中,通用渲染管线 (URP) 使用了一组有关光照和阴影的关键字。URP 可以根据 URP 资源中哪些功能处于活动状态来排除某些着色器变体。
禁用 URP 资源中的某些功能时,管线会在构建中“剥离”相关的着色器变体。剥离着色器可以减小构建大小并缩短构建时间。如果项目永远不会使用某些功能或关键字,这将非常有用。
例如,可能有一个项目绝对不会为方向光使用阴影。如果没有着色器剥离,支持方向光阴影的着色器变体仍会保留在构建中。如果已知根本不会使用这些阴影,则可以在 URP 资源中为主方向光或附加方向光取消选中 Cast Shadows。然后,URP 从构建中剥离这些着色器变体。
有关在 Unity 中剥离着色器变体的更多信息,请参阅这篇由 Christophe Riccio 发布的博客文章。