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

Lancer de rayons interactif Réunion équipe graphique 06/02/2003.

Présentations similaires


Présentation au sujet: "Lancer de rayons interactif Réunion équipe graphique 06/02/2003."— Transcription de la présentation:

1 Lancer de rayons interactif Réunion équipe graphique 06/02/2003

2 Plan Rappels sur le lancer de rayons vers un lancer de rayons interactif

3 I Rappels sur le lancer de rayons Initialement : –algorithme d élimination des parties cachées Principe : –pour chaque pixel P lancer un rayon d origine O et de direction OP dans la scène calculer les intersections entre le rayon et les objets conserver l objet le plus proche O P I1I1 I2I2 I 1 < I 2 P =

4 Calcul de l éclairage Éclairage local/direct Prise en compte de la visibilité de chaque source : –lancer d un rayon d ombrage depuis le point d intersection vers chaque source si aucun obstacle : –la source est visible –on ajoute sa contribution si il existe un obstacle (intersection avec un objet de la scène) –aucune contribution de la source => prise en compte des ombres...

5 Illustration O Rayons d ombrage Source 1 Source 2 P I(P) = I(Source 1 ) + 0. I(Source 2 )

6 Prise en compte des reflets O Source 1 Source 2 P I(P) = I(Source 1 ) + 0. I(Source 2 ) + I(P) P Rayon réfléchi Réflexions spéculaires uniquement

7 Arbre de rayons O P P P S1S1 SnSn …. S1S1 SnSn S1S1 SnSn Rayon primaire Rayons réfléchis Réflexions uniquement O P P S1S1 SnSn …. S1S1 SnSn PP S1S1 SnSn S1S1 SnSn Rayons transmis Réflexions + réfraction

8 Arrêt du processus I(P (n) ) < seuil minimal –l apport des rayons réfléchis/réfractés suivants est considéré comme négligeable n < profondeur maximale –évite les boucles infinies en général, combinaison des deux

9 Coût de calcul Algorithme basé sur le calcul des intersections entre les rayons et les objets composant la scène Approche naïve : –calcul de toutes les intersections entre chaque rayon et tous les objets de la scène –coût : (N 2 x N o ) x ((N s +2) x N o ) P N 2 : nombre de pixels de l image ( = nombre de rayons primaires) N o : nombre d objets dans la scène N s : nombre de source dans la scène P : profondeur maximale de l arbre

10 Réduction du coût Simplifier le calcul de chaque intersection –gain limités Réduire le nombre dintersections à calculer –gain importants si N i << N o –utilisation de structures de données spécialisées Distribuer les calculs –efficace sur de petites scènes (duplication de la scène) –plus complexe sur des scènes de grande taille

11 Structures accélératrices Nombreuses et basées sur le regroupement des primitives géométriques partageant un espace commun –volumes englobants –subdivisions spatiales régulières irrégulières

12 Les volumes englobants Principe : –entourer un objet « complexe » par un objet plus simple appelé englobant –2 étapes pour le calcul d intersection intersection avec l englobant –si intersection, calcul de l intersection avec l objet interne –si pas d intersection, aucune intersection possible avec l objet interne Pas d intersection avec l englobant Intersection avec l englobant mais pas avec l objet Intersection avec l englobant et avec l objet

13 Hiérarchie de volumes englobants Généralisation du principe des englobants à plusieurs niveaux –arborescence de volumes englobants

14 Subdivision régulière Tout le volume englobant la scène est découpé en N x N x N voxels (volume elements) Chaque voxel contient la liste des objets qui se trouvent dans l espace qu il représente Il faut calculer le trajet du rayon dans le volume de voxels –Utilisation d un algorithme de tracé de droite 3D de type bresenham

15 Illustration

16 Avantages / Inconvénients Avantages : –découpage fin réduction importante du nombre d objets à traiter –suivi incrémental de la trajectoire du rayon simplicité rapidité Inconvénients –espace mémoire supplémentaire important N 3 voxels ; au moins un pointeur par voxel => + de 4N 3 octets –en général beaucoup de voxels sont vides

17 Subdivisions irrégulières Objectif –Réduire le trop grand nombre de voxels vides Moyen –Ne pas découper lespace de manière régulière –Utiliser des voxels de taille différente Différentes approches : –Arbres « Octrees » –Arbres « BSP »

18 Les octrees Définition : –Octree = arbre possédant 8 fils Principe : –Chaque fils représente un volume parallélépipédique de lespace –Ce volume contient Soit un nombre maximum dobjets (fixé à lavance) Soit rien Construction : processus récursif À chaque étape, on découpe un volume en 8 sous volumes identiques (division par 2 selon chaque axe) On teste les conditions de contenu pour chaque sous volume

19 Illustration N objets (N

20 Avantages / inconvénients Avantages : –Réduction du nombre de voxels (on regroupe de nombreux voxels vides au sein dun seul volume) Inconvénients : –Suivi du rayon plus difficile (les volumes traversés successivement ne sont pas identiques) Exemple 2D

21 Les arbres BSP BSP = Binary Space Partition Amélioration des octrees –On ne découpe pas systématiquement en 8 –On découpe en 2, en variant cycliquement le plan de découpe –Mêmes critères pour le découpage : Volume contenant plus de MAX objets : on découpe Sinon on ne découpe pas Avantage : réduction du nombre de voxels Inconvénient : suivi + difficile des rayons

22 Illustration 2D 1 objet : stop vide : stop 1 objet : stop

23 Cependant... Les performances obtenues restent loin de la notion d interactivité –quelques secondes de calcul pour une scène de très faible complexité –plusieurs minutes à plusieurs heures dès lors que la scène se complexifie Comment obtenir un lancer de rayons interactif, voire … temps réel ???

24 II. Vers un lancer de rayons interactif Références : –« Interactive distributed ray tracing of highly complex models », Wald et al, Rendering Techniques 2001 –« Interactive rendering with coherent ray tracing », Wald et al, Eurographics 2001 Objectifs : –utiliser le LR sur des très grosses scènes (plusieurs dizaines de millions de triangles) –obtenir une visualisation interactive (plusieurs images par seconde)

25 Moyens mis en œuvre Distribution des calculs Copie « unique » des données Optimisation poussée du lancer de rayons Pas de pré-calculs coûteux sur la scène, tq –indexation spatiale –niveaux de détail –simplification de la géométrie

26 Approche distribuée Approche relativement classique : –un maître gère la distribution des calculs et l affichage –N esclaves ont en charge les calculs d intersection Plus précisément : –chaque esclave calcule une zone image de taille 32x32 qui lui est affectée dynamiquement par le maître

27 Le problème des données LR : « embarrassingly parallel » –le calcul dun pixel est indépendant de celui des autres pixels –même remarque pour une zone 32x32 Mais –nécessité de disposer a priori de toute la scène pour les calculs dun pixel / dune zone (propagation des arbres de rayons dans la scène) Classiquement : mémoire réduite sur esclaves => accroissement des communications

28 Arbre BSP principal Arbres BSP secondaires Arbre BSP global Distribution des données (1)

29 Esclave j Distribution des données (2) Absent ! Arbres BSP secondaires Arbre BSP primaire Maître Arbre BSP primaire Cache pour quelques arbres BSP secondaires Esclave i envoyerBSP(x) x

30 Distribution des données (suite) Gestion du cache : LRU Compression des arbres BSP secondaires Gestion asynchrone des rayons –mise en attente en cas de données manquantes Séparation des données – géométriques : calculs d intersection uniquement –photométriques : pour l illumination d un seul point –réduit les communications –améliore l utilisation du cache

31 Optimisations du lancer de rayons (1) Réduction de la complexité du code –objectif = optimiser l utilisation du pipeline matériel du processeur –moyens : utiliser un seul type de primitive (triangle) choix du BSPTree (code de traversée + simple) réduire les conditions au niveau du code Gestion des caches –réduire les temps daccès aux données nécessaires –prefetching (nécessité d algos simples ….)

32 Optimisations du lancer de rayons (2) Gestion des cohérences entre rayons –des rayons voisins ont un comportement similaire lors de leur trajet dans la scène –application aux rayons primaires et d ombrage Cette forme de cohérence peut être exploitée : –au niveau matériel : routines SSE, réduction des accès mémoires aux données communes, amélioration de l utilisation du cache –dans la gestion de la distribution des calculs

33 Instructions SSE Registres 64 bitsRegistres 256 bits x y x+y x1 y1 x1+y1 x2 y2 x2+y2 x3 y3 x3+y3 x4 y4 x4+y4 + = + =

34 Application au lancer de rayons Calcul simultané de plusieurs intersections –gain de 3.5 à 3.7 Parcours du BSPTree en parallèle pour 4 rayons –traversée 2 à 3 fois plus coûteuse que le calcul d intersection (sans SSE) –calculs liés à la traversée « facilement » parallélisables pour le BSP Calcul simultané de l illumination –réorganisation des calculs en cas de matériaux différents –lancer des rayons d ombrage vers chaque source en SSE

35 Cohérence et distribution Les pixels calculés par un processeur sont corrélés : –zone 32x32 => comportement « similaire » des rayons favorise la localité des BSPTrees nécessaires au calculs d intersection –déplacement (modéré) de la caméra distribution de chaque zone au processeur l ayant calculée à l image précédente (localité des données)

36 Quelques résultats Configuration : –7 bi-processeurs P3 –scène de 50 millions de facettes –images 640 x 480 –1 rayon par pixel –pas de rayons d ombrage ni de réflexions Performances : –entre 3 et 5 images par seconde (sans SSE) –entre 6 et 12 images par seconde (avec SSE - estimation)

37 Commentaires (1) Limitations –restriction des réflexions la cohérence entre rayons décroît lorsque l on descend dans les arbres de rayons –les résultats présentés sont essentiellement liés aux rayons primaires et d ombrage –les résultats restent convenables si les zones de forte réflexion restent petites sur l image

38 Commentaires (2) Intérêts par rapport au tracé de chemin –basé sur le tracé de rayons –doit pouvoir être accéléré par des techniques similaires écriture « fine » du code distribution des calculs Mais nombreux problèmes essentiellement liés au postulat de cohérence

39 Lancer de rayons Tracé de chemins

40 Commentaires (3) SSE –a priori difficulté de trouver des rayons ayant une trajectoire proche –mais applicable aux rayons primaires applicable aux rayons d ombrage de niveau 1 (PTNE) envisager une bufferisation des rayons ? Distribution –efficacité liée à la cohérence de traversée des arbres BSP –perdue du fait des réflexions « aléatoires » envisager une bufferisation des rayons (bis) ?


Télécharger ppt "Lancer de rayons interactif Réunion équipe graphique 06/02/2003."

Présentations similaires


Annonces Google