동적 배칭은 드로우 콜을 줄이기 위해 움직이는 게임 오브젝트를 배칭하는 드로우 콜 배칭 메서드입니다. 파티클 시스템과 같이 Unity가 런타임 시 동적으로 생성하는 지오메트리에 대한 동적 배칭과 메시에 대한 동적 배칭은 서로 다르게 작동합니다. 메시와 동적 지오메트리의 내부 차이점에 대한 정보는 메시에 대한 동적 배칭과 동적으로 생성된 지오메트리에 대한 동적 배칭을 참조하십시오.
참고: 메시에 대한 동적 배칭은 오래된 저가형 기기에서 성능을 최적화하도록 설계되었습니다. 최신 소비자 하드웨어에서 CPU에서 수행하는 동적 배칭 작업은 드로우 콜에 사용되는 리소스보다 클 수 있습니다. 이는 성능에 부정적인 영향을 미칩니다. 자세한 내용은 메시에 대한 동적 배칭을 참조하십시오.
이 섹션은 동적 배칭의 렌더 파이프라인 호환성에 대한 정보를 포함하고 있습니다.
기능 | 빌트인 렌더 파이프라인 | 유니버설 렌더 파이프라인(URP) | 고해상도 렌더 파이프라인(HDRP) | 커스텀 스크립터블 렌더 파이프라인(SRP) |
---|---|---|---|---|
Dynamic Batching | 지원 | 지원 | 지원 안 함 | 지원 |
Unity는 파티클 시스템과 같은 동적 지오메트리에 대해 항상 동적 배칭을 사용합니다.
메시에 동적 배칭을 사용하려면 다음 단계를 따르십시오.
Unity는 공통 사용 정보에 설명된 기준을 충족하는 경우 움직이는 메시를 동일한 드로우 콜 안에 자동으로 배칭합니다.
메시에 대한 동적 배칭은 모든 버텍스를 월드 공간(GPU가 아닌 CPU에서)으로 변환하여 이루어집니다. 즉, 변환 작업이 드로우 콜을 수행하는 것보다 리소스 소모가 적은 경우에만 동적 배칭이 최적화됩니다.
드로우 콜의 리소스 요구사항은 주로 사용되는 그래픽스 API를 비롯한 여러 요인에 따라 달라집니다. 예를 들어 콘솔이나 Apple Metal 같은 최신 API에서는 드로우 콜에 사용되는 리소스가 일반적으로 훨씬 더 적고 종종 동적 배칭은 성능상 이득을 얻지 못합니다. 애플리케이션에서 동적 배칭 사용의 유불리 여부를 결정하려면 동적 배칭을 사용하기도 하고 사용하지 않기도 하는 애플리케이션을 프로파일합니다.
Unity는 그림자 패스에 필요한 머티리얼 값이 동일하다면 머티리얼이 다르더라도 그림자 캐스터에 대해 동적 배칭을 사용할 수 있습니다. 예를 들어, 여러 상자에서 텍스처가 다른 머티리얼을 사용할 수 있습니다. 머티리얼 에셋은 다르지만 그 차이는 그림자 캐스터 패스와 관련이 없으며 Unity는 그림자 렌더 단계에서 상자 게임 오브젝트에 대해 그림자를 배칭할 수 있습니다.
다음 시나리오에서 Unity는 동적 배칭을 전혀 사용할 수 없거나 제한된 범위에서만 동적 배칭을 적용할 수 있습니다.
다음 렌더러는 동적 배칭을 사용하여 최적화할 수 있는 지오메트리(예: 파티클, 라인)를 동적으로 생성합니다.
동적으로 생성된 지오메트리에 대한 동적 배칭은 메시에 대한 동적 배칭과 다르게 동작합니다.
이러한 접근 방식은 Unity가 정적 배칭에 대한 드로우 콜을 제출하는 방법과 유사합니다.
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.