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

Директива GrabPass в ссылке ShaderLab

GrabPass — это команда, которая создает особый тип Pass, который захватывает содержимое кадрового буфера в текстуру. Эта текстура может быть использована в последующих Pass для создания продвинутых эффектов на основе изображений.

Эта команда может значительно увеличить время кадров CPU и GPU. Вы должны избегать использования этой команды, кроме как для быстрого прототипирования, и пытаться достичь эффекта другими способами. Если вы используете эту команду, постарайтесь сократить количество операций захвата экрана как можно больше; либо уменьшив использование этой команды, либо используя подпись, которая захватывает экран к названной текстуре, если это применимо.

Совместимость конвейера отображения

Название особенности Universal Render Pipeline (URP) High Definition Render Pipeline (HDRP) Изготовленный на заказ SRP Built-in Render Pipeline
GrabPass Нет Нет Нет Да

Синтаксис

Используйте эту команду в блоке SubShader.

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

Подпись Функция
GrabPass { } Захватывает содержимое кадрового буфера в текстуру, которую можно использовать в последующих проходах в том же SubShader.

Ссылка на текстуру с использованием имени _GrabTexture.

При использовании этой подписи Unity захватывает экран каждый раз, когда он рендеринг пакет, содержащий эту команду. Это означает, что Unity может захватывать экран несколько раз в кадре: один раз для каждого пакета.
GrabPass { "ExampleTextureName" } Захватывает содержимое кадрового буфера в текстуру, к которой можно получить доступ в последующих проходах в том же кадре, через несколько SubShaders.

Ссылка на текстуру с помощью заданного имени.

При использовании этой подписи, Unity захватывает экран в первый раз в кадре, в котором он рендирует пакет, содержащий эту команду с заданным именем текстуры.

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