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

IFT3355: Infographie Visibilité © Victor Ostromoukhov Dép. I.R.O. Université de Montréal.

Présentations similaires


Présentation au sujet: "IFT3355: Infographie Visibilité © Victor Ostromoukhov Dép. I.R.O. Université de Montréal."— Transcription de la présentation:

1 IFT3355: Infographie Visibilité © Victor Ostromoukhov Dép. I.R.O. Université de Montréal

2 Visibilité 1. Pour créer une image, on doit premièrement effectuer la projection et le clippage 2. Pour une scène constituée dobjets opaques et non-réfléchissants, on doit ensuite déterminer ce qui est à lavant pour chaque élément de limage 3. Finalement, on doit afficher lélément de limage avec la bonne couleur

3 Visibilité Déterminer les surfaces visibles ou éliminer les surfaces cachées Il existe deux classes dalgorithmes pour résoudre le problème de la visibilité: –Algorithmes en espace image –Algorithmes en espace objet

4 1. Algorithmes en espace image Détermine pour chaque élément dimage (de p pixels), lobjet (de n objets) qui est le plus près du centre de projection tout en étant dans le volume de vision O(n p) Ex: 100 x (640x480) = 30,720,000 opérations

5 1. Algorithmes en espace image - Précision dépend de la résolution de limage - La visibilité doit être recalculée à chaque changement de résolution et/ou de positionnement de la fenêtre + Les algorithmes et leurs structures sont habituellement plus simples Ex: tampon de profondeur, balayage de lignes, subdivision, lancer de rayons

6 2. Algorithmes en espace objet Détermine entre chaque objet lequel est devant lautre étant donnée la direction de projection O( ) Ex: 100 x 100 = 10,000 opérations

7 2. Algorithmes en espace objet + Précision dépend de la résolution des objets + La visibilité est indépendante de la résolution de limage et peut même être indépendante de la position de la fenêtre - Les algorithmes et leurs structures sont habituellement assez complexes Ex: algorithme du peintre, octree, arbres BSP

8 Cohérences Hiérarchies en 3D Face polygonale (si aucune inter-pénétration) Changements seulement aux segments Faces orientées vers larrière (backface culling) Similarités entre lignes de balayage adjacentes Similarités entre régions adjacentes de lespace Similarités de profondeur pour des parties dun même objet Similarités dans une séquence dimages

9 Tampon de profondeur (z-buffer) Initialise tous les pixels rgb (x,y) = couleur arrière-plan z (x,y) = distance arrière-plan Pour chaque objet, scan-conversion dans le tampon Pour chaque pixel (x,y) couvert par lobjet Si distance-objet (x,y) < z (x,y) z (x,y) = distance-objet (x,y) rgb (x,y) = couleur objet

10 Tampon de profondeur (z-buffer) * * * 3 4 4 4 5 * * * * * * * * * * 5 6 * * * * * 5 6 6 * 3 * * * * 6 7 3 3 4 * * * * 3 3 4 4 * * * * 3 4 4 4 5 * * * * * * * * * * * * * 3 * * * * * * 3 3 4 * * * * 3 3 4 4 *

11 Tampon de profondeur (z-buffer) Scan-conversion: remplissage par balayage Profondeur:

12 Interpolation bilinéaire (alternative) X Y Interpole aussi: couleur, texture, normale, etc.

13 Tampon de profondeur (z-buffer) Avantages/désavantages: +simplicité, généralité +hardware, parallélisme -mémoire additionnelle pour les tampons +aucune mémoire pour conserver la scène -aliassage (en XY et en Z)

14 Donc rendre aussi petit que possible correspond à minimiser f et maximiser n Z-fighting Donc rendre aussi petit que possible correspond à minimiser f et maximiser n dérivée de chaque côté taille des bins en espace monde Majeed Hayat

15 Partition de lespace Dans lalgorithme du peintre, les objets sont ordonnés en fonction de leur distance à la fenêtre, et ils sont affichés du plus éloigné au plus rapproché Ex: celluloïdes, VLSI Dans certains cas, cet ordre est impossible sans découpage au préalable

16 Octree Pour nimporte quel point de vue, on peut énumérer les faces dun cube de la plus éloignée à la plus rapprochée. Cette approche se généralise à loctree En alternant selon X, Y, Z et glissant le plan de subdivision, on obtient un kd-tree

17 Partition binaire de lespace (BSP tree) Loctree se généralise à son tour à la partition binaire de lespace en se servant des plans de support des polygones comme éléments de séparation +Très utile lorsque la scène est statique mais que le point de vue peut être nimporte où dans la scène

18 Création dune partition binaire BSPTree * BSPMakeTree (liste de polygones) –choisit un polygone comme racine –pour tous les autres polygones p si p est devant, ajoute p à la liste de devant si p est derrière, ajouter p à la liste de derrière sinon, découpe p en deux par rapport au plan de la racine et ajoute chaque moitié à sa liste respective BSPTree = BSPCombineTree ( BSPMakeTree (liste de devant), racine, BSPMakeTree (liste de derrière))

19 Exemple de construction darbre BSP A E C B D A E C1 B D C2 C1 C2

20 Découpage en 3D T1 = (a,b,A) T2 = (b,B,A) T3 = (A,B,c)

21 Ordonnancement dans un arbre BSP Si loeil est dun côté dun plan, les objets de lautre côté ne pourront jamais être devant un objet du même côté du plan que loeil On peut donc traverser larbre de derrière à devant pour tout point de vue en affichant simplement avec un algorithme du peintre

22 Algorithme daffichage dun arbre BSP AfficheArbre (sousArbre) –si loeil est devant la racine AfficheArbre (sousArbre->arrière) AffichePolygone (sousArbre->racine) AfficheArbre (sousArbre->devant) –sinon AfficheArbre (sousArbre->devant) AffichePolygone (sousArbre->racine) AfficheArbre (sousArbre->arrière) // si aucun backface culling

23 Avantages et inconvénients du BSP +Les plans de la pyramide de vue peuvent être utilisés pour le clippage avec BSP +Si lillumination (shading) est coûteuse, on peut aussi afficher de devant à derrière en naffichant un pixel que sil na pas déjà été affiché +On peut aussi traiter les ombres de sources de lumière ponctuelles -Obtenir un arbre BSP avec le moins de polygones coupés est une tâche complexe -Problèmes de robustesse en créant des polygones étroits

24 Optimization du BSP Racine T1: 2 nodes Racine T2: 4 nodes n objets: n! possibiliés

25 Généralement, les techniques précédentes en espace image projettent les objets sur une fenêtre. Il faut alors projeter tous les n objets: O(n p) Le lancer de rayons (ou ray casting pour ne traiter que la visibilité) consiste à lancer un rayon au travers de la fenêtre pour identifier la première surface entre la fenêtre et la scène 3D: O(n res) pour res pixels Traitement pixel par pixel plutôt que objet par objet Utilisé aussi pour le picking Lancer de rayons (ray tracing/ray casting)

26 Un rayon est défini par une origine une direction définie par un point sur la fenêtre Sous forme paramétrique, un rayon sexprime comme Lancer de rayons - Le rayon

27 Lancer de rayons - Intersection avec un plan Lintersection dun rayon avec un plan (A,B,C,D) consiste à exprimer le plan en fonction de la forme paramétrique du rayon Pour lintersection avec un polygone, il faudra déterminer si le point dintersection est à lintérieur du polygone

28 Lancer de rayons - Intersection avec une sphère Similairement pour lintersection dun rayon avec une sphère 0, 1 ou 2 intersections réelles

29 Lancer de rayons - Visibilité au pixel Pour identifier la surface visible du pixel, il suffit dintersecter tous les objets et de ne conserver que lintersection ayant la plus petite valeur positive de t

30 Lancer de rayons récursif (ray tracing) Le premier rayon identifie la visibilité à partir de loeil Du point dintersection, dautres rayons peuvent être tracés pour déterminer la visibilité des lumières et calculer leurs contributions Du point dintersection, dautres rayons peuvent aussi être tracés pour déterminer les contributions de la réflexion et de la transmission/réfraction On doit sassurer de ne pas ré-intersecter lobjet au nouveau point de départ (surface acné) –ajouter une distance epsilon au rayon (trouver la bonne valeur par rapport aux objets et la scène) –ne pas intersecter la surface elle-même (plus limité: surface convexe et test par rapport à la normale)

31 Lancer de rayons récursif (ray tracing)

32 Lancer de rayons: types de rayons Rayons dombre: Rayons réfléchis:

33 Lancer de rayons: types de rayons Rayons transmis / réfractés: (la loi de Snell)

34 Lancer de rayons: réfraction

35 Intersection en espace objet (instancing) espace objet espace monde

36 Accélérations du lancer de rayons Rayon - objet algorithmes dintersection volumes englobants Moins dintersections par rayon subdivisions despace techniques directionnelles hiérarchies de volumes englobants Moins de rayons contrôle de profondeur statistiques Rayons généralisés faisceau conique paraxial

37 Volumes englobants espace objet boîte orientée (OBB) boîte alignée sur les axes (AABB) hiérarchie de boîtes englobantes (BVH)

38 Grilles 1er test: aucune intersection 2e test: intersection hors du voxel courant 3e test: intersection valide, dans le voxel, stop

39 Lancer de rayons distribués Anti-aliassage –échantillonnage régulier –échantillonnage stratifié (jitter) Pénombres –échantillonner la lumière –échantillonner langle solide formé par la lumière Profondeur de champ –échantillonner les lentilles (simulées) dune caméra Réflexion glossy –échantillonner le cone de réflexion Flou de mouvement –échantillonner (le mouvement dans) le temps

40 Lancer de rayons distribués Anti-aliassage –échantillonnage régulier –échantillonnage stratifié (jitter) Pénombres –échantillonner la lumière –échantillonner langle solide formé par la lumière Profondeur de champ –échantillonner les lentilles (simulées) dune caméra Réflexion glossy –échantillonner le cone de réflexion Flou de mouvement –échantillonner (le mouvement dans) le temps

41 Lancer de rayons distribués Anti-aliassage –échantillonnage régulier –échantillonnage stratifié (jitter) Pénombres –échantillonner la lumière –échantillonner langle solide formé par la lumière Profondeur de champ –échantillonner les lentilles (simulées) dune caméra Réflexion glossy –échantillonner le cone de réflexion Flou de mouvement –échantillonner (le mouvement dans) le temps

42 Lancer de rayons distribués Anti-aliassage –échantillonnage régulier –échantillonnage stratifié (jitter) Pénombres –échantillonner la lumière –échantillonner langle solide formé par la lumière Profondeur de champ –échantillonner les lentilles (simulées) dune caméra Réflexion glossy –échantillonner le cone de réflexion Flou de mouvement –échantillonner (le mouvement dans) le temps

43 Lancer de rayons distribués Anti-aliassage –échantillonnage régulier –échantillonnage stratifié (jitter) Pénombres –échantillonner la lumière –échantillonner langle solide formé par la lumière Profondeur de champ –échantillonner les lentilles (simulées) dune caméra Réflexion glossy –échantillonner le cone de réflexion Flou de mouvement –échantillonner (le mouvement dans) le temps

44 Lancer de rayons distribués Anti-aliassage –échantillonnage régulier –échantillonnage stratifié (jitter) Pénombres –échantillonner la lumière –échantillonner langle solide formé par la lumière Profondeur de champ –échantillonner les lentilles (simulées) dune caméra Réflexion glossy –échantillonner le cone de réflexion Flou de mouvement –échantillonner (le mouvement dans) le temps

45 Submissions 2007

46 Weathering


Télécharger ppt "IFT3355: Infographie Visibilité © Victor Ostromoukhov Dép. I.R.O. Université de Montréal."

Présentations similaires


Annonces Google