版本:Unity 6 (6000.0)
语言英语
  • C#
实验性:此 API 处于实验阶段,将来可能会更改或删除。

ShaderWarmup.WarmupShaderFromCollection

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

声明

public static void WarmupShaderFromCollection(ShaderVariantCollection collection, Shader shader, Experimental.Rendering.ShaderWarmupSetup setup);

描述

使用给定的渲染配置预热给定 ShaderVariantCollection 中给定 Shader 的着色器变体。

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

如果您的应用程序在以下图形 API 之一上运行,Unity 需要更多信息才能正确构建着色器变体的 GPU 表示形式(“管道状态对象”或 PSO)

  • DirectX 12
  • Metal
  • Vulkan

如果 Unity 拥有此信息,则预热的变体更有可能与 GPU 在渲染场景时所需的变体匹配。

要向 Unity 提供更多信息,您可以执行以下操作

  • 使用 setup 参数指定您在着色器中使用的顶点数据布局。
  • 在调用 WarmupShader 之前,设置渲染状态使其尽可能接近您在着色器中使用的状态。例如,设置 渲染目标的格式,或使用 渲染状态命令 设置诸如混合模式之类的状态。

如果您的应用程序在支持该功能的平台上运行,Unity 还会使用多个后台线程异步预热着色器变体。Unity 会使用尽可能多的线程。在您的构建应用程序中,您可以使用 -max-async-pso-job-count 命令行参数 设置 Unity 使用的线程数。

其他资源:ShaderWarmup.WarmupShaderShader.WarmupAllShadersShaderVariantCollection.WarmUp着色器加载