Batching
글 7개
텍스처를 합치는 것이 곧 배칭을 합치는 것
아틀라스는 메모리 최적화로 알려져 있지만 실제 효과는 배칭 쪽이 큽니다. 그리고 묶는 기준은 기능이 아니라 로딩 시점입니다.
정답이 파이프라인에 따라 뒤집힌다
MaterialPropertyBlock 은 Built-in RP 의 정석이고 SRP Batcher 에서는 배치를 깹니다. 같은 코드가 한쪽에서는 답이고 한쪽에서는 문제입니다.
배칭은 다섯 가지 이유로 끊긴다
머티리얼도 텍스처도 같은데 배치가 끊깁니다. 정렬 레이어와 반투명 순서 때문입니다. 에셋을 아무리 합쳐도 이건 안 풀립니다.
합치지 않고도 빨라지는 법
SRP Batcher 는 메시를 안 합칩니다. 머티리얼 값을 GPU 에 상주시켜 두고 오프셋만 바꿉니다. 그래서 배치 조건이 머티리얼이 아니라 셰이더 변형입니다.
합치는 비용이 그리는 비용보다 클 때
다이나믹 배칭은 매 프레임 CPU 가 메시를 합칩니다. 그 부등호가 요즘 하드웨어에서 자주 뒤집혀서, URP 에서 우선순위가 내려갔습니다.
배칭이 왜 끊겼는지는 화면이 알려준다
Frame Debugger 는 배치가 끊긴 사유를 문장으로 적어 줍니다. 그 문장을 실제 원인으로 옮기는 표와, 도구마다 있는 함정 하나씩.
드로우 콜을 줄였는데 느려졌다면
드로우 콜과 SetPass Call 은 다른 것을 셉니다. 드로우 콜이 524 에서 765 로 늘었는데 오히려 빨라진 실측이 있습니다.