Quadtree Terrain Splitting - ich verstehe es nicht


12

Die meisten Zeitungen, die ich gelesen habe, basieren auf einem Quadtree. Sehen Sie dies bei Seite 38 :

http://www.slideshare.net/repii/terrain-rendering-in-frostbite-using-procedural-shader-splatting-presentation?from=ss_embed

Widerspricht der erste Punkt nicht den beiden unteren? Wie kann man ein festes 33x33-Eckpunktraster pro Blatt haben und dennoch über die adaptive Teilung in einem Quad-Baum sprechen? Die Terminologie ist verwirrend und ich würde mich über Klarheit darüber freuen!


Hier sind meine Annahmen:
Das Ersetzen der Patches bei jeder Änderung des Quadtree wäre ein Hit, nicht wahr?

http://www.dukecg.net/QuadtreeTerrain.png

  1. Quadtree ab Geländegrenzen.
  2. Iterieren Sie zum Beobachtungsort.
  3. Eingeschränkte Version (nicht mehr als 1 Level Unterschied zwischen Nachbarn)
  4. Frustum Cull.
  5. Platzieren Sie in jedem resultierenden Blatt ein Geländefeld, dessen Maßstab unterschiedlich ist, dessen Auflösung jedoch immer 33x33 beträgt.

Antworten:


7

Nein nicht wirklich. Wenn Sie überlegen, einen Quadtree für die Detailgenauigkeit des Terrains zu verwenden, haben die von Ihnen gespeicherten Knoten in der Regel alle dieselbe Datenstruktur.

In Ihrem Beispiel ist diese Struktur ein 33 × 33-Submesh, das die Knoten enthalten. Abhängig von der Ebene des Knotens passt sich das 33 × 33-Mesh an (adaptiv), um einen größeren Bereich abzudecken. Der größere Knoten füllt einen größeren Raum, aber sein Submesh ist immer noch ein 33 × 33 Vertex Patch.

Nachdem der Baum gebaut wurde, können Sie Ihren Kegelstumpf entfernen, indem Sie den Baum hinuntergehen und die Knoten entfernen, die sich nicht schneiden.

Beachten Sie, dass Sie sehr wahrscheinlich die Risse beseitigen müssen, die auftreten, wenn ein größerer Knoten neben einem kleineren Knoten gezeichnet wird. Eine einfache Möglichkeit besteht darin, nicht gemeinsam genutzte Scheitelpunkte zwischen den Netzen einfach anzupassen (zu reduzieren).

Wie für Sie andere Frage über den Baum, der ersetzt wird, ja. Wenn Sie sich nicht mit Daten befassen möchten, die den Baum verwalten, sollten Sie nur einen Stapel erstellen und ihn leeren, wenn sich die Ansicht ausreichend bewegt.


Das Problem mit den sichtbaren Nähten bei Fliesen unterschiedlicher Größe wird auf Folie 39-40 der Präsentation erläutert. Anscheinend entfernen sie die T-Übergänge, indem sie eines von 9 möglichen Gittern an den Übergängen verwenden (siehe Folie 40).
Bummzack

Haftungsausschluss: IDNRTFA ;-)
Bitcruncher

3

Die "Einheit" des Geländes sind 33x33 Blöcke. Wenn Sie nah dran sind, werden Sie das sehen. Wenn Sie weiter weg sind, werden diese Blöcke zu unteren LOD-Blöcken verschmolzen.

Der Grund, warum sie feste Blöcke auf der untersten Ebene (Blatt) verwenden, ist, dass moderne Hardware mit statischer Geometrie viel schneller ist. Systeme wie ROAM, bei denen viel Arbeit geleistet wird, um die Anzahl der Polygone zu verringern, verursachen erhebliche Leistungseinbußen.


Das Endblatt ist also nicht jedes mögliche Endblatt (bei der kleinsten Rastergröße), es ist das Endblatt für diese Iteration, basierend auf der Entfernung, also können einige 16x16 und entfernte 256x256 sein (oder was auch immer)? Bedeutet das nicht, dass jedes Mal, wenn sich der Quadtree ändert, die Patches neu platziert und skaliert werden müssen?
George R
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.