Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: So Sep 07, 2025 18:50

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Fr Apr 04, 2003 08:39 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jan 08, 2003 15:49
Beiträge: 266
Wohnort: Aachen
Das einzige was ich noch für meine 2D Engine brauche ist eine Kollisionskontrolle ich habe aber keine Ahnung wie ich das angehen soll. Das schwierige daran ist, das die Bitmaps Transparent sind und keine Quadrate sind. Die Farbe Schwarz ist in den Bitmaps Transparent. Ich wollte es schon mit auf Pixel prüfen, habe aber keine Ahnung wie ich das anstellen soll. Also ich hoffe ihr könnt mir helfen :) .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Apr 04, 2003 09:55 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Für ne 2D-Engine eignet sich wie du schon gesagt hast eigentlich nur ne Pixel-Kollision, alles andere wie z.B. AABs oder Tri-Line-Intersektion bringt dir da nix.Wenn aber alle Pixel die miteinander kollidieren können != schwarz sind, dann ist die Sache recht einfach.

Mit der Funktion glReadPixels kannst du nämlich recht einfach nen Block (oder wenn nötig nur einen einzelnen) von Pixeln aus dem Frame Buffer zurücklesen.Mehr Infos zu dieser Funktion unter folgendem Link : <a href='http://www.3dlabs.com/support/developer/GLmanpages/glreadpixels.htm' target='_blank'>http://www.3dlabs.com/support/developer/GL...lreadpixels.htm</a>

Eine Warnung am Rande : Das Zurücklesen von Pixeln aus dem Framebuffer ist ja quasi ein Eingriff in die Renderpipeline, und ist deshalb auch entsprechend "langsam".ATI-Grafikkarten hatten bis vor kurzem z.B. starke Performanceprobleme beim Zurücklesen der Pixel, aber genau wie bei nVidia wurde dies durch ein neues Treiberrelease behoben.Allerdings ist das ganz immernoch recht langsam!

Deshalb solltest du vor dem Auslesen der Pixel erstmal prüfen, mit welchen Objekten überhaupt eine Kollision stattfinden kann, was in 2D allerdings ein Kinderspiel ist.Da musst du ja nur prüfen, ob z.B. der Spieler in den Grenzen eines Objektes ist.Wenn nicht, dann findet auch keine Kollision statt und du musst aus diesem Objekt keine Pixel herauslesen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 19 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]