본문 바로가기
NOTE/Unity

[Unity] 그래픽 최적화 관련

by DevAthena 2018. 4. 1.

http://ndcreplay.nexon.com/NDC2015/sessions/NDC2015_0039.html#c=NDC2015&k%5B%5D=%EC%9C%A0%EB%8B%88%ED%8B%B0

NDC 2015 유니티 그래픽 최적화, 어디까지 해봤니? 

강의 - 유니티테크놀로지스코리아 오지현




요약 정리

- 유니티 엔진이 어떻게 돌아가는지 잘 알아야 최적화를 잘 할 수 있다.

- GPU와 CPU이 병목이 어딘지를 찾아내는 것이 중요

- CPU : Logic, AI, GC 등등

- GPU : Texture, Shader, Framebuffer, Lighting Overdraw 등등

- Drawcall : CPU가 GPU에게 그리라는 명령을 Command Buffer에 담아 보내는 것

- command 하나하나는 GPU가 알아먹을 수 있는 신호로 변환해야 함 -> 부담

- 때문에 Drawcall을 줄이는 것이 중요하고, 이를 위해 Unity에서는 Batching이라는 것을 제공

- Batching은 Material 기준으로 작동

- Dynamic batching과 Static batching이라는 두 가지 타입으로 나뉨.

- Static한 배경 오브젝트나 움직이지 않는 오브젝트들은 주로 로딩타임에서 batching처리

- Dynamic은 런타임상에서 처리

- Unity5부터는 Frame Debugger라는 것이 추가 -> Drawcall과 Batching을 직관적으로 확인가능

- Profiling은 몇가지 상황에서 반복 테스트 후 평균값으로 병목을 잡아야 한다.

- PC용 shader에서 모바일은 모바일용 shader로 변경하는것도 최적화 방법

- LOD 기법도 가까이와 멀리 있을때 그리는것을 최적화 하는 방법

- 폴리곤을 좀 줄이는 것