주입 지점
Unity가 커스텀 패스 볼륨을 실행할 시기를 결정하려면 Custom Pass Volume 컴포넌트의 Injection Point를 선택합니다.
각 주입 지점은 커스텀 패스가 씬에 표시되는 방식에 영향을 줍니다. HDRP 렌더 루프에는 6가지 주입 지점이 있습니다. Unity는 각 주입 지점에서 하나의 커스텀 패스 볼륨만 실행할 수 있습니다.
주입 지점을 통해 Custom Pass Volume 컴포넌트가 버퍼 선택에 접근할 수 있습니다. 사용 가능한 각 버퍼는 주입 지점마다 읽기 또는 쓰기 액세스 권한이 다릅니다. 각 버퍼에는 패스 전에 렌더링한 오브젝트의 하위 집합이 포함됩니다.
DrawRenderers Custom Pass에서는 특정 주입 지점에 특정 머티리얼만 사용할 수 있습니다. 호환할 수 있는 머티리얼의 전체 리스트는 머티리얼 및 주입 지점 호환성을 참조하십시오.
Unity가 렌더 루프에서 수행하는 동작을 분석하고 커스텀 패스를 실행하는 위치를 확인하려면 프레임 디버거를 사용합니다.
Unity는 위에서 아래로 프레임에 다음의 주입 지점을 트리거합니다.
주입 지점 | 사용 가능한 버퍼 | 설명 |
---|---|---|
BeforeRendering | 뎁스(쓰기) | Unity는 주입 지점 직전에 뎁스 버퍼를 지웁니다. 이 주입 지점에서 Unity가 뎁스 테스트를 거친 불투명 오브젝트를 렌더링하지 않도록 뎁스 버퍼에 쓸 수 있습니다. 또한 할당한 버퍼나 커스텀 버퍼 를 지울 수도 있습니다.FullscreenCustom Pass에 대해 이 주입 지점을 선택하면 Unity는 기본적으로 카메라 컬러 버퍼를 타겟으로 지정합니다. |
AfterOpaqueDepthAndNormal | Depth (Read | Write), Normal and roughness (Read | Write) | 이 주입 지점에 사용할 수 있는 버퍼에는 모든 불투명한 오브젝트가 포함됩니다. 이 주입 지점에서 노멀, 거칠기, 뎁스 버퍼를 수정할 수 있습니다. HDRP는 이를 조명과 뎁스 피라미드에 고려합니다. 노멀과 거칠기는 같은 버퍼에 있습니다. DecodeFromNormalBuffer 메서드와 EncodeIntoNormalBuffer 메서드를 사용하여 노멀과 거칠기 데이터에 읽기/쓰기 작업을 할 수 있습니다. |
BeforePreRefraction | Color (no pyramid | Read | Write), Depth (Read | Write), Normal and roughness (Read) | 이 주입 지점에 사용할 수 있는 버퍼에는 모든 불투명한 오브젝트와 하늘이 포함됩니다. 이 주입 지점에서 굴절이 필요한 모든 투명한 오브젝트를 렌더링할 수 있습니다. 그러면 이러한 오브젝트는 Unity가 투명한 오브젝트를 렌더링할 때 굴절에 사용하는 컬러 피라미드에 포함됩니다. |
BeforeTransparent | Color (Pyramid | Read | Write), Depth (Read | Write), Normal and roughness (Read) | 이 주입 지점에 사용할 수 있는 버퍼에는 다음 사항이 포함됩니다. - 모든 불투명 오브젝트 - 투명 사전 굴절 오브젝트 - 뎁스 프리패스와 스크린 공간 반사(SSR)가 활성화된 투명 오브젝트 이 주입 지점에서 Unity가 투명 굴절에 사용하는 컬러 피라미드를 샘플링할 수 있습니다. 이를 이용하여 블러 효과를 만들 수 있습니다. Unity가 이 주입 지점에 렌더링하는 모든 오브젝트는 컬러 피라미드에 있지 않습니다. 또한 이 주입 지점을 사용하여 물처럼 전체 씬을 굴절시키는 일부 투명 오브젝트를 드로우할 수도 있습니다. |
BeforePostProcess | Color (Pyramid | Read | Write), Depth (Read | Write), Normal and roughness (Read) | 이 주입 지점에서 사용할 수 있는 버퍼에는 HDR(High Dynamic Range)을 사용하는 프레임의 모든 지오메트리가 포함됩니다. |
AfterPostProcess | Color (Read | Write), Depth (Read) | 이 주입 지점에 사용할 수 있는 버퍼에는 포스트 프로세스 효과를 포함한 씬의 최종 렌더가 포함됩니다. 이 주입 지점은 Unity가 모든 포스트 프로세싱 효과를 적용한 후 사용 가능한 버퍼를 실행합니다. 이 주입 지점을 선택한 경우 뎁스 버퍼를 사용하는 오브젝트는 지터링 결함을 표시합니다. FullscreenCustom Pass를 위해 이 주입 지점을 선택하면 Unity는 기본적으로 카메라 컬러 버퍼를 타겟으로 지정합니다. |
다음의 다이어그램은 Unity가 HDRP 프레임에 커스텀 패스를 주입하는 위치를 보여줍니다.