본문 바로가기

[하드웨어 뜯어보기] GPU #42 - GPU 파이프라인과 그래픽 처리

📑 목차

    빛과 그림을 계산하는 시각 회로

    3D 모델이 화면 속 실사 같은 영상으로 바뀌기까지, GPU 내부에서 펼쳐지는 거대한 그림 연산의 여정

    핵심요약
    그래픽 파이프라인은 Vertex → Raster → Pixel → Output 단계로 진행된다.
    GPU는 수천 개의 셰이더 코어로 매 순간 빛·그림자·색을 계산한다.
    래스터화는 3D 공간을 2D 픽셀로 변환하는 핵심 과정이다.
    텍스처 유닛, ROP, Z-Buffer 등은 픽셀 품질과 속도를 좌우한다.
    현대 GPU는 고전적 그래픽 파이프라인을 유지하면서도 GPGPU에 최적화된 구조를 병행한다.

     

    GPU 파이프라인과 그래픽 처리
    GPU 파이프라인과 그래픽 처리


    1. 그래픽 파이프라인이란 무엇인가?

    핵심 문장: GPU 파이프라인은 3D 세계를 2D 화면으로 번역하는 거대한 ‘시각 언어 변환기’이다.

     

    게임·영화·UI·VR 환경의 모든 장면은 수많은 3D 모델과 텍스처, 조명, 움직임의 조합이다. GPU는 이 방대한 정보를 화면 속의 픽셀 데이터로 변환하는 일을 맡는다. 이 과정을 구조화한 것이 바로 그래픽 파이프라인(Graphics Pipeline)이다.


    2. 고전적 vs 현대적 그래픽 파이프라인

    2-1. 고정 기능 파이프라인(Fixed Pipeline)

    초창기 GPU는 DirectX 7 이전 시절에는 아래와 같은 연산을 수행하는 단순한 구조였습니다.

    • 버텍스 고정 연산
    • 라이트 고정 연산
    • 텍스처 고정 연산

    2-2. 현대 GPU - 완전한 프로그램 가능한 파이프라인

    오늘날은 셰이더 프로그래밍으로

    • 버텍스 셰이더
    • 지오메트리 셰이더
    • 픽셀/프래그먼트 셰이더
    • 컴퓨트 셰이더

    등을 사용해 자유롭게 그래픽 동작을 구현합니다.

    GPU는 이제 그래픽뿐 아니라 GPGPU 연산도 함께 담당하는 병렬 범용 연산 프로세서로 진화했습니다.


    3. 그래픽 파이프라인의 흐름 - 전체 개요

    3D 그래픽은 아래와 같은 단계를 거쳐 이미지로 출력된다.

    1. Vertex Processing
    2. Primitive Assembly
    3. Rasterization
    4. Pixel/Fragment Shading
    5. Output Merger (ROP)

    이제 각 단계를 깊이 있게 살펴보겠습니다.


    4. Vertex Processing - 3D 모델의 첫 해석

    4-1. 버텍스 셰이더(Vertex Shader)

    버텍스 셰이더는 3D 모델을 구성하는 정점(Vertex)을 처리합니다.

     

    역할:

    • 모델 좌표 → 월드 좌표 → 뷰 좌표 → 클립 좌표 변환
    • 본 애니메이션(스켈레탈) 처리
    • 조명 계산(초기 버전)
    • 텍스처 좌표 전달
    • 노멀 벡터 계산

    정점은 대개 모델의 골격이므로 여기서 계산이 잘못되면 전체 그림이 뒤틀립니다.


    5. Primitive Assembly - 선/삼각형 만들기

    대부분의 3D 모델은 삼각형(triangle)으로 구성됩니다. 정점이 GPU 내부에서 삼각형으로 조립되며 이 삼각형이 래스터화 과정으로 보내집니다.


    6. Rasterization - 3D를 2D 픽셀로 바꾸는 마법

    래스터화는 GPU 파이프라인의 핵심입니다. 3D 삼각형을 화면 좌표의 픽셀 단위로 분해하는 과정입니다.

     

    래스터화는 다음 두 가지를 정의합니다:

    1. 어떤 픽셀이 해당 삼각형 안에 있는가?
    2. 픽셀 내부에서 어디가 해당 위치에 대응하는가? (보간)

    이때 생성되는 작은 단위를 프래그먼트(Fragment)라고 합니다. 픽셀 셰이더는 프래그먼트를 대상으로 실행됩니다.


    7. Pixel/Fragment Shading - 색과 빛의 계산

    프래그먼트 셰이더는 화면의 색깔과 조명, 텍스처를 계산합니다.

     

    역할:

    • 텍스처 샘플링
    • 조명(Phong, Blinn-Phong, PBR 등)
    • 그림자, 반사
    • 안티앨리어싱
    • 투명도
    • 포스트 프로세싱(블룸, 모션블러 등)

    프래그먼트 셰이더는 그래픽의 품질을 좌우하는 화가(Paint artist) 역할입니다.


    8. 텍스처 유닛(Texture Unit) - GPU의 무한 캔버스

    텍스처 유닛은 프래그먼트 셰이더에서 요청하는 텍스처 이미지(바닥, 벽, 질감 등)를 샘플링해 제공한다.

     

    기능:

    • 텍스처 필터링 (Bilinear, Trilinear)
    • Mipmapping
    • 텍스처 좌표 보간
    • 해상도 변환

    게임 엔진에서 텍스처 최적화가 중요한 이유가 여기에 있다.


    9. Z-Buffer / Depth Test - 앞뒤를 구분해야 한다

    프래그먼트가 화면에 그려지기 전 깊이 값(Z)을 비교해 더 앞쪽에 있는 픽셀만 출력합니다.

     

    이 과정을 통해 아래 처리를 정확하게 합니다.

    • 셀프 오클루전
    • 캐릭터 앞뒤
    • 포개진 오브젝트 처리

    10. ROP(Output Merger) - 최종 픽셀 조립

    ROP(Render Output Unit)는 프래그먼트 셰이더에서 계산한 색·깊이 정보를 받아 최종 픽셀로 합성합니다.

     

    기능:

    • 블렌딩
    • 안티앨리어싱
    • 스텐실 처리
    • 깊이 테스트 결과 반영

    이 단계에서 모든 화면이 한 장의 이미지로 완성됩니다.


    11. GPU 내부 구조와 파이프라인의 연결

    GPU는 SM 내부에 다음 요소들을 포함하고 있습니다.

    • 셰이더 코어
    • 텍스처 유닛
    • 레지스터 파일
    • L1 캐시
    • Shared Memory
    • Warp 스케줄러

    이 구조가 그래픽 파이프라인 단계와 긴밀하게 연결됩니다.

     

    예:

    • Vertex Shader → SM + 레지스터
    • Rasterizer → 고정 기능
    • Fragment Shader → SM + 텍스처 유닛
    • ROP → 별도의 하드웨어 블록

    각 단계는 GPU 메모리 계층(L2, VRAM)과 계속 상호작용합니다.


    12. 비유하자면 - “화가 + 카메라 + 광원 스튜디오”

    GPU 파이프라인을 이해하려면 다음처럼 비유하면 쉽습니다.

    • Vertex Shader = 조각가(모양을 잡는다)
    • Rasterizer = 사진기(3D를 2D로 변환)
    • Pixel Shader = 화가(색과 빛을 칠한다)
    • ROP = 인쇄기(최종 결과물을 종이에 찍어낸다)

    GPU는 한 장면을 구성하기 위해 이 모든 작업을 수백만 번 반복합니다.


    13. 기술의 진화 - Raster → Compute → Hybrid 시대

    최근 그래픽 파이프라인은 크게 바뀌고 있습니다.

    13-1. Compute Shader 기반 그래픽

    언리얼·유니티·웹 GPU 등에서 Compute 기반 렌더링 기법이 늘어나고 있습니다. (예: 타일 기반 딜레이드 렌더링)

    13-2. 레이트레이싱(Ray Tracing)

    삼각형 기반 래스터화 대신 빛을 물리적으로 계산하는 방식. RT Core, BVH 구조 등이 활용됩니다.

    13-3. AI 기반 업스케일링

    DLSS, FSR, XeSS 등 픽셀 품질을 AI가 보정하는 시대가 왔습니다.


    14. 오늘날 활용 - 게임, 영화, AI, 산업 전반

    GPU 파이프라인은 아래와 같은 모든 시각 컴퓨팅의 기반 기술입니다.

    • AAA 게임
    • VFX 영화
    • 시뮬레이션
    • 의료 영상
    • AR/VR
    • 자율주행 센서 처리

    15. 요약

    • GPU는 그래픽 파이프라인을 통해 3D → 2D 이미지를 계산한다.
    • Vertex → Raster → Pixel → ROP 순으로 처리된다.
    • 텍스처·Z-buffer·캐시·ROP 등이 품질과 속도를 결정한다.
    • 현대 GPU는 그래픽과 GPGPU 연산을 모두 처리하는 혼합 구조다.

    16. 다음 편 예고

    GPU가 어떻게 범용 연산 엔진(GPGPU)으로 확장되었는지, Tensor Core·NPU·Matrix Engine의 세계로 들어갑니다.

     

    다음 글 : [하드웨어 뜯어보기] GPU #43 - GPGPU와 AI 가속기