weiß jemand wie man Booleans berechnet (Also nicht die Variable, sondern das was es in 3D Programmen gibt )
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???
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).
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]
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ß.
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???
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.
Mitglieder in diesem Forum: 0 Mitglieder und 11 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.