针对移动平台优化着色器

Tutorial

intermediate

+0XP

15 mins

(7)

Unity Technologies

针对移动平台优化着色器

在本教程中,我们将介绍在 Unity 中使用正确的光照着色器和无光照着色器针对目标移动平台优化着色器的最佳实践。

1. 为移动平台使用无光照着色器

Unity 的通用渲染管线 (URP) 中包含一系列内置着色器。下面的屏幕截图显示了 URP 专用着色器的位置。

从 2019.4 开始,只有 Mobile 部分下的内置无光照着色器能够与 Unity 通用渲染管线 (URP) 一起使用。如果你打算使用以移动设备为中心的光照着色器,则应使用 Universal Render Pipeline/Simple Lit 着色器作为基础,因为这是 URP 中更简单、性能更高的着色器。

最好仅使用所需的着色器功能来自定义材质。Unity 将为你选择和配置的着色器创建经过优化的运行时版本。这种着色器复杂性的下降有助于提高在移动平台上的性能。

2. 光照着色器与无光照着色器

在创建着色器时,你可以决定材质将如何对光作出反应。大多数着色器可归类为光照着色器或无光照着色器。

无光照着色器是速度最快、计算成本最低的着色模型。因此,如果你的目标是低端设备,请使用无光照着色器。需要考虑的关键点包括:

  • 光照不影响无光照着色模型。这意味着可以避免很多计算,例如镜面反射计算。结果是渲染成本更低,或者渲染更快。
  • 类似于卡通的风格化美术设计可与无光照着色良好地配合使用。在为移动平台开发游戏时,这种风格值得考虑。

与无光照着色器相比,光照着色器需要更多的处理能力。但是:

  • 光照会影响光照着色器,并让表面能够产生镜面反射。
  • 这可能是当今移动游戏中最常用的着色模型。

下图显示了有光照和无光照对象之间的区别:

应用了相同的塔楼网格和纹理,但使用了不同的着色器。光照不影响无光照着色器,因此在屏幕上渲染它们所需的计算较少。这可带来更好的性能,特别是在性能较弱的设备上。

3. 总结

请仔细考虑哪些着色器和材质特性是实现应用程序所需的视觉风格所必不可少的,并限制使用对该风格没有直接贡献的特性。在下一个教程中,我们将讨论透明材质对移动应用程序性能的影响。

Complete this Tutorial