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

Aktuelle Zeit: Mo Jul 28, 2025 15:50

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



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Booleans
BeitragVerfasst: So Aug 03, 2003 14:37 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

weiß jemand wie man Booleans berechnet (Also nicht die Variable, sondern das was es in 3D Programmen gibt ;) )

Bild

Rechts ist ne Sphere und nen Cube. Jetzt möchte ich aus der Sphere den Teil der im Cube ist rausschneiden (so wie links)...

Hat da irgendwer ne ahnung wie das geht??? (Es reicht wenn es nur für Triangle geht)

Au'revoir,
Aya~

PS: An und für isch bräuchte ich nurwas um festzustellen ob nen Triangle durch ein Quad geht.. dann müßte ich ausrechnen wo das Quad das Triangle schneidet.. der rest ab da is ja dann kein problem mehr... hat da jemand was???


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 03, 2003 14:41 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Das was du da willst nennt sich im "Fachjargon" CSG (Constructive Solid Geometry) und benötigt im Hintergrund BSPs.Der Begriff Boolean bezieht sich dabei nämlich nur auf die Art der Operation (Addieren, Subtrahieren).

Auf http://www.delphi3d.net gibts dazu nen (leider nur recht kurzen) Artikel.

Ansonsten spuckt google mit der passenden Suchabfrage auch jede Menge passender Links aus.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 03, 2003 14:52 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Das Prinzip ist einfach, aber bei der Umsetzung bekommt man wegen der Ungenauigkeit der Gleitkommazahlen oft Probleme. Ich habe auch mal gelesen, daß selbst in kommerziellen Anwendungen solche Probleme machmal auftreten.

Es gibt 3 Arten von Flächen
1.Flächen, die ganz in der Kugel, aber nicht im Würfel sind
Diese Flächen kann man komplett übernehmen

2.Flächen, die ganz im Würfel, aber nicht in der Kugel sind
Diese Flächen kann man komplett verwerfen

3. Flächen die teilweise im Würfel und teilweise in der Kugel sind
Hier muß man überpüfen, mit welchen Flächen sich diese Flächen schneiden und die Flächen dann so zerteilen, daß sie immer einer der beiden ersten Gruppen angehören.

Den BSP Baum benutzt man bei diesem Verfahren um elegant zu testen ob sich Flächen innerhalb von anderen Objekten befinden und mit welchen anderen Flächen man schneiden muß.
[/list]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 03, 2003 14:55 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

hat denn zufällig jemand schon ne schnelle methode um zu testen ob/wo ein Quad nen Triangle durchschneidet??? Denn der rest wäre ja kein problem :)

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 03, 2003 16:05 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Ein zwei Dreiecke schneiden sich, wenn eine Kante von dem einen Dreieck sich mit dem anderen schneidet. Man geht also alle Kanten durch und wenn das bei einer der Fall ist, dann schneiden sich die beiden Dreiecke. Beim Quad und Dreieck geht das genauso, nur das man dann eben 4 Kanten beim Quad testen muß.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 03, 2003 16:09 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

mh.. klar.. *vor kopf hau* so mach ich es ja bei meinem Octree auch *g*

Gut.. also einfach jede Kante mit der fläche testen :)
Allerdings ist diese Line/Poly Intersection rechnung ja ziemlich aufwendig und dadurch recht langsam... gibt es da nich irgendwas das das ganze stark beschleunigen würde???

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 03, 2003 16:27 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Der BSP Baum beschleunigt die ganze Sache, aber natürlich muß er erstmal aufgebaut werden. Beim Unreal Editor baut man ja ein Level schrittweise durch Einfügen und Rausschneiden. Dort wird der BSP Baum immer schrittweise verändert, so daß Addieren oder Subtrahieren recht schnell geht. Wenn man das Level sowieso schon als BSP Baum vorliegen hat, dann bietet das sich natürlich an.
Ansonsten könnte man ja vorher schon anhand der Bounding Boxen prüfen, ob sich zwei Objekte überhaupt schneiden können.


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


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 0 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.016s | 17 Queries | GZIP : On ]