求助DirectX的物体变换问题{Shader部分}!SetMatrix!
以下是我不懂的片段。。这段片段是画若干个球在屏幕上!
然后每隔10就放一个球!
1.不懂为什么要先D3DXMatrixInverse(&WIT, 0, &W);
D3DXMatrixTranspose(&WIT, &WIT);
2.HR(mFX->SetMatrix(mhWVP, &(W*mView*mProj)));
HR(mFX->SetMatrix(mhWorld, &W));
HR(mFX->SetMatrix(mhWorldInvTrans, &WIT));
这边的三个SetMatrix分别有什么用呢?
为什么这样就能把物体给变换好了呢?原先不是要用SetTransform么?
for(int z = -30; z <= 30; z+= 10) { D3DXMatrixTranslation(&W, -10.0f, 7.5f, (float)z); D3DXMatrixInverse(&WIT, 0, &W); D3DXMatrixTranspose(&WIT, &WIT); HR(mFX->SetMatrix(mhWVP, &(W*mView*mProj))); HR(mFX->SetMatrix(mhWorld, &W)); HR(mFX->SetMatrix(mhWorldInvTrans, &WIT)); HR(mFX->CommitChanges()); HR(mSphere->DrawSubset(0)); }