Optimisation des volumes dombre pour un rendu temps réel Université Mohamed Khider Biskra,...

Post on 03-Apr-2015

108 views 1 download

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