Unity는 인스턴싱과 오클루전 컬링을 사용하여 그리기 호출을 크게 줄이고 숨겨진 객체의 렌더링을 제거하는 다양한 고급 GPU 기능을 제공합니다. 이러한 기능은 복잡한 장면에서 GPU 효율성을 극대화하기 위해 함께 작동합니다.
GPU 상주 드로어
GPU 상주 드로어는 GPU 인스턴싱을 자동으로 사용하여 드로 호출을 줄이고 CPU 처리 시간을 확보합니다. 이 기능은 동일한 메시를 공유하는 객체가 많은 대규모 장면에서 가장 효과적입니다.
이 기능 사용 설정
- Unity 기본 메뉴에서 Edit > Project Settings > Graphics를 클릭합니다.
- Shader Stripping 섹션에서 Batch Renderer Group Variants를 Keep All로 설정합니다.
- 기본 렌더 파이프라인 애셋을 찾습니다. 이 애셋은 URP 애셋이기도 합니다.
- 프로젝트에서 이 애셋을 검색합니다.
- 애셋을 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다.
- 렌더러 목록에서 범용 렌더러를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다.
- 렌더링 경로를 Forward+로 설정합니다.
- URP 애셋으로 돌아가서 선택한 다음 점 3개를 클릭하고 디버그를 선택합니다.
- GPU Resident Drawer Mode를 Instanced Drawing으로 설정합니다.
GPU 오클루전 컬링
오클루전 컬링은 CPU 대신 GPU를 사용하여 다른 객체 뒤에 숨겨진 객체를 제외합니다. 이 기능은 실내 또는 밀도 높은 환경과 같이 오클루전이 많은 장면에서 가장 효과적입니다.
이 기능 사용 설정
- Unity 기본 메뉴에서 Edit > Project Settings > Graphics를 클릭합니다.
- GPU 오클루전 컬링을 사용 설정합니다.
- URP 탭을 선택합니다.
- 렌더링 그래프 섹션에서 호환성 모드 (렌더링 그래프 사용 중지됨)를 사용 중지합니다.
버퍼 삭제 최적화
이 최적화는 불필요한 깊이 버퍼 데이터를 삭제하고 MSAA 색상 버퍼를 효율적으로 처리하여 메모리 작업을 줄임으로써 성능을 개선합니다.
이점
- 그래픽 데이터의 불필요한 복사 및 이동을 방지합니다.
- 모든 경우에 GPU 렌더링 속도를 높입니다.
이 기능 사용 설정
- Unity 기본 메뉴에서 Edit > Project Settings를 클릭합니다.
- XR 플러그인 관리 섹션을 펼친 다음 OpenXR을 클릭합니다.
- Android 탭을 선택합니다.
- Android XR 기능 그룹을 선택합니다.
- Android XR 지원 옆에 있는 톱니바퀴 아이콘을 클릭합니다.
버퍼 삭제 최적화 (Vulkan)를 사용 설정합니다.
앞에서 뒤로 렌더링 사용 중지
앞에서 뒤로 렌더링은 장면에서 시도해 볼 수 있는 렌더링 순서 실험입니다. LRZ (Low-Resolution-Z)와 같은 최적화와 결합하면 배경 객체가 비용이 많이 드는 프래그먼트 셰이더를 사용하는 폐색이 심한 장면에서 성능을 개선할 수 있습니다.
하지만 이 설정을 사용 설정하면 성능이 저하될 수도 있습니다. 따라서 기본 설정 (사용 중지됨)으로 두는 것이 좋습니다.