#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE|D3DFVF_TEX1) struct CUSTOMVERTEX { D3DXVECTOR3 position; /// 3차원 좌표 D3DCOLOR color; /// 색깔 FLOAT tu, tv; /// 텍스쳐 좌표 }; #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE|D3DFVF_TEX1|D3DFVF_TEX2) struct CUSTOMVERTEX { D3DXVECTOR3 position; /// 3차원 좌표 D3DCOLOR color; /// 색깔 FLOAT tu, tv; /// 텍스쳐1 좌표 FLOAT tu2, tv2; /// 텍스쳐2 좌표 };위 처럼 사용자 정의 정점 구조를 사용한다 할때, 여러장의 텍스쳐를 사용하려면 텍스쳐 좌표(UV)를 추가해주어야 텍스쳐가 정상적으로 출력됩니다. 하지만 SetTextureStageState에서 D3DTSS_TEXCOORDINDEX 옵션을 사용하면, 여러장의 텍스쳐를 1개의 좌표로 공유할 수 있습니다.
m_pDev->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, 0 ); // 0번 텍스처 : 0번 텍스처 인덱스 사용 m_pDev->SetTextureStageState( 1, D3DTSS_TEXCOORDINDEX, 0 ); // 1번 텍스처 : 0번 텍스처 인덱스 사용
위의 코드는 1번 텍스쳐가 0번 텍스쳐의 좌표를 이용해 그려지고 있습니다.