각 셰이더 스테이지를 컴파일할 때 프리 프로세서 매크로 SHADER_STAGE_VERTEX, SHADER_STAGE_FRAGMENT, SHADER_STAGE_DOMAIN, SHADER_STAGE_HULL, SHADER_STAGE_GEOMETRY, SHADER_STAGE_COMPUTE가 정의됩니다. 일반적으로 픽셀 셰이더와 컴퓨트 셰이더 간에 셰이더 코드를 공유할 때 일부 작업이 약간 다르게 수행되어야 하는 경우에 유용합니다.
표면 셰이더가 컴파일되면 다양한 패스에 조명을 적용하기 위해 많은 코드를 생성합니다. 각 패스를 컴파일할 때 다음 매크로 중 하나가 정의됩니다.
| 매크로: | 용도: |
|---|---|
UNITY_PASS_FORWARDBASE |
포워드 렌더링 베이스 패스(주 방향 광원, 라이트맵, SH) |
UNITY_PASS_FORWARDADD |
포워드 렌더링 추가 패스(패스당 광원 하나) |
UNITY_PASS_DEFERRED |
디퍼드 셰이딩 패스(G버퍼 렌더링) |
UNITY_PASS_SHADOWCASTER |
섀도우 캐스터 및 뎁스 텍스처 렌더링 패스 |