D3D11CreateDevice
Device와 DeviceContext를 만드는 것이 주된 함수이다.
DirectX 버전 설정 가능.
DXGI_SWAP_CHAIN_DESC
스왑체인의 정보를 담는 구조체이다.
더블 버퍼링을 위해 두개의 버퍼를 교체하는데 이것을 스왑체인이라고 한다.
백버퍼 해상도, 프레임 레이트 설정 가능.
device->CreateRenderTargetView
RenderTargetView 설정하는 함수이다. 예제 프레임워크에서는 처음에 RenderTargetView를 SwapChain의 백버퍼로 설정한다. RenderTargetView는 여러개가 존재할 수 있으며 SwapChain의 백버퍼 말고 다른것으로도 설정 가능하다.
ID3D11Texture2D
백버퍼의 자료형이다.
픽셀의 색깔 값을 2차원 배열 형태로 저장하고 있다고 생각하면 된다.
context->RSSetViewport
RS는 Rasterization Stage의 줄임말로 Viewport를 설정하는 함수이다.
Viewport는 실제로 보이는 화면으로 D3D11_VIEWPORT구조체를 통해 Viewport의 정보들을 설정할 수 있다.
NDC좌표계에서 Viewport(래스터 화면) 좌표계로 변환하는 것을 포함한다. (RS가 붙어있는 이유)
Viewport 해상도, 깊이 설정 가능.
device->CreateRasterizerState
RasterizeState를 설정하는 함수이다.
D3D11_RASTERIZER_DESC 구조체를 통해 State를 설정할 수 있다.
FillMode, CullMode 설정 가능.
device->CreateTexture2D
depthstencilbuffer을 설정하는 함수이다. Texture는 DepthStencilBuffer을 만들기 위한 버퍼이다.
D3D11_TEXTURE2D_DESC 구조체를 통해 Texture을 읽어 깊이 정보를 저장한다.
Texture의 Usage를 설정할 수 있는데 GPU가 읽고 쓰기가 가능한지(DEFAULT), 읽기만 가능한지(IMMUTABLE),
CPU가 쓰기 가능한지 (DYNAMIC), GPU가 CPU로 보낼 수 있는지 (STAGING)설정한다.
device->CreateDepthStencilView
만든 텍스쳐 버퍼를 바탕으로 DepthStencilView를 만든다.
device->CreateDepthStencilState
DepthStencilView를 어떤 상태로 사용할지 D3D11_DEPTH_STENCIL_DESC구조체를 통해 설정한다.
'그래픽스' 카테고리의 다른 글
| [그래픽스] 투영 변환에서 z값을 나누는 시점 (0) | 2023.07.18 |
|---|---|
| [그래픽스] 렌더링 파이프라인 (0) | 2023.07.18 |
| [그래픽스] non-uniform scaling에서 normal vector 변환 (0) | 2023.06.04 |
| [그래픽스] Row-Major vs Column-Major (0) | 2023.05.30 |
| [그래픽스] Blinn Phong으로 lighting 계산하기(halfway vector) (0) | 2023.05.29 |