공부/그래픽스

[유니티 그래픽스 최적화 스타트업]2-4-1. 애플리케이션 스테이지

개발의 피 2024. 7. 13. 17:26

애플리케이션 스테이지 (Application) :  애플리케이션 상에서 처리되는 단계, 오브젝트가 렌더링되기 전에 업데이트 및 기타 데이터 처리들이 이뤄지는 단계, 보통 CPU에서 연산 수행하며 GPU 파이프라인과 별도로 이야기됨 

 

그래픽스 렌더링 파이프라인 : 보통 GPU 파이프라인을 의미

cf.  본격적인 렌더링 파이프라인에 진입하기 전에 CPU에서 필요한 연산들을 처리해야 하기 때문에, 큰 의미로는 애플리케이션 스테이지도 렌더링 파이프라인의 일부분

 

예시)

플레이어 캐릭터가 이동 : 위치 정보를 매 프레임마다 연산해줘야 함

플레이어 캐릭터 애니메이션 처리 : 캐릭터가 이동할 때 달리는 동작을 취하려면, 매 프레임마다 애니메이션 정보 + 뼈대들의 위치를 연산해 주고, 이를 메시의 버텍스에 반영해줘야 함 

 

- 이러한 연산들은 정확한 렌더링을 위해 반드시 거쳐야 하는 과정

- 이 단계에서 수행되는 연산들은 최종적으로 그래픽스 렌더링 파이프라인의 성능에 영향을 주게 됨 

 

* 애플리케이션 스테이지의 주요 작업 

1) 컬링 연산 : 현재 프레임에서 렌더링 가능한 오브젝트들이 컬링 연산에 의해 선별됨. 이 과정에서 불필요하게 렌더링되는 오브젝트가 줄어들면, 그만큼 GPU 파이프라인에서 처리되는 부담량이 줄어들게 됨 

2) 배칭 처리 : GPU 파이프라인에 진입하기 전, 여러 오브젝트를 하나의 드로우 콜로 처리하여 성능을 향상시킴 

 

유니티에서 게임을 개발한다면, 이 단계를 코드 단위로 하나하나 세세하게 컨트롤 해야하는 일 x

필수적으로 필요한 부분, 유니티가 구현 해 놓은 상태 -> 이를 잘 활용하여 파이프라인을 효율적으로 이용하면, 좋은 성능 낼 수 있을 것