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

14.10.2005, 17:09

Textur rotieren lassen

Hallo,

Ich wollte die Aufgabe 3 in Kapitel 2.6 machen in der man eine Textur rotieren lassen soll. Dann hab ich eine rotationsmatrix erstellt wie es im Tipp steht. Jetzt hab den 2D-Vektor für die Texturkoordinaten der SVertex - Struktur mit der Rotationsmatrix in der move - Funktion Transformiert. Wenn ich das Programm starte passiert aber iergendwie garnichts. Die Textursollte sich doch irgendwie bewegen oder?
Ich hoffe mirkann irgendjemand helfen.

2

14.10.2005, 20:27

C-/C++-Quelltext

1
2
3
tbMatrix m=tbMatrixRotationY(Rot);
m=tbMatrixToTex2D(m);
g_pD3DDevice->SetTransform(D3DTS_TEXTURE0,(D3DMATRIX*)&m);

Ich bin mir nicht ganz sicher, ob alles stimmt aber so ähnlich müsste es gehen.
Mein Projekt: Rise of the Sylvan

DarkFitzi

Alter Hase

Beiträge: 608

Wohnort: Eisenberg, Thüringen

Beruf: Schüler, 10te Klasse

  • Private Nachricht senden

3

14.10.2005, 22:08

endlich weis ich auch ma was: :wirbel: :wirbel: :wirbel: :wirbel: :wirbel: :wirbel: :wirbel:
Vergleich mal deinen Code damit: müsste funktionieren

In der Move Funktion

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Am Anfang der Move Funktion:

tbMatrix mRotZ = tbMatrixRotationZ(TB_DEG_TO_RAD(40.0f * fNumSecsPassed));  //Textur um 40° die Sekunde rotieren lassen


for(int iTriangle = 0; iTriangle < g_iNumTriangles; iTriangle++)
{
//........


      //Texturkoordinaten um die Z - Achse rotieren

      for (int iVertex = 0; iVertex < 3; iVertex++)
     {
         g_aTriangles[iTriangle].aVertex[iVertex].vTextur =
tbVector2TransformCoords(g_aTriangles[iTriangle].aVertex[iVertex].vTextur,mRotZ,NULL);
     }
//..........

}
Ich würde die Welt gern verbessern, doch Gott gibt mir den Sourcecode nicht! :-(

4

15.10.2005, 12:25

Danke hab nur vergessen das tbVector2TransfoormCoords einen Wert zurückgibt. ^_^ Mein Code hat so ausgesehen.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Am Anfang der Move Funktion: 

tbMatrix mRotZ = tbMatrixRotationZ(TB_DEG_TO_RAD(40.0f * fNumSecsPassed));  //Textur um 40° die Sekunde rotieren lassen 


for(int iTriangle = 0; iTriangle < g_iNumTriangles; iTriangle++) 
{ 
//........ 


      //Texturkoordinaten um die Z - Achse rotieren 

      for (int iVertex = 0; iVertex < 3; iVertex++) 
     { 
          
tbVector2TransformCoords(g_aTriangles[iTriangle].aVertex[iVertex].vTextur,mRotZ,NULL); 
     } 
//.......... 

}

Werbeanzeige