HLSL ссылка на команду pragma target
Вот список моделей шейдеров, которые использует Unity, и комбинация значений #pragma require, которой соответствует каждая из них.
Примечание: модели шейдеров Unity похожи на модели шейдеров DirectX и требования к версии OpenGL, но они не совпадают в точности. Внимательно прочитайте описания, чтобы убедиться, что вы понимаете различия.
| Значение | Описание | Поддержка | Эквивалент #pragma require значения |
|---|---|---|---|
2.0 |
Эквивалент DirectX модель шейдера 2.0. Ограниченное число арифметических и текстурных инструкций; 8 интерполяторов; нет выборки текстур в вершинном шейдере; нет производных во фрагментных шейдерах; нет выборки текстур с явным LOD. |
Работает на всех платформах, поддерживаемых Unity. | N/A |
2.5 |
Почти то же самое, что и 3.0, но только с 8 интерполяторами, и без явного LOD текстурного семплирования. | DirectX 11 функций уровня 9+ OpenGL 3.2+ Vulkan Metal |
derivatives |
3.0 |
Эквивалент модели шейдера DirectX 3.0. . |
DirectX 11 уровень функций 10 + OpenGL 3.2+ OpenGL ES 3.0+ Vulkan Metal |
Все в 2.5, плюс:interpolators10 samplelod fragcoord |
3.5 |
Эквивалент OpenGL ES 3.0. |
DirectX 11 функций уровня 10+ OpenGL 3.2+ OpenGL ES 3+ Vulkan Metal |
Все в 3.0, плюс:interpolators15 mrt4 integers 2darray instancing |
4.0 |
Эквивалент DirectX модели шейдера 4.0, но без требования поддерживать 8 MRTs. | DirectX 11 уровень функций 10+ Настольный OpenGL 3.x OpenGL ES 3.1 OpenGL ES 3.1 + Android Пакет расширения (AEP) OpenGL 3.2+ Vulkan Metal (если этап геометрии не определен) |
Все в 3.5, плюс:geometry |
gl4.1 |
Эквивалент OpenGL 4.1 | Настольный OpenGL 4.1 Модель шейдера 4.0 + тесселяция для соответствия возможностям macOS 10.9. |
Все в 4.0, плюс:cubearray tesshw tessellation msaatex |
4.5 |
Эквивалент OpenGL ES 3.1. | DirectX 11 функций уровня 11+ OpenGL 4.3+ OpenGL ES 3.1 Vulkan Metal |
Все в 3.5, плюс:compute randomwrite msaatex |
4.6 |
Эквивалент OpenGL 4.1. Это самый высокий уровень OpenGL, поддерживаемый на Mac. |
DirectX 11 уровень особенностей 11+ OpenGL 4.1+ OpenGL ES 3.1 + AEP Vulkan Metal (если не определен этап геометрии и не определен этап корпуса или домена) |
Все в 4.0, плюс:cubearray tesshw tessellation msaatex |
5.0 |
Эквивалент модели шейдера DirectX 5.0, но без требования поддерживать 32 интерполятора или массивы кубических карт. | DirectX 11 уровень функций 11+ Настольный OpenGL >= 4.2 OpenGL 4.3+ OpenGL ES 3.1 + AEP Vulkan Metal (если не определен этап геометрии и не определен этап корпуса или домена) |
Все в 4.0, плюс:compute randomwrite msaatex tesshw tessellation |
Сведения о поддержке модели шейдера для консольных платформ см. в документации по конкретным платформам.
Примечания:
- В определениях DirectX модель шейдера 4.0 включает
mrt8, а модель шейдера 5.0 включаетinterpolators32иcubearray. Unity не включает их для более широкой совместимости. Чтобы потребовать эти возможности, используйте явную директиву#pragma require. - Если вы используете цель, которая требует
geometry, но ваш шейдер не определяет стадию геометрии, Unity удаляетgeometryиз списка требований во время компиляции. - Если вы используете цель, которая требует
tessellation, но ваш шейдер не определяет стадию корпуса или домена, Unity удаляетtessellationиз списка требований во время компиляции.