Dx11

[DirectX11] Index 버퍼 생성하기

겜도리도리 2023. 6. 20. 12:50
반응형

개요

DirectX11에서 Vertex 버퍼를 생성하는 방법에 대해 서술한다.

이 내용은 DirectX11을 이용한 3D게임 프로그래밍 입문의 내용을 읽고 정리했습니다.

 

예제 코드

Index 버퍼를 생성하는 것은 Vertex 버퍼를 생성하는 것과 비슷하다.

 

 

Index 버퍼를 서술하는 구조체를 채우고, 데이터를 지정한다.

 

생성한 구조체와 데이터로 Index 버퍼를 생성한다.

 

생성 이후에는 Index 버퍼를 파이프라인에 묶어줘야 한다. 묶는 데에는 ID3D11DeviceContext의 IASetIndexBuffer를 사용한다.

 

Format : Index의 형식을 뜻한다. 여기서는 부호 없는 정수를 사용하므로 DXGI_FORMAT_R32_UINT를 사용한다. 이 형식은 D3D11_BUFFER_DESC::ByteWidth 멤버에도 있으므로, 변경 사항이 누락되지 않도록 주의한다.

Offset : 바이트 단위의 오프셋으로, Index 데이터를 읽기 시작할 위치를 나타낸다. 일부 데이터를 건너 뛰고 싶을 때 적절히 지정해주면 된다.

 

Index 버퍼를 파이프라인에 묶어주는 코드

 

 

Index 버퍼를 사용하여 기본도형을 그릴 때에는 Draw 메서드 대신 DrawIndexed 메서드를 이용한다.

 

IndexCont : 그리기 호출에서 사용할 Index의 개수. 꼭 모든 Index를 그려주지는 않아도 된다.

StartIndexLocation : 첫 Index 위치

BaseVertexLocation : Vertex를 가져오기 전에, 그리기 호출에서 사용할 Index에 더해지는 정수값.

 

.DrawIndexed 메서드를 사용하는 예제 코드

반응형

'Dx11' 카테고리의 다른 글

[DirectX11] Vertex 버퍼 생성하기  (0) 2023.06.09
[DirectX11] DirectX11초기화  (0) 2023.05.31