JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=ddacd65a4edc801cd12f89ac592295edMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Pixelgenaue Kollisionserkennung
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
fowly
JLI'ler



Anmeldedatum: 25.01.2004
Beiträge: 196
Wohnort: Detmold - NRW
Medaillen: Keine

BeitragVerfasst am: 04.02.2004, 16:39    Titel: Pixelgenaue Kollisionserkennung Antworten mit Zitat

Hi,

ich habe jetzt das Beispiel aus Kapitel 25 zu pixelgenauer Kollisionserkennung ausprobiert und auch gleich eine Frage... Wie lässt sich die Rotation miteinbeziehen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 04.02.2004, 19:17    Titel: Antworten mit Zitat

ich weiß jetzt nicht mehr ganz genau wie das im Buch gelöst worden ist aber ansonsten:

blitte dein Sprite, das rotiert ist auf eine Surface und dann wende die pixelgenaue kollisionserkennung an Smile
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
fowly
JLI'ler



Anmeldedatum: 25.01.2004
Beiträge: 196
Wohnort: Detmold - NRW
Medaillen: Keine

BeitragVerfasst am: 07.02.2004, 17:36    Titel: Antworten mit Zitat

mhm... wie blittet man den ein Sprite in ein Surface? mit StretchRect? Und wird die Rotation dann auch mit beachtet?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 07.02.2004, 22:23    Titel: Antworten mit Zitat

man macht das genauso wie man das auf den Backbuffer blittet und da wird ja auch schließlich die Rotierung beachtet...Wink
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 07.02.2004, 23:00    Titel: Antworten mit Zitat

Nein, so einfach ist es nicht, wenn die Rotation mit ins Spiel kommt. Da kann man die vorgestellt Methode nicht anwenden.

Einie Idee wäre die Sprites in verschiedenen Farben oder mit unterschiedlichen Alphawerten vorzuhalten und dann im Hauptspeicher in einen Puffer zu kopieren. Danach könnte man testen, ob sich der Farbwert /Alphawert an einer Stelle geändert hat...

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
xardias
JLI Master


Alter: 39
Anmeldedatum: 28.12.2003
Beiträge: 804
Wohnort: Palo Alto, CA
Medaillen: Keine

BeitragVerfasst am: 08.02.2004, 11:15    Titel: Antworten mit Zitat

Ich könnte dir als Alternative dazu Convex Meshes empfehlen.
Das ganze funktioneirt halt nicht so genau wie pixelgenaue Kollisionserkennung, aber IMHO imemr noch genau genug und auch recht fix.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
fowly
JLI'ler



Anmeldedatum: 25.01.2004
Beiträge: 196
Wohnort: Detmold - NRW
Medaillen: Keine

BeitragVerfasst am: 08.02.2004, 11:19    Titel: Antworten mit Zitat

was sind convex meshes?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
xardias
JLI Master


Alter: 39
Anmeldedatum: 28.12.2003
Beiträge: 804
Wohnort: Palo Alto, CA
Medaillen: Keine

BeitragVerfasst am: 08.02.2004, 13:26    Titel: Antworten mit Zitat

Rein Programmeirtechnisch sind Convex Meshes nur eine ansammlung von Punkten. Praktisch die eckpunkte deines Bildes.

Code:

X--------------X
|              \
|                \
|                  \
X------X           X
       \          /
        \       /
         X-----X


So könnte ein Convex Mesh aussehen. (ich hoffe der Code Tag lässt die leerzeichen da wo sie sind)
du musst dann nur überprüfen, ob ein punkt innerhalb dieses meshes steckt, dann hast du eine kollision. (ich würde nur vorher eine kreis kollisionserkennung machen. zur optimeirung)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 08.02.2004, 13:33    Titel: Antworten mit Zitat

Bei so einem Mesh vielleicht sogar eine Bounding Box, damit wärs noch enger eingeschlossen.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
fowly
JLI'ler



Anmeldedatum: 25.01.2004
Beiträge: 196
Wohnort: Detmold - NRW
Medaillen: Keine

BeitragVerfasst am: 08.02.2004, 16:18    Titel: Antworten mit Zitat

Christian Rousselle hat Folgendes geschrieben:
Einie Idee wäre die Sprites in verschiedenen Farben oder mit unterschiedlichen Alphawerten vorzuhalten und dann im Hauptspeicher in einen Puffer zu kopieren. Danach könnte man testen, ob sich der Farbwert /Alphawert an einer Stelle geändert hat...


Hmm.... leider bin ich wirklich noch nicht so gut, und verstehe deshalb wirklich nicht was sie meinen. könnten sie dazu einen code posten? am besten mit vielen kommentaren? dann könnte ich besser nachvollziehen was sie meinen...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
xardias
JLI Master


Alter: 39
Anmeldedatum: 28.12.2003
Beiträge: 804
Wohnort: Palo Alto, CA
Medaillen: Keine

BeitragVerfasst am: 09.02.2004, 14:49    Titel: Antworten mit Zitat

Hazel hat Folgendes geschrieben:
Bei so einem Mesh vielleicht sogar eine Bounding Box, damit wärs noch enger eingeschlossen.


oder alle drei. Also Zuerst Kreis überprüfen, dann Axis Aligned rect und dann den Convex Mesh.
Das würde ich vom Fall abhängig machen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 41
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 09.02.2004, 15:01    Titel: Antworten mit Zitat

Warum nur Konvexe Objekte Konkave wären doch genauso gut möglich.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kampfhund
Super JLI'ler


Alter: 42
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 09.02.2004, 16:26    Titel: Antworten mit Zitat

Ich wundere mich auch gerade warum die dinger convex Meshes heißen.
Denn Xardias hat eine concave Figur skizziert.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 09.02.2004, 19:36    Titel: Antworten mit Zitat

Kampfhund hat Folgendes geschrieben:
Ich wundere mich auch gerade warum die dinger convex Meshes heißen.
Denn Xardias hat eine concave Figur skizziert.


ich würde aber sagen, dass die Abbildung konvex ist.

Konkav wäre meiner Meinung nach das hier:
Code:

X--------------X
|              /
|             /
|             /
X------X    X
       \       \
        \       \
         X-----X

_________________
The source of all power is in its destiny...


Zuletzt bearbeitet von TheMillenium am 09.02.2004, 19:40, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 41
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 09.02.2004, 19:39    Titel: Antworten mit Zitat

Unten links geht es aber ins Objekt hinein daher könnte das schon konkav gelten Wink
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum