동적 배칭은 드로우 콜을 줄이기 위해 움직이는 게임 오브젝트를 배칭하는 드로우 콜 배칭 메서드입니다. 파티클 시스템과 같이 Unity가 런타임 시 동적으로 생성하는 지오메트리에 대한 동적 배칭과 메시에 대한 동적 배칭은 서로 다르게 작동합니다. 메시와 동적 지오메트리의 내부 차이점에 대한 정보는 메시에 대한 동적 배칭과 동적으로 생성된 지오메트리에 대한 동적 배칭을 참조하십시오.
참고: 메시에 대한 동적 배칭은 오래된 저가형 기기에서 성능을 최적화하도록 설계되었습니다. 최신 소비자 하드웨어에서 CPU에서 수행하는 동적 배칭 작업은 드로우 콜에 사용되는 리소스보다 클 수 있습니다. 이는 성능에 부정적인 영향을 미칩니다. 자세한 내용은 메시에 대한 동적 배칭을 참조하십시오.
이 섹션은 동적 배칭의 렌더 파이프라인 호환성에 대한 정보를 포함하고 있습니다.
기능 | 빌트인 렌더 파이프라인 | 유니버설 렌더 파이프라인(URP) | 고해상도 렌더 파이프라인(HDRP) | 커스텀 스크립터블 렌더 파이프라인(SRP) |
---|---|---|---|---|
Dynamic Batching | 지원 | 지원 | 지원 안 함 | 지원 |
Unity는 파티클 시스템과 같은 동적 지오메트리에 대해 항상 동적 배칭을 사용합니다.
메시에 동적 배칭을 사용하려면 다음 단계를 따르십시오.
프로젝트에서 URP를 사용하는 경우 기본적으로 SRP(스크립터블 렌더 파이프라인) 배처가 활성화됩니다. 대신 동적 배칭을 활성화하려면 URP Asset으로 이동하여 Dynamic Batching을 활성화합니다.
Unity는 공통 사용 정보에 설명된 기준을 충족하는 경우 움직이는 메시를 동일한 드로우 콜 안에 자동으로 배칭합니다.
메시의 동적 배칭은 GPU가 아닌 CPU에서 모든 버텍스를 월드 공간으로 변환하는 방식으로 작동합니다. 따라서 동적 배칭은 변환 작업이 드로우 콜을 수행하는 것보다 리소스를 덜 사용하는 경우에만 최적화라고 할 수 있습니다.
드로우 콜의 리소스 요구사항은 주로 사용되는 그래픽스 API를 비롯한 여러 요인에 따라 달라집니다. 예를 들어 콘솔이나 Apple Metal 같은 최신 API에서는 드로우 콜에 사용되는 리소스가 일반적으로 훨씬 더 적고 종종 동적 배칭은 성능상 이득을 얻지 못합니다. 애플리케이션에서 동적 배칭 사용의 유불리 여부를 결정하려면 동적 배칭을 사용하기도 하고 사용하지 않기도 하는 애플리케이션을 프로파일합니다.
Unity는 그림자 패스에 필요한 머티리얼 값이 동일하다면 머티리얼이 다르더라도 그림자 캐스터에 대해 동적 배칭을 사용할 수 있습니다. 예를 들어, 여러 상자에서 텍스처가 다른 머티리얼을 사용할 수 있습니다. 머티리얼 에셋은 다르지만 그 차이는 그림자 캐스터 패스와 관련이 없으며 Unity는 그림자 렌더 단계에서 상자 게임 오브젝트에 대해 그림자를 배칭할 수 있습니다.
다음 시나리오에서 Unity는 동적 배칭을 전혀 사용할 수 없거나 제한된 범위에서만 동적 배칭을 적용할 수 있습니다.
다음 렌더러는 동적 배칭을 사용하여 최적화할 수 있는 지오메트리(예: 파티클, 라인)를 동적으로 생성합니다.
동적으로 생성된 지오메트리에 대한 동적 배칭은 메시에 대한 동적 배칭과 다르게 동작합니다.
이러한 접근 방식은 Unity가 정적 배칭에 대한 드로우 콜을 제출하는 방법과 유사합니다.