ShaderLab syntax: Pass Tags

패스는 그들이 렌더링 엔진에 렌더되기를 기대할 때와 어떻게 되는지를 말해주기 위해 태그를 사용합니다.

Syntax

:_Value1_을 가지는 _TagName1_를 지정하고 _Value2_를 가지는_TagName2_를 지정합니다. 사용자는 사용자가 좋아하는 것만큼 많은 태그를 가질 수 있습니다.

Details

태그는 기본적으로 키값 쌍들입니다. Pass 내부에서 태그는 이 패스가 조명 파이프라인(주변색, 정점 조명, 픽셀 조명 등.)에서 가지는 역할들과 다른 선택사항들을 조절하기 위해 사용됩니다.

LightMode tag

_LightMode_ 태그는 조명 파이프라인에서 패스의 역할을 정의합니다. 자세한 내용을 위해서 render pipeline를 참고하시기 바랍니다. 이러한 태그는 수동적으로 거의 사용되지 않습니다; 조명과 상호작용할 필요가 있는 쉐이더는Surface Shaders로서 쓰여지고 그 후에 모든 디테일들이 처리됩니다.

LightMode 태그를 위한 가능한 값:

  • _Always_: 항상 렌더됩니다; 조명이 적용되지 않습니다.
  • _ForwardBase_: Forward rendering에서 사용됩니다, 주변의 주요한 방향성있는 조명과vertex/SH 조명이 적용됩니다.
  • _ForwardAdd_: Forward rendering에서 사용됩니다; 첨가되는 픽셀당 조명이 적용됩니다, 조명당 한 번의 패스.
  • _PrepassBase_: Deferred Lighting에서 사용됩니다, normals & specular 대표자를 렌더합니다.
  • _PrepassFinal_: Deferred Lighting에서 사용됩니다, 텍스쳐, 조명 그리고 방사를 결합해서 마지막 색상을 렌더합니다.
  • _Vertex_: 물체가 조명에 매핑되지 않을 때 Vertex Lit rendering에서 사용됩니다; 모든 정점 조명이 적용됩니다.
  • _VertexLMRGBM_: 물체가 조명에 매핑되지 않을 때 Vertex Lit rendering 에서 사용됩니다; lightmap이 RGBM으로 인코딩되는 플랫폼.
  • _VertexLM_: 물체가 조명에 매핑되지 않을 때 Vertex Lit rendering 에서 사용됩니다; lightmap이double-LDR으로 인코딩되는 플랫폼 (일반적으로 모바일 플랫폼 & 오래된 데스크탑 GPUs).
  • _ShadowCaster_: 그림자 캐스터로 물체를 렌더합니다.
  • _ShadowCollector_: Forward 렌더링 경로를 위해서 스크린 공간 버퍼로 물체의 그림자를 모읍니다.

RequireOptions tag

패스는 그것이 외부 상태를 충족할 때만 그려져야 한다는 것을 나타낼 수 있습니다. 이것은 _RequireOptions_을 사용해서 행해지고 그것의 값은 공간으로 분리된 선택사항의 스트링입니다. 현재적으로 Unity에서 지원되는 선택사항은 다음과 같습니다.

  • _SoftVegetation_: Soft Vegetation 이 Quality Settings에 오직 있다면 이 패스를 렌더합니다.

See Also

SubShaders는 주어진 태그가 주어질 수 있습니다, SubShader Tags를 살펴보시기 바랍니다.

역링크