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

Aktuelle Zeit: Do Jul 10, 2025 03:41

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



Ein neues Thema erstellen Auf das Thema antworten  [ 20 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Oriented Bounding Boxes
BeitragVerfasst: Mo Apr 19, 2004 20:11 
Offline
DGL Member

Registriert: Mi Mär 17, 2004 10:16
Beiträge: 22
hallo!
hab ne frage zu den bounding boxes!
also was brauch i dafür?(irgendwelche units (wo bekomm ich die her))
und wie funktioniert das genau?
wäre super wenn ihr mir das genau erklären könntet!!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 19, 2004 22:33 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Bei den Tutorials findest du was zu den Bounding Boxes. Musste einfach mal gucken. Ansonsten hilft es bestimmt auch, wenn du mal die Forumssuche anwirfst. Eventuell kommt da was nützliches bei raus.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 19, 2004 22:34 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Für normale Bounding Boxen brauchst du nur die Vertexdaten deines Meshes. Dann musst du nur die Extremwerte auf allen drei Achsen ermitteln und hast dann die Eckpunkte deiner Bounding Box.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 19, 2004 23:15 
Offline
DGL Member

Registriert: Mo Apr 05, 2004 19:51
Beiträge: 105
Was willst du denn damit genau machen? Deine Frage klingt ein wenig so, als ob du den Begriff mal irgendwo gehört hast, und jetzt irgendwas damit anstellen willst.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 20, 2004 14:50 
Offline
DGL Member

Registriert: Mi Mär 17, 2004 10:16
Beiträge: 22
also ich möchte einfach nur überprüfen ob meine kamera mit einem anderen object zusammen stöst!
und ich dachte das geht mit der bounding box sicher am einfachsten!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 20, 2004 15:59 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Ja, für Kollisionstests die nicht sehr genau sein müssen sind Bounding Boxen am einfachsten. Ausserdem kosten sie kaum Leistung, denn die Bounding Box berechnet man normalerweise nur einmal (und bindet sie dann im Endeffekt an die Objektposition) und der Test ob ein Punkt sich in ner Box befindet ist ja ziemlich schnell.
Komplizierter wirds dann wenn mans etwas genauer will und OOBBs (Object Oriented Bounding Boxen) will, da die dann auch noch entsprechend mitrotiert werden müssen. Aber normale BBs dürften für die Kamerakollision erstmal reichen.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 20, 2004 17:44 
Offline
DGL Member

Registriert: Mi Mär 17, 2004 10:16
Beiträge: 22
hab mir das obbtetris an geschaut und die box mal einfach wo hin gebastelt!
kenn mich aber mit den zentrum und den achsen nicht wirklich aus
und funktionieren tuts auch nicht richtig wein ich radii auf 10 setzte da geht gar nichts mehr und ansonsten kann ich einfach hindurch fahren :roll:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 20, 2004 17:56 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wo genau liegt denn das Problem bei ner BB? Hab doch oben gesagt wie es geht :
- Du brauchst acht Eckpunkte für deine Box
- 6 Singlewerte für deine Extrempunkte (auf allen drei Achsen). Max = -MaxInt, Min = MaxInt
- Alle Vertices in ner Schleife durchgehen und dann die Extremwerte ermitteln
- Dann hast du alle Eckwerte deiner Box und kannst anhand der Extremwerte die Eckpunkte der BB ermitteln.
- BB fertig, testen ob ein Punkt in der BB ist, ist ja dann verdammt einfach

P.S. : Wenns nicht klappt, einfach mal die BB auf ein Blatt Papier malen (so hab ich das auch beim ersten mal gemacht), dann dürfte schnell klar sein wie es geht.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 20, 2004 18:01 
Offline
DGL Member

Registriert: Mi Mär 17, 2004 10:16
Beiträge: 22
ich versteh das einfach nicht!
ich möchte nur überbrüfen ob die kamera in eine viereck fährt oder nicht
wie mach ich das alles was du gesagt hast?
hab nähmlich überhaupt keinen durchblick fang gerade erst mit opengl an!!!!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 20, 2004 18:04 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Das hat auch alles nix mit OpenGL zu tun. Wenn du was renderst, dann hast du doch auch alle Vertexdaten. Extremwerte finden ist dann doch popelig (if vertex. > MaxX then MaxX := vertex.x). Und wie sich dann ne Box aus diesen Extremwerten (Max/Min(x/y/z)) zusammensetzt ist doch ein Kinderspiel.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 20, 2004 18:38 
Offline
DGL Member

Registriert: Mi Mär 17, 2004 10:16
Beiträge: 22
hm..
*heul*
komm mir schon richtig dämlich vor!!!!
ich versteh das einfach nicht!!
*sich sehr schämen tut!*


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 20, 2004 18:45 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Was verstehst du denn nicht? Ne Box besteht aus 8 Eckpunkten, die Eckpunkte werden jeweils durch die entsprechenden Extremwerte beschrieben (z.B. Ecke X = MaxX/MaxY/MaxZ). Die Extremwerte zu ermitteln geht doch wie gesagt in dem du einfach guckst welche Vertices wo den größten Wert stellen. Das ist ganz einfache Logik.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 20, 2004 18:49 
Offline
DGL Member

Registriert: Mi Mär 17, 2004 10:16
Beiträge: 22
also ich hab mir das obb beispiel herunter geladen und wolts probieren
so nun möcht ich wissen was es mit dem zentrum und den achsen aufsich hat!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 20, 2004 23:44 
Offline
DGL Member

Registriert: Mo Apr 05, 2004 19:51
Beiträge: 105
Kleiner Tipp: Nimm mal ein Blatt Papier und überlege dir, wie so eine Bounding Box-Kollision in 2D aussehen würde.
Was ist so eine Kollision? Die Frage ist, ob sich zwei Rechtecke überlagern. Die Abfrage ist ein bisschen haarig, wenn man es noch nie gemacht hat, aber es geht. Wenn du soweit bist, kommst du auch noch in 3D, das macht sie Sache eben noch ein bisschen komplexer.
"Oriented" ist ja eine Vereinfachung und bedeutet einfach, dass alle Seiten deines Kollisions-Rechtecks parallel zur X- bzw. Y-Achse liegen (also nicht irgendwie schief im Raum liegen). Entsprechend reichen dann auch zwei Punkte aus (oben links und unten rechts) um so ein Rechteck eindeutig zu identifizieren.

Weiter kann ich dir nicht mehr helfen, da musst du dich schon selber mal eine Weile hinsetzen und nachdenken, also nicht einfach mal draufloshacken, sondern tatsächlich erstmal mit Bleistift und Papier überlegen, was du eigentlich GENAU programmieren willst.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Apr 21, 2004 17:03 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 28, 2002 19:27
Beiträge: 568
Wohnort: Chemnitz / Sachsen
für einfaches kollisionsdetection für ne kamera ist doch eigentlich ne sphere-collision einfacher, wenn alle objecte für spheres (kugeln) geeignet sind, also bsp: keine dünnen wände, sondern eher würfelartiges.

oder sehe ich das falsch, da man ja eigentlich nur den abstand ausrechnen muss.

_________________
Aktuelles Projekt :
www.PicPlace.de


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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.010s | 17 Queries | GZIP : On ]