Fractionnement du terrain Quadtree - je ne comprends pas

12

La plupart des articles que j'ai lus basent leur terrain sous une forme ou une autre sur un quadtree. Voir ceci à la page 38 :

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

Le premier point ne contredit-il pas les deux derniers? Comment pouvez-vous avoir une grille de sommet 33x33 fixe par feuille tout en parlant de division adaptative dans un arbre quadruple? La terminologie prête à confusion et j'apprécierais toute précision à ce sujet!


Voici mes hypothèses:
repositionner les correctifs à chaque fois que les changements de quadtree seraient un succès, n'est-ce pas?

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

  1. Quadtree commençant aux limites du terrain.
  2. Itérer jusqu'à l'emplacement de l'observateur.
  3. Version contrainte (pas plus de 1 différence de niveau entre voisins)
  4. Abattage de tronc.
  5. Placez le patch de terrain dans chaque feuille résultante, où l'échelle diffère mais la résolution est toujours de 33x33.
George R
la source

Réponses:

7

Non, pas vraiment. Si vous envisagez d'utiliser un quadtree pour le niveau de détail du terrain, les nœuds que vous stockez possèdent généralement la même structure de données.

Dans votre exemple, cette structure est un sous-maillage 33 × 33 que les nœuds contiendront. Selon le niveau du nœud, ce maillage 33 × 33 s'adaptera (adaptatif) pour couvrir une zone plus large. Le nœud plus grand remplira un espace plus grand, mais son sous-maillage est toujours un patch de sommet 33 × 33.

Une fois l'arbre construit, vous pouvez faire votre abattage tronconique en descendant l'arbre et en jetant les nœuds qui ne se croisent pas.

Une chose à garder à l'esprit, c'est que vous aurez très probablement besoin de résoudre les fissures qui surviennent lorsqu'un nœud plus gros se rapproche d'un nœud plus petit. Un moyen simple consiste à simplement ajuster (réduire) les sommets non partagés entre les maillages.

Quant à vous, une autre question sur l'arbre à remplacer, oui. À moins que vous ne vouliez entrer dans la gestion des données de l'arborescence, je suggère de créer une pile et de la vider lorsque la vue se déplace suffisamment.

bitcruncher
la source
Le problème avec les coutures visibles sur des carreaux de différentes tailles est expliqué sur la diapositive 39-40 de la présentation. Apparemment, ils retirent les jonctions en T en utilisant l'une des 9 mailles possibles aux jonctions (voir diapositive 40).
bummzack
mentions légales: IDNRTFA ;-)
bitcruncher
3

L '"unité" de terrain est constituée de blocs 33x33. Si vous êtes proche, c'est ce que vous verrez. Si vous êtes plus loin, ces blocs sont fusionnés en morceaux de LOD inférieurs.

La raison pour laquelle ils utilisent des morceaux fixes au niveau le plus bas (feuille), c'est que le matériel moderne est beaucoup plus rapide avec une géométrie statique. Des systèmes comme ROAM, où beaucoup de travail est effectué pour réduire le nombre éventuel de polygones, entraînent des pénalités de performances considérables.

drxzcl
la source
Donc, la feuille de fin n'est pas chaque feuille de fin possible (à la plus petite taille de grille), c'est la feuille de fin pour cette itération, en fonction de la distance, donc certaines peuvent être 16x16 et celles distantes peuvent être 256x256 (ou autre)? Cela ne signifie-t-il pas que chaque fois que le quadtree change, les patchs doivent être placés et redimensionnés à nouveau?
George R