LOD-Algorithmus...
-
Ja eben nicht wieder neu erstellen. Also da liegt der Feler, da ham wa ihn doch. Falls ich dich jetzt falsch verstehe sag mir (oder auch du Life) bescheid.
(Verdammt, nu komm i zu spät zur Vorlesung!)Also, der Quadtree wird nur einmal erstellt, indem du all deine Daten Rekursiv zuordnest.
Bei einer Flachen Ansicht wären das z.B. alle Daten im hinteren Rechten Quadranten in ein Quad, alle im Hinteren Linken, vorderen rechten und so weiter ....
das ganze dann natürlich Rekursiv unterteilt.
In deinen Nodes von deinem Quadtree stehen dann (verweise auf) die Daten.
Wenn du nun einen bestimmten Abschnitt deines Levels (whatever) recndern möchtest, zum Beispiel der Teil der gerade sichtbar ist (alles andere zu rendern wäre ja schwachsinn) dann gehst du den Baum Rekursiv durch (traversierst ihn) indem du schaust, liegt mein ViewingFrustum komplett in einem SubQuad, gehe hinein und teste weiter. Falls es z.B. in zwei subquads gleichzeitig liegt dann musst du natürlich nacheinander in beide subquads gehen. Auf jeden Fall findest du am Ende die Geometrie die du gesucht hast, nämlich die die z.B. von deiner Kamera aus sichtbar war. Und das ist normalerweise das Ziel eines Quadtrees. Du musst dann also nur noch diese Daten zeichnen und nicht mehr das ganze riesige Gelände.Wie gesagt, such mal nach Octree, da sollte es viele Tutorials geben, Quadtree ist ja nur ne Abart davon.
Hoffe i konnte etwas helfen bzw. habe dein Problem richtig verstanden.
-
Ja, das hat mir jetzt erst mal wesentlich geholfen. von der seite her hab ich es nämlich noch nicht betrachtet. Ist für mich schon mal ein guter Anfang!
Aber ist das LoD genauso aufgebaut? ich denke mal schon vom Verständnis her.
Auch hier erst mal wieder vielen Dank für die Hilfe!!!!
-
Bei dem Paper wird eben doch immer neu "aufgebaut". So werden die Koordianten der "Quadranten" garnicht gespeichert, sondern einfach on-the-fly berechnet (sind ja nur ein paar bitshifts).
Weiter ist das Frustrumculling nur eine Teilaufgabe des Quadtrees. So wird er bei weit entfernten "Quadranten" diese auch nicht beliebig weit unterteilen, sondern relativ grob lassen, obwohl sie vielleicht im View-Frustrum liegen.
Aufjedenfall ist auch bei deiner Methode nicht nur unbedingt nur ein "Quadrant" sichtbar, sondern auch mehrere. Somit werden eben auch mehrere Kinder für einen Knoten besucht und nicht nur jeweils ein Kind. Damit ist die Laufzeit auch nicht linear mit der Tiefe des Quadtrees. (Stelle dir z.B. einfach mal Vogelperspektive vor. Dann sind alle Quadranten jeweils im Frustrum und müssen gezeichnet werden)
-
Ich weiss nicht wie oder wozu man einen Quadtree für LOD brauchst bzw. was in dem Paper steht.
Falls er natürlich jedesmal neu berechnet wird musst du dies für alle Knoten tun. Aber ich denke das auch hier während der Berechnung schon früh Pfade abgeschnitten werden weil sie halt z.B. nicht Detailgetreu sichtbar sein sollen, sondern nur LowQuality.
Das die Planes zwischen den Quadranten durch Bitshifts berechnet werden könnten wäre mir neu, das sind doch floatings, da möcht ich nur ungern shiften
@Life
Ich habe geschrieben das bei der FrustumCull methode nicht immer nur ein Quadrant sichtbar ist, aber es sind nicht immer alle sichtbar, darum ging es mir.Ansonsten sorry falls ich hier alle zu sehr verwirrt haben sollte, mein Fehler, ich ging vom FrustumCulling aus und nicht vom LOD. Wie man es tatsächlich dort macht weiss ich nicht.
Aber ich kann dir sagen wenn du beim traversieren jedes Blatt besuchst dann brauchst du keinen Baum mehr, weil dann kannst du auch gleich durch alle Daten rennen
Also, i werd mich hier mal raushalten bevor ich noch mehr verwirre, grad im Klausurenstress und keine Zeit das Paper zu lesen.
Have phun
-
Für die Beschreibung des Terrains benutzt man meistens Heightmaps. Diese haben natürlich eine natürlche Zahl von Pixeln (meist sogar 2^k x 2^k). Somit benutzt man intern natürlich auch keine Gleitkommazahlen. Die Umrechnung in den Worldspace findet erst nachher steht.
Und im Prinzip geht er natürlich in jedes Blatt des Quadtrees, nur ist nicht jedes Blatt gleich tief

-
Und im Prinzip geht er natürlich in jedes Blatt des Quadtrees, nur ist nicht jedes Blatt gleich tief
Wozu dann der Baum ?!?!?
Dann soll er doch einfach alle Daten durchgehen !
Aber egal, hab mir den Algo eh net durchgelesen, also einfach ignorieren ..