* [유니티 그래픽스 최적화] 시리즈는 비엘북스 <유니티 그래픽스 최적화 스타트업>을 읽고 스스로 이해한 바를 정리하는 시간을 갖고자 작성하는 시리즈입니다. 책을 그대로 옮겨쓴 것이 아니고 이해한 대로 재 서술하는 것이기 때문에 틀린 점이 있을 수 있습니다. 정확히 알고 계시는 분은 댓글로 알려주시면 감사하겠습니다 !
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에게 뭘 그리라고 명령하는 것.
'PROGRAMMING > Unity' 카테고리의 다른 글
[유니티 그래픽스 최적화] 04. 드로우콜과 배칭 (1) | 2020.02.19 |
---|---|
[유니티 그래픽스 최적화] 03. 병목 (0) | 2020.02.19 |
[유니티 그래픽스 최적화] 02. 렌더링 파이프라인 (0) | 2020.02.18 |