본문 바로가기
개발 (Game)/Unity (General)

[URP] Built-in Render Pipeline vs SRP

by 진현개발일기 2025. 4. 9.

■ Built-in Render Pipeline (Legacy)

고사양 PC부터 저사양 모바일까지 원하는 만큼 다양한 플랫폼에 효율적으로 배포하기 위한 솔루션으로 개발되었음.

그래픽스 기능 조합을 지원하고 포워드 및 디퍼드 파이프라인과 함께 사용하기도 편리함.

 

하지만 지원 가능 플랫폼의 숫자가 늘어나면서 빌트인 렌더 파이프라인의 약점이 아래와 같이 점차 파악되어짐.

기존 렌더 파이프라인의 단점
1. 다량의 코드가 C++로 작성되어 있기 때문에 개발자의 수정 및 파악이 어려움
2. Render Flow와 Render Pass가 미리 구성되어 있음
3. 렌더링 알고리즘이 하드 코딩 되어있음
4. 커스터마이징에 제약이 없어 모든 플랫폼에서 우수한 성능을 구현하기 어려움
5. 렌더링 코드에 콜백이 노출되어 파이프라인에서 동기화 포인트가 트리거 된다. 이런 콜백으로 인하여 멀티스레딩 렌더링의 최적화 수준이 저해되고, 프레임의 어떤 지점에서든 C#을 호출하여 동적으로 상태를 주입 혹은 변경할 수 가 있게 된다.
6. 데이터 캐싱으로 사용자 인젝션에 대한 지속성 상태를 관리하기가 어려워짐

 

■ 해결책: Scriptable Render-Pipeline (SRP)

SRP는 다음과 같은 장점으로 효율적인 멀티플랫폼 워크플로를 지원할 수 있도록 개발 되었음.

SRP의 장점
1. 고사양부터 저사양 기기에 이르기까지 최대한 많은 하드웨어 플랫폼에 맞게 지은적이며 안정적인 지원을 제공
2.   C++이 아닌 C#을 사용하여 렌더링 프로세스를 커스터마이즈할 수 있도록 함. C#을 사용하면 모든 변경에 대해 새로운 실행 파일을 컴파일할 필요가 없음.

· 렌더 패스 및 렌더링 컨트롤 뿐만이 아니라 Shader Graph처럼 아티스트에게 익숙한 툴로 생성할 수 있는 HLSL 셰이더를 모두 제어하고 커스터마이즈할 수가 있음.

· 셰이더를 통해 하위 수준 API와 엔진 레이어 추상화에도 액세스할 수 있음.


3. 아키텍처의 변화를 지원할 수 있는 유연성을 제공함.
4. 많은 플랫폼에서 적절한 성능을 내는 선명한 그래픽스를 만드는 데 필요한 유연성을 제공함
5. 고급 사용자는 SRP를 새로 생성하거나 HDRP 또는 URP를 수정할 수 있음. 
그래픽스 스택은 오픈 소스이며 아래 링크에서 사용 가능
(https://github.com/Unity-Technologies/Graphics)

 

■ URP를 선택해야 하는 이유

특징 설명
다양한 사용자의 액세스 지원 아티스트와 TA 모두 설정할 수 있으며, 뛰어난 유연성 덕분에 프로토타이핑 뿐만이 아니라 게임 정식 제작용으로 렌더링 기법을 개선하는 데에도 사용 할 수 있음.
확장 및 커스터마이징 · 사용자가 기존 기능을 수정하고 파이프라인을 새 파이프라인으로 확장할 수 있도록 함. 따라서 상급 사용자에게는 믿을 수 있는 옵션이 됨.

· 하위 수준 렌더링 API는 성능을 고려해 C++로 작성되지만, URP 개발자는 렌더 파이프라인 중 간단한 C# 스크립트만 작성하면 성능 저하 없이 높은 수준의 커스터마이즈를 할 수 있음.
다양한 렌더링 옵션 · 포워드, 포워드+, 디퍼드 렌더링 경로를 지원하는 Universal Renderer와 2D Renderer를 제공함.

· 이러한 렌더러는 추가 기능 및 Scriptable Render Pass를 사용하여 확장할 수 있음.

· 오브젝트 렌더링 기능은 렌더링 파이프라인의 다양한 이벤트에서 특정 레이어 마스크로부터 오브젝트를 렌더링하는 데 사용됨. 이러한 오브젝트를 렌더링할 때 머테리얼 및 기타 렌더 상태를 오버라이드할 수도 있어, 코드를 작성하지 않고도 렌더링을 커스터마이즈할 수 있다. 또한 특정 요구 사항에 맞춰 커스텀 렌더러를 통해 URP를 확장할 수 있다.

· 렌더 그래프 시스템을 사용하면 프레임 렌더링에 사용되는 다양한 버퍼에 액세스하고 이를 조작할 수 있으며, 렌더러 기능 워크플로를 사용하면 렌더 파이프라인의 어느 단게에서든 렌더 그래프를 추가할 수 있다.
탁월한 성능

URP는 다양한 기기에서 강력한 성능을 제공하고 정확도와 프레임 속도 간의 균형을 조정할 수 있는, 아래와 같이, 다양한 툴을 제공한다.
[특징]

1.
실시간 조명을 매우 효율적으로 계산한다.
 
· Forward Rendering 같은 경우 싱글 패스에서 모든 조명을 계산하고,

· Forward+ Rendering은 오브젝트 단위 대신 공간을 분류해 광원을 컬링하여 표준 포워드 렌더링보다 더 나은 품질을 보여준다. 이 방식을 사용하면 프레임을 렌더링할 때 전반적으로 더 많은 광원을 활용할 수 있다.

· Deferred Rendering에서는 Native RenderPass API를 지원하여 G-Buffer와 조명 패스가 싱글 렌더 패스로 결합될 수 있도록 한다.

2. 메시를 드로우할 때 CPU 및 GPU 성능이 개선된다.

· SRP Batcher를 사용하면 드로우 콜을 줄이고 뎁스 처리 방식을 개선할 수 있으며, GPU 상주 드로어와 오클루전 컬링을 사용하면 일부 씬에서 드로우 콜을 크게 줄일 수 있다.

3. 모바일 기기에서 타일 메모리를 더 효율적으로 사용할 수 있다. 따라서 전력 소비량이 줄고 배터리 수명도 길어지므로 플레이 세션이 연장될 수 있다.

4. 통합 포스트 프로세싱 스택을 포함하여 빌트인 렌더 파이프라인에 비해 높은 성능을 제공한다. Volume Framework를 사용하면 코드를 작성하지 않고도 카메라 위치 기반의 포스트 프로세싱 효과를 만들 수 있다.

5. 다른 주요 툴과 호환

· Shader Graph, VFX Graph, Rendering Debugger 같이 아티스트와 TA에게 익숙한 툴을 지원한다.

6. 2D Rendering

· 고급 2D 조명, 그림자, 포스트 프로세싱 효과를 지원하여 성능을 그대로 유지하면서 2D 게임의 화질을 향상할 수 있다

 

 

■ 참고

https://unity.com/kr/resources/introduction-to-urp-advanced-creators-unity-6?utm_source=youtube-dc&utm_medium=social&utm_campaign=kr_unity_live_Feb_edit_unity6_URP_ebook

 

Unity 고급 사용자를 위한 유니버설 렌더 파이프라인 소개(Unity 6 에디션) | Unity

이 가이드는 숙련된 Unity 개발자와 테크니컬 아티스트가 Unity 6의 URP(유니버설 렌더 파이프라인)를 활용해 최대한 효율적으로 개발하는 방법을 안내합니다.

unity.com