아래 내용에 덧붙이자면
동일한 정점구조를 동시에 멀티로 세팅하고 싶을때 사용하거나
그냥 일반적으로 사용하기도 한다
멀티로 사용할때는
LPDIRECT3DVERTEXBUFFER9 g_pVertexBuffer0 = NULL;
LPDIRECT3DVERTEXBUFFER9 g_pVertexBuffer1 = NULL;
처럼 멀티로 돌릴 개수만큼 정점버퍼를 생성해줘야한다
http://blog.naver.com/red_n_hot/60004005539
LPDIRECT3DVERTEXDECLARATION9 m_pVertexDeclaration;
//ㄴ 버텍스 정의하는 변수!? 를 만들어 주고
D3DVERTEXELEMENT9 dwDecl3[] =
{
{0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},
D3DDECL_END()
};
//ㄴ 정점선언 이랄까나..
첫번째인자 스트림 몇번째인지
두번째 옵셋~!? 시작(0)으로부터 @@?? 아니아니... 어디서부터 사용할껀지.. ex)12바이트 까지 사용됬삼
세번째 타입 얼마나 사용할껀지 ex) D3DDECLTYPE_FLOAT3
네번째 메써드 디퍼트!? 디포트!? 몰라 이건
다섯번째 어떻게 사용할찌.. ex) D3DDECLUSAGE_POSITION 포지션에대한
여섯번째 ex)텍스트 인덱스에 사용
typedef struct D3DVERTEXELEMENT9 {
WORD Stream;
WORD Offset;
BYTE Type;
BYTE Method;
BYTE Usage;
BYTE UsageIndex;
} D3DVERTEXELEMENT9, *LPD3DVERTEXELEMENT9;
//-----------------------------
//---------------------------------
struct CUSTOMVERTEX
{
FLOAT x, y, z; // 공간상의 위치값
};
//ㄴ 사용하던데로 만들어 놓는다.
pd3dDevice->CreateVertexDeclaration(dwDecl3, &m_pVertexDeclaration);
pd3dDevice->SetVertexDeclaration(m_pVertexDeclaration);
//ㄴ 다이렉트엑스 sdk 레퍼런스에 요롷게 사용하랜다.
pd3dDevice->CreateVertexBuffer(
8*sizeof(CUSTOMVERTEX), // 버퍼
D3DUSAGE_WRITEONLY, // 만들어진 버퍼의 성격 (읽기전용)
NULL, // 버퍼 포맷(구조)
D3DPOOL_DEFAULT, // 메모리를 어느 영역에 할당할 것인가?
&m_pTriVB, NULL );
//ㄴ 여기서 겁나 해멧삼.. 기존 FVF 포멧을 요구하는데.. NULL 제로 값을 넣어주면 포멧 무시하겠단다.
CUSTOMVERTEX v[] =
{
{ -1, 1, 1 }, /// v0
{ 1, 1, 1 }, /// v1
{ 1, 1, -1 }, /// v2
{ -1, 1, -1 }, /// v3
{ -1, -1, 1 }, /// v4
{ 1, -1, 1 }, /// v5
{ 1, -1, -1 }, /// v6
{ -1, -1, -1 }, /// v7
};
//ㄴ 요래요래 값을 넣어주고
VOID* pVertices;
m_pTriVB->Lock( 0, sizeof(v), (void**)&pVertices, 0 );
memcpy( pVertices, v, sizeof(v) );
m_pTriVB->Unlock();
//ㄴ 하던데로 하면됨
//-------------------------------그리는곳-----------------------------------
pd3dDevice->SetStreamSource(0, m_pTriVB, 0, sizeof(CUSTOMVERTEX));
pd3dDevice->SetIndices( m_pTriLB );
//ㄴ FVF 로 했던데로 하면된다.
//pd3dDevice->SetFVF( CUSTOMVERTEX::FVF ); 이런거 안해줘도됨
위 포스트ㅏ에 덧붙이자만..
_pD3dDevice->SetVertexDeclaration( _pDecl ); 은 써야함
[출처] D3DVERTEXELEMENT9 응? FVF 응응?! 으응~|작성자 백구님
'그래픽스(Graphics) > DirectX9~12' 카테고리의 다른 글
D3DXCreateTextureFromFile 함수 (0) | 2013.01.22 |
---|---|
다중스트림 셰이더 (0) | 2013.01.21 |
Fast Object Picking (0) | 2013.01.19 |
게임 이펙트에서의 D3DRS_ZWRITEENABLE의 사용 (1) | 2013.01.19 |
D3DDECLTYPE_D3DCOLOR , D3DDECLUSAGE_COLOR (0) | 2013.01.16 |