Unity 6.3
0 онлайн 115 гостей 3 в системе
Вход
Материалы и шейдеры Шаг 410 из 442

Команда шаблона в ссылке ShaderLab

Настраивает параметры, относящиеся к буферу шаблона на GPU.

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

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

Синтаксис

Подпись Синтаксис примера Функция
Stencil
{
Ref <ref>
ReadMask <readMask>
WriteMask <writeMask>
Comp <comparisonOperation>
Pass <passOperation>
Fail <failOperation>
ZFail <zFailOperation>
CompBack <comparisonOperationBack>
PassBack <passOperationBack>
FailBack <failOperationBack>
ZFailBack <zFailOperationBack>
CompFront <comparisonOperationFront>
PassFront <passOperationFront>
FailFront <failOperationFront>
ZFailFront <zFailOperationFront>
}

Обратите внимание, что все параметры необязательны.
Stencil
{
Ref 2
Comp equal
Pass keep
ZFail decrWrap
}
Настраивает буфер шаблона в соответствии с заданными параметрами.

Параметры

Параметр Значение Функция
реф Целое число. Диапазон от 0 до 255. По умолчанию 0. Значение ссылки.

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

Это значение маскируется readMask или writeMask, в зависимости от того, происходит операция чтения или записи.

GPU также может записать это значение в буфер шаблона, если Pass, Fail или ZFail имеют значение Replace.
readMask Целое число. Диапазон от 0 до 255. По умолчанию 255. GPU использует это значение в качестве маски при выполнении теста шаблона.

См. выше уравнение теста шаблона.
writeMask Целое число. Диапазон от 0 до 255. По умолчанию 255. GPU использует это значение в качестве маски при записи в буфер шаблона.

Обратите внимание, что, как и другие маски, она указывает, какие биты включены в операцию. Например, значение 0 означает, что в операцию записи не включены биты, а не то, что буфер шаблона получает значение 0.
comparisonOperation Операция сравнения. Допустимые значения см. в Значения операции сравнения. По умолчанию — Всегда. Операция, которую GPU выполняет для теста шаблона для всех пикселей.

Это определяет операцию для всех пикселей, независимо от направления. Если это определено в дополнение к comparisonOperationBack и comparisonOperationFront, это значение переопределяет их.
passOperation Операция шаблона. Допустимые значения см. в Значения операции шаблона. По умолчанию — Keep. Операция, которую GPU выполняет на буфере шаблона, когда пиксель проходит как тест шаблона, так и тест глубины.

Это определяет операцию для всех пикселей, независимо от их направления. Если это определено в дополнение к passOperationBack и passOperationFront, это значение переопределяет их.
failOperation Операция шаблона. Допустимые значения см. в Значения операции шаблона. По умолчанию — Keep. Операция, которую GPU выполняет на буфере шаблона, когда пиксель не проходит тест шаблона.

Определяет операцию для всех пикселей, независимо от их направления. Если это определено в дополнение к failOperationBack и failOperationFront, это значение переопределяет их.
zFailOperation Операция шаблона. Допустимые значения см. в Значения операции шаблона. По умолчанию — Keep. Операция, которую GPU выполняет на буфере шаблона, когда пиксель проходит тест шаблона, но не проходит тест глубины.

Это определяет операцию для всех пикселей, независимо от их направления. Если это определено в дополнение к zFailOperationBack и zFailOperationFront, это значение переопределяет их.
comparisonOperationBack Операция сравнения. Допустимые значения см. в Значения операции сравнения. По умолчанию — Всегда. Операция, которую выполняет GPU для тестирования шаблона.

Это определяет операцию только для пикселей, обращенных назад. Если определено comparisonOperation, это значение переопределяет это значение.
passOperationBack Операция шаблона. Допустимые значения см. в Значения операции шаблона. По умолчанию — Keep. Операция, которую GPU выполняет на буфере шаблона, когда пиксель проходит как тест шаблона, так и тест глубины.

Это определяет операцию только для пикселей, обращенных назад. Если определено passOperation, это значение переопределяет это значение.
failOperationBack Операция шаблона. Допустимые значения см. в Значения операции шаблона. По умолчанию — Keep. Операция, которую GPU выполняет на буфере шаблона, когда пиксель не проходит тест шаблона.

Определяет операцию только для пикселей, обращенных назад. Если определено failOperation, это значение переопределяет это значение.
zFailOperationBack Операция шаблона. Допустимые значения см. в Значения операции шаблона. По умолчанию — Keep. Операция, которую GPU выполняет на буфере шаблона, когда пиксель проходит тест шаблона, но не проходит тест глубины.

Это определяет операцию только для пикселей, обращенных назад. Если определено zFailOperation, это значение переопределяет это значение.
comparisonOperationFront Операция сравнения. Допустимые значения см. в Значения операции сравнения. По умолчанию — Всегда. Операция, которую выполняет GPU для тестирования шаблона.

Это определяет операцию только для передних пикселей. Если определено comparisonOperation, это значение переопределяет это значение.
passOperationFront Операция шаблона. Допустимые значения см. в Значения операции шаблона. По умолчанию — Keep. Операция, которую GPU выполняет на буфере шаблона, когда пиксель проходит как тест шаблона, так и тест глубины.

Это определяет операцию только для передних пикселей. Если определено passOperation, это значение переопределяет это значение.
failOperationFront Операция шаблона. Допустимые значения см. в Значения операции шаблона. По умолчанию — Keep. Операция, которую GPU выполняет на буфере шаблона, когда пиксель не проходит тест шаблона.

Это определяет операцию только для передних пикселей. Если определено failOperation, это значение переопределяет это значение.
zFailOperationFront Операция шаблона. Допустимые значения см. в Значения операции шаблона. По умолчанию — Keep. Операция, которую GPU выполняет на буфере шаблона, когда пиксель проходит тест шаблона, но не проходит тест глубины.

Это определяет операцию только для передних пикселей. Если определено zFailOperation, это значение переопределяет это значение.

Сравнительные показатели

В C# эти значения представлены Rendering.CompareFunction enum.

Значение Соответствующее целое значение в Rendering.CompareFunction enum Функция
Never 1 Никогда не отображать пиксели.
Less 2 Отображать пиксели, когда их значение меньше текущего значения в буфере шаблона.
Equal 3 Отображать пиксели, когда их справочное значение равно текущему значению в буфере шаблона.
LEqual 4 Отображать пиксели, когда их справочное значение меньше или равно текущему значению в буфере шаблона.
Greater 5 Отображать пиксели, когда их справочное значение больше текущего значения в буфере шаблона.
NotEqual 6 Отображать пиксели, когда их справочное значение отличается от текущего значения в буфере шаблона.
GEqual 7 Отображать пиксели, когда их справочное значение больше или равно текущему значению в буфере шаблона.
Always 8 Всегда отображать пиксели.

Значения шаблона

В C# эти значения представлены Rendering.Rendering.StencilOp enum.

Значение Соответствующее целое значение в Rendering.StencilOp enum Функция
Keep 0 Сохранить текущее содержимое буфера шаблона.
Zero 1 Записать 0 в буфер шаблона.
Replace 2 Запись значения ссылки в буфер.
IncrSat 3 Увеличивает текущее значение в буфере. Если значение уже равно 255, оно остается на уровне 255.
DecrSat 4 Уменьшает текущее значение в буфере. Если значение уже равно 0, то оно остается на уровне 0.
Invert 5 Отрицает все биты текущего значения в буфере.
IncrWrap 6 Увеличивает текущее значение в буфере. Если значение уже равно 255, оно становится 0.
DecrWrap 7 Уменьшает текущее значение в буфере. Если значение уже равно 0, оно становится 255.

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