Podział terenu na cztery drzewa - nie rozumiem

12

Większość artykułów, które przeczytałem, oparła swój teren w jakiejś formie na quadtree. Zobacz to na stronie 38 :

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

Czy pierwszy punkt nie jest sprzeczny z dwoma dolnymi punktami? Jak można ustawić stałą siatkę wierzchołków 33x33 na liść, a jednocześnie mówić o podziale adaptacyjnym w drzewie quadów? Terminologia jest myląca i doceniłbym tę jasność!


Oto moje założenia:
Ponowne umieszczanie łat za każdym razem, gdy zmiany w quadtree będą hitem, prawda?

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

  1. Quadtree zaczynający się na granicach terenu.
  2. Iteruj w dół do lokalizacji obserwatora.
  3. Wersja ograniczona (nie więcej niż 1 różnica poziomów między sąsiadami)
  4. Frustum cull.
  5. Umieść łatkę terenu w każdym powstałym liściu, gdzie skala jest różna, ale rozdzielczość zawsze wynosi 33x33.
George R.
źródło

Odpowiedzi:

7

Nie, nie bardzo. Jeśli zastanawiasz się nad użyciem kwadratu do szczegółowego ukształtowania terenu, wszystkie przechowywane węzły zwykle będą miały tę samą strukturę danych.

W twoim przykładzie ta struktura to podmiks 33 × 33, który będą przechowywane przez węzły. W zależności od poziomu węzła siatka 33 × 33 dostosuje się (dostosuje), aby objąć większy obszar. Większy węzeł wypełni większą przestrzeń, ale jego podsieć jest wciąż łatą 33 × 33 wierzchołków.

Po zbudowaniu drzewa możesz wykonać wybijanie frustum, schodząc w dół drzewa i odrzucając węzły, które się nie przecinają.

Należy pamiętać, że najprawdopodobniej będziesz musiał zająć się pęknięciami, które pojawiają się, gdy większy węzeł zbliża się do mniejszego węzła. Jednym prostym sposobem jest po prostu dostosowanie (zwinięcie) dowolnych nieudostępnionych wierzchołków między siatkami.

Jeśli chodzi o inne pytanie dotyczące zastępowanego drzewa, tak. Jeśli nie chcesz dostać się do danych zarządzających drzewem, sugeruję po prostu utworzenie stosu i wypłukanie go, gdy widok porusza się wystarczająco.

Bitcruncher
źródło
Problem z widocznymi szwami na płytkach o różnych rozmiarach wyjaśniono na slajdzie 39-40 prezentacji. Najwyraźniej usuwają one trójniki za pomocą jednej z 9 możliwych siatek na skrzyżowaniach (patrz slajd 40).
bummzack,
wyłączenie odpowiedzialności: IDNRTFA ;-)
bitcruncher
3

„Jednostką” terenu są bloki 33 x 33. Jeśli jesteś blisko, to zobaczysz. Jeśli jesteś dalej, bloki te są łączone w niższe porcje LOD.

Powodem, dla którego używają stałych kawałków na najniższym poziomie (liściu), jest to, że nowoczesny sprzęt jest o wiele szybszy przy geometrii statycznej. Systemy takie jak ROAM, w których wykonuje się wiele pracy w celu zmniejszenia ostatecznej liczby wielokątów, podlegają znacznym karom za wydajność.

drxzcl
źródło
Zatem liść końcowy nie jest każdym możliwym liściem końcowym (przy najmniejszym rozmiarze siatki), jest to liść końcowy dla tej iteracji, w zależności od odległości, więc niektóre mogą mieć wymiary 16 x 16, a odległe 256 x 256 (czy cokolwiek innego)? Czy to nie znaczy, że za każdym razem, gdy zmienia się quadtree, łatki muszą być ponownie umieszczane i skalowane?
George R