표면 셰이더 또는 일반 셰이더 프로그램으로 작성할 때 HLSL 소스를 다른 “셰이더 모델”로 컴파일할 수 있습니다. 셰이더 컴파일 타겟 레벨이 높으면 더 최신 GPU 기능을 사용할 수 있지만 셰이더가 구형 GPU 또는 플랫폼에서 작동하지 않을 수도 있습니다.
컴파일 타겟은 #pragma target
name 지시자로 표시하며, 예제는 다음과 같습니다.
#pragma target 3.5
Unity는 기본적으로 지원하는 타겟 중 DirectX 셰이더 모델 2.0과 3.0 사이의 가장 낮은 타겟(“2.5”)으로 셰이더를 컴파일합니다. 일부 다른 컴파일 지시자는 셰이더가 자동으로 더 높은 타겟에서 컴파일되도록 만들수 있습니다.
#pragma geometry
) 컴파일 타겟을 4.0
으로 설정합니다.#pragma hull
또는 #pragma domain
) 컴파일 타겟을 4.6
으로 설정합니다.아래 리스트는 지원되는 셰이더 모델을 성능의 오름차순으로 나열합니다(일부 경우 더 높은 플랫폼/GPU 요구 사항 순서).
es3.0
타겟의 모든 것이 포함됩니다.모든 OpenGL 유사 플랫폼(모바일 포함)은 “셰이더 모델 3.0 지원 가능”으로 간주됩니다. WP8/WinRT 플랫폼(DX11 기능 레벨 9.x)은 셰이더 모델 2.5만 가능한 것으로 간주됩니다.