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

Dofter

Treue Seele

  • »Dofter« ist der Autor dieses Themas

Beiträge: 159

Wohnort: im wunderbaren EBERMANNSTADT

Beruf: Schüler^^

  • Private Nachricht senden

11

24.07.2006, 19:05

also ich hab etzt

C-/C++-Quelltext

1
mRotationZ = tbMatrixRotationZ(::fmodf (TB_DEG_TO_RAD(20.0f * g_fTime), 2.0f*TB_PI));       // Rotationsmatrix

geschrieben

tut sich imma noch nix

(TExtur is nicht Symetrisch)
"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und keiner ginge,
um zu sehen, wohin wir kämen, wenn wir gingen"

rklaffehn

Treue Seele

Beiträge: 267

Wohnort: Braunschweig

  • Private Nachricht senden

12

24.07.2006, 22:21

Zitat von »"Steven77"«

Es tut sich nix, weil du ja stets die Zeit seit dem letzten Frame verwendest. Diese Zeit ist erstens sehr klein und zweitens in allen Frames relativ identisch bzw. nur minimal abweichend. Insofern wird für jeden Frame annähernd dieselbe Rotation berechnet -- da dreht sich also nix, vielleicht bemerkst du aber ein feines "Zittern"...
Wenn du die Zeiten der einzelnen Frames addierst, erhälst du einen brauchbaren Zeitwert.


Das gilt natürlich, egal wie man den Winkel berechnet. Was du brauchst, ist nicht die Zeit seit dem letzen Frame, sondern die komplette Zeit seit start (modulo 2pi)

Gruss,
Rainer
God is real... unless declared integer.
http://www.boincstats.com/signature/user_967277_banner.gif

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

13

25.07.2006, 09:15

dirty style:

C-/C++-Quelltext

1
2
3
static float fTotalTime = 0;
fTotalTime += g_fTime;
mRotationZ = tbMatrixRotationZ(::fmodf (TB_DEG_TO_RAD(20.0f * fTotalTime), 2.0f*TB_PI)); 
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Dofter

Treue Seele

  • »Dofter« ist der Autor dieses Themas

Beiträge: 159

Wohnort: im wunderbaren EBERMANNSTADT

Beruf: Schüler^^

  • Private Nachricht senden

14

25.07.2006, 11:54

g_fTime = die bei euch genannte total time
"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und keiner ginge,
um zu sehen, wohin wir kämen, wenn wir gingen"

rklaffehn

Treue Seele

Beiträge: 267

Wohnort: Braunschweig

  • Private Nachricht senden

15

25.07.2006, 12:11

Gemeint war folgendes: (Kommentare von mir)

Zitat von »"Nox"«

dirty style:

C-/C++-Quelltext

1
2
3
4
5
static float fTotalTime = 0; // Globale Zeit als statische Variable (böse)

fTotalTime += g_fTime; // Zeit seit letzem Frame addieren


// Rotation mit globaler Zeit berechnen

mRotationZ = tbMatrixRotationZ(::fmodf (TB_DEG_TO_RAD(20.0f * fTotalTime), 2.0f*TB_PI)); 


Alternativ und noch ein klein wenig besser ist folgendes, weil dabei kein float-Überlauf auftreten kann:

C-/C++-Quelltext

1
2
3
4
5
static float fTotalTime = 0; // Globale Zeit als statische Variable (böse)

fTotalTime = ::fmodf (fTotalTime + g_fTime, 2.0f * TB_PI); // wird nie größer als 2pi


// Rotation mit globaler Zeit berechnen

mRotationZ = tbMatrixRotationZ(TB_DEG_TO_RAD(20.0f * fTotalTime)); 


Gruss,
Rainer
God is real... unless declared integer.
http://www.boincstats.com/signature/user_967277_banner.gif

CW_Kovok

Alter Hase

Beiträge: 836

Wohnort: nähe Bonn

Beruf: Schüler

  • Private Nachricht senden

16

25.07.2006, 13:08

oder multiplizier die Rotationsmatritzen einfach

btw setz die Matrix doch einfach mal als Texturmatrix ein(via SetTransform) und guck mal was er macht
Was es alles gibt, das ich nich brauche - Aristoteles

Dofter

Treue Seele

  • »Dofter« ist der Autor dieses Themas

Beiträge: 159

Wohnort: im wunderbaren EBERMANNSTADT

Beruf: Schüler^^

  • Private Nachricht senden

17

25.07.2006, 16:39

rklaffehn : ich habs umgeschrieben, geht aba immer noch nich.

CW_Kovok : ich weis nicht was du meinst
"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und keiner ginge,
um zu sehen, wohin wir kämen, wenn wir gingen"

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

18

25.07.2006, 18:08

Kovuk meint, du solltest TextureCoords transformieren... kann man besser beobachten was passiert... Da gibts eben bestimmte Möglichkeiten, wie man transformationsmatrizen für TexCoords setzt... --> Siehe SetTransform
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

Dofter

Treue Seele

  • »Dofter« ist der Autor dieses Themas

Beiträge: 159

Wohnort: im wunderbaren EBERMANNSTADT

Beruf: Schüler^^

  • Private Nachricht senden

19

25.07.2006, 20:10

wenn ihr das meint:

C-/C++-Quelltext

1
2
3
4
tbVector2TransformCoords(g_aTriangleVertex[0].vTexture, mRotationZ);
    tbVector2TransformCoords(g_aTriangleVertex[1].vTexture, mRotationZ);
    tbVector2TransformCoords(g_aTriangleVertex[2].vTexture, mRotationZ);
    tbVector2TransformCoords(g_aTriangleVertex[3].vTexture, mRotationZ);


dann mus ich sagen, dass ich das schon die ganze Zeit so mache.

(und da verä´ndert sich nix an den Variablen)
"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und keiner ginge,
um zu sehen, wohin wir kämen, wenn wir gingen"

Steven77

Alter Hase

Beiträge: 515

Wohnort: Münster - Gievenbeach

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

20

25.07.2006, 21:08

Ich weiß ja nicht, wie groß dein gesamter Code ist, aber so wild wird's nicht sein. Es wird an der Zeit, uns mal den gesamten Code zu präsentieren, vielleicht liegt der Fehler bzw. die Fehlerursache ganz woanders...
Kommen Sie nie mit einem Schwert zu einer Schießerei.

Werbeanzeige