Shader.WarmupAllShaders

切换到手册
public static void WarmupAllShaders ();

描述

完全加载所有着色器,以防未来性能中断。

通常,首次需要着色器时,图形驱动程序才会实际准备着色器。 但是,首次使用先前未使用过的着色器渲染某个对象时, 可能会出现暂时性中断,因为驱动程序需要编译/优化着色器。这可能会非常 明显,尤其是在移动平台上。

调用此函数将使用当前加载的所有着色器的所有变体执行虚拟 one-invisible-triangle 渲染。这可能需要一些时间,但有助于 避免未来出现暂时性中断。一般最好使用 ShaderVariantCollection 实现更精细的 着色器预热控制。

请注意,此函数仅预热当前加载(显式或通过对使用自定义着色器的预制件的引用)的着色器。

如果使用 Resources.Load 加载着色器,则需要再次调用 WarmupAllShaders。

另请参阅:ShaderVariantCollection,了解更精细的着色器预热控制。

Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961