2009-11-16 4 views
1

IDirect3DDevice9 :: SetTransform이 작동하지 않게하려면? 저는 this one here을 포함하여 Direct3D9에서 변환 행렬을 사용하기위한 튜토리얼을 많이 보았습니다. 그리고 제가 말할 수있는 한, 그들은 모두 그것을 똑같이합니다.D3D9에서 SetTransform을 사용할 수 없다.

나는 다각형을 번역하기 위해 코드를 작성하려고합니다. SetTransform을 D3DXMatrixTranslation으로 초기화 된 행렬로 호출하고 S_OK를 리턴합니다. 그러나 화면에 그려지는 실제 다각형은 변형되지 않습니다.

D3DXMATRIX m_Translation; 
D3DXMatrixTranslation(&m_Translation,100,100,0); 
d3dDevice->SetTransform(D3DTS_WORLD, &m_Translation); 

d3dDevice->SetFVF(D3DFVF_TLVERTEX); 
d3dDevice->SetStreamSource(0, vertexBuffer, 0, sizeof(TLVERTEX)); 

HRESULT hr = d3dDevice->DrawPrimitive(D3DPT_TRIANGLEFAN, 0, 2); 
+0

쉐이더를 사용하고 있습니까? – GManNickG

+0

@GMan : 아니요. 두 개의 폴리곤과 하나의 텍스처 만이 존재합니다. –

+0

그 코드는 실제 코드입니다. 다른 매트릭스도 설정했다고 가정합니까? (투사 및보기) – GManNickG

답변

3

당신이 때문에 장치가 이들 정점에 변환 행렬을 적용하지 않을, 정점 버퍼의 "변형 및 조명"정점 공급됨을 의미하는 "D3DFVF_TLVERTEX"로 설정.

+0

예, 분명히 변형 된 것은 "변덕스럽게 변형 될 수 없음"을 의미합니다. . –