본문 바로가기
XR/Unreal Engine

[Unreal Engine] 리얼타임 렌더링 기본 알아보기

by 여기는 정글 2024. 8. 8.

안녕하세요. 정글러입니다.

 

최근 리얼타임 렌더링은 게임, 영화, 건축 등 다양한 산업군에서 사용되고 있는데요,

렌더링 과정을 살펴보고자 합니다.

 

1. 솔루션과 스케일링

리얼타임 렌더링은 다양한 솔루션이 합쳐져 있습니다.

미리계산을 하는 솔루션과 리얼타임 솔루션이 있습니다. 이때,

- 오클루전 프로세스는 어떤 것이 보이고, 안보이는 것을 결정하는 것입니다. 이는 주로 미리 계산하여 사용됩니다.

- 리얼타임 렌더링에서는 타켓 프레임 레이트를 확인해야 합니다. 프레임 속도가 낮을 수록 비용이 비쌉니다.

stat fps를 통해 프레임 속도를 확인할 수 있습니다.

 

- Scalability는 다양한 어플리케이션에서 활용될 수 있도록 다양하게 조정될 수 있도록 합니다.

이는 엔진 퀄리티 시스템을 위해 중요한 최적화 과정입니다.

r. shadowquality는 그림자 퀄리티를 조정하는 명령어 입니다.

 

2. 디퍼드 렌더링과 포워드 렌더링

렌더링 방법에는 Deferred 렌더링과 Forward 렌더링으로 나누어집니다.

Deferred 렌더링은 자주 사용하는 렌더링으로 기본으로 사용합니다.

안정적인 퍼포먼스를 보여주기 때문입니다.

그러나 하드웨어의 한계가 있는 VR게임 등에서는 Forward 렌더링을 사용합니다.

 

3. 퍼포먼스 향상을 위한 Gbuffer

Deferred 렌더링 Gbuffer를 사용합니다.

Gbuffer는 각 프레임의 이미지 세트입니다.

이미지에 저장되는 모든 정보가 렌더링 프로세스에 사용되며 이때 작업이 리얼타임 컴포지팅입니다.

화면에 다양한 버전으로 렌더링 출력을 한 뒤, 그룹화하여 GBuffer에 두고 여러 버전을 사용합니다.

 

4. 버텍스 및 픽셀 셰이더

픽셀의 입력값은 카메라와의 거리를 계산하여 색을 계산합니다.

값을 조정하고 색을 바꿉니다.

GPU를 가장 많이 사용하는 것이면서 퍼포먼스의 큰 역할을 하기 때문에 이 부분에서 최적화 작업이 중요합니다.