포워드 및 디퍼드 렌더링
HDRP에서 릿 셰이더를 사용하는 경우 각 머티리얼이 포워드 또는 디퍼드 렌더링을 사용하도록 설정할 수 있습니다. 이렇게 하려면 HDRP 에셋에서 Lit Shader Mode 프로퍼티를 사용하여 활성화해야 합니다.
Lit Shader Mode 를 다음으로 설정할 수 있습니다.
Forward: Forward 렌더링을 사용하는 머티리얼의 경우 HDRP는 각 머티리얼을 렌더링할 때 단일 패스로 조명을 계산합니다.
Deferred: Deferred 렌더링을 사용하는 머티리얼의 경우 HDRP는 화면에 표시되는 머티리얼 프로퍼티를 저장하는 GBuffer로 모두 렌더링합니다. 모든 디퍼드 게임 오브젝트를 GBuffer로 렌더링한 후 HDRP는 씬의 모든 게임 오브젝트에 대한 조명을 처리합니다.
Both: Both 를 선택하면 프레임 설정을 사용하여 런타임 시점에 카메라 및 반사 프로브별로 Forward 및 Deferred 렌더링 모드 간에 변경할 수 있습니다. 예를 들어 평면 반사 프로브에 Forward 모드를 사용한 후 Deferred 모드를 사용하여 메인 카메라를 렌더링할 수 있습니다. 하지만 프로젝트 빌드 시간이 증가할 수 있습니다(빌드 시간 참조).
Forward 또는 Deferred 모드 중 어느 것을 사용할지 결정하려면 프로젝트에서 원하는 품질 및 성능 수준을 고려하십시오. HDRP의 디퍼드 렌더링은 다양한 머티리얼과 여러 로컬 광원이 있는 씬을 비롯하여 대부분의 시나리오에서 더 빠릅니다. 씬에 단일 방향 광원이 있는 등의 시나리오는 Forward 렌더링 모드에서 더 빠를 수 있습니다. 프로젝트에서 성능이 크게 중요하지 않다면 Forward 렌더링 모드를 사용하여 렌더링 품질을 향상하십시오.
HDRP는 다음 타입의 셰이더에 대해 포워드 렌더링을 사용합니다.
패브릭
머리카락
AxF
StackLit
Unlit
투명 표면 타입의 릿 셰이더
HDRP 에셋에서 Lit Shader Mode 를 Deferred 로 설정하면 HDRP가 디퍼드 렌더링을 사용하여 불투명 릿 머티리얼을 사용하는 모든 머티리얼을 렌더링합니다.
포워드 및 디퍼드 렌더링은 둘 다 동일한 기능을 구현하지만, 품질이 서로 다를 수 있습니다. 즉 HDRP는 어느 Lit Shader Mode 를 선택하든 모든 기능에 대해 동작합니다. 예를 들어 스크린 공간 반사, 스크린 공간 앰비언트 오클루전, 데칼, 컨택트 그림자는 Deferred 또는 Forward Lit Shader Mode 에서 사용할 수 있습니다. 기능 패리티가 HDRP의 핵심이지만, 이러한 효과의 품질과 정확성은 기술적 제약으로 인해 Lit Shader Mode 간에 다를 수 있습니다.
HDRP에서 포워드 및 디퍼드 렌더링 간의 차이
시각적 차이
노멀 그림자 바이어스: Forward 모드에서 HDRP는 그림자 바이어스에 대해 머티리얼의 지오메트리 노멀(버텍스 노멀)을 사용합니다. 따라서 Deferred 모드가 사용하는 픽셀 노멀보다 그림자 결함이 더 적게 발생합니다.
이미시브 컬러: Deferred 모드에서는 기술적 제약으로 인해 앰비언트 오클루전이 이미시브 컬러에 영향을 줍니다. 하지만 Forward 모드에서는 그렇지 않습니다.
앰비언트 오클루전: Deferred 모드에서 HDRP는 간접 산란광(라이트맵 및 라이트 프로브)에 대한 앰비언트 오클루전뿐만 아니라 스크린 공간 앰비언트 오클루전 효과도 적용하므로 어둡기가 두 배가 됩니다. Forward 모드에서 HDRP는 앰비언트 오클루전과 스크린 공간 앰비언트 오클루전을 최소한으로 적용하므로 올바른 어둡기가 구현됩니다.
머티리얼 품질: Deferred 모드에서 HDRP는 노멀, 탄젠트 등과 같은 머티리얼 프로퍼티를 GBuffer에 압축하며, 이로 인해 압축 결함이 발생합니다. Forward 모드에서는 압축이 없기 때문에 압축 결함이 존재하지 않습니다.
기술적 차이
Forward 모드를 사용하는 머티리얼의 경우 HDRP는 항상 뎁스 및 노멀 버퍼를 출력하는 뎁스 프리패스를 렌더링합니다. 이는 Decals를 사용하지 않는 경우 Deferred 모드에서 선택 사항입니다.
Forward 모드에서 HDRP는 데칼 DBuffer 패스 후에 노멀 버퍼를 업데이트합니다. HDRP는 스크린 공간 반사와 기타 효과에 대한 노멀 버퍼를 사용합니다.
빌드 시간
HDRP 프로젝트의 빌드 시간은 Forward 또는 Deferred 중 어느 렌더링 모드를 사용하느냐에 따라 다를 수 있습니다. Both를 선택할 경우의 단점은 Unity가 각 머티리얼에 대해 두 개 세트의 셰이더(Forward에 대해 하나, Deferred에 대해 하나)를 빌드하므로 플레이어 빌드 시간이 크게 늘어난다는 점입니다. 프로젝트의 모든 요소에 대해 특정 렌더링 모드를 사용하는 경우 Both 대신에 해당 렌더링 모드를 사용해야 빌드 시간을 단축할 수 있습니다. 또한 HDRP가 셰이더에 할당하는 메모리 크기도 감소합니다.