Задает условия, при которых геометрия проходит или не проходит проверку глубины.
Глубинное тестирование позволяет графическим процессорам с функцией Early-Z отклонять геометрию на ранней стадии конвейера, а также обеспечивает правильное упорядочение геометрии. Вы можете изменить условия тестирования глубины для достижения визуальных эффектов, таких как окклюзия объектов.
Совместимость конвейера рендеринга
Название функции | Встроенный конвейер рендеринга | Универсальный конвейер рендеринга (URP) | Конвейер рендеринга высокого разрешения (HDRP) | Пользовательский SRP |
---|---|---|---|---|
ZTest | Да | Да | Да | Да |
Использование
Эта команда изменяет состояние рендеринга. Используйте его в блоке Pass
, чтобы задать состояние рендеринга для этого Pass, или используйте его в блоке SubShader
, чтобы задать рендеринг. состояние для всех проходов в этом субшейдере.
Подпись | Пример синтаксиса | Функции |
---|---|---|
ZTest [operation] | ZTest Less | Установите условия, при которых геометрия проходит или не проходит проверку глубины. |
Valid parameter values
Параметры | Значение | Функции |
---|---|---|
operation | Less | Нарисуйте геометрию, которая находится впереди существующей геометрии. Не рисуйте геометрию, которая находится на том же расстоянии, что и существующая геометрия, или позади нее. |
LEqual | Нарисуйте геометрию, которая находится впереди или на том же расстоянии, что и существующая геометрия. Не рисуйте геометрию, которая находится за существующей геометрией.
Это значение по умолчанию. |
|
Equal | Нарисуйте геометрию, которая находится на том же расстоянии, что и существующая геометрия. Не рисуйте геометрию, которая находится впереди или позади существующей геометрии. | |
GEqual | Нарисуйте геометрию, которая находится позади или на том же расстоянии, что и существующая геометрия. Не рисуйте геометрию, которая находится перед существующей геометрией. | |
Greater | Нарисуйте геометрию, которая находится за существующей геометрией. Не рисуйте геометрию, которая находится на том же расстоянии, что и существующая геометрия, или перед ней. | |
NotEqual | Нарисуйте геометрию, которая не находится на том же расстоянии, что и существующая геометрия. Не рисуйте геометрию, которая находится на том же расстоянии, что и существующая геометрия. | |
Always | Проверка глубины не проводится. Нарисуйте всю геометрию, независимо от расстояния. |
Примеры
В этом примере кода демонстрируется синтаксис использования этой команды в блоке Pass.
Shader "Examples/CommandExample"
{
SubShader
{
// The rest of the code that defines the SubShader goes here.
Pass
{
// Sets the depth test operation to Equal for all pixels in this Pass
// You would typically do this if you want to render the geometry exactly where already rendered geometry is
ZTest Equal
// The rest of the code that defines the Pass goes here.
}
}
}
В этом примере кода демонстрируется синтаксис использования этой команды в блоке SubShader.
Shader "Examples/CommandExample"
{
SubShader
{
// Sets the depth test operation to Equal for all pixels in this Pass
// You would typically do this if you want to render the geometry exactly where already rendered geometry is
ZTest Equal
// The rest of the code that defines the SubShader goes here.
Pass
{
// The rest of the code that defines the Pass goes here.
}
}
}