La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Sequential Point Tree Carsten Dachsbacher Christian Vogelgsang Marc Stamminger Présentation : Thomas BARTHES Matthieu CORVAISIER.

Présentations similaires


Présentation au sujet: "Sequential Point Tree Carsten Dachsbacher Christian Vogelgsang Marc Stamminger Présentation : Thomas BARTHES Matthieu CORVAISIER."— Transcription de la présentation:

1 Sequential Point Tree Carsten Dachsbacher Christian Vogelgsang Marc Stamminger Présentation : Thomas BARTHES Matthieu CORVAISIER

2 Plan Rendu par points, objectifs et mise en œuvre Point Trees –Sequential Point Trees –Point Tree Hierarchy Approximations et erreurs Du récursif au séquentiel –Rendu récursif –Séquentialisation –réarrangement Extensions –Rendu hybride point/polygone –Couleurs et textures Performances Conclusion

3 Rendu par points Avantages: –Très efficace pour le rendu dobjets complexes –Gestion facile et pratique du niveau de détails Inconvénients: –Sélection des points effectuée par le CPU –La puissance du GPU nest donc pas exploitée Objectif: décharger un maximum de calculs depuis le CPU vers le GPU

4 Mise en œuvre Obtenir une version séquentielle dun arbre de points hiérarchique Traitement de cette liste par le GPU: –Sélection du niveau de détails –Affichage de splats figurant les points

5 Sequential Point Tree

6 Point Tree Hierarchy Construction dun octree représentant la hiérarchie des points uniformément répartis sur lobjet Calcul des moyennes des positions et des normales des points intermédiaires Chaque nœud représente un morceau de lobjet Un nœud équivaut à lunion de tous ses fils Structure de données dun nœud: –Point central p –Normale moyenne n –Diamètre de la sphère englobante d

7 Approximation dun nœud par un disque Chaque nœud de larbre peut être approximé par un disque –Même point central –Même normale –Même diamètre Lerreur dapproximation est décrite par deux valeurs –Erreur perpendiculaire eP –Erreur tangentielle eT

8 Erreur perpendiculaire (1) eP = distance minimum entre 2 plans parallèles au disque qui englobent tous les disques fils

9 Erreur perpendiculaire (2) Espace image: projection dune erreur image ëP ëP = eP * sin(v,n) / |v| ëP: varie en fonction de sinus(v,n) –v: vecteur du point de vue –n: vecteur normal du disque ëP rend compte du fait que les erreurs le long des silhouettes sont moins acceptables (discontinuités) Plus le point de vue est éloigné, plus ëP est faible

10 Erreur tangentielle (1) eT = diamètre du disque père – largeur minimale de lensemble des disques fils Mesure si un disque parent couvre une trop grande surface Conséquences: erreurs sur les bords des surfaces

11 Erreur tangentielle (2) Espace image: projection dune erreur image ëT ëT = eT * cos(v,n) / |v| ëT: varie en fonction de cosinus(v,n) –v: vecteur du point de vue –n: vecteur normal du disque ëT rend compte du fait que les erreurs dans les plans faisant face au point de vue sont moins acceptables (trous) Plus le point de vue est éloigné, plus ëT est faible

12 Erreur géométrique Simplification: combinaison des erreurs perpendiculaire et tangentielle en une seule erreur géométrique eG = (eP² + eT²) Espace image: projection dune erreur image ëG ëG = eG / |v| ëG ne dépend plus de langle du point de vue

13 Rendu Récursif (1) Un objet est affiché par un parcours en profondeur de la hiérarchie de points Pour chaque nœud, lerreur image ë est calculée Si ë dépasse un seuil acceptable ε, et si le nœud nest pas une feuille fils parcourus récursivement Cas contraire affichage dun splat de taille d/r (diamètre du nœud projeté dans lespace image) ε défini par lutilisateur

14 Rendu Récursif (2) Densité des points adaptée : –À la distance du point de vue: r –Aux propriétés locales de la surface

15 Séquentialisation (1) Problème : procédure récursive non adaptée pour un traitement séquentiel rapide par le GPU Solution : –réarranger larbre de données en une liste –remplacer la procédure de rendu récursif par une boucle séquentielle parcourant cette liste Arrangement optimisé : toutes les entrées sélectionnées dans la liste sont regroupées dans un même segment

16 Séquentialisation (2) CPU: –Mémorise dans chaque nœud les valeurs r min et r max –Stocke les nœuds dans une liste non hiérarchique –Trie la liste en fonction des r max GPU: –Test non récursif: r Є [r min,r max ] –Affichage

17 Séquentialisation (3)

18 Séquentialisation (4) Problème en cas de variation de r

19 Réarrangement Le segment de liste exhaustif est envoyé au GPU Le GPU effectue le test dappartenance à [r min,r max ] Test vérifié : point rendu par un splat de diamètre d/r Test non vérifié : point occulté (placé à linfini) Pourcentage de points occultés : 10 à 40 % (dépend de la variation de r)

20 Rendu Hybride Extension possible des sequential point trees : –Parties de lobjet rendues par des points –Parties de lobjet rendues par des polygones But : sélection des polygones par le GPU

21 Couleur et Texture (1) Possibilité de mémoriser la couleur dans un nœud Couleur dun nœud interne = moyenne de celle de ses fils Problème avec les grands splats : contours flous Obligation de reconsidérer lerreur géométrique Solution : augmenter lerreur de chaque point pour forcer laffichage de petits splats

22 Couleur et Texture (2)

23 Performances (1) Matériel et logiciel : ATI Radeon 9700 avec DirectX Affichage : –Statues et arbres : sequential point trees –Sol, ciel et autres modèles : polygones (triangles) 77 millions de points envoyés par seconde au GPU, qui en affiche 50 millions après culling Textures et données géométriques sont stockées dans la mémoire de la carte graphique

24 Performances (2) Frame rates de lordre de 36 à 90 fps, avec une charge CPU de 5 à 15% sur un Pentium 2.4GHz Essais avec nouvelle NVIDIA NV30 résultats préliminaires, affichage possible de 80 millions de points par seconde après sélection par le GPU Modèles avec lumière dynamique –Illumination locale calculée dans le vertex shader –60 millions de splats affichés par seconde après culling du GPU –vertex shader exécuté 85 millions de fois par seconde

25 Conclusion Sequential point trees version séquentielle des point trees hiérarchiques Sélection du niveau de détails gérée quasi entièrement par le GPU, avec un simple vertex program Affichage effectif de 50 millions de points par secondes sur un GPU actuel, faible charge CPU (idéal pour jeux vidéos…) Extension proposée pour rendu hybride point/polygone, sans apparition dartefacts

26 (Et pour finir) MAGNETO, SERGE… (La page web pour télécharger larticle et la vidéo)

27 (Au cas où)


Télécharger ppt "Sequential Point Tree Carsten Dachsbacher Christian Vogelgsang Marc Stamminger Présentation : Thomas BARTHES Matthieu CORVAISIER."

Présentations similaires


Annonces Google