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

Présentations similaires


Présentation au sujet: "Lancer de rayons interactif"— 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 I1 I2 I1 < I2 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 Source 1 Rayons d ’ombrage Source 2 P O
I(P) = a . I(Source1) I(Source2)

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

7 Arbre de rayons Réflexions uniquement O P P’ …. P’’’ P’’
Sn …. P’’’ P’’ Rayons transmis Réflexions + réfraction O P P’ P’’ S1 Sn …. Rayon primaire Rayons réfléchis

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 : (N2 x No) x ((Ns+2) x No)P N2 : nombre de pixels de l ’image ( = nombre de rayons primaires) No : nombre d ’objets dans la scène Ns : 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 d’intersections à calculer gain importants si Ni << No 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 Pas d ’intersection avec l ’englobant Intersection avec l ’englobant mais pas avec l ’objet Intersection avec l ’englobant et avec l ’objet 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

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
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 N3 voxels ; au moins un pointeur par voxel => + de 4N3 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 l’espace 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 : Principe : Construction : processus récursif
Octree = arbre possédant 8 fils Principe : Chaque fils représente un volume parallélépipédique de l’espace Ce volume contient Soit un nombre maximum d’objets (fixé à l’avance) 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<MAX) =

20 Avantages / inconvénients
Réduction du nombre de voxels (on regroupe de nombreux voxels vides au sein d’un 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 1 objet : stop vide : 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 d’un 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 d’un pixel / d’une zone (propagation des arbres de rayons dans la scène) Classiquement : mémoire réduite sur esclaves => accroissement des communications

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

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

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 d’accè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 bits Registres 256 bits x x4 x3 x2 x1 y
+ + y4 y3 y2 y1 = x+y = x4+y4 x3+y3 x2+y2 x1+y1

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 : Performances : 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 Distribution
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"

Présentations similaires


Annonces Google