Unity 매뉴얼 스크립팅 API
개요
이 문서는 Unity의 ShaderLab에 대한 설명과 레거시 기능에 대한 정보입니다. ShaderLab은 Unity의 셰이더를 정의하는데 사용되는 스크립트 언어입니다. 이 문서에서는 BindChannels
커맨드를 사용하여 버텍스 데이터와 그래픽스 하드웨어 간의 매핑을 설정하는 방법을 다룹니다.
BindChannels 커맨드
BindChannels
커맨드는 버텍스 데이터가 그래픽스 하드웨어에 어떻게 매핑되는지를 지정하는 데 사용됩니다. Unity는 일반적으로 이러한 바인딩을 자동으로 처리하지만, 특정 요구사항이 있을 경우 수동으로 커스텀 바인딩을 설정할 수 있습니다.
사용 예시
다음은 다양한 매핑을 설정하는 코드 예제입니다:
// 첫 번째 UV 세트를 첫 번째 텍스처 스테이지에 매핑하고
// 두 번째 UV 세트를 두 번째 텍스처 스테이지에 매핑
BindChannels {
Bind "Vertex", vertex
Bind "texcoord", texcoord0
Bind "texcoord1", texcoord1
}
// 첫 번째 UV 세트를 모든 텍스처 스테이지에 매핑하고
// 버텍스 컬러를 사용하는 설정
BindChannels {
Bind "Vertex", vertex
Bind "texcoord", texcoord
Bind "Color", color
}
소스 및 타겟 설명
- 소스: 매핑할 버텍스 데이터
Vertex
: 버텍스 포지션Normal
: 버텍스 노멀Tangent
: 버텍스 탄젠트Texcoord
,Texcoord1
: UV 좌표Color
: 버텍스 컬러- 타겟: 그래픽스 하드웨어에서의 매핑 지점
Vertex
: 버텍스 포지션Normal
: 버텍스 노멀Tangent
: 버텍스 탄젠트Texcoord0
,Texcoord1
, ...: 해당 텍스처 스테이지의 텍스처 좌표Texcoord
: 모든 텍스처 스테이지의 텍스처 좌표Color
: 버텍스 컬러
레거시 텍스처 조합
이 문서에서 설명하는 ShaderLab 기능은 레거시 기능으로서, 이전 버전과의 호환성을 위해 문서화되었습니다. HLSL 코드가 포함된 셰이더 소스 파일은 Unity에 의해 무시됩니다.
기능 이름 | 빌트인 렌더 파이프라인 | 유니버설 렌더 파이프라인(URP) | 고해상도 렌더 파이프라인(HDRP) | 커스텀 SRP |
---|---|---|---|---|
레거시 버텍스 데이터 채널 매핑 | 지원 | 지원 안 함 | 지원 안 함 | 지원 안 함 |
결론
BindChannels
를 사용하면 버텍스 데이터와 텍스처 스테이지 간의 매핑을 제어할 수 있습니다. 이를 통해 고급 셰이더를 작성하고 다양한 그래픽스 효과를 구현할 수 있습니다. Unity의 ShaderLab 문서를 통해 더욱 상세한 정보를 참고할 수 있습니다.