Upload
apollinaire-laroche
View
113
Download
3
Embed Size (px)
Citation preview
Scène de test (60000 polygones, 4000m2)
Comment afficher rapidement un univers immense ?
Univers immense ?
• Exemples : un bâtiment, un circuit, une ville, une région...
• Un tel univers peut contenir des millions de polygones : on ne va pas tous les afficher !
• Rapidement = 60 images/s au moins !• Pour aller vite : ne dessiner que ceux qui
sont visibles (dans le champ de vision de la caméra).
Le champ de vision s’appelle le frustum
En 3D, c’est l’espace compris entre les 6 plans.
Calculer la partie visible = frustum culling
Exemple d’algorithme naïf
• Tester tous les polygones ? Beaucoup trop long.
• Si l’univers est plat et statique, plaquer une grille avec des cases de taille égales.
• Pré-calcul : on associe une case à chaque polygone.
• On ne dessine que les polygones dont les cases sont dans le champ de vision.
Illustration de l’algorithme précédent
• vue de dessus : les cases visibles sont grisées
Champs de
vision
Mais ce n’est pas aussi simple !
• Une simple grille ne suffit pas ! Ce n’est pas efficace et on a aussi envie aussi de :– Calculer des collisions,– Avoir des algos pour tous les types
d’environnement– Ne pas afficher ce qui se trouve « derrière un
mur »… etc…• Les quatre algorithmes que nous avons étudiés
répondent à certaines de ces conditions.
Algorithme à base de quadtrees
Principe
• Comme une grille, sauf que les cases ne font pas toutes la même taille.
• On associe à chaque case les polygones qu’elle contient
• Construction– On part d’une case qui fait toute la surface de l’univers– On découpe récursivement l’univers en cases de plus en
plus petites.
• Au final, on a un « arbre de cases », chaque case étant découpée en 4 cases
Exemple de quadtree
Comparaison grille/quadtree
• Intérêt : on teste d’abord si les grands carrés sont visibles. Si ils ne le sont pas, on les élimine. Sinon, on considère des carrés plus petits.
• Beaucoup moins de tests avec le quadtree !
Exemple avec notre scène de test
Conclusion sur les quadtrees
• Surtout adapté à des scènes plates (les polygones sont posés sur un plan).
• Peu adaptés pour des bâtiments à étages : on va par exemple afficher des polygones sous le sol.
• Les prochains algorithmes répondent à ces limitations…