static batching - 정적 배칭
정적(Static)으로 표시된 여러 오브젝트들을 미리 하나의 메시로 결합해서, 런타임 시 렌더링을 효율적으로 수행하는 방식
움직이지 않는(Static)
여러 개의 오브젝트를 하나로 묶어 한 번에 렌더링 하는 최적화 기법 Batching(배칭)
Batching을 통해 CPU에서 GPU로 보내는 명령 수를 줄이면, 더 많은 오브젝트를 부드럽게 렌더링할 수 있습니다.
어떤 상황에서 쓰나?
- 이동/회전/스케일 변경이 전혀 없는 오브젝트 (예: 건물, 바위, 배경 오브젝트 등)
- 같은 머티리얼을 공유하는 경우가 많을수록 효과적
- 수많은 오브젝트를 렌더링해야 할 때 드로우 콜을 줄이기 위해 사용
장점
- 드로우콜 감소
- 성능 향상
- 자동 처리
단점 + 주의
- 메모리 사용증가 ( 각 정적 메시가 병합된 별도 메시로 메모리에 저장됨 )
- 런타임에서 움직일 수 x ( Static 설정된 오브젝트가 움직이면 예상치 못한 동작 발생 )
- 빌드타임 비용증가 ( 메시 병합 작업이 빌드 시점에 처리되어 빌드 시간이 길어질 수 있음 )
머티리얼이 다르면 배칭이 안되는 이유?
Batching은 같은 셰이더/머티리얼을 공유해야만 GPU가 동일한 설정으로 묶어 렌더링할 수 있기 때문입니다.
서로 다른 머티리얼을 가진 오브젝트는 서로 다른 Draw Call로 처리됩니다.
배칭이 안되는 대표적인 경우
- 머티리얼이 다름
- 쉐이더의 설정이 다름
- 조명 조건이 달라서 GPU 설정이 달라짐
- 메시 수가 너무 크거나 복잡함
- GPU Instancing이 더 적합한 경우
관련 용어
- Draw Call: GPU에게 “이걸 그려줘!”라고 보내는 명령 한 번
- Overdraw: 같은 픽셀을 여러 번 그리는 현상 (배칭과는 별개의 최적화 대상)
- Instancing: 같은 메시/머티리얼을 갖는 객체를 GPU가 직접 복사해서 렌더링하는 기법 (대규모 오브젝트 처리에 좋음)
배칭을 유지하려면?
- 같은 머티리얼을 사용 (텍스처, 셰이더, 속성 모두 같게)
- 가능하면 오브젝트를 Static으로 설정 (Static Batching 활용)
- SpriteRenderer나 UI 요소는 Atlas 통합 텍스처 사용
- 서로 다른 값이 필요한 경우 Material Property Block 대신 GPU Instancing 사용 고려
팁: 실제로 배칭이 되나 확인하는 방법
- Window → Analysis → Frame Debugger 열기
- Play 상태에서 "Enable" 누르면 Draw Call 묶임 여부 확인 가능
- 배칭되면 Batched라고 표시되고, 안 되면 SetPass로 새로 그리는 걸 확인할 수 있어요
https://learnandcreate.tistory.com/507
유니티에서 정적배칭(static batching) 사용하기
유니티에서 정적배칭(static batching) 사용하기 정적배칭을 사용하면 움직이지않고(static) 동일한 재질을 공유하는 오브젝트들을 일괄 처리함으로써 드로우콜을 줄일수있다. 정적배칭을 활성화하
learnandcreate.tistory.com
https://srdeveloper.tistory.com/110
[유니티] 배칭(다이나믹, 스태틱)
배칭(Batching) - 드로우콜을 줄이는 작업 (1개의 드로우콜이 1개의 배치가 되는데, 여러개의 배치를 하나로 묶어서 하나의 배치로 만드는 것을 배칭이라고 한다.) 스태틱 배칭(Static Batching) - 정적(
srdeveloper.tistory.com
https://mentum.tistory.com/505
드로우 콜(draw call), 배치(batch), set pass call, GPU Instancing
참고서적 : 유니티 그래픽스 최적화 스타트업 최적화를 하다보면 드로우콜(draw call), 배치(batch), 셋 패스 콜(set pass call) 등의 용어를 접하게 된다. 드로우콜(draw call) - 오브젝트가 실제 화면에 렌
mentum.tistory.com
'그래픽스 > 최적화' 카테고리의 다른 글
[최적화] SetPass Call(셋패스 콜), Draw Call(드로우콜) (1) | 2025.06.26 |
---|---|
Static 항목 (1) | 2025.06.26 |
[최적화]유니티 Statistics창 (0) | 2025.06.26 |
Unity 렌더링 최적화의 기본 공식 (1) | 2025.06.17 |
Unity 6 Fantasy Kingdom 그래픽스 최적화 (2) | 2025.06.17 |