URP에서 GPU Resident Drawer와 호환되는 게임 오브젝트 만들기
URP에서 GPU Resident Drawer 활성화
GPU Resident Drawer는 BatchRendererGroup API를 자동으로 사용하여 GPU 인스턴싱으로 게임 오브젝트를 드로우하므로 드로우 콜 횟수를 줄이고 CPU 처리 시간을 확보합니다. 자세한 내용은 BatchRendererGroup의 작동 방식을 참조하십시오.
GPU Resident Drawer는 다음에서만 작동합니다.
이 외의 경우 Unity는 GPU 인스턴싱 없이 게임 오브젝트를 드로우합니다.
GPU Resident Drawer를 활성화하면 다음이 적용됩니다.
- Unity가 모든
BatchRendererGroup 셰이더 배리언트를 빌드로 컴파일하므로 빌드 시간이 길어집니다.
GPU Resident Drawer 활성화
다음 단계를 따르십시오.
-
Project Settings > Graphics로 이동해 Shader Stripping 섹션에서 BatchRendererGroup Variants를 Keep All로 설정합니다.
- 활성 URP 에셋으로 이동해 SRP Batcher를 활성화합니다.
-
렌더러 목록에서 렌더러를 더블 클릭해 유니버설 렌더러를 연 다음 Rendering Path를 Forward+로 설정합니다.
-
GPU Resident Drawer를 Instanced Drawing으로 설정합니다.
프레임마다 게임 오브젝트를 변경하거나 생성하면 GPU Resident Drawer가 변경 사항에 따라 업데이트됩니다.
GPU Resident Drawer에서 게임 오브젝트를 포함하거나 제외하려면 게임 오브젝트가 GPU Resident Drawer와 호환되도록 하기를 참조하십시오.
GPU Resident Drawer 분석
다음을 사용하여 GPU Resident Drawer의 결과를 분석할 수 있습니다.
-
프레임 디버거. GPU Resident Drawer는 게임 오브젝트를 Hybrid Batch Group이라는 이름의 드로우 콜로 그룹화합니다.
- 렌더링 디버거
- 초당 프레임 수가 증가하고 CPU 처리 시간과 SetPass 호출이 감소하는지 확인할 수 있는 렌더링 통계
- Unity 프로파일러
GPU Resident Drawer 최적화
GPU Resident Drawer가 렌더링 속도를 높이는 정도는 씬에 따라 다릅니다. GPU Resident Drawer는 다음 설정에서 가장 효과적입니다.
- 대규모의 씬
- 여러 개의 게임 오브젝트가 동일한 메시를 사용함에 따라 Unity가 하나의 드로우 콜로 해당 게임 오브젝트들을 그룹화할 수 있음
일반적으로 렌더링 속도는 씬 뷰 및 게임 뷰보다 플레이 모드나 최종 빌드된 프로젝트에서 더 빨라집니다.
다음을 통해 GPU Resident Drawer의 속도를 높일 수 있습니다.
-
Project Settings > Player로 이동해 Other Settings 섹션에서 Static Batching을 비활성화합니다.
-
Window > Panels > Lighting으로 이동해 Lightmapping Settings 섹션에서 Fixed Lightmap Size를 활성화하고 Use Mipmap Limits를 비활성화합니다.
추가 리소스
URP에서 GPU Resident Drawer와 호환되는 게임 오브젝트 만들기