جامعــــــة محمد خيضــــــــــــر Université Mohamed Khider Biskra, Département d’informatique laboratoire LESIA, Biskra, Algérie جامعــــــة محمد خيضــــــــــــر بــســكــــــــــــرة Optimisation des volumes d’ombre pour un rendu temps réel Présenté par Abd El Mouméne Zerari Notre sujet a comme titre _____ qui est dans le cadre de la synthèse d’immage Rencontres sur la Recherche en Informatique Université Mouloud Mammeri Tizi-Ouzou 12-14 Juin 2011
Plan de l’exposé Introduction Modèle proposé Résultats et discussions Conclusion et perspectives
Introduction Source de lumière occulteur Receveur d’ombre Ombre On commence par la modélisation Receveur d’ombre Ombre 3
Comment générer les ombres? 1 Les techniques traditionnels 2 basées sur le lancé de Rayon 3 basées sur d’illumination global 4 Shadow Maps 5 Volumes d’ombre 4 Comment générer les ombres?
Calcule des volumes d’ombre 5 Calcule des volumes d’ombre construire les quadruples infinis en s’appuyant sur : la source chaque bord de silhouette Compter le nombre E/S. - On utilisant le stencil buffer Comment construire les volumes d'ombre ? trouver la silhouette des objets vus depuis la source. Source de lumière Arête Silhouette extrusion de la silhouette oeil occulteur Face avant Maintenant nous allons présentés les 2algo pour la modélisa receiver récepteurs d'ombre 5
Stencil Shadow Volumes 6 Stencil Shadow Volumes Stencil shadow volumes. Elle utilise la géométrie pour extraire les volumes. Ces volumes sont ensuite dessinés dans une image appelée « Stencil-Buffer » pour y obtenir un masque indiquant quels pixels sont dans l’ombre. deux techniques de base pour dessiner ces volumes d’ombre dans le Stencil-Buffer. Elles sont connues sous les noms de Z-Pass et Z-Fail Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: 6
Approche ZFail (inverse de ZPass) 7 Approche ZFail (inverse de ZPass) Initialize Stencil buffer = 0 +1 -1 -1 A l’infini -1 Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: Camera Compteur du Volume d’ombre du point Q = +1+1-1= +2 => correct 7
Stenciled Shadow Volumes 8 Stenciled Shadow Volumes Avantages Ombre propre et ombre portée Robuste si bien programmé Inconvénients Algorithme Multi-passe Exigence du calcule de la Silhouette qui peut charger le CPU (pré-calcul) Des modèles polygonales fermés L’exigence d’information d’adjacence entre les primitives de bases ( calculer par le CPU) Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: 8
Optimisations Stenciled Shadow Volumes 9 Optimisations Stenciled Shadow Volumes Optimisation par la réduction de la géométrie Optimisation du rendu des Volumes d’ombre Programmes Shaders pour le rendu du volume d’ombre Optimisation par la détermination de la silhouette en utilisation du Geometry Shader (notre contribution) Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: 9
Optimisation par la détermination de la silhouette 10 Optimisation par la détermination de la silhouette Notre travail est basé sur la méthode de volume d’ombre de Gunter Wallner [WAL08]: Techniques Z-FAIL Extrusion de la silhouette par GPU (shader). Mais l’étape de détection de l’information de contiguïté est implémenté sur le CPU (pré-calcul) Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: 10
Optimisation par la détermination de la silhouette 11 Optimisation par la détermination de la silhouette Notre analyse faite sur les limites de l’ancien méthode. IL n’y a aucune géométrie qui est à base de silhouette. Nous a permis de conclure que Avec la nouvelle étape du Geometry Shader de GPUs, il est devenu possible de calculer les volumes d’ombre et de détecter la silhouette sur le matériel graphiques. Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: 11
12 Le modèle proposé Grâce aux GS, une nouvelle possibilité est ouverte, puisque l’information d’adjacence est disponible. Nous pouvons produire de la géométrie de silhouette. Notre contribution consiste à implémenter l’étape de calcul de l’information d’adjacence entre les primitives de base nécessaires pour le calcul de silhouette sur le GPU et de détecter et d’extruder la silhouette en utilisant les GS. Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: 12
Pipeline OpenGL avec l’introduction de la version 4 du Shader model. 13 Pipeline OpenGL avec l’introduction de la version 4 du Shader model. Vertex Data Vertex Processing Vertex Shader Geometry Assembly Geometry Shader fonctions câblées CPU Clipping and viewport transformation Rasterization Fragment Processing Fragment Shader Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: Depth Test fonctions écrites par le programmeur GPU Frame Buffer 13
Silhouettes à base de Geometry Shader 14 Silhouettes à base de Geometry Shader Le vertex shader ne reçoit pas les informations de connectivité (triangles ou quads), il ne reçoit que les coordonnées des points, indépendamment les uns des autres. Grâce au GS on peut traiter une maille au niveau primitif avec l'information d’adjacence (triangles voisins), ce qui permettra de produire une nouvelle géométrie en sortie. C'est l'information que nous devons détecter pour créer les arêtes de la silhouette.
pseudo code Geometry Shader 15 pseudo code Geometry Shader Calculer la normale du triangle central et le vecteur de position de vue Si le triangle est en face avant alors Pour tous les triangles adjacents faire Calculer la normale Si le triangle est en face arrière alors Émettre les sommets Extruder la silhouette Fin si Fin pour Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: 15
Détection et extrusion de la Silhouette par GS 16 Détection et extrusion de la Silhouette par GS Un triangle primaire Trois triangles adjacents 1 2 3 4 5 2 1 3 N2 4 N1 5 Afin de pouvoir accéder à l'information de contiguïté, le GS exige que les index de triangle soit trier if( dot(eyeVec,N1) > 0 && dot(eyeVec,N2) < 0)
Résultats et discussions 17 Résultats et discussions En variant le nombre d’objet à base de triangles de 300 à 200000 triangles tout en mesurant la fréquence d'affichage des images par seconde : FPS. Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: 17
Méthode de Gunter 13200 triangles 18 Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: 18 18
Notre Méthode 13200 triangles 19 Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: 19 19
Méthode de Gunter 200000 triangles 20 Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: 20 20
Notre Méthode 200000 triangles 21 Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: 21 21
Discussion des résultats 22 Discussion des résultats FPS Scène sans ombre Méthode de Gunter Wallner [1] Méthode proposée Triangles Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: 22
Comparaison des résultats 23 Comparaison des résultats La comparaison des résultats obtenus par l’implémentation de la méthode Gunter Wallner et celle proposée montre visiblement l’amélioration de la rapidité du rendu et l’optimisation du temps de calcul. Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: 23
24 CONCLUSION Nous avons présenté une amélioration d’une méthode de volume d’ombre basée sur le Geometry Shader, capable d'effectuer des rendus en temps réel. Cette amélioration concerne la partie de détection et l’extrusion de silhouette, sans avoir besoin de prétraitement. Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: 24
25 Perspectives Étendre notre étude pour d’autres scènes plus complexes, et la prise en charge des niveaux de détails dans la génération des ombres. Prendre en considération l’exploitation des avancements dans les techniques, certes plus complexes mais surtout plus efficaces, tout en considérant la possibilité de faire évoluer les ombres vers des résultats toujours plus rapide. Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: 25
Fin merci pour votre attention Avant: Nous penson que ce travail peut etre une brique de base pour des travaux plus affinés qui peuvent etrent traiter Par approximation après: 26