드로우 콜 (Draw Call)
CPU에서 GPU에 렌더링 명령을 전달하는 단위
CPU에서 드로우콜을 생성해 GPU에게 보내면
GPU는 그 드로우콜을 받아 그래픽을 처리하고 화면에 출력한다
드로우콜의 수가 많아지면 CPU가 명령을 전달하고, GPU가 명령을 처리하는 동안 CPU가 새로운 명령을 보내기 위해 대기하는 시간이 늘어나(병목현상이 일어나) 성능 저하가 발생할 수 있다
드로우 콜 배칭
Draw Call Batching
여러 개체를 하나의 드로우콜로 묶어서 처리하는 기술
유니티 공식 문서: 드로우 콜 배칭은 Unity가 더 적은 드로우 콜로 렌더링할 수 있도록 메시를 결합한 드로우콜 최적화 메서드입니다.
배칭은 동일한 머티리얼을 사용하는 오브젝트만 가능 - 다른 텍스처나 쉐이더를 사용하는 경우 배칭 불가
유니티에선 두 가지의 배칭 방식을 제공한다.
정적 배칭
Static Batching
움직이지 않는 정적(Static) 게임 오브젝트인 경우, 하나의 메시로 결합해 단일 드로우콜로 처리
Static 체크박스 활성화 필요
건물이나 배경 등에 사용한다
메모리와 스토리지가 많이 사용됨
빌트인, URP, HDRP 모두 지원
동적 배칭
Dynamic Batching
움직이는 게임 오브젝트 실시간 처리
메쉬가 충분히 작은 경우(정점 300개 이하)에만 적용
파티클이나 움직이는 적 등에 사용한다
CPU 리소스 많이 사용
빌트인, URP에서만 지원(HDRP에선 지원안함)
+동일한 메쉬와 머티리얼을 사용하는 다수의 객체는 GPU Instancing을 사용하면 더 효율적으로 처리할 수도 있다.
GPU Instancing: 동일한 메쉬와 머티리얼을 사용하는 다수의 객체
드로우콜 배칭: 동일한 머티리얼을 사용하는 서로 다른 메쉬를 묶는데에 적합
'취준 > 기술면접' 카테고리의 다른 글
프리팹(prefab) (0) | 2024.11.17 |
---|---|
로컬 스페이스(Local Space)와 월드 스페이스(World Space) (0) | 2024.11.16 |
오브젝트 풀링(Object Pooling) (0) | 2024.11.14 |
렌더링 방식 (전방 렌더링,지연 렌더링) (0) | 2024.11.13 |
유니티 렌더 파이프라인(Unity Render Pipeline) (0) | 2024.11.12 |