Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

30.01.2010, 13:16

tbVector2TransformCoords

Hi, bei der Aufgabe 2.6.11.2 wo man die Textur auf dem Dreieck verschieben soll wollte ich mal Spaßeshalber versuchen die Texturkoordinaten per Translationsmatrix zu verschieben. Das Problem ist aber das die Textur dann nur verzerrt angezeigt wird anstatt sich zu bewegen. wenn ich die Texturkoordinaten direkt von Hand veränder funktioniert alles wie es soll. Ich versteh gerade allerdings nicht wo das Problem ist.

Edit:kleinen Tippfehler korrigiert wird aber trotzdem verzerrt.

Edit2:Hab jetzt rausgefunden wo das Problem liegt. Die Matrizen müssen für die Verwendung mit 2D Vektoren noch extra verändert werden. Wird im Kapitel über Multi-Texturing erklärt.

Hier meine Move Funktion:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
tbResult Move(float fNumSecsPassed)
{
//funktioniert nicht:

    tbMatrix Matrix;
    Matrix=tbMatrixTranslation(tbVector3(0.5f*fNumSecsPassed,0.0f,0.0f));
    g_aTriangleVertex[0].vTexture=tbVector2TransformCoords(g_aTriangleVertex[0].vTexture,Matrix);
    g_aTriangleVertex[1].vTexture=tbVector2TransformCoords(g_aTriangleVertex[1].vTexture,Matrix);
    g_aTriangleVertex[2].vTexture=tbVector2TransformCoords(g_aTriangleVertex[2].vTexture,Matrix);
    
//funktioniert:

    //g_aTriangleVertex[0].vTexture.u   += 0.5f*fNumSecsPassed;

    //g_aTriangleVertex[1].vTexture.u   += 0.5f*fNumSecsPassed;

    //g_aTriangleVertex[2].vTexture.u   += 0.5f*fNumSecsPassed;


    // Zeitzähler erhöhen

    g_fTime += fNumSecsPassed;
    
    return TB_OK;
}