Unity 셰이더 키워드 가이드
이 문서는 Unity에서 셰이더 키워드를 사용하는 방법에 대해 설명합니다. 셰이더 키워드는 특정 기능을 활성화하거나 비활성화하여 셰이더의 동작을 조건부로 설정할 수 있도록 합니다.
셰이더 키워드란?
셰이더 키워드는 코드를 조건부로 작성할 수 있게 도와주는 도구입니다. 특정 키워드가 활성화되면 셰이더의 특정 기능이 작동하고, 비활성화되면 작동하지 않습니다.
주요 개념
- 셰이더 배리언트: 키워드 조합에 따라 생성되는 다양한 셰이더 변형.
- 동적 브랜치: 셰이더에서 조건에 따라 다른 코드 경로를 선택하는 기능.
- 키워드 세트: 서로 배타적인 키워드 그룹.
| 종류 | 설명 |
|---|---|
| COLOR_RED | 붉은 색상을 사용할 때 활성화 |
| COLOR_GREEN | 녹색 사용 시 활성화 |
| COLOR_BLUE | 파란색 사용 시 활성화 |
셰이더 키워드 선언
셰이더 키워드는 선언할 때 몇 가지 옵션을 가집니다:
- 범위: 로컬 또는 전역 키워드.
- 타입: “multi compile”, “shader feature”, 또는 “dynamic branch”.
선언 예
셰이더 키워드를 선언하는 코드 예시:
#pragma multi_compile COLOR_RED COLOR_GREEN COLOR_BLUE
키워드의 동작 조건부 작성
셰이더 키워드를 이용해 특정 동작을 조건부로 설정할 수 있습니다.
예시 코드
#if COLOR_RED
// 붉은 색일 때 실행 코드
#endif
키워드 활성화 및 비활성화
키워드를 활성화하거나 비활성화할 수 있으며, 이는 Unity가 적절한 셰이더 배리언트를 렌더링 하거나 GPU에서 적절한 브랜치를 실행하는 데 사용됩니다.
활성화 방법
- C# 스크립트 사용
- Unity 에디터의 머티리얼 인스펙터 사용
Unity의 사전 정의된 셰이더 키워드
Unity는 기본적으로 몇 가지 사전 정의된 셰이더 키워드를 사용하여 공통 기능을 활성화합니다.
| 기본 키워드 | 설명 |
|---|---|
| STEREO_INSTANCING_ON | 스테레오 인스턴싱 활성화 |
| LIGHTMAP_ON | 라이트맵 사용 시 활성화 |
| UNITY_HARDWARE_TIER1 | 하드웨어 티어 1의 기능 활성화 |
셰이더 키워드 제한
Unity에서는 셰이더 키워드 사용에 제한이 있습니다:
- 최대 전역 키워드 수: 4,294,967,294개
- 개별 셰이더의 로컬 키워드 수: 65,534개
키워드 수량 관리
키워드의 수는 가능한 한 적게 유지하는 것이 좋습니다. 셰이더당 항상 4개의 키워드가 예약됩니다.
추가 자료
이 문서에서 설명한 내용을 바탕으로 Unity 프로젝트에서 효과적으로 셰이더 키워드를 활용해 보세요!