00. 빠른 시작(Quick Start): URP/RenderGraph로 “직접 확인하며” 공부하기
이 문서는 “책을 읽는 것”만으로 끝나지 않도록, Unity 6.3(6000.3) + URP + RenderGraph 환경에서 실제로 확인할 수 있는 최소 루틴을 제공합니다.
목표: (1) RenderGraph Viewer로 파이프라인을 눈으로 보고, (2) Fullscreen Pass/Renderer Feature를 하나 추가해보고, (3) URP 셰이더 라이브러리를 직접 열어 따라가보기
0.1 버전/설정 확인 체크리스트
- Unity 버전 확인: Unity 6.3은 보통
6000.3.*표기입니다. (예: 6000.3.6f1) - URP 설치 확인: Package Manager에서 Universal RP 설치
- URP Asset 지정: Project Settings > Graphics > Scriptable Render Pipeline Settings
- RenderGraph 사용 확인: Project Settings > Graphics(또는 URP 관련 설정)에서 Compatibility Mode(Render Graph Disabled)가 꺼져 있는지 확인
- Compatibility Mode는 학습용으로는 도움이 되지만, Unity 문서에서도 RenderGraph 경로를 권장합니다.
0.2 Render Graph Viewer 열기(필수)
RenderGraph를 공부하는 가장 빠른 길은 “URP가 실제로 어떤 패스를 만들었는지”를 보는 것입니다.
- 메뉴: Window > Analysis > Render Graph Viewer
Viewer에서 확인할 것:
- 컬러/뎁스/노말 텍스처가 언제 생성되는지
- Copy Color 같은 패스가 언제 들어가는지
- 내 커스텀 패스가 그래프에서 어디에 위치하는지
0.3 URP의 Frame Data(UniversalResourceData) 감각 잡기
RenderGraph 경로에서는 “카메라 컬러/뎁스/GBuffers” 같은 텍스처를 ContextContainer에서 가져옵니다.
public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameContext)
{
var resources = frameContext.Get<UniversalResourceData>();
TextureHandle color = resources.activeColorTexture;
}
핵심:
TextureHandle은 “이번 프레임/이번 그래프에서만 유효”합니다.- 어떤 텍스처가 존재하는지는 삽입 지점(Injection Point) 과 URP 설정에 따라 달라집니다.
0.4 가장 쉬운 실습 1: Full Screen Pass Renderer Feature
URP는 풀스크린 효과를 위한 “기성 Renderer Feature(Full Screen Pass)”를 제공합니다.
실습 순서:
- 간단한 풀스크린 셰이더(예: 색 반전/그레이스케일) 준비
- Renderer에 Full Screen Pass Renderer Feature 추가
- Injection Point를 바꿔보며 RenderGraph Viewer에서 패스 위치 확인
- Requirements(Depth/Normal/Color/Motion)를 바꿔서 어떤 텍스처가 생성되는지 확인
이 과정만으로도 “어떤 텍스처가 언제 생기고 어디서 소비되는지” 감이 잡힙니다.
0.5 가장 쉬운 실습 2: 템플릿 기반 커스텀 포스트(Volume 지원)
URP에는 Volume 지원 커스텀 포스트 템플릿이 있습니다.
- 메뉴: Assets > Create > Rendering > URP Post-processing Effect (Renderer Feature with Volume)
이 템플릿은:
- RenderGraph 경로와 Compatibility Mode 경로가 둘 다 들어있어 비교하기 좋고
- Volume 파라미터를 셰이더에 전달하는 구조를 한 번에 보여줍니다.
0.6 URP HLSL 소스 따라가기(권장 루틴)
“문서로 이해한 것”을 “소스에서 확인”하는 습관이 중요합니다.
- 패키지 소스 열기:
Packages/com.unity.render-pipelines.universal - 기본 셰이더(예: Lit)에서 include를 따라가기
- 궁금한 함수(예:
TransformObjectToHClip,GetMainLight) 정의로 점프
0.7 (선택) “정확 레퍼런스”를 자동 생성해 따라가기(추천)
URP 소스를 “눈으로 따라가기”가 익숙하지 않다면, include/시그니처/xref를 자동 생성해 “정확 레퍼런스”를 먼저 확보하는 편이 빠릅니다.
- 원클릭:
tools/generate-all.ps1 - 출력:
book/generated/(Lit Pass/Include 맵 + 함수/구조체/매크로 인덱스 + xref)
실행(예시):
powershell -ExecutionPolicy Bypass -File tools/generate-all.ps1 -UnityProjectRoot "<YOUR_UNITY_PROJECT_ROOT>"
다음 읽기(책 내부)
- RenderGraph 핵심: 04. RenderGraph
- 텍스처/ID/핸들: 05. 텍스처/ID/핸들
- URP HLSL 지도: 08. URP HLSL 라이브러리 지도
참고 링크(공식)
- RenderGraph Viewer로 분석: https://docs.unity3d.com/Manual/urp/render-graph-view.html
- Frame Data 가져오기: https://docs.unity3d.com/kr/6000.3/Manual/urp/accessing-frame-data.html
- Full Screen Pass Renderer Feature: https://docs.unity3d.com/Manual/urp/renderer-features/renderer-feature-full-screen-pass.html
- Volume 지원 커스텀 포스트: https://docs.unity3d.com/Manual/urp/post-processing/custom-post-processing-with-volume.html