Устанавливает смещение глубины на графическом процессоре.
Смещение глубины, также называемое смещением глубины, – это параметр графического процессора, определяющий глубину, на которой он рисует геометрию. Отрегулируйте смещение глубины, чтобы заставить графический процессор рисовать геометрию поверх другой геометрии той же глубины. Это может помочь вам избежать нежелательных визуальных эффектов, таких как z-fighting и теневые прыщи.
Чтобы задать смещение глубины для определенной геометрии, используйте эту команду или RenderStateBlock. Чтобы установить глобальное смещение глубины, которое влияет на всю геометрию, используйте CommandBuffer.SetGlobalDepthBias. Графический процессор применяет смещение глубины для определенной геометрии в дополнение к глобальному смещению глубины.
Чтобы уменьшить теневые прыщи, вы можете добиться аналогичного визуального эффекта с помощью настроек смещения света; однако эти настройки работают по-разному и не меняют состояние графического процессора. Дополнительную информацию см. в разделе Устранение неполадок с тенью.
Совместимость конвейера рендеринга
Название функции | Встроенный конвейер рендеринга | Универсальный конвейер рендеринга (URP) | Конвейер рендеринга высокого разрешения (HDRP) | Пользовательский SRP |
---|---|---|---|---|
Offset | Да | Да | Да | Да |
Использование
Эта команда изменяет состояние рендеринга. Используйте его в блоке Pass
, чтобы задать состояние рендеринга для этого Pass, или используйте его в блоке SubShader
, чтобы задать рендеринг. состояние для всех проходов в этом субшейдере.
Подпись | Пример синтаксиса | Функции |
---|---|---|
Offset |
Offset 1, 1 |
Нарисуйте геометрию ближе или дальше от камеры в зависимости от заданных значений.. |
Действительные значения параметров
Параметры | Значение | Функции |
---|---|---|
factor | Float, range –1 through 1. | Масштабирует максимальный наклон Z, также называемый наклоном глубины, для получения переменного смещения глубины для каждого полигона.
Многоугольники, не параллельные ближней и дальней плоскостям отсечения, имеют наклон по оси Z. Отрегулируйте это значение, чтобы избежать визуальных артефактов на таких полигонах. |
units | Float, range –1 through 1. | Масштабирует минимальное разрешаемое значение буфера глубины для создания постоянного смещения глубины. Минимальное значение буфера глубины, разрешаемое по глубине (одна единица), зависит от устройства.
Отрицательное значение означает, что графический процессор приближает полигон к камере. Положительное значение означает, что графический процессор отрисовывает полигон дальше от камеры. |
Примеры
В этом примере кода демонстрируется синтаксис использования этой команды в блоке Pass.
Shader "Examples/CommandExample"
{
SubShader
{
// The rest of the code that defines the SubShader goes here.
Pass
{
// Sets the depth offset for this geometry so that the GPU draws this geometry closer to the camera
// You would typically do this to avoid z-fighting
Offset -1, -1
// The rest of the code that defines the Pass goes here.
}
}
}
В этом примере кода демонстрируется синтаксис использования этой команды в блоке SubShader.
Shader "Examples/CommandExample"
{
SubShader
{
// Sets the depth offset for this geometry so that the GPU draws this geometry closer to the camera
// You would typically do this to avoid z-fighting
Offset -1, -1
// The rest of the code that defines the SubShader goes here.
Pass
{
// The rest of the code that defines the Pass goes here.
}
}
}