다음 표에는 디퍼드 렌더링 경로가 사용하는 렌더 패스가 정리되어 있습니다.
| 렌더 이벤트 | 렌더 이벤트 이후에 발생하는 렌더 패스 | 설명 |
|---|---|---|
| BeforeRendering | - | - |
| BeforeRenderingShadows | - | - |
| AfterRenderingShadows | - | - |
| BeforeRenderingPrePasses | DepthPrepass, 또는 DepthPrepass 및 DepthNormalPrepass. | Unity가 포워드 패스에서 렌더링하는 머티리얼에 대해 프리패스에서 뎁스와 노멀 텍스처를 렌더링합니다. |
| AfterRenderingPrePasses | - | - |
| BeforeRenderingGbuffer | GBufferPass | G-버퍼를 렌더링한 다음 G-버퍼 뎁스 텍스처를 복사합니다. |
| AfterRenderingGbuffer | SSAO | SSAO(스크린 공간 앰비언트 오클루전) 텍스처를 계산합니다. Unity는 SSAO를 활성화하고 After Opaque를 비활성화한 경우에만 여기에서 이 값을 계산합니다. |
| BeforeRenderingDeferredLights | Deferred Pass | 디퍼드 렌더링입니다. SSAO 텍스처가 생성된 경우 Unity는 이 렌더 패스에서 해당 텍스처를 사용합니다. |
| AfterRenderingDeferredLights | - | - |
| BeforeRenderingOpaques | - | 불투명한 포워드 전용 머티리얼을 렌더링합니다. |
| AfterRenderingOpaques | - | SSAO(스크린 공간 앰비언트 오클루전) 텍스처를 계산 및 블렌딩합니다. Unity는 SSAO를 활성화하고 After Opaque를 활성화한 경우에만 여기서 이 값을 계산합니다. |
| BeforeRenderingSkybox | - | - |
| AfterRenderingSkybox | - | - |
| BeforeRenderingTransparents | - | - |
| AfterRenderingTransparents | - | - |
| BeforeRenderingPostProcessing | - | - |
| AfterRenderingPostProcessing | - | - |
| AfterRendering | - | - |
렌더 이벤트의 전체 목록과 커스텀 렌더 패스의 주입 지점은 URP의 주입 지점 레퍼런스에서 확인하십시오.
다음 표에는 com.unity.render-pipelines.universal 폴더에 있는 디퍼드 렌더링 경로와 관련된 코드가 포함된 파일이 나열되어 있습니다.
| 파일 경로 | 설명 |
|---|---|
Runtime\DeferredLights.cs |
디퍼드 렌더링 경로를 처리하는 메인 클래스입니다. |
Runtime\Passes\GBufferPass.cs |
G-버퍼 패스를 위한 ScriptableRenderPass입니다. |
Runtime\Passes\DeferredPass.cs |
디퍼드 셰이딩 패스를 위한 ScriptableRenderPass입니다. |
Shaders\Utils\Deferred.hlsl |
디퍼드 셰이딩을 위한 유틸리티 기능입니다. |
Shaders\Utils\StencilDeferred.shader |
디퍼드 셰이딩을 위한 셰이더 에셋입니다. |
Shaders\Utils\UnityGBuffer.hlsl |
G-버퍼의 머티리얼 프로퍼티를 저장하고 로드하는 유틸리티 기능입니다. |