Version: 2021.1
언어: 한국어
ShaderLab: 패스에 태그 할당
ShaderLab: 셰이더 프로그램 추가

ShaderLab: 빌트인 렌더 파이프라인의 사전 정의된 패스 태그

이 페이지에는 빌트인 렌더 파이프라인과 함께 사용할 수 있는 사전 정의된 패스 태그에 대한 정보가 포함되어 있습니다.

LightMode 태그에 대한 소개를 포함하여 패스 태그에 대한 일반 정보는 ShaderLab: 패스에 태그 할당을 참조하십시오. 유니버설 렌더 파이프라인(URP)의 사전 정의된 패스 태그값에 대한 내용은 URP 패스 태그: LightMode를 참조하십시오.

LightMode 태그 유효값

다음은 빌트인 렌더 파이프라인의 LightMode 패스 태그 유효값입니다. LightMode 태그에 대한 자세한 내용은 ShaderLab: 패스 태그 사용을 참조하십시오.

기능
Always 항상 렌더링되며, 조명이 적용되지 않습니다(기본값).
ForwardBase 포워드 렌더링에 사용되며, 앰비언트 라이트, 주 방향 광원, 버텍스/SH 라이트 및 라이트맵이 적용됩니다.
ForwardAdd 포워드 렌더링에 사용되며, 추가 픽셀당 광원이 광원당 한 패스씩 적용됩니다.
Deferred 디퍼드 셰이딩에 사용되며, G버퍼를 렌더링합니다.
ShadowCaster 오브젝트 뎁스를 섀도우맵 또는 뎁스 텍스처에 렌더링합니다.
MotionVectors 오브젝트당 모션 벡터를 계산하는 데 사용됩니다.
PrepassBase 레거시 디퍼드 라이팅에 사용되며, 노멀 및 스페큘러 지수를 렌더링합니다.
PrepassFinal 레거시 디퍼드 라이팅에 사용되며, 텍스처, 조명 및 이미션을 결합하여 최종 컬러를 렌더링합니다.
ShadowCaster 오브젝트 뎁스를 섀도우맵 또는 뎁스 텍스처에 렌더링합니다.
Vertex 오브젝트가 라이트매핑되지 않은 경우 레거시 버텍스 릿 렌더링에서 사용되며, 모든 버텍스 광원이 적용됩니다.
VertexLMRGBM 라이트맵이 RGBM으로 인코딩된 플랫폼(PC 및 콘솔)에서 오브젝트가 라이트매핑된 경우 레거시 버텍스 릿 렌더링에서 사용됩니다.
VertexLM 라이트맵이 double-LDR로 인코딩된 플랫폼(모바일 플랫폼)에서 및 오브젝트가 라이트매핑된 경우 레거시 버텍스 릿 렌더링에서 사용됩니다.
Meta 이 패스는 일반 렌더링에서는 사용되지 않으며, 라이트맵 베이킹 또는 실시간 전역 조명에만 사용됩니다. 자세한 내용은 라이트매핑 및 메타 패스 태그를 참조하십시오.

PassFlags 태그

빌트인 렌더 파이프라인에서 PassFlags 패스 태그를 사용하여 Unity가 패스에 제공하는 데이터를 지정하십시오.

유효값

기능
OnlyDirectional LightMode 태그값이 ForwardBase인 패스에서 렌더링 경로가 포워드로 설정된 경우, 빌트인 렌더 파이프라인에서만 유효합니다.

Unity는 주 방향 광원 및 앰비언트/라이트 프로브 데이터만 이 패스에 전달합니다. 즉, 중요하지 않은 광원의 데이터는 버텍스 광원 또는 스피리컬 하모닉 셰이더 변수에 전달되지 않습니다. 자세한 내용은 포워드 렌더링 경로를 참조하십시오.

PassFlag 태그 코드 예제

Shader "Examples/ExamplePassFlag"
{
    SubShader
    {
        Pass
        {    
              Tags { "LightMode" = "ForwardBase" "PassFlags" = "OnlyDirectional" }
            
              // The rest of the code that defines the Pass goes here.
        }
    }
}

RequireOptions 태그

빌트인 렌더 파이프라인에서 RequireOptions 패스 태그는 프로젝트 설정에 기반하여 패스를 활성화하거나 비활성화합니다.

유효값

기능
SoftVegetation QualitySettings-softVegetation이 활성화된 경우에만 이 패스를 렌더링하십시오.

예제

Shader "Examples/ExampleRequireOptions"
{
    SubShader
    {
        Pass
        {    
              Tags { "RequireOptions" = "SoftVegetation" }
            
              // The rest of the code that defines the Pass goes here.
        }
    }
}
ShaderLab: 패스에 태그 할당
ShaderLab: 셰이더 프로그램 추가