ShaderLab syntax: BindChannels

BindChannels 명령은 사용자가 그래픽 하드웨어에 꼭지점 데이터를 어떻게 매핑할지를 정하는 것을 허락합니다.

BindChannels은 바인딩이 정점 쉐이더 입력값에 따라 조절되는 경우로서 프로그래밍이 가능한 정점 쉐이더가 사용될 때 어떠한 영향도 미치지 않습니다.

기본적으로 Unity는 사용자를 위한 바인딩을 찾아내나 어떠한 경우에는 사용자가 사용자가 정의한 것이 사용되어지기를 원하기도 합니다.

예를 들어 사용자는 주요한 UV 세트를 첫 번째 텍스쳐 스테이지에서 사용되기 위해 매핑할 수 있고 부가적인 UV 세트를 두 번째 텍스쳐 스테이지에서 사용되도록 매핑할 수 있습니다. 또는 사용자는 정점 색상이 고려되어져야 하는 것을 하드웨어에 말할 수도 있습니다.

Syntax

BindChannels { Bind "source", target }
정점 데이터 source를 하드웨어 target에 매핑하는 것을 지정합니다.

Source 다음 중에 하나일 수 있습니다:

  • Vertex: 꼭지점 위치
  • Normal: 꼭지점 normal
  • Tangent: 꼭지점 탄젠트
  • Texcoord: 주요 UV 좌표
  • Texcoord1: 부가적인 UV 좌표
  • Color: 픽셀당 색상

Target 다음 중에 하나일 수 있습니다:

  • Vertex: 꼭지점 위치
  • Normal: 꼭지점 normal
  • Tangent: 꼭지점 탄젠트
  • Texcoord0, Texcoord1, ...: 해당 텍스쳐 스테이지를 위한 텍스쳐 좌표
  • Texcoord: 모든 텍스쳐 스테이지들을 위한 텍스쳐 좌표들
  • Color: 꼭지점 색상

Details

Unity는 어떤 소스가 어떤 타겟에 매핑될 수 있는지에 대한 제한사항들을 가집니다. 소스와 타겟은Vertex, Normal,Tangent 그리고 Color를 위해서 반드시 매치되어야 합니다. 메쉬(TexcoordTexcoord1) 로 부터 텍스쳐 좌표는 텍스쳐 좌표 타겟으로 매핑될 수 있습니다(모든 텍스쳐 스테이지를 위해서는 Texcoord 그리고 특정한 스테이지를 위해서는 TexcoordN).

BindChannels를 위한 두 가지의 일반적인 사용 케이스가 있습니다:

  • 꼭지점 색상을 고려하는 쉐이더.
  • 두 가지의 UV 세트를 사용하는 쉐이더.

Examples

// Maps the first UV set to the first texture stage
// and the second UV set to the second texture stage
BindChannels {
   Bind "Vertex", vertex
   Bind "texcoord", texcoord0
   Bind "texcoord1", texcoord1
} 
// Maps the first UV set to all texture stages
// and uses vertex colors
BindChannels {
   Bind "Vertex", vertex
   Bind "texcoord", texcoord
   Bind "Color", color
} 

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

GrabPass  (0) 2012.07.18
UsePass  (0) 2012.07.18
Name  (0) 2012.07.18
Fog  (0) 2012.07.18
AlphaTest  (0) 2012.07.18
Posted by 프리랜서 디자이너