[TIL-260205] URP

데비·2026년 2월 5일

본과정

목록 보기
50/64

오늘 배운 내용

- URP


URP(Universal Unity Pipeline)

  • 게임이 화면에 그려지는 과정 (CPU -> GPU -> 화면)

1) 정리

CPU : 이 3D 모델들을 이 카메라 시점에서 그려줘(명령, 데이터 전달)

GPU : 알겠어.

  1. 3D를 2D로 변환(Vertex)하고,
  2. 픽셀로 쪼개서(Raterization),
  3. 색을 채워서(Pixel/Fragment)
  4. 화면에 보여줄게

2) GPU관점에서 RP를 처리하는 최소 단위

2-1) Vertex(점)

  • 3D 공간상의 한 점을 의미한다. 좌표(x,y,z)로 구성

2-2) Polygon(면, 다각형)

  • Vertex(점)들이 모여 만들어지는 최소의 면 단위

2-3) Mesh(모델)

Mesh란?

  • 면(Polygon)들의 집합

흐름

점(Vertex) -> 면(Polygon) -> 메쉬(Mesh)

  • GPU가 점의 위치를 우선적으로 계산

  • 그점들을 이어서 Polygon이라는 면을 만들어서 모델을 이루고,

  • 최종적으로 Pixel에 색을 채워 넣는다.

정리

  • Mesh Filter: 어떤 모양(Mesh)을 쓸 것인가?
  • Mesh Renderer: 그 모양을 화면에 '그리는' 담당자. (Material 참조)
  • Material: 어떤 질감

3-1-1 UV Mapping

  • 3D 표면의 위치(점/면)와 2D 텍스처의 위치(UV 좌표)를 연결하는 과정
    2D 이미지를 3D 물체 표면에 정확히 붙이는 방법

3-1-2 Auto Mapping Tools

  • 블랜더(blender)
  • 맥스(3max)
  • 마야(Maya)

3-2 Material

  • 게임 화면에 보이는 질감을 담당한다
  • 색상, 질감, 빛, 투명도 등 정보를 포함한다.

3-3 Shader

  • Meterial이 가진 Texture 혹은 색상 정보를 조합해서 화면에 최종적으로 질감을 입히는 역할
  • Shader(틀/설계도): 어떤 데이터를 담을 빈 칸(속성)을 가진다.

그래픽 처리 순서 (게임 엔진)

4가지 (거시적)

  1. CPU 명령 (Draw-Call)
    • CPU가 무엇을 그릴지 정해서 명령을 내리면,
  2. Vertex Shader
    • GPU가 그 물체의 `점(Vertex)을 화면 위치에 맞게 옮김
  3. Rasterizer
    • 모니터 눈금에 맞춰 픽셀로 쪼겜
  4. Pixel/Fragment Shader
    • 마지막으로 그 칸들에 색을 채운다.

8가지 (미시적)

1~3단계

  1. CPU & Draw-Call

    • CPU -> GPU 그려라! 라고 명령하는 단계
    • 메쉬(Mesh), 메테리얼(Material)
  2. Vertex Shader (정점 연산)

    • 3D 공간에 있는 어떤 메쉬/모델을 2D화면에 위치 시키는 것
  3. Culling

    • 불필요한 영역을 계산에서 지워버린다.

    3가지

    [Default로 제공]

    • 프로스텀 컬링(CPU) : 카메라 시야 아예 밖에 있는가? (시야 밖 통째로 버림)
    • 백페이스 컬링(GPU) : 물체 면의 방향이 카메라 반대편(뒷면)을 보고있는가? (뒷면 버림)

    [직접 설정]

    • 오클루전 컬링(CPU/GPU) : 앞에 있는 물체에 완전히 가려졌는가?(가려진 부분 버림)

4~5단계 (비주얼 담당 = 색 칠하기)

  1. Rasterizer
  • 출력될 픽셀 조각들로 쪼개는 과정
  • 계단 현상(Aliasing)이 발생
  • 추후에 Anti-Aliasing 개념까지 들어감.
  1. Pixel/Fragment Shader (색상과 질감)

    • 실제 색을 입히는 단계
    • Texture하고 그림자 영역이 여기서 처리됨

    6~7단계

  2. Depth Test(Z-Test)

    • 그려지는 우선순위 = 오브젝트의 앞뒤 판별
    • Z-Buffer(깊이 지도)
      • 새로 그릴 픽셀이 기록된 값보다 뒤에 있으면 계산을 취소한다.
  3. Blending

    • 배경하고 어떻게 섞일것인가?
    • 앞뒤 판별이 끝난 후, 배경색+현재 픽셀 합성
  • 불투명

  • 반투명

    Q. 불투명 객체끼리 겹쳐있다면?

  • Front-to-Back

  • Z-Write ON

    Q. 불투명과 투명 객체끼리 겹쳤다면?

  • Back-to-Front

  • Z-Write OFF

    8단계

  1. Post-Processing
  • Bloom
  • Color Gradient
  • Anti-Aliasing

RP를 이해하기위한 소스 개념 이해하기

RP 일련과정 이해를 위한 소스

  • Vertex(점)

  • Polygon(면)

  • Mesh(모델)

  • Texture (+UV-Mapping)

  • Material

  • Shader

그래픽 처리 일련 과정

  • 1~8단계 키워드 기억하기

Unity가 가지고 가는 RP 이해하기 (Forward)

1) Built-in Pipeline (Legacy)
- 개발자가 내부 구조를 수정할 수 없음
- 유니티에서 제공해주는 옵션 조정만 가능

2) SRP (Scriptable-Render-Pipeline)
-> 기반 템플릿 URP/HDRP
- Built-in 한계
- SRP 초기: C#, HLSL 언어(2018)
- SRP 기반 템플릿 -> URP/HDRP(2019)

Q. URP의 장점은?

  • SRP Batcher (드로우 콜 최적화)
  • Forward+
  • GPU Resident Drawer

1) Forward Render Pipeline

  • 오브젝트를 그리면서 조명을 그때그때 계산함

2) Deffered Render Pipeline

  • 먼저 화면에 필요한 정보들을 저장
    • 위치
    • 노멀
    • 메테리얼

0개의 댓글