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

ShaderLab: определение пароля

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

Обзор

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

Объекты простых шейдеров могут содержать только один проход, но более сложные шейдеры могут содержать несколько проходов. Вы можете использовать отдельные проходы для определения частей вашего объекта Shader, которые работают по-разному; например, части, требующие изменения состояния рендеринга, другие программы шейдеров или другой тег LightMode Pass.

Примечание. В конвейерах рендеринга, основанных на Scriptable Render Pipeline, вы можете использовать RenderStateBlock для изменения состояния рендеринга на графическом процессоре, не требуя отдельного прохода.

Совместимость конвейера рендеринга

Название функции Встроенный конвейер рендеринга Универсальный конвейер рендеринга (URP) Конвейер рендеринга высокого разрешения (HDRP) Пользовательская SRP
ShaderLab: Pass block Да Да Да Да

Использование блока Pass

Чтобы определить обычный проход в ShaderLab, вы помещаете блок Pass внутрь блока SubShader.

В блоке Pass вы можете:

Вы также можете определить два специальных типа Pass, используя команды UsePass или GrabPass. Для получения информации об этих командах см. команды ShaderLab: UsePass или команды ShaderLab: GrabPass.

Подпись Функции
Pass
{
    <optional: name>
 <optional: tags>
    <optional: commands>
   <optional: shader code>
}
Defines a Pass.

Примеры

В этом примере кода демонстрируется синтаксис для создания объекта Shader, содержащего один SubShader, который, в свою очередь, содержит один Pass.

Shader "Examples/SinglePass" { SubShader { Pass { Name "ExamplePassName" Tags { "ExampleTagKey" = "ExampleTagValue" } // ShaderLab commands go here. // HLSL code goes here. } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3