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

Сделать шейдер совместимым с путями отображения Deferred или Deferred+ в URP

Использование шейдера в путях отображения Deferred или Deferred+

Чтобы использовать шейдер в пути Отложенного рендеринга, добавьте тег UniversalGBuffer к Pass в коде ShaderLab. Unity выполняет шейдер во время прохода рендеринга G-буфера.

Например:

Shader "Examples/ExamplePassFlag"
{
    SubShader
    {
        Pass
        {    
              Tags
              { 
                "RenderPipeline" = "UniversalPipeline"
                "LightMode" = "UniversalGBuffer"
              }
            
              // The rest of the code that defines the Pass goes here.
        }
    }
}

Использовать шейдер в прямом проходе путей отображения Deferred или Deferred+

Чтобы использовать шейдер в пути Отложенного отображения, добавьте метки UniversalForwardOnly и DepthNormalsOnly к тегу Pass в коде ShaderLab. Unity выполняет шейдер во время прохождения отображения G-буфера.

Например:

Shader "Examples/ExamplePassFlag"
{
    SubShader
    {
        Pass
        {    
              Tags { 
                "RenderPipeline" = "UniversalPipeline"
                "LightMode" = "UniversalForwardOnly"
                "LightMode" = "DepthNormalsOnly"
              }
            
              // The rest of the code that defines the Pass goes here.
        }
    }
}

Укажите модель освещения шейдера

Чтобы указать модель освещения шейдера как Lit или Simple Lit, используйте тег UniversalMaterialType. Например:

Shader "Examples/ExamplePassFlag"
{
    SubShader
    {
        Pass
        {    
              Tags
              { 
                "RenderPipeline" = "UniversalPipeline"
                "LightMode" = "UniversalGBuffer"
                "UniversalMaterialType" = "Lit" 
              }
            
              // The rest of the code that defines the Pass goes here.
        }
    }
}

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