Unity 6.3
0 онлайн 49 гостей 3 в системе
Вход

ShaderWarmup.WarmupShaderFromCollection

Экспериментальный: это API экспериментально и может быть изменено или удалено в будущем.

Declaration

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

Описание

Предварительно нагревает варианты шейдеров для заданного Shader, которые находятся в заданном ShaderVariantCollection, используя заданную конфигурацию отображения.

Информацию о загрузке и предварительном разогреве шейдера, включая список различных методов предварительного разогрева, см. в Загрузка шейдера.

Unity требуется дополнительная информация, чтобы корректно построить представления вариантов шейдера на GPU («объекты состояния конвейера», или PSO), если ваше приложение работает с одним из следующих графических API:

  • DirectX 12
  • Metal
  • Vulkan

Если Unity имеет эту информацию, то, скорее всего, предварительно загруженные варианты соответствуют тому, что требуется GPU при рендеринге вашего Scene.

Чтобы предоставить Unity больше информации, вы можете сделать следующее:

  • Используйте параметр setup для указания расположения вершинных данных, используемых с шейдером.
  • Прежде чем вызвать WarmupShader, задайте состояние рендеринга как можно ближе к тому состоянию, которое вы используете с шейдером. Например, задайте формат для целевого рендераили используйте команды render state для установки таких состояний, как режим смешивания.

Unity также асинхронно предварительно нагревает варианты шейдеров с использованием нескольких фоновых потоков, если ваше приложение работает на платформе, которая поддерживает это. Unity использует столько потоков, сколько может. В созданном приложении вы можете использовать -max-async-pso-job-count аргумент командной строки установить количество потоков Unity использования.

Дополнительные ресурсы: ShaderWarmup.WarmupShader, Shader.WarmupAllShaders, ShaderVariantCollection.WarmUp, Загрузка шейдера