book/00-getting-started.md

00. 빠른 시작(Quick Start)

Unity 6.3(6000.3) + URP + RenderGraph 환경에서 RenderGraph Viewer와 기성 Feature로 직접 확인하며 공부하는 시작 루틴

00. 빠른 시작(Quick Start): URP/RenderGraph로 “직접 확인하며” 공부하기

이 문서는 “책을 읽는 것”만으로 끝나지 않도록, Unity 6.3(6000.3) + URP + RenderGraph 환경에서 실제로 확인할 수 있는 최소 루틴을 제공합니다.

목표: (1) RenderGraph Viewer로 파이프라인을 눈으로 보고, (2) Fullscreen Pass/Renderer Feature를 하나 추가해보고, (3) URP 셰이더 라이브러리를 직접 열어 따라가보기

0.1 버전/설정 확인 체크리스트

  1. Unity 버전 확인: Unity 6.3은 보통 6000.3.* 표기입니다. (예: 6000.3.6f1)
  2. URP 설치 확인: Package Manager에서 Universal RP 설치
  3. URP Asset 지정: Project Settings > Graphics > Scriptable Render Pipeline Settings
  4. 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에서 가져옵니다.

C#
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)”를 제공합니다.

실습 순서:

  1. 간단한 풀스크린 셰이더(예: 색 반전/그레이스케일) 준비
  2. Renderer에 Full Screen Pass Renderer Feature 추가
  3. Injection Point를 바꿔보며 RenderGraph Viewer에서 패스 위치 확인
  4. 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 소스 따라가기(권장 루틴)

“문서로 이해한 것”을 “소스에서 확인”하는 습관이 중요합니다.

  1. 패키지 소스 열기: Packages/com.unity.render-pipelines.universal
  2. 기본 셰이더(예: Lit)에서 include를 따라가기
  3. 궁금한 함수(예: TransformObjectToHClip, GetMainLight) 정의로 점프

0.7 (선택) “정확 레퍼런스”를 자동 생성해 따라가기(추천)

URP 소스를 “눈으로 따라가기”가 익숙하지 않다면, include/시그니처/xref를 자동 생성해 “정확 레퍼런스”를 먼저 확보하는 편이 빠릅니다.

  • 원클릭: tools/generate-all.ps1
  • 출력: book/generated/ (Lit Pass/Include 맵 + 함수/구조체/매크로 인덱스 + xref)

실행(예시):

POWERSHELL
powershell -ExecutionPolicy Bypass -File tools/generate-all.ps1 -UnityProjectRoot "<YOUR_UNITY_PROJECT_ROOT>"

다음 읽기(책 내부)

참고 링크(공식)