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를 살펴보시기 바랍니다.

'TA > Unity Shader 레퍼런스' 카테고리의 다른 글

CullAndDepth  (0) 2012.07.18
SetTexture  (1) 2012.07.17
Color, Material, Lighting (fixed funtion)  (0) 2012.07.12
Performance Tips when Writing Shaders  (0) 2012.07.12
Writing vertex and fragment shaders  (0) 2012.07.12
Posted by 프리랜서 디자이너