Ich würde sagen der Kollisionstest hat erstmal nichts mit OpenGL zu tun. Also dann wohl gar nicht
Es wäre beim umfangreichen Thema "Kollision" sicher sinnvoll wenn du mal etwas genauer beschreibst was du machen willst. Welche Art von Objekte sollten kollidieren? Reicht eine Abfrage "Kollision ja/nein?" oder willst du die Kollision auch behandeln, also das Objekte von einander abprallen, etc.
Wie vorher: ganz viel Würfel, in die nicht "Reingegangen" werden darf. Das heißt glrotatef und granslatef dürfen nicht in sie hinein sehen. Man soll einfach davor stehen und nicht weitergehen können.
Du kannst rotate und translate prinzipiell nicht verbieten, ein Objekt in einen "verbotenen Raum" zu schieben. Eben weil OGL eine Grafikbibliothek ist und die Kollision zur Logik gehört. Du musst also ganz einfach vor dem Translate überprüfen, um das Verschobene Objekt, eine Kolliision erzeugen würde.
Du hast eine Kugel, die sich auf eine Wand zubewegt. Damit die Kugel vor der Wand stehen bleibt, muss vor jedem Translate geprüft werden, ob die Kugel auf ihrer neuen Position die Wand schneiden würde. Also ganz vereinfacht ob Kugelposition+Radius durch die Wand hindurchreicht. Wenn das nein ergibt, dann kann die Kugel weiter auf die Wand zurollen (oder ist schon hinter der wand^^) Wenn das ja ergibt, dann würde die Kugel mit der Wand kollidieren und du verhinderst die weitere Bewegung
Nach diesem Schema funktionieren alle Kollisionserkennungen. Im Allgemeinen werden Objekte dann auf ihnen ähliche Geometrische Figuren vereinfacht, damit die Kollisionserkennung leichter zu berechnen ist.
Das jetzt mal ganz allgemein. Zu entsprechenden Berechnungsverfahren solltest du aber unbedingt mal die Tutorials lesen
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.