Version: Unity 6.0 (6000.0)
언어 : 한국어
URP의 성능 이해
URP의 렌더링 디버거

URP에서 프로젝트 분석

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가 렌더 텍스처를 현재의 카메라 렌더 타겟으로 복사합니다.

GPU 프로파일러를 사용한 프로젝트 분석

Xcode와 같은 플랫폼 GPU 프로파일러를 사용하여 렌더링 시 GPU 성능에 대한 데이터를 가져올 수 있습니다. RenderDoc과 같은 프로파일러를 사용할 수도 있으나 성능 데이터의 정확성이 떨어질 수 있습니다.

GPU 프로파일러의 데이터에는 다양한 렌더 패스와 같은 렌더링 이벤트에 대한 URP 마커가 포함됩니다.

다른 툴을 사용해 프로젝트 분석

다음 툴을 사용하여 프로젝트의 성능을 분석할 수도 있습니다.

URP의 성능 이해
URP의 렌더링 디버거