Version: Unity 6.0 (6000.0)
언어 : 한국어
셰이더에 사용할 키워드 유형 선택
키워드에 대한 셰이더 동작 조건부 만들기

셰이더 키워드 선언

셰이더 키워드를 선언하려면 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

추가 리소스

셰이더에 사용할 키워드 유형 선택
키워드에 대한 셰이더 동작 조건부 만들기