Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge

directx matrizen

Yves3 / 1 Antworten / Flachansicht Nickles

hallo


ich arbeite gerade ein directx tutorial durch http://www.resourcecode.de/view.php?id=2059


da ist alles ziemlich gut beschrieben, bis auf diesen teil code:


void SetupMatrices()
{
    D3DXMATRIXA16 matWorld;
    UINT  iTime  = timeGetTime() % 40000;
    FLOAT fAngle = iTime * (2.0f * D3DX_PI) / 40000.0f;
    D3DXMatrixRotationY( &matWorld, fAngle );
    g_pD3DDevice->SetTransform( D3DTS_WORLD, &matWorld );


    D3DXMATRIXA16 matView;
    D3DXVECTOR3 vEyePt( 0.0f, 3.0f,-5.0f );
    D3DXVECTOR3 vLookatPt( 0.0f, 0.0f, 0.0f );
    D3DXVECTOR3 vUpVec( 0.0f, 1.0f, 0.0f );
    D3DXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec );
    g_pD3DDevice->SetTransform( D3DTS_VIEW, &matView );


    D3DXMATRIXA16 matProj;
    D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, (float)g_iWidth/g_iHeight, 1.0f, 100.0f );
    g_pD3DDevice->SetTransform( D3DTS_PROJECTION, &matProj );
}


kann mir jemand detailiert sagen, was hier passiert und was die einzelnen werte bewirken?


vielen dank!!!

bei Antwort benachrichtigen
mr.escape Yves3 „directx matrizen“
Optionen

Im ersten abschnitt wird die lage der später zu zeichnenden objekte in der welt festgesetzt. Hier ist das eine fortlaufende drehung um den ursprung um die y-achse. Der drehwinkel hängt von der aktuellen zeit ab und nicht von der bildwiederholrate. Möglich sind drehung, verschiebung, skalierung inkl. spiegelung und alle kombinationen davon.

Der zweite abschnitt definiert die lage der virtuellen kamera von wo aus das ganze zu sehen sein wird, definiert durch die position (vEyePt), eine stelle, die genau in der bildmitte erscheint (vLookatPt) und die richtung, die oben erscheint (vUpVec).

Der letzte abschnitt definiert die eigenschaften der virtuellen kamera, hier die perspektivische projektion (alternativ auch isometrisch o.ä.) und die brennweite (bzw. die umkehrung field of view, öffnungswinkel).

In einem tutorial sollten aber solche grundbegriffe früher schon gefallen sein, evtl. nochmal zurückblättern.

mr.escape

"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen