Unity 셰이더 지시문 단축키를 사용하여 셰이더 키워드 및 배리언트 세트를 생성할 수 있습니다. 예를 들어 다음 예시에서는 SHADOWS_DEPTH 및 SHADOWS_CUBE 키워드와 배리언트를 추가합니다.
#pragma multi_compile_shadowcaster
| 단축키 | Unity 추가 셰이더 키워드 | Unity에서 모든 키워드가 해제된 배리언트를 추가하는지 여부 | 배리언트를 사용하는 셰이더 패스 |
|---|---|---|---|
multi_compile_fog |
FOG_LINEAR, FOG_EXP, FOG_EXP2
|
예 | 안개 |
multi_compile_fwdadd |
POINT DIRECTIONAL SPOT POINT_COOKIE DIRECTIONAL_COOKIE
|
아니요 | PassType.ForwardAdd |
multi_compile_fwdadd_fullshadows |
POINT, DIRECTIONAL, SPOT, POINT_COOKIE, DIRECTIONAL_COOKIE, SHADOWS_DEPTH SHADOWS_SCREEN SHADOWS_CUBE SHADOWS_SOFT SHADOWS_SHADOWMASK, LIGHTMAP_SHADOW_MIXING
|
아니요 |
PassType.ForwardAdd. 조명에 실시간 그림자를 적용할 수 있는 기능을 추가합니다. |
multi_compile_fwdbase |
DIRECTIONAL, LIGHTMAP_ON, DIRLIGHTMAP_COMBINED, DYNAMICLIGHTMAP_ON, SHADOWS_SCREEN, SHADOWS_SHADOWMASK, LIGHTMAP_SHADOW_MIXING, LIGHTPROBE_SH
|
아니요 | PassType.ForwardBase. |
multi_compile_fwdbasealpha |
DIRECTIONAL, LIGHTMAP_ON, DIRLIGHTMAP_COMBINED, DYNAMICLIGHTMAP_ON, LIGHTMAP_SHADOW_MIXING, VERTEXLIGHT_ON, LIGHTPROBE_SH
|
아니요 | PassType.ForwardBase |
multi_compile_instancing |
INSTANCING_ON. 또한 프로젝트가 절차적 인스턴싱을 사용하는 경우 PROCEDURAL_ON을 추가합니다. |
||
multi_compile_lightpass |
POINT, DIRECTIONAL, SPOT, POINT_COOKIE, DIRECTIONAL_COOKIE, SHADOWS_DEPTH, SHADOWS_SCREEN, SHADOWS_CUBE, SHADOWS_SOFT, SHADOWS_SHADOWMASK, LIGHTMAP_SHADOW_MIXING
|
아니요 | 라이트 프로브를 제외한 실시간 광원과 그림자를 그리는 모든 패스 |
multi_compile_particles |
SOFTPARTICLES_ON |
예 | 파티클 시스템 패스 |
multi_compile_prepassfinal |
LIGHTMAP_ON, DIRLIGHTMAP_COMBINED, DYNAMICLIGHTMAP_ON, UNITY_HDR_ON, SHADOWS_SHADOWMASK, LIGHTPROBE_SH
|
예 | PassType.Deferred |
multi_compile_shadowcaster |
SHADOWS_DEPTH, SHADOWS_CUBE
|
아니요 | PassType.ShadowCaster |
multi_compile_shadowcollector |
SHADOWS_SPLIT_SPHERES, SHADOWS_SINGLE_CASCADE
|
예 | 스크린 공간 그림자 |
skip_variants 지시문을 사용하면 사용하지 않는 키워드를 제거할 수 있습니다.
예를 들어 다음 예시에서는 multi_compile_fwdadd 세트에 대한 키워드를 추가하지만, POINT 및 POINT_COOKIES 배리언트는 제거합니다.
#pragma multi_compile_fwdadd
#pragma skip_variants POINT POINT_COOKIE
배리언트 제거에 대한 자세한 내용은 셰이더 배리언트 스트리핑을 참조하십시오.