유니티 엔진 (Unity Engine)

[Unity] 드로우 콜 최적화 (Optimize DrawCall) 요약 정리

원생계 2023. 11. 16. 11:51

[유니티 TIPS] 유니티 최적화를 위한 필수 기본기! Batching 방법 소개

https://www.youtube.com/watch?v=w14yjBlfNeQ

 

0. 여러 개 메시(mesh), 여러 개 머티리얼을 : 최적화 없음

1. 여러 개 메시, 단일 머티리얼에서 UV좌표 나눠쓰기 : Batches 는 그대로, SetPass call 최적화

2. 동적 배칭 (Dynamic Batching) : Batches, SetPass Call 최적화. 동일 머티리얼의 작은 메시들은 버텍스 버퍼를 재활용 처리. 저가형 기기에서 성능을 최적화하도록 설계. (900개 이상의 버텍스 속성과 300개 이상의 버텍스를 포함하는 메시에 동적 배칭을 적용할 수 없음. 문서 참조.)

https://docs.unity3d.com/kr/2021.2/Manual/dynamic-batching.html

Sprite Renderer 는 기본적으로 동적 배칭 대상. Sprite를 Atlas로 묶어 하나의 머티리얼로 사용해야.

 

3. 정적 배칭 (Static Batching) : 개별 오브젝트들 중 트랜스폼이 불필요한(있더라도 설정하면 무시됨) Batching Static 으로 설정한 메시들을 하나의 메시로 통합해서 처리. 단, 메시의 사본을 만들어 하나의 메시로 통합하기 때문에 렌더링 성능을 확보하는 대신 메모리 사용량이 늘어날 수 있고, 일정 정점 개수를 넘어가면 페이징 처리로 Batches 가 증가.

https://docs.unity3d.com/kr/2021.2/Manual/static-batching.html

 

4. SRP 배처 (SRP Batcher) : 머티리얼이 달라도 셰이더가 동일하면 SetPass call 을 최적화 해줌. 단, 셰이더의 SRP Batrcher 호환성(compatible)을 만족해야 함.

 

5. GPU 인스턴싱 : 동일한 메시 정보를 GPU 메모리에 저장해서 씬 내에 여러 번 그리는 방식. 나무나 덤불과 같은 것을 드로우하는 데 유용.  SRP 배처와 호환되지 않음.

버텍스 수가 적은 메시는 GPU 인스턴싱이 비효율. 비효율성이 시작되는 임계값은 GPU에 따라 다르지만 일반적으로 256개 미만의 버텍스를 가진 메시에는 GPU 인스턴싱을 사용하지 않음.

 

최적화 우선순위

1. SRP 배처와 정적 배칭
2. GPU 인스턴싱
3. 동적 배칭

 

https://docs.unity3d.com/kr/2022.3/Manual/optimizing-draw-calls.html

 

드로우 콜 최적화 - Unity 매뉴얼

스크린에 지오메트리를 드로우하기 위해 Unity는 그래픽스 API에 드로우 콜을 실행합니다. 드로우 콜은 그래픽스 API가 그릴 내용과 그릴 방법을 알려줍니다. 각 드로우 콜에는 텍스처, 셰이더, 버

docs.unity3d.com

 


게임 개발에 필수적인 내용을 담는 명서들을 소개합니다.

 

<유니티 교과서 개정6판>(유니티 최신 버전) 구입 링크
https://link.coupang.com/a/be3P0t

 

유니티 교과서 개정6판

COUPANG

www.coupang.com


<리얼-타임 렌더링(REAL-TIME RENDERING) 4/e> 구입 링크
https://link.coupang.com/a/8VWas

 

리얼-타임 렌더링 4/e

COUPANG

www.coupang.com

 

<이득우의 게임 수학:39가지 예제로 배운다! 메타버스를 구성하는 게임 수학의 모든 것> 구입 링크
https://link.coupang.com/a/9BqLd

 

이득우의 게임 수학:39가지 예제로 배운다! 메타버스를 구성하는 게임 수학의 모든 것

COUPANG

www.coupang.com

 

유니티 에셋 스토어 링크
https://assetstore.unity.com?aid=1011lvz7h

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

(링크를 통해 도서/에셋 구입시 일정액의 수수료를 지급받습니다.)


 

 

 

 

728x90
반응형