0

オブジェクトを単独で翻訳することはできませんでした。翻訳しようとすると、代わりに全世界が翻訳されます。

なぜこれが起こっているのか誰にも考えがありますか?

d3ddev->SetStreamSource(0, v_buffer[2], 0, sizeof(CUSTOMVERTEX));       
d3ddev->SetIndices(i_buffer[2]);                                        
d3ddev->SetTexture(0, texture[1]);

D3DXMATRIX matTranslate;
D3DXMatrixTranslation(&matTranslate, 30.0f, 0.0f, 30.0f);
d3ddev->SetTransform(D3DTS_WORLD, &matTranslate);
d3ddev->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, 24, 0, 12);
4

1 に答える 1

0

D3D デバイスはステート マシンとして機能します。ワールド変換マトリックスのように、デバイスに何らかの状態を設定すると、複数の描画呼び出し間で保持されます。オブジェクトを描画した後、変換されないように、シーンの残りの部分を描画する前に、ワールド変換を恒等行列に戻す必要があります。

D3DXMATRIX matIdentity;
D3DXMatrixIdentity(&matIdentity);
d3ddev->SetTransform(D3DTS_WORLD, &matIdentity);
于 2016-03-21T18:10:16.970 に答える