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

Aktuelle Zeit: Sa Jul 19, 2025 20:57

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Di Aug 09, 2005 11:46 
Offline
DGL Member
Benutzeravatar

Registriert: So Jun 05, 2005 15:08
Beiträge: 39
Wohnort: Bei Bayreuth
Hi!

Ich Schreibe gerade an meiner Engine, die ein 3d Level mit Kamera, Bewegung, etc. aus einer Textdatei ausließt und natürlich rendert.

Alles funktioniert prima, bis auf eine Sache, die ich einfach nicht hinbekomme:
Die Kollisionsabfrage!

Ich bin erst grade mit der 9. Klasse Gymnasium fertig, hab deshalb die Hesse-Formel und so weiter noch nicht gemacht. :roll:

Hier meine Frage:

Wie kann ich nur aus den 3D Koordinaten der Ecken einer Fläche erkennen, ob der Kollisions-Punkt P(x,y,z) auf der Fläche liegt oder nicht?

z.B.:
Viereck
A(-1,-1,-1), B(1,-1,-1), C(1,1,-1.5), D(-1,1,-1.5)
:arrow: geneigte Fläche

P(0,0,0.5)

_________________
Geniale Menschen sind selten ordentlich, ordentliche selten genial (Albert Einstein)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 09, 2005 12:08 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 21, 2003 17:36
Beiträge: 141
Hi, direkt kann ich dir nicht helfen, allerdings möchte ich dir als Hinweis auf den Weg geben, dass Kollisionsabfragen zwischen Punkten und Flächen für eine 3D Engine nicht besonders geeignet sind, da der Fall der Kollision fast nie genau eintritt. Würde dir also eher empfehlen, von deiner Kamera Position auszugehen und dann mit dem Bewegungsvektor überprüfen, ob der die Fläche schneidet oder nicht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 09, 2005 12:44 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Nov 13, 2004 11:00
Beiträge: 229
Wohnort: Steinhude
ich würde dir mal zu dem compGeo skript raten (links->General), in dem zum Thema Vektorgeometrie einiges drinsteht. Ansonsten macht es wie bereits gesagt wurde auch idR wenig Sinn Punkte sowas kollidieren zu lassen sondern eher geraden oder allgemein gleich mit bounding boxen arbeiten.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 09, 2005 13:17 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Das CompGeo Skript ist aber keine leichte Kost. Dort wird eigentlich nichts erklärt, sondern nur zusammengefasst. Es ist praktisch. Keine Frage. Es ist aber nicht leicht.

Für Kollisionserkennung würd' ich dir die Newton-Physikengine ans Herz legen. Und sobald du dann das nötige Wissen hast, probierst du's einfach selber ;)

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 09, 2005 14:05 
Offline
DGL Member
Benutzeravatar

Registriert: So Jun 05, 2005 15:08
Beiträge: 39
Wohnort: Bei Bayreuth
Danke für die schnellen Antworten, ich hab jetzt aber ein perfektes Tutorial gefunden auf
http://www.scherfgen-software.net.
Das möchte ich allen, die das selbe Problem haben wie ich, und zugfällig in diesen Thread gelangen, sehr nahelegen!

Danke.

_________________
Geniale Menschen sind selten ordentlich, ordentliche selten genial (Albert Einstein)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 09, 2005 14:25 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Hey, die Seite ist cool. Da gibt's Exporter und Links zu Konvertern von gmax-Dateien und für 3ds Max. Thx für den Link.

Warnung: Feindliches Lager. Dort wird D3D gefröhnt.

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 10, 2005 09:14 
Offline
DGL Member
Benutzeravatar

Registriert: So Jun 05, 2005 15:08
Beiträge: 39
Wohnort: Bei Bayreuth
Eine Frage hätte ich aber jetzt doch noch:

Wie kann ich testen ob sich der Schnittpunkt S(x,y,z) mit der DreiecksEBENE im DREIECK A(x,y,z) B(x,y,z) C(x,y,z) liegt, also innerhalb der Dreiecksfläche?

_________________
Geniale Menschen sind selten ordentlich, ordentliche selten genial (Albert Einstein)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 10, 2005 22:34 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Mr. Google hat auf die Frage "liegt Punkt in Dreieck" mir dieses Forum gezeigt: http://www.uni-protokolle.de/foren/viewt/20584,0.html

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 11, 2005 07:09 
Offline
DGL Member

Registriert: So Sep 26, 2004 05:57
Beiträge: 190
Wohnort: Linz
Etwas spät aber doch stellt sich mir hier die Frage warum du keinen BSP Baum für die Kollisionsabfrage verwendest. Bei einem BSP Baum brauchst du beispielsweise auch nirgends eine Abfrage gegen ein 3eck/Polygon sondern nur gegen Ebenen. Bis auf die Generierung des Baumes ist die Verwendung auch verhältnismäßig einfach. Es gibt natürlich Gründe weshalb man lieber keinen BSP-Baum verwenden sollte (zu dynamische Szenen, für meist Outdoor auch nicht soo toll geeignet, ...) aber ich bezweifle mal, dass das bei dir der Fall ist (lasse mich natürlich auch gerne eines besseren belehren).

Hier noch ein paar Ressourcen zum Thema:

- http://www.devmaster.net/articles/quake3collision/
Ein nettest Tutorial mit viel (C++) Quellcode.

- http://www.gamedev.net/reference/programming/features/bsptree/bsp.pdf
Eine ziemlich lange, primär theoretische Abhandlung zum Thema BSP Bäume.

- http://www.gamedev.net/reference/articles/article657.asp
BSP-FAQ

Über BSP-Bäume findet man aber eh mehr als genug Ressourcen, ich nehm an sogar in deutsch die ein oder andere brauchbare.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]