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;
}
|