#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번 텍스쳐의 좌표를 이용해 그려지고 있습니다.

+ Recent posts