버텍스 버퍼

    버텍스 버퍼, 인덱스 버퍼, 컨스턴트 버퍼

    버퍼는 메모리에서 데이터를 보관하기 위해 사용되는 공간을 의미한다. 컴퓨터 그래픽스에서는 주로 GPU의 메모리에서 데이터를 보관하기 위해 사용되는 공간을 의미한다. 주로 사용되는 버퍼는 다음과 같다. 버텍스 버퍼: 물체를 구성하는 각 정점에 대한 정보를 보관하는 용도로 사용된다. 일반적으로 위치, 색, 노말 벡터의 값 등이 포함된다. 인덱스 버퍼: 버텍스 버퍼를 통해 만들어진 정점 정보를 기반으로 각 정점의 순서를 정의하는 용도로 사용된다. 컨스턴트 버퍼: 쉐이더에서 사용할 상수들을 모아 놓은 버퍼이다. Model, View, Projection 정보가 일반적으로 포함된다. 1. D3D11_BUFFER_DESC DX에서 GPU에서 사용할 버퍼에 대한 설정을 하기 위해서는 D3D11_BUFFER_DESC을..

    DirectX 11 도형 출력(버텍스 버퍼, 버텍스 쉐이더, 픽셀 쉐이더 설정)

    DX11에서 도형을 화면에 출력하기 위해선 도형의 각 정점(=버텍스) 정보를 담고 있는 버텍스 버퍼가 필요하다. 버텍스 버퍼는 CPU 메모리에 존재하는 도형의 버텍스 정보를 GPU 메모리로 이동시켜 GPU가 사용할 수 있도록 버퍼에 담아둔 것을 의미한다. 1. 버텍스 정보 구조체 가장 먼저 할 일은 버텍스의 정보를 표현할 구조체를 정의하는 것이다. 도형이 3차원 가상 공간에 있다고 가정을 하고, 그 도형의 x, y, z 좌표 값을 나타낼 수 있는 값과 색을 설정할 경우를 대비해 색 정보를 함께 포함할 것이다. 따라서 구조체는 다음과 같은 형태로 정의할 수 있다. // 편의를 위해 DirectXMath 헤더에 있는 XMLFLOAT3, 4를 using 구문을 이용해 Vec3, Color로 사용함 struct..