본문 바로가기
개인 성장 일지/언리얼 엔진

언리얼 엔진의 스레드(Thread) 모델

by 류 진 2023. 11. 7.
728x90

 

 

언리얼엔진은 멀티코어 환경의 최적화를 위해서

  • 게임 스레드
  • 렌더링 스레드
  • RHI 스레드

로 나누어서 병렬로 처리하도록 하고 있다.

 

RHI 스레드는 렌더링 커맨드 해석을 병렬로 처리하기 위한 목적으로 플랫폼마다 없는 경우도 있다.

 


프레임의 처리 방식

한 개의 프레임을 처리하기 위해서는

  1. 게임 스레드에서 게임 로직을 처리한다.
  2. 게임 스레드에서 발생된 드로우콜을 렌더링 스레드로 보낸다.
  3. 렌더링 스레드에서 이것을 렌더링 커맨드로 만들어 그래픽 카드로 보낸다.

 

보통 게임 스레드의 작업을 마친 후에, 프레임이 렌더링 될 때까지 기다리게 되면 사이에 일부 코어가 쉬는 공간이 생기게 된다.

 

 

 

그래서 멀티 스레드의 효율성이 떨어지게 되는데, 언리얼 엔진의 경우에는 게임 스레드가 해당 프레임에 대한 연산을 끝낸 후에, 렌더링 스레드가 연산을 끝내는 것을 기다리지 않고 그 다음 프레임에 대한 연산을 바로 시작하게 되어있다.