* [유니티 그래픽스 최적화] 시리즈는 비엘북스 <유니티 그래픽스 최적화 스타트업>을 읽고 스스로 이해한 바를 정리하는 시간을 갖고자 작성하는 시리즈입니다. 책을 그대로 옮겨쓴 것이 아니고 이해한 대로 재 서술하는 것이기 때문에 틀린 점이 있을 수 있습니다. 정확히 알고 계시는 분은 댓글로 알려주시면 감사하겠습니다 !

 


01. 최적화 개요

 

FPS

Frame Per Second. 초당 프레임. 초당 몇 프레임을 렌더링 할 것이냐

초당 프레임을 많이 보여줄수록 부드러운 움직임.

대부분 60FPS (대부분의 디스플레이 장치도 60~70까지만 지원하기 때문에 그 이상으로 해봤자 의미가 없다)

--> 게임은 인터랙티브. 제한된 성능에서 높은 FPS로 렌더링해야하기 때문에 최적화 필요.

 

그래픽스 API

렌더링은 GPU에서 처리하는데 기기마다 GPU는 제각각임.

하나하나 맞춰서 개발할 수 없기 때문에 그래픽스 API가 존재한다 (ex. DirectX, OpenGL)

그래픽스 API는 다양한 GPU의 드라이버를 이용하는 라이브러리를 만들고 API로 제공해서 OS나 GPU 상관없이 렌더링 소프트웨어(ex.3ds Max)를 개발할 수 있도록 함.

But 그래픽스 API도 OS에 따라 ...

  • DirectX _ MS
  • OpenGL _ MS Windows, 매킨토시, 리눅스
  • OpenGL ES _ 안드로이드, iOS / WebGL을 통해 데스크톱의 웹브라우저에서도 쓰임
  • Metal _ iOS에서 쓰는 차세대 그래픽 API래
  • Vulkan _ 안드로이드에서 쓰는 차세대 그래픽 API

유니티같은 상용엔진은 알아서 각 플랫폼에 맞는 그래픽 API를 사용해 렌더링해줌.

그치만 최적화를 하려면 그래픽스 API가 어떻게 렌더링을 처리하는지 그 과정을 알아야겠지 ~~

 

오버헤드

Overhead. 어떠한 처리를 하기 위해 들어가는 시간, 메모리 등. 오버헤드가 늘어나면 성능에 좋지 않다.

 

드로우콜

Draw Call. 오버헤드 중 대표적인 예시. CPU가 GPU에게 뭘 그리라고 명령하는 것.

 

 

 

 

+ Recent posts