[20260205] URP

SmartBear·2026년 2월 5일

목차

  • URP 는 왜 배우나?

    • 게임 그래픽스 랜더링 이해하기
  • Render Pipeline 이란?

  • Rander Pipeline 가 처리하는 최소 단위?

    • Vertex, Polygon, Mesh
  • 게임 그래픽을 구성하는 핵심 요소

    • Texture / UV-Mapping
    • Material
    • Shader
  • Rander Pipeline 공통 흐름

  • Unity가 사용하는 RP 구조

    • Forward Rander Pipeline (Unreal Deffered)
  • Forward RP 과정

    • CPU
    • Vertex Shader
    • Rasterizer
    • Pixel Shader
    • 화면 출력

기대효과

  • FPS 관련 병목현상 해결 가능
    • 최적화

Render Pipeline

  • 게임이 화면에 그려지는 과정 (CPU-> GPU-> 화면)
    • Draw Call (CPU 가 GPU 에게 일시키기)
  • CPU: 이 3D 모델을 이 카메라 시점에 그려줘 (명령/데이터전달)
  • GPU: 알겠어.
    1. 3D를 2D로 변환(Vertex)하고,
    2. 픽셀로 쪼개서(Rasterization),
    3. 색을 채워(Pixel/Fragment)서
    4. 화면에 뿌릴께(Output)

GPU 관점에서 Render Pipeline을 처리하는 최소 단위

Vertex(점)

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

Polygon(면, 다각형)

  • Vertex이 모여 만들어진 최소의 면 단위
  • 연산의 안정성/효율성이 삼각형이 가장 좋음. (확인해보기)

Mesh (모델)

  • 메시는 면(Polygon)들의 집합

Vertex -> Polygon -> Mesh 흐름을 잘 기억하자.
GPU 가 Vertex의 위치 계산하여
Vertex 를 이어 Polygon 을 만들어,
Mesh 를 이루고
Pixel 에 색을 채워 넣는다.

유니티 내 컴포넌트

  • Mesh Filter ; 어떤 모양 (Mesh)를 쓸것인가
  • Mesh Renderer; 그 모양을 화면에 Material 을 참조하여 그리는 담당자.
  • Material; 외관의 질감.

게임 그래픽을 구성하는 핵심 요소

Texture, Material, Shader

Texture

UV-Mapping

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

Auto Mapping Tool

  • 블랜더 / 마야 / 3D Max

Material

  • 게임의 질감을 담당
  • 색상, 질감, 빛, 투명도 등 정보가 있음.

Shader

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

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

거시적 4단계

  1. CPU 명령(Draw Call); CPU가 무엇으르 그릴지 명령을 내리면
  2. Vertex Shader; GPU가 그 물체의 Vertex를 화면 위치에 맞게 옮김
  3. Rasterizer; 모니터 눈금에 맞게 Pixel 로 쪼갬
  4. Pixel/Fragment Shader: 마지막으로 그 칸에 색을 채움.

결국 모니터에 출력~!

미시적 관점 (8가지)

1 - 3 단계는 성능 형태 잡기.

1. CPU & Draw-Call

CPU -> GPU 그려라 명령
Mesh, Material

2. Vertex Shader (정점 연산)

3D 공간에 Mesh/Model을 2D 화면에 점을 이동함.

3. Culling

불필요한 영역을 계산에서 지워버리는 것.

  • Frustum-Culling (CPU) (default); 카메라 시야 밖 통째로 버림.
  • Backface-Culling (GPU) (default); 카메라 반대편 물체 면을 버림.
  • Occlusion-Culling (CPU/GPU); 앞에 물체 완전히 가려지는 물체 버림.

4 - 5 단계는 비주얼 담당 => 색 칠하기.

4. Rasterizer

출력될 픽셀 조각들로 쪼개는 과정
=> Aliasing(계단 현상)
=> 추후 Anti-Aliasing 개념까지 들어감.

5. Pixel/Fragment Shader

실제 색을 입히는 단계.
Texture , 빛, 그림자 영역 처리.

6 - 7 실질 Draw 영역 처리.

6. Depth Test (Z-Test)

그려지는 우선순위 = 오브젝트 앞뒤 판별

  • Z-Buffer(깊이 지도)
    • 새로 그릴 픽셀이 기록된 값보다 뒤에 있으면 계산을 취소함.

7. Blending

배경하고 어떻게 섞일까?
앞뒤 판별이 끝난 후, 배경색 + 현재 픽셀 합성

  • 불투명
  • 반투명

Q. 불투명 객체끼리 겹치면?

  • Front-to-Back
  • Z-Write ON

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

  • Back-to-Front
  • Z-Write OFF

8. 마지막 화면 출력 전 꾸미기

8. Post-Processing

Bloom; 밝은 빛을 객체 자체에서 내는 기능.
Color Gradient; 색감
Anti-Aliasing. x2/x4/x8/...

Render Pipeline

Built-in Pipeline (Legacy)

  • 개발자가 내부 구조를 수정할 수 없음.
  • 유니티에서 제공해주는 옵션 조정만 가능.

SRP (Scriptable-Render-Pipeline)

  1. Built-in 한계; 상세한 랜더 파이프 구조를 설정할 수 없음.
  2. SRP 초기: C#. HLSL.
  3. SRP 기반 템플릿
  • URP (Universal Render Pipeline)
  • HDRP (High-Definition Render Pipeline)

URP 장점

  • SRP Batcher(Draw-call 최적화)
  • Forward+
  • GPU Resident Drawer

Forward vs Deffer Render Pipeline

Forward Render PipelineDeffer Render Pipeline
방식Object 를 그리면서 조명을 동시에 계산.먼저 화면에 필요한 정보들을 저장 후 그림.
profile
Python Dev with Infra -> Game Programmer

0개의 댓글