Unity 프로파일러를 사용하여 CPU 및 메모리와 같은 프로젝트 성능에 대한 데이터를 확보할 수 있습니다.
다음 표는 URP 프레임의 Unity Profiler에 표시되며 성능에 큰 영향을 미치는 마커가 정리되어 있습니다.
프로파일러 계층 구조의 깊숙한 곳에 있거나 레이블이 URP의 기능을 이미 설명하는 마커는 표에서 제외되었습니다.
| 마커 | 서브 마커 | 설명 |
|---|---|---|
| Inl_UniversalRenderPipeline. RenderSingleCameraInternal | URP는 단일 카메라에 대한 렌더링 커맨드 목록을 ScriptableRenderContext에 작성합니다. URP는 이 마커에서 렌더링 커맨드만 기록할 뿐 아직 실행하지는 않습니다. 마커에는 카메라 이름(예: Main Camera)이 포함됩니다. |
|
| Inl_ScriptableRenderer.Setup | URP가 렌더링을 준비합니다(예: 카메라 및 섀도우 맵에 대한 렌더 텍스처 준비). | |
| CullScriptable | URP가 렌더링할 게임 오브젝트 및 광원의 목록을 생성하고 카메라 뷰 바깥에 있는 요소를 컬링(제외)합니다. 이 작업에 소요되는 시간은 씬에 존재하는 게임 오브젝트와 광원 개수에 따라 달라집니다. | |
| Inl_ScriptableRenderContext.Submit | URP가 ScriptableRenderContext의 커맨드 목록을 그래픽스 API에 제출합니다. URP가 프레임당 두 번 이상 커맨드를 제출하거나 사용자가 자신의 코드에서 ScriptableRenderContext.Submit를 호출하는 경우 이 마커가 두 번 이상 나타날 수 있습니다. |
|
| MainLightShadow | URP가 메인 방향 광원에 대한 섀도우 맵을 렌더링합니다. | |
| AdditionalLightsShadow | URP가 다른 광원에 대한 섀도우 맵을 렌더링합니다. | |
| UberPostProcess | URP가 사용자가 활성화하는 포스트 프로세싱 효과를 렌더링합니다. 이 마커에는 일부 포스트 프로세싱 효과에 대한 별도의 마커가 포함되어 있습니다. | |
| RenderLoop.DrawSRPBatcher | URP가 Scriptable Render Pipeline Batcher를 사용하여 하나 이상의 오브젝트 배치를 렌더링합니다. | |
| CopyColor | URP가 한 렌더 텍스처의 색상 버퍼를 다른 렌더 텍스처로 복사합니다. URP 에셋에서 불투명 텍스처를 비활성화하여 URP가 필요할 때에만 컬러 버퍼를 복사하도록 만들 수 있습니다. | |
| CopyDepth | URP가 한 렌더 텍스처의 뎁스 버퍼를 다른 렌더 텍스처로 복사합니다. 씬 뎁스를 사용하는 셰이더를 사용하는 경우처럼 뎁스 텍스처가 필요하지 않은 경우 URP 에셋의 뎁스 텍스처를 비활성화할 수 있습니다. | |
| FinalBlit | URP가 렌더 텍스처를 현재의 카메라 렌더 타겟으로 복사합니다. | |
Xcode와 같은 플랫폼 GPU 프로파일러를 사용하여 렌더링 시 GPU 성능에 대한 데이터를 가져올 수 있습니다. RenderDoc과 같은 프로파일러를 사용할 수도 있으나 성능 데이터의 정확성이 떨어질 수 있습니다.
GPU 프로파일러의 데이터에는 다양한 렌더 패스와 같은 렌더링 이벤트에 대한 URP 마커가 포함됩니다.
다음 툴을 사용하여 프로젝트의 성능을 분석할 수도 있습니다.