강좌 소개 - 리얼타임 렌더링 기본 (epicgames.com)

Deffered Rendering과 Forward Rendering은 렌더링 파이프라인에서 사용되는 두 가지 주요 방법입니다.

Deffered Rendering은 렌더링 과정을 두 단계로 나눕니다. 첫 번째 단계에서는 각 픽셀의 기본 정보(위치, 색상, 노멀, 스펙큘러 등)만을 기록하는 G-Buffer를 생성합니다. 이후 두 번째 단계에서는 이 G-Buffer에 기록된 데이터를 사용하여 조명 계산을 합니다. 이 방식의 장점은 여러 조명을 효율적으로 처리할 수 있다는 것입니다. 많은 수의 동적 라이트가 존재할 때 특히 유리하며, 각 조명에 대한 계산을 픽셀 단위로 분리하여 수행하기 때문에 복잡한 조명 효과를 구현할 수 있습니다. 그러나 G-Buffer를 사용함으로써 많은 메모리와 대역폭을 필요로 하며, 특히 고해상도에서는 이 문제가 더욱 심각해집니다.

Forward Rendering은 더 전통적인 렌더링 방식으로, 객체를 화면에 그릴 때 각 객체의 모든 라이팅 계산을 한 번에 수행합니다. 이 방식은 각 픽셀에 대해 적용될 조명을 미리 알고 있어야 하며, 조명의 수가 증가할수록 성능에 더 큰 영향을 미칩니다. 하지만, 메모리 사용량과 대역폭 요구사항이 Deffered Rendering보다 낮고, 투명한 물체나 다양한 쉐이더 효과를 구현하기에 더 적합합니다.

Unreal Engine 5.3에서는 Deffered Rendering을 기본적으로 사용하지만, 사용자의 필요에 따라 Forward Rendering을 선택할 수도 있습니다. 두 방식 모두 다양한 장단점이 있으며, 개발자는 자신의 프로젝트 요구사항과 성능 목표에 따라 가장 적합한 렌더링 방법을 선택해야 합니다.