개발/DX11

[DX11] Device 초기화 및 렌더링

by Majangnan 2024. 5. 6.

Device 초기화 작업

 

  • Device, Context 생성
  • Swap Chain 생성
  • View 생성
  • 출력 병합 단계

 

Device, Context 생성

 

Device : 객체를 생성하고, GPU에 메모리 할당 담당

Context : 렌더링 작업 담당

 

D3D11CreateDevice() : Device 생성 함

Swap Chain 생성

 

Swap Chain : 화면에 그림을 그리기 위한 버퍼를 관리하고 버퍼에 그려진 이미지를 화면에 출력하는 객체

Swap Chain이 관리하는 버퍼는 GPU 공간에 있음.

-> 백 버퍼와 프론트 버퍼를 Swap 하며 화면에 그리는 방식

 

1. DXGI_SWAP_CHAIN_DESC 구조체 설정 값

 

2. Swap Chain 객체 생성

__uuidof() 함수를 통해 객체 고유 아이디를 찾아서 포인터 변수에 받아옴.

받아온 Factory에서 CreateSwapChain()함수를 이용하여 Swap Chain 객체 생성

 

생성한 포인터 변수들은 DX11의 Release() 함수를 통해 삭제.

 

View 생성

 

View : 리소스들을 알맞은 곳에 연결해주는 역할 담당

 

그림을 그릴 용도로 RenderTarget을 요청하면 원본 RenderTarget 리소스를 전달하지 않고, RenderTarget용도의 View를 전달함.

전달된 View를 통해 원본 리소스도 전달됨.

 

View를 통해 전달하면 용도에 맞지 않는 리소스를 요청하였을 때, 전달 전 View를 생성하는 과정에서 View자체가 만들어지지 않아 원본 리소스를 검사할 필요가 없다.

 

RenderTargetView : 렌더 타겟 전달

DepthStencilView : 깊이 정보 텍스처 전달

 

1. D3D11_TEXTURE2D_DESC 구조체 설정 값 

 

 

2. View 생성

객체 생성 담당인 Device에 View 생성 함수가 있으므로 디바이스로 View 생성.

 

출력 병합 단계

 

Context에서 출력을 어디다 하는지 지정해 줌.

 

OMSetRenderTargets() 함수에 RenderTargetView 와 DepthStencilView 전달.

 

'개발 > DX11' 카테고리의 다른 글

[DX3D] 반사광  (0) 2024.10.10
[DX3D] 반사 벡터  (0) 2024.10.10
[DX3D] Cube Mesh  (0) 2024.10.07
[DX11] 렌더링 파이프라인  (0) 2024.05.09
[DX11] Release 함수  (0) 2024.05.08

댓글