참치김밥은 최고의 한식이다

[유니티] 유니티 그래픽스 최적화 스타트업 : 그래픽스 API 본문

Unity/최적화

[유니티] 유니티 그래픽스 최적화 스타트업 : 그래픽스 API

l__j__h 2024. 2. 23. 13:43
엔진과 그래픽스 API란?

 

유니티는 멀티 플랫폼 엔진이다. PC뿐만 아니라 아이폰, 안드로이드 등 모바일 기기에서도 구동되는 게임을 만들 수 있다. 즉, 유니티는 다양한 그래픽 칩셋을 지원한다.

 

그런데 유니티는 어떻게 다양한 플랫폼을 모두 지원할 수 있는 걸까???

 

일단, 기기의 화면에 렌더링하는 것은 CPU가 아니라 GPU이다.

그런데, GPU는 다양한 제조사가 있기 때문에, 모바일 기기마다 사용하는 GPU가 다르다.

 

- PC : 인텔 GMA, 엔비디아 GeForce, AMD Radeon

- 아이폰 및 아이패드 : PowerVR 혹은 자체 설계 GPU

- 안드로이드 : ARM의 mali, 퀄컴의 스냅드래곤, 엔비디아 테그라

 

위처럼, 같은 안드로이드 폰이어도 칩셋에 사용되는 GPU가 다를 수 있다.

이러한 GPU들은 모두 각각의 펌웨어 + 드라이버를 제공하는데, 솔직히 개발자들이 모든 GPU의 프로토콜에 맞추어 렌더링 소프트웨어를 만드는 것은 매우 어렵다.

-> 그래서 그래픽스 API (DirectX, OpenGL, iOS는 Metal, 안드로이드는 Vulkan 등)가 존재하는 것이다!!!

그래픽스 API는 다양한 GPU의 드라이버를 이용하는 라이브러리를 만들고, 이를 API로 제공해서 소프트웨어 개발자들이 각각의 GPU들을 따로 신경쓰지 않아도, 렌더링 소프트웨어를 만들 수 있게 해준다.

 

그런데 이 그래픽 API도 OS에 따라 다양하게 존재한다. 게임 개발자가 이런 다양한 그래픽 API를 직접 활용하는 것은 상당히 많은 시간과 노력이 필요하다.

-> 그래서 유니티 같은 게임 엔진은 그래픽 API들을 알아서 처리해 준다.

-> 그래서 유니티가 멀티 플랫폼 엔진인 것이다.

 


 

728x90