1

IDirect3DDevice9::SetTransform の動作を妨げるものは何ですか? 私は Direct3D9 で変換行列を使用するための多くのチュートリアルを見てきまし。そして、私が知る限り、彼らは皆同じ​​ようにやっています。

テクスチャポリゴンを変換するためだけにコードを書こうとしています。D3DXMatrixTranslation で初期化されたマトリックスを使用して SetTransform を呼び出すと、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);
4

1 に答える 1

4

「D3DFVF_TLVERTEX」を設定します。これは、頂点バッファーに「Transform and Lit」頂点を提供していることを意味します。したがって、デバイスはこれらの頂点に変換マトリックスを適用しません。

于 2009-11-17T00:19:51.353 に答える