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 |