版本: Unity 6 (6000.0)
语言英语
  • C#

Shader.WarmupAllShaders

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每项建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后重试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

声明

public static void WarmupAllShaders();

描述

预热当前内存中所有着色器的所有着色器变体。

有关着色器加载和预热的更多信息,包括不同预热技术的列表,请参阅着色器加载

虽然此方法很方便,但预热大量的着色器变体会导致加载时间过长和内存使用量过高。如果出现此问题,请考虑将着色器变体放置在ShaderVariantCollection 中。

警告:此方法在 DX11 和 OpenGL 上完全受支持。在 DX12、Vulkan 和 Metal 上,图形驱动程序可能仍然需要执行工作,如果顶点布局和/或渲染目标设置与用于预热它的数据不同。这会导致浪费工作和 GPU 内存,并且仍然会在您的应用程序中出现明显的停顿。 ShaderWarmup 在所有图形 API 上都受支持。

其他资源:ShaderWarmupShaderVariantCollection.WarmUp着色器加载