[Dx] 렌더링 파이프라인

2026. 7. 8. 23:26·DirectX

1. 렌더링 파이프라인

3D 씬 > CPU (Application) > GPU(Geometry, Rasterizer) > Image

 

Application: 렌더링 할 그래픽 데이터 로드

 

Geometry: 정점별 연산 수행 (메쉬 / 카메라 이동, 폴리곤의 빛 연산, 투영, 클리핑)

1. Lighting: 정점별 색을 계산한다.

2. Projection: 3D 메쉬를 2D 평면에 매핑한다.

3. Clipping: 프로젝션 후 화면 밖으로 벗어나는 영역을 자른다. depth 정보와 함께 다음 단계로 이동.

 

모델 좌표 > 월드 좌표 > 카메라 좌표 > 빛 계산 > 프로젝션 > 클리핑 > 출력

 

Rasterizer: 픽셀별 연산 수행 (보간, 텍스쳐링, Z-버퍼링)

1. Double Buffering (Swap chain): 프레임버퍼를 2개 사용해서 티어링 방지. 

DXGI_SWAP_CHAIN_DESC* //스왑체인 생성시 필요한 데이터 구조체
D3D11CreateDeviceAndSwapChain() → m_swapChain(IDXGISwapChain*) 생성
m_swapChain->GetBuffer() → 백버퍼 텍스처(ID3D11Texture2D*) 획득
device->CreateRenderTargetView() → m_renderTargetView(ID3D11RenderTargetView*) 생성

ClearRenderTargetView(m_renderTargetView)
//그리기
m_swapChain->Present() //스왑

 

2. Z-Buffering

폴리곤 변환시 Z값 저장

폴리곤 계산시 현재 화면의 Z값이랑 비교 후 현재 값보다 작으면 컬러버퍼 교체

 

3. Coloring & Texturing

폴리곤 내부 색상 보간, UV좌표에 맞춰 텍스쳐링

 

2. DirectX 렌더링 파이프라인

정점 쉐이더: 정점 위치를 모델 공간에서 클립 공간으로 변환, 정점별 빛 연산, Skeletal 메쉬 스키닝

헐 쉐이더: 

테셀레이터: 헐 쉐이더에서 지정된 테셀레이션 계수에 따라 테셀레이션 결정

도메인 쉐이더: 

지오메트리 쉐이더: 

스트림 출력: 기본 데이터를 GPU 메모리로 이동함. 이 데이터는 다시 렌더링 파이프라인으로 들어와 다른 쉐이더에서 사용 가능

래스터라이저: 뷰 프로스텀으로 자르고, 컬링 수행, 폴리곤의 면 보간

픽셀 쉐이더: 정점별 값을 이용해 픽셀별 색상 생성

 

쉐이더: GPU에서 실행되는, 3D 장면의 밝기 등의 색상을 계산하는 프로그램

HLSL(Dx), GLSL(OpenGL)

'DirectX' 카테고리의 다른 글

[Dx] 실습 1  (0) 2026.07.09
[Dx] 컴퓨터 그래픽스 기초  (0) 2026.07.06
'DirectX' 카테고리의 다른 글
  • [Dx] 실습 1
  • [Dx] 컴퓨터 그래픽스 기초
GRstory
GRstory
  • GRstory
    GRstory Blog
    GRstory
  • 전체
    오늘
    어제
    • 분류 전체보기 (39)
      • Unity (0)
      • Unreal (2)
      • DirectX (3)
      • 프로그래머스 (30)
      • GameReady Format (1)
      • AI (2)
      • ETC (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    omniverse
    GameReady
    OpenUSD
    SimReady
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
GRstory
[Dx] 렌더링 파이프라인
상단으로

티스토리툴바