Übung P8 - deltaT

Jannis
Mausschubser
Mausschubser
Beiträge: 63
Registriert: 15. Apr 2015 17:10

Übung P8 - deltaT

Beitrag von Jannis » 14. Dez 2017 14:02

Hallo!

Auf meiner Maschine nimmt deltaT aus der Vorlage in der ersten Iteration merkwürdige Werte an. Oftmals ist der Wert sehr groß (z.B. 59 statt 0.009), manchmal sogar negativ. Allein aus der Logik des Codes konnte ich nicht herausfinden, warum das der Fall sein sollte. Wenn ich jedoch in der ersten Iteration einfach gar nichts mache (deltaT = 0 überschreibe), dann funktioniert alles wie gewünscht.

Hat vielleicht jemand Ideen?

RobDangerous
Computerversteher
Computerversteher
Beiträge: 363
Registriert: 14. Okt 2014 17:05

Re: Übung P8 - deltaT

Beitrag von RobDangerous » 14. Dez 2017 14:54

Übliche Frage - was für ein System?

Jannis
Mausschubser
Mausschubser
Beiträge: 63
Registriert: 15. Apr 2015 17:10

Re: Übung P8 - deltaT

Beitrag von Jannis » 14. Dez 2017 15:15

Der Fehler tritt auf folgendem System auf:

Code: Alles auswählen

                   -`                 
                  .o+`                 
                 `ooo/                 OS: Arch Linux 
                `+oooo:                Kernel: x86_64 Linux 4.14.4-1-ARCH
               `+oooooo:               Uptime: 5h 26m
               -+oooooo+:              Packages: 934
             `/:-:++oooo+:             Shell: fish 2.7.0
            `/++++/+++++++:            Resolution: 1280x800
           `/++++++++++++++:           WM: i3
          `/+++ooooooooooooo/`         GTK Theme: xtomFlat [GTK2/3]
         ./ooosssso++osssssso+`        Icon Theme: Numix-Circle
        .oossssso-````/ossssss+`       Font: Droid Sans 11
       -osssssso.      :ssssssso.      CPU: Intel Core2 Duo L9400 @ 2x 1.867GHz [46.0°C]
      :osssssss/        osssso+++.     GPU: Mesa DRI Mobile Intel® GM45 Express Chipset 
     /ossssssss/        +ssssooo/-     RAM: 2397MiB / 3847MiB
   `/ossssso+/:-        -:/+osssso+-  
  `+sso+:-`                 `.-/+oso: 
 `++:.                           `-/+/
 .`                                 `/

(OpenGL version string: 2.1 Mesa 17.2.6)

RobDangerous
Computerversteher
Computerversteher
Beiträge: 363
Registriert: 14. Okt 2014 17:05

Re: Übung P8 - deltaT

Beitrag von RobDangerous » 14. Dez 2017 15:20

OK, schaue heute Abend zu Hause, ob ich das nachstellen kann.

RobDangerous
Computerversteher
Computerversteher
Beiträge: 363
Registriert: 14. Okt 2014 17:05

Re: Übung P8 - deltaT

Beitrag von RobDangerous » 14. Dez 2017 23:38

Ist repariert. Uninitialisierte Variable.

Jannis
Mausschubser
Mausschubser
Beiträge: 63
Registriert: 15. Apr 2015 17:10

Re: Übung P8 - deltaT

Beitrag von Jannis » 14. Dez 2017 23:59

Danke, dass du nachgeschaut hast! Leider hilft die nun initialisierte Variable in meinem Fall nicht weiter. Wenn ich mir im update()-Schritt oben die Zeiten ausgeben lasse, dann bekomme ich in seltenen Fällen (noch immer) sowas:

Code: Alles auswählen

startTime: 1513291904.000000
System::time(): 1513291872.893172
deltaT: -31.106875
Was mir irgendwie nicht logisch erscheint, da das ja bedeutet, dass update() in der Vergangenheit aufgerufen worden wäre..

Im Regelfall sieht das erste update etwa so aus:

Code: Alles auswählen

startTime:1513292032.000000
System::time():1513292072.315615
40.315584
Wobei alle übrigen Frames (nach dem ersten Aufruf) etwa so aussehen:

Code: Alles auswählen

startTime:1513292032.000000
System::time():1513292072.322055
0.006448
Das Hauptproblem an diesen Zeitwerten für den ersten update()-Aufruf ist, dass die Physik dann verrückt spielt. Aber wenn das Problem zu spezifisch ist, dann überspringe ich einfach weiterhin den ersten Zeitwert von update() durch deltaT = 0, das funktioniert ja :D.

RobDangerous
Computerversteher
Computerversteher
Beiträge: 363
Registriert: 14. Okt 2014 17:05

Re: Übung P8 - deltaT

Beitrag von RobDangerous » 15. Dez 2017 00:15

Das ist seltsam und passiert bei mir nicht. Wenn ich einfach t ausgebe (also time() - startTime), bekomme ich vom ersten Frame an eine aufsteigende Zahlenfolge, beginnend bei 0. Überspring' mal weiter das erste Update, aber wenn Du dazu was rausfindest, gib' mir Bescheid.

Antworten

Zurück zu „Archiv“