『Lena's by ☆볶기!!』: Restart !!

Rorolena
IndexBuffer를 이용한 Color Cube만들기


용책을 기준으로
IndexBuffer를 이용하여
Color가 들어간 Cube를
만들어 보았습니다.

주요 내용은 다음과 같습니다.

Vertex와 Index를 선언)_
IDirect3DVertexBuffer9* VB = 0;
IDirect3DIndexBuffer9* IB = 0;

구조체 생성 및 설정)_
struct Vertex
{
Vertex(){}
Vertex(
FLOAT x, FLOAT y, FLOAT z, D3DCOLOR c)
{
_x = x; _y = y; _z = z; _color = c;
}

FLOAT _x, _y, _z;
D3DCOLOR _color;

static const DWORD FVF;
};

const DWORD Vertex::FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE;

형상 형성 및 구성)_
Device->CreateVertexBuffer(
  8 * sizeof(Vertex),
  D3DUSAGE_WRITEONLY,
  Vertex::FVF,
  D3DPOOL_MANAGED,
  &VB,
  0);

...

Device->CreateIndexBuffer(
  36 * sizeof(WORD),
  D3DUSAGE_WRITEONLY,
  D3DFMT_INDEX16,
  D3DPOOL_MANAGED,
  &IB,
  0);

....

스테이트 파라미터를 설정)_
Device->SetRenderState(D3DRS_LIGHTING, FALSE);

만든 Cube를 출력)_
Device->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, 36, 0, 12);

다쓴 Vertex와 Index를 반환)_
 d3d::Release<IDirect3DVertexBuffer9*>(VB);
 d3d::Release<IDirect3DIndexBuffer9*>(IB);

이 소스의 완성 모습은 다음과 같습니다.

'개발실 ◐ ━━ > DirectX' 카테고리의 다른 글

World Transformation(월드 변환)  (0) 2012.01.30
Rendering Pipeline 과정  (0) 2012.01.30
다이렉트 초기화  (2) 2012.01.14
Direct3D Architecture(Direct3D 9)에 관한 이해  (4) 2012.01.14