EveryDay.DevUp

[Unity] URP (Universal Render Pipeline) 의 개념 본문

Unity

[Unity] URP (Universal Render Pipeline) 의 개념

EveryDay.DevUp 2025. 1. 25. 21:45

https://www.youtube.com/watch?v=QRlz4-pAtpY

https://www.youtube.com/watch?v=UsyvT36vqpU

Legacy와 URP의 차이

- Legacy는 메인 스레드에서 게임 엔진 프레임워크로 오브젝트를 그리는 요청 (렌더)을 하거나 OnPrecull과 같은 후킹 기능을 통해 렌더 파이프라인에 요청을 하는 형태

- URP에서는 렌더 파이프가 엔진안에서 외부로 나오게 되어 RenderContext를 직접 수정할 수 있게됨

URP 란?

- SPR (Scriptable Render Piple) 를 기반으로 한 렌더 파이프라인 템플릿

- URP -> Renderer -> Pass, Pass...  Pass 하나 하나가 독립적이고 실시간으로 패스 변경도 가능함

URP의 장점

1) 우수한 성능

- Legacy 는 멀티 라이트 멀티 패스로 동적 라이트가 5개이면 5개의 패스가 필요, 오브젝트 하나당 드로우 콜을 발생 시키기 때문에 광원이 5개, 오브젝트가 10개면 50번의 드로우콜이 발생함

- URP 에서는 라이트 하나를 그릴 때 오브젝트를 한번에 그릴 수 있음으로 5번의 드로우콜만 발생

2) SRP 배처

- 드로우콜 : CPU가 GPU에게 그리라는 명령을 주는 것으로, 오브젝트 하나를 그리기 위해서는 메쉬 정보, 텍스처, 쉐이더등 많은 정보가 필요함

- 배치 : 드로우 콜 + 렌더 상태 변경

- Set Pass Call : 메터리얼을 그리기 위한 상태 변경의 수

- Legacy의 경우 배치를 최적화 하기 위해 메터리얼을 기준으로 했음

- SRP 배처는 쉐이더를 기준으로 배칭을 처리, 메터리얼이 달라도 같은 쉐이더라면 배칭 처리 

Unity의 쉐이더

- ShaderLab : 유니티 쉐이더의 시스템 이름

- ShaderAsset : ShaderLab에서 쓰이는 쉐이더 로드와 여러 값이 들어간 에셋 파일

- ShaderSnippet : CG/HLSL로 쓰여진 쉐이더 코드

- ShaderStage : 쉐이더에서 실행하는 프로그램

'Unity' 카테고리의 다른 글

[Unity] 시네머신 3.x  (0) 2025.02.15
[Unity] 셰이더 기초 강좌  (0) 2025.02.02
[Unity] Sprite Atlas Memory Profiler Test  (0) 2025.01.25
[Unity] Fake null  (0) 2021.12.20
[Unity] DotsTween CustomPackage 생성  (0) 2020.07.25