DirectX/[AssortRock] DirectX11 2D

230113_D2D 삼각형 그리기 예습

헛둘이 2023. 1. 14. 12:31

1. 버퍼 생성

ID3D11Buffer는 GPU 메모리에 저장된 버퍼를 의미한다.

주로 버텍스데이터, 인덱스데이터, 상수 데이터를 저장할 때 사용된다.

ID3D11Buffer를 사용하면 GPU에서 사용할 데이터를 저장할 수 있고,

이를 통해 정점 쉐이더, 픽셀 쉐이더에 전달할 수 있다.

용도에 따라 정점 버퍼, 인덱스 버퍼, 상수 버퍼 등으로 분류할 수 있다.

 

2. 쉐이더 생성

쉐이더 코드 HLSL, GLSL로 작성되며 는 GPU가 이해할 수 있는 바이너리로 컴파일되어야 한다.

ID3DBlob는 컴파일된 쉐이더 코드를 저장하는데 사용된다.

 

ID3D11VertexShader는 3D 모델의 정점 데이터를 처리하는데 사용되는 정점 쉐이더를 나타낸다.

정점 쉐이더는 3D 모델의 정점 데이터를 가지고 투영변환, 조명, 텍스쳐 매핑 등의 처리를 해서,

픽셀 쉐이더로 전달하기 위한 준비를 한다.

 

ID3D11PixelShader는 픽셀을 처리할 때 사용되는 픽셀 쉐이더를 나타낸다.

픽셀 쉐이더는 그래픽 카드에 그려진 픽셀들을 처리하는데 사용되며, 

조명, 텍스쳐, 투명도에 따라 색을 입혀서 그래픽 카드에 그려진 결과를 최종 결과로 만드는 작업을 한다.

 

3. 레이아웃 생성

ID3D11InputLayout은 정점 쉐이더에 전달되는 데이터의 레이아웃을 설정하는데 사용된다.

예를 들어 정점데이터는 위치, 색상 등에 대한 정보를 가질 수 있다.

이러한 구성은 더 다양해질 수 있는데, 이 객체를 사용하면 정점 쉐이더에

어떤 정점 데이터가 어떤 형식으로 전달되는지 정의할 수 있다.

 

4. 뷰포트 생성

D3D11_VIEWPORT는 화면에서 렌더링될 범위를 지정하는데 사용된다.

화면에서 어느 영역을 렌더링할 지를 정의할 수 있고 3D를 2D로 투영하는데 사용된다.