셰이더 키워드를 선언하려면 HLSL 코드에서 #pragma 지시문을 사용하십시오. 예시:
#pragma shader_feature REFLECTION_TYPE1 REFLECTION_TYPE2 REFLECTION_TYPE3
다음 셰이더 지시문 중 하나를 사용할 수 있습니다.
| 셰이더 지시문 | 브랜칭 유형 | Unity가 생성한 셰이더 배리언트 |
|---|---|---|
shader_feature |
정적 브랜칭 | 빌드 시 머티리얼 프로퍼티를 사용하여 활성화하는 키워드 조합에 대한 배리언트 |
multi_compile |
정적 브랜칭 | 가능한 모든 키워드 조합에 대한 배리언트 |
dynamic_branch |
동적 브랜치 | 추가 배리언트 없음 |
다음을 참조하십시오.
Shader Graph에서 Shader Graph: Keyword 노드를 대신 확인합니다.
단일 #pragma 문의 여러 키워드는 함께 ’세트’라고 합니다.
다음 예시에서는 세 개의 키워드가 포함된 세트를 선언합니다.
#pragma shader_feature REFLECTION_TYPE1 REFLECTION_TYPE2 REFLECTION_TYPE3
하나의 셰이더에서 여러 개의 키워드 세트를 선언할 수도 있습니다. 다음 예시에서는 2개의 세트를 생성합니다.
#pragma shader_feature REFLECTION_TYPE1 REFLECTION_TYPE2 REFLECTION_TYPE3
#pragma shader_feature RED GREEN BLUE WHITE
다음과 같이 할 수는 없습니다.
dynamic_branch, shader_feature 또는 multi_compile로 선언할 수 없습니다. 이렇게 하면 Unity가 dynamic_branch를 사용합니다.키워드는 기본적으로 전역 키워드 상태의 영향을 받습니다.
셰이더 지시문에 _local을 추가하여 키워드를 로컬로 만들 수 있습니다. 전역 키워드를 활성화하거나 비활성화하는 경우 동일한 이름을 가진 로컬 키워드의 상태에는 영향을 미치지 않습니다.
예시:
#pragma shader_feature_local REFLECTION_TYPE1 REFLECTION_TYPE2 REFLECTION_TYPE3