Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Ориентация на графические API и платформы в HLSL

Некоторые директивы #pragma принимают параметры, которые позволяют ориентироваться на определенные графические API и платформы. На этой странице содержится информация об использовании этих директив и список допустимых значений параметров.

Включение или исключение графических API

По умолчанию Unity компилирует все шейдерыпрограммы, работающие на графическом процессоре. Подробнее
См. в Словарь
программы для каждого графического API в списке для текущей цели сборки . Иногда вам может понадобиться скомпилировать определенные шейдерные программы только для определенных графических API; например, если вы используете функции, которые поддерживаются не на всех платформах.

Чтобы скомпилировать шейдерную программу только для заданных API, используйте директиву #pragma only_renderers. Вы можете передать несколько значений, разделенных пробелами.

В этом примере показано, как компилировать шейдеры только для Metal и Vulkan:

#pragma only_renderers metal vulkan

Чтобы исключить код шейдера из компиляции заданными компиляторами, используйте директиву #pragma exclude_renderers. Вы можете передать несколько значений, разделенных пробелами.

В этом примере показано, как исключить шейдер из компиляции для Metal и Vulkan:

#pragma exclude_renderers metal vulkan

Создание вариантов шейдера для графических уровней для заданного графического API

Во встроенном конвейере рендеринга Unity автоматически создает варианты шейдераВерсия шейдерной программы, которую Unity генерирует в соответствии с определенной комбинацией ключевых слов шейдера и их статусом. Объект Shader может содержать несколько вариантов шейдера. Подробнее
См. в Словарь
, соответствующие уровни графики при определенных условиях. При необходимости вы также можете заставить Unity генерировать эти варианты.

Для этого используйте директиву препроцессора #pragma hardware_tier_variants и укажите графические API, для которых вы хотите создать варианты многоуровневых шейдеров.

Например, это указывает Unity компилировать варианты многоуровневых шейдеров для Metal:

#pragma hardware_tier_variants metal

Список допустимых значений параметров

Поддерживаемые значения:

Значение Описание
d3d11 DirectX 11 уровня функций 10 и выше, DirectX 12
gles OpenGL ES 2.0, WebGLJavaScript API, который отображает 2D- и 3D-графику в веб-браузере. Вариант сборки Unity WebGL позволяет Unity публиковать контент в виде программ JavaScript, использующих технологии HTML5 и API рендеринга WebGL для запуска контента Unity в веб-браузере. Подробнее
См. в Словарь
1.0
gles3 OpenGL ES 3.x, WebGL 2.0
ps4 PlayStation 4
xboxone Xbox One и GameCore, DirectX 11 и DirectX 12
metal iOSМобильная операционная система Apple. More info
See in Словарь
/Mac Metal
glcore OpenGL 3.x, OpenGL 4.x
vulkan Vulkan
switch Nintendo Switch
ps5 PlayStation 5
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3