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

Блоки кода шейдера в ссылке ShaderLab

Эта страница содержит информацию об использовании блоков кода шейдера. Информацию о написании самой HLSL см. в Писание HLSL шейдерных программ.

HLSL

HLSLPROGRAM и HLSLINCLUDE совместимы со всеми конвейерами рендеринга.

Подпись Функция
HLSLPROGRAM
[source code for shader programs]
ENDHLSL
Создает блок программы шейдера. Unity добавляет программу шейдера HLSL в проход, который включает этот блок программы шейдера.
HLSLINCLUDE
[code that you want to share]
ENDHLSL
Создает блок включения для шейдера. Unity включает этот код во все программы шейдера, которые определены в блоках HLSLPROGRAM, в любом месте этого исходного файла.

CG

CGPROGRAM и CGINCLUDE совместимы только с встроенным Render Pipeline. Для большинства применений, используйте HLSLPROGRAM и HLSLINCLUDE вместо этого, если вы не пишете поверхностные шейдеры.

Если вы используете CGPROGRAM, Unity по умолчанию включает несколько встроенных файлов shader include Unity, что позволяет использовать встроенные переменные и функции. В результате, shaders, которые используют CGPROGRAM, могут не работать, если вы измените ключевое слово на HLSLPROGRAM.

Примечание: Хотя файлы библиотеки шейдеров в Встроенном Render Pipeline имеют .cginc расширение файла, они содержат HLSL код, а не CG код.

Подпись Функция
CGPROGRAM
[source code for shader programs]
ENDCG
Создает блок программы шейдера. Unity добавляет программу шейдера в проход, который включает этот блок программы шейдера.
CGINCLUDE
[code that you want to share]
ENDCG
Создайте блок включения шейдера. Unity включает этот код во все программы шейдера, которые определены в блоках CGPROGRAM, в любом месте этого исходного файла.

Дополнительные ресурсы