Другие способы разогрева шейдеров
Разогрейте шейдеры, если ваша сборка предназначена для графики DirectX 11, OpenGL, OpenGLES или WebGL APIs.
Если в вашем проекте используются графики DirectX 11, OpenGL, OpenGLES или WebGL, то APIs, Unity предоставляют несколько методов нагрева шейдеров в вашем проекте.
Используйте GraphicsStateCollection API (рекомендуется)
GraphicsStateCollection API совместим с DirectX 11, OpenGL, OpenGLES, или WebGL. На этих APIs, GraphicsStateCollection автоматически возвращается к нагреву шейдера. GraphcsStateCollection API является рекомендуемым методом нагрева шейдеров. Чтобы узнать больше о нагреве шейдеров с этим API, см. Нагрев PSOs.
Примечание: автоматическое резервный вариант GraphicsStateCollection доступно в Unity 6.1 и более поздних версиях. Если ваш проект использует более старую версию Unity, используйте альтернативный метод разогрева шейдера, описанный в следующем разделе.
Другие способы разогрева шейдеров
На DirectX 11, OpenGL, OpenGLES, или WebGL графиках APIs, вы также можете использовать следующие методы для разогрева шейдеров:
- Для разогрева объекта Shader, используйте Experimental.Rendering.ShaderWarmup API.
- Чтобы нагреть все варианты всех объектов Shader, находящихся в памяти, используйте Shader.WarmupAllShaders API.
Чтобы нагреть коллекцию вариантов шейдера, выполните любое из следующих действий:
- Используйте Experimental.Rendering.ShaderWarmup API.
- Используйте ShaderVariantCollection.WarmUp API.
- Добавьте коллекцию вариантов шейдеров в раздел Предварительно загруженные шейдеры окна Настройки графики. Unity затем использует
ShaderVariantCollection.WarmUpдля разогрева вариантов шейдеров при запуске вашего созданного приложения.
Примечание: Эти методы не рекомендуются на Vulkan, DirectX 12, и Metal потому что они могут создать неправильное PSOs из-за отсутствия графических состояний.