빌트인 렌더 파이프라인에서 Unity가 오브젝트를 렌더링하는 순서는 두 가지 요소, 즉 오브젝트가 있는 렌더 대기열과 Unity가 해당 렌더 대기열 내에서 오브젝트를 정렬하는 방법에 기반합니다.
Unity는 오브젝트를 렌더 대기열이라는 그룹으로 정렬합니다. Unity는 한 렌더 대기열의 콘텐츠를 렌더링한 후 다른 렌더 대기열의 콘텐츠를 렌더링합니다.
Unity에는 다음과 같이 명명된 렌더 대기열이 있으며, 렌더링 순서는 다음과 같습니다.
이름 | Index | 설명 |
---|---|---|
Background | 1000 | 이 대기열은 씬의 배경에 그려야 하는 모든 요소에 사용됩니다. |
Geometry | 2000 | 이 대기열은 불투명 지오메트리에 사용됩니다. 기본 대기열입니다. |
AlphaTest | 2450 | 이 대기열은 알파 테스트 지오메트리에 사용되며, Geometry 대기열 다음입니다. 이는 알파 테스트 오브젝트는 모든 솔리드 오브젝트를 그린 후에 렌더링하는 것이 더 효율적이기 때문입니다. |
Transparent | 3000 | 알파 블렌드된 모든 항목(뎁스 버퍼에 기록하지 않는 셰이더)에 이 대기열을 사용합니다. 예를 들면 유리 또는 파티클 효과가 있습니다. |
Overlay | 4000 | 이 대기열은 다른 모든 요소 위에 렌더링 되는 효과(예: 렌즈 플레어)에 사용됩니다. |
스카이박스 머티리얼은 특수한 경우입니다. Unity는 모든 불투명 지오메트리 이후(대기열 인덱스 2500 이후) 및 모든 투명 지오메트리 이전(대기열 인덱스 2501 이전)에 스카이박스 머티리얼을 그립니다.
기본적으로 Unity는 Unity 셰이더에 지정된 렌더 대기열에 오브젝트를 배치합니다. 이 값은 [Queue]
SubShader 태그를 사용하여 정의합니다.
이 값은 머티리얼별로 오버라이드할 수 있습니다.
Unity 에디터에서 이 작업은 머티리얼 인스펙터에서 Render Queue 프로퍼티를 설정하여 수행할 수 있습니다. C# 스크립트에서는 Rendering.RenderQueue 열거형을 사용하여 Material.renderQueue 값을 설정할 수 있습니다.
각 렌더 대기열 내에서 Unity는 카메라로부터의 거리를 기준으로 오브젝트를 정렬하고 그립니다. 이 정렬 동작은 렌더 대기열의 인덱스에 따라 다릅니다.
렌더 대기열 내에서 정렬 동작을 변경하는 방식은 렌더 대기열의 인덱스에 따라 다릅니다.