Version: 2019.4
ShaderLab: 레거시 안개
ShaderLab: UsePass

ShaderLab: 레거시 BindChannels

BindChannels 커맨드로 버텍스 데이터 맵을 그래픽스 하드웨어에 매핑하는 방법을 지정할 수 있습니다.

참고: 버텍스 프로그램을 사용하는 경우 _BindChannels_ 는 아무런 영향을 미치지 않습니다. 이 경우 바인딩이 버텍스 셰이더 입력을 통해 제어되기 때문입니다. 이제는 고정 함수 버텍스 프로세싱 대신 프로그램 가능 셰이더를 사용하는 것이 좋습니다.

Unity는 기본적으로 바인딩을 자동으로 계산하지만, 경우에 따라 커스텀 바인딩을 사용하고 싶을 수 있습니다.

예를 들어, 1차 UV 세트가 첫 텍스처 스테이지에 사용되고 2차 UV 세트가 두 번째 텍스처 스테이지에 사용되도록 매핑하거나, 버텍스 컬러를 고려해야 한다고 하드웨어에 알릴 수 있습니다.

구문

BindChannels { Bind "source", target }

버텍스 데이터 source 가 하드웨어 target 에 매핑되도록 지정합니다.

Source는 다음 중 하나일 수 있습니다.

  • Vertex: 버텍스 포지션
  • Normal: 버텍스 노멀
  • Tangent: 버텍스 탄젠트
  • Texcoord: 1차 UV 좌표
  • Texcoord1: 2차 UV 좌표
  • Color: 버텍스당 컬러

Target은 다음 중 하나일 수 있습니다.

  • Vertex: 버텍스 포지션
  • Normal: 버텍스 노멀
  • Tangent: 버텍스 탄젠트
  • Texcoord0, Texcoord1, …: 해당 텍스처 스테이지의 텍스처 좌표
  • Texcoord: 모든 텍스처 스테이지의 텍스처 좌표
  • Color: 버텍스 컬러

세부 정보

Unity는 타겟에 매핑할 수 있는 소스에 대한 다음과 같은 제한을 적용합니다. Vertex, Normal, TangentColor 의 소스와 타겟이 일치해야 합니다. 메시의 텍스처 좌표(TexcoordTexcoord1)를 텍스처 좌표 타겟(모든 텍스처 스테이지의 경우__Texcoord, 특정 스테이지의 경우 TexcoordN__)에 매핑할 수 있습니다.

BindChannels는 일반적으로 다음 두 가지 셰이더에 사용됩니다.

  • 버텍스 컬러를 감안하는 셰이더
  • UV 세트 2개를 사용하는 셰이더

예제

// 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
}
ShaderLab: 레거시 안개
ShaderLab: UsePass