Optimisation des volumes dombre pour un rendu temps réel Université Mohamed Khider Biskra,...
-
Upload
telesphore-guitton -
Category
Documents
-
view
108 -
download
1
Transcript of Optimisation des volumes dombre pour un rendu temps réel Université Mohamed Khider Biskra,...
Optimisation des volumes d’ombre pour
un rendu temps réel
Université Mohamed Khider Biskra, Département d’informatique laboratoire LESIA, Biskra, Algérie
Présenté par Abd El Mouméne Zerari
Rencontres sur la Recherche en InformatiqueUniversité Mouloud MammeriTizi-Ouzou 12-14 Juin 2011
Plan de l’exposé2
Introduction
Modèle proposé
Résultats et discussions
Conclusion et perspectives
occulteur
Source de lumière
Receveur d’ombre
Ombre
Introduction 3
Comment générer les ombres?41
• 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
Source de lumière
occulteur
receiver
oeil extrusion de la silhouette
Face avant
Arête Silhouette
Comment construire les volumes d'ombre ? trouver la silhouette des objets vus depuis la source.
construire les quadruples infinis en s’appuyant sur :
• la source• chaque bord de silhouette
Compter le nombre E/S. - On utilisant le stencil buffer
récepteurs d'ombre
Calcule des volumes d’ombre5
Stencil Shadow Volumes6
A l’infini
+1
-1-1
-1
Initialize Stencil buffer = 0
Compteur du Volume d’ombre du point Q = +1+1-1= +2 => correct
Camera
Approche ZFail (inverse de ZPass) 7
Stenciled Shadow Volumes8
• Ombre propre et ombre portée
• Robuste si bien programmé
Avantages
• 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)
Inconvénients
Optimisations Stenciled Shadow Volumes
9
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)
Optimisation par la détermination de la silhouette10
Mais l’étape de détection de l’information de
contiguïté est implémenté sur le CPU
(pré-calcul)
Extrusion de
la silhouette par GPU
(shader).
Techniques
Z-FAIL
Notre travail est basé sur la méthode de volume d’ombre de Gunter Wallner [WAL08]:
Notre analyse faite sur les limites de l’ancien méthode.
IL n’y a aucune géométrie qui est à base de silhouette.
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.
Nous a permis de conclure que
Optimisation par la détermination de la silhouette11
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.
Le modèle proposé12
Vertex Processing
Geometry Assembly
Vertex Data
Clipping and viewport transformation
Fragment Processing
Depth Test
Rasterization
Frame Buffer
Vertex Shader
Fragment Shader
Geometry Shader
fonctions
câblées CPU
fonctions écrites par le
programmeur GPU
Pipeline OpenGL avec l’introduction de la version 4 du Shader model.1
3
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.
Silhouettes à base de Geometry Shader
14
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 Fin si
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 Fin si
pseudo code Geometry Shader15
0
1
2
3
4
5
if( dot(eyeVec,N1) > 0 && dot(eyeVec,N2) < 0)
N1
N2
Un triangle primaireTrois triangles adjacents
Afin de pouvoir accéder à l'information de contiguïté, le GS exige que les index de triangle soit trier
Détection et extrusion de la Silhouette par GS
16
0
1
2
3
4
5
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.
Résultats et discussions17
Méthode de Gunter
13200 triangles
18
Notre Méthode
13200 triangles
19
Méthode de Gunter
200000 triangles
20
Notre Méthode
200000 triangles
21
Discussion des résultats22
FPS
Scène sans ombre Méthode de Gunter Wallner [1] Méthode proposée
Triangles
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.
Comparaison des résultats23
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.
CONCLUSION24
É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.
Perspectives25
Fin merci pour votre attention