Übungung 6 - Fliegender Pac Man

hwuerz
Erstie
Erstie
Beiträge: 16
Registriert: 10. Nov 2016 14:56

Übungung 6 - Fliegender Pac Man

Beitrag von hwuerz » 29. Nov 2017 17:25

Hallo,

wir hängen im Moment an dem Praxisteil der Übung P6.2 Dort sollen wir den PacMan animieren. Allerdings fliegt dieser bei uns zur Zeit immer mit dem Licht in der Gegend rum, obwohl laut Aufgabenstellung das Objekt an der linken Seite stehen sollte. Dabei verstehen wir nicht, weshalb das so ist, zumal wir nirgends eine Bewegung eingetragen haben. Selbst wenn wir in der pacman.vert.glsl gl_Position = vec4(0,0,0, 1.0); setzen bewegt sich PacMan weiterhin. Wir haben nicht so eine richtige Idee, an welcher Stelle wir ihn festsetzen können. Kann uns da jemand einen kleinen Tipp geben?

Viele Grüße
Hendrik

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

Re: Übungung 6 - Fliegender Pac Man

Beitrag von RobDangerous » 29. Nov 2017 17:28

Hält PacMan vielleicht das Licht für eine seiner Pillen? Ist nur geraten, aber es klingt für mich, als würdet Ihr eine Translationsmatrix immer wieder draufmultiplizieren - als hättet Ihr vergessen, irgendetwas per Frame zurückzusetzen.

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

Re: Übungung 6 - Fliegender Pac Man

Beitrag von Jannis » 1. Dez 2017 08:30

Wir haben den Fehler gefunden:

In Sources/pacman.frag.glsl ist time definiert als vec4. Bei manchen Systemen wird das auch scheinbar einfach akzeptiert und alles funktioniert wie gewollt. Bei anderen kompiliert zwar alles, aber beispielsweise hat Pac-Man dann keine Farbe und fliegt immer hinter dem Licht her. Wenn man den Typ an dieser Stelle zu float ändert, funktioniert es auch auf diesen Systemen.

Viele Grüße,
Jannis

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

Re: Übungung 6 - Fliegender Pac Man

Beitrag von RobDangerous » 1. Dez 2017 08:44

Hui, vielen Dank, Pac Man erweist sich als etwas buggy. Habe den Fix fix übernommen.
OpenGL ist ziemlich fehlertolerant und lässt einem viel Unsinn durchgehen, siehe auch viewtopic.php?f=557&t=37277 - anderswo (generell, überall sonst) wird dann einfach im GPU-RAM Speicher überschrieben.

Antworten

Zurück zu „Archiv“