ich äh.. steh grad vor einem riesen Problem... eines an das ich nie gedacht hab...
Also... ihr wisst ja wie ein Octree aufgebaut ist, ja?? (zummindest ungefähr... alle Triangles der Scene werden verschiedenen Würfeln zugeteilt etc.)
funktioniert auch alles wunderbar einwandfrei... bis auf eine sache...
Stellt euch mal nen Octree mit einer Unterteilung vor... also 8 Würfel...
Wenn ich jetzt z.B. ne Sphere habe ist es einfach die aufzuteilen auf die 8 Würfel. ABER... wenn ich ein Flaches Polygon habe (z.B. nen Quad) welches genau gerade zwischen den Octree Unterteilungen verläuft... es ist also nicht IN einer unterteilung, sondern direkt auf der Linie wo sich die unterteilungen berühren...
Kann mir mal wer verraten was ich da machen soll...? Mein Octree funktioniert wunderbar einwandfrei... alles wird irgendwo zugeordnet, nur in so einem fall wird das Quad "vergessen"... *schaut verzweifelt*
Hilfe~~
Au'revoir,
Aya~
PS: Ich hoffe irgendwer hat kapiert was ich hier schreibe... ^^
Hmm.. ich hab' noch keine Erfahrung mit Octrees (kommt noch. Bin Froh dass ich mich dann an jemanden wenden kann, der sich damit auskennt ), aber ich vermute, es ist das gleiche wie irgendwie bei jedem Algorythmus. Es gibt immer sonderfälle die dann von "Hand" abgefragt werden müssen.
Also in Deinem Fall würd ich irgendwie nachschauen, ob es noch Polygone gibt, die keinem Node zugeordnet wurden. Wenn solch ein Polygon gefunden wird, wird dieses an den naheliegensten Node zugewiesen und fertig. Ob das 'ne gute Lösung ist, weiss ich nicht, aber laute dem ersten groben Durchdenken müsste das eingentlich funktionieren. Geschwindigkeitsverluste gibt's dabei auch nicht, da der Octree ja nicht in realtime berechnet wird. (obwohl, wäre mal was neues... ).
Andere Möglichkeit wäre, die Level-Daten entsprechend anzupassen...
_________________ Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?
mein Hauptproblem besteht aber darin das irgendwo zuzuordnen...
Denn es befindet sich ja nicht IN einer unterteilung des Octrees... = Kein IntersectionTest merkt das das ding da ist...
z.Z. hab ich 2 IntersectionTests eingebaut..
1.) Liegt IRGENDEIN Vertex des 3-Ecks in der Unterteilung??
2.) Wenn nein, dann werden alle Kanten des Würfels, sowie des Dreieckes überprüft ob sie die fläche durchstoßen.
Allerdings bekommt keinder der beiden mit, wenn der würfel gerade flach auf dem Dreieck liegt...
Registriert: Mi Aug 28, 2002 19:27 Beiträge: 568 Wohnort: Chemnitz / Sachsen
also wenn ich das alles richtig verstanden habe, würde ich folgendes machen:
pseudocode:
Code:
IF KannQuadNichtEindeutigEinordnen THEN
BEGIN
QuadInNode1();
QuadInNode2();
END;
Ist zwar nicht grad die eleganteste lösung und das quad wird 2mal gespeicher/gezeichnet, aber heutzutage ist das eigentlich kein ernsthaftes problem mehr.
also ich denke zur not und für den anfang reicht sowas eigentlich völlig aus. Und wenn nicht, dann musste halt per zufall bestimmen, in welche Node du das quad neischmeist (auf deutsch: reintust).
ich würde auch sagen, in alle zur wahl stehenden nodes einsortieren, denn wenn es ein großes poly ist und kleine octree-leafes und du machst einen sichtbarkeitstest, dann könntest du z.b. das problem bekommen, das so ein großes poly plötzlcih hereinpopt, wenn dus nicht mehreren zugeordnet hast.
hopla, ich hab nicht genau genug gelesen.... du meisnt also den sonderbaren fall, wenn ein poly genau auf einer trennwand der octrees steht? dann ordne es doch einfach dem leaf zu, das weiter vorne rechts ist. du wirst wahrscheinlich irgendwo mit > und < arbeiten, da musst du dich dann irgendwo entschließen ein geschicktes = zu verteilen und dann sollte sich das problem lösen, oder sehe ich das jetzt falsch
Ok, auf die Gefahr hin, dass Du wieder Sagst "Ich kann kein C und bitte nicht Zerbst", aber man muss ja alles ausprobieren.
Bei der Erstellung eines BPS-Baumes gibt es auch das Problem, dass ein Polygon mal genau auf der "Split-Linie" liegt. Also wäre es doch evtl. mal 'ne Idee, zu schan was Steffan Zerbst gemacht hat und dann das ganze in ein OcTree-Adequat zu konvertieren. Die Theorie wäre u.U. die gleiche...
(Nur so ne idee...)
_________________ Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?
Mitglieder in diesem Forum: 0 Mitglieder und 6 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.