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

Установить глубину в шейдере

Отклонение глубины, также называемое смещением глубины, является настройкой на GPU, которая определяет глубину, на которой рисуется геометрия. Настройте отклонение глубины, чтобы заставить GPU рисовать геометрию наверху другой геометрии, которая находится на той же глубине. Это может помочь вам избежать нежелательных визуальных эффектов, таких как z-борьба и тени акне.

Чтобы установить отклонение глубины для конкретной геометрии, используйте эту команду или RenderStateBlock. Чтобы установить глобальное отклонение глубины, которое влияет на всю геометрию, используйте CommandBuffer.SetGlobalDepthBias. GPU применяет отклонение глубины для конкретной геометрии в дополнение к глобальному отклонению глубины.

Чтобы уменьшить акне тени, вы можете достичь аналогичного визуального эффекта с световой bias настройки; однако эти настройки работают иначе и состояние на GPU не меняют. Подробнее см. тени устранения неисправностей.

Пример

Этот пример кода демонстрирует синтаксис использования этой команды в блоке 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.
        }
    }
}

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