nach langer Zeit habe ich endlich mal wieder Zeit mich mit DirectX zu beschäftigen. Ich habe angefangen ein kleines Framework zu schreiben, um ein wenig mit Shadern in DX11 rumzuspielen. Um mal mehr als nur ein Terrain anzuzeigen.
Um Models zu laden habe ich mir Assimp angeschaut und eingebunden. Es ist wirklich einfach die Bibliothek einzubinden. Da die Macher von Assimp hier auch unterwegs sind sage ich schon mal großen Respekt dafür :D
Nun zum Problem:
Zum Testen habe ich das Crytek Sponza Modell genommen und noch anderes Sponzamodell gefunden. Ich baue die Hierarchie aus den aiNodes auf.
Folgendermaßen lade ich die Matrix ein:
Code: Alles auswählen
D3DXMATRIX* mat = (D3DXMATRIX*)&node->mTransformation;
D3DXMATRIX world;
D3DXMatrixTranspose(&world,mat);
Code: Alles auswählen
pworld = (D3DXMATRIX*)dev->getEffectParameter(String(L"MATRIX_WORLD"));
if(pworld)
{
origworld=*pworld;
D3DXMatrixMultiply(&world,pworld,&m_world);
}
dev->updateEffectParameter(String(L"MATRIX_WORLD"),&world);
Die Objekte sind nun auch alle da, aber nicht da, wo sie hingehören.
Ich habe auch im AssimpViewer-Code geschaut, wie es dort gemacht wird, habe aber keine Stelle gefunden, wo die mTransformation benutzt wird. Der Viewer kann allerdings die Models richtig anzeigen.
Hat jemand einen Tipp für mich, was ich falsch mache?
Grüße