Lancer de rayons interactif

Slides:



Advertisements
Présentations similaires
Tests et Validation du logiciel
Advertisements

Hierarchical Z-Buffer Visibility
1 IXERP consulting. L archivage consiste à extraire de la base de données opérationnelle les informations qu' il n est plus nécessaire de conserver «
RENDU DE TERRAIN Problématique : Rendre une très large zone de terrains en la simplifiant au maximum pour réduire le nombre de polygones à afficher. A.Bailly.
Unstructured Lumigraph Rendering
The Reyes Image Rendering Architecture
Accélération du Rendu Volumique basée sur la Quantification des Voxels
Visible Surface Determination (Hidden Surface Removal)
Marques Patrice & Maurer Romain DESS IMM 2002 / 2003 ACCELERATION DE LA RADIOSITE.
Technique des Surfels Surfels: Surface Elements as Rendering Primitives SIGGRAPH 2000 H.Pfiste, J.van Baar, M.Zwicker, M.Gross.
Efficient Simplification of Point-Sampled Surfaces
Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.
LIRMM 1 Journée Deuxièmes années Département Microélectronique LIRMM.
Détection des collisions dans un moteur 3D temps réel
Synthèse d’images.
Scène de test (60000 polygones, 4000m2)
Algorithmes à base darbre BSP. Principe Se servir dune structure arborescente afin déliminer le traitement dune branche entière sur un test de visualisation.
Rendu de pierres taillées en temps réel Stéphane Guy Directeur de stage: Cyril Soler.
Xavier Décoret* Frédo Durand° François Sillion*
Yann Chevaleyre et Jean-Daniel Zucker
ACS et Séquences Comportementales en environnements non-markoviens
Transferts radiatifs, Synthèse d’images et Environnement
Parallélisation d’un Algorithme CNFT
CALCUL PARALLELE PRODUIT : MATRICE – VECTEUR 10 pages Exposé par :
Reconstruction de volume 3D
Méthodes d‘optimisation en finance
Heuristiques A. Introduction B. Recherche d ’une branche
Création d’un programme :
Optimisation et parallélisation de code pour processeur à instructions SIMD multimedia François Ferrand.
Allocation de mémoire Allocation de mémoire.
Visualisation de surfaces décrites analytiquement
Génération d’un segment de droite
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Recherche dun même objet / scène Approches basées sur des descripteurs locaux Approches basées sur des descripteurs globaux.
IFT3355: Infographie Visibilité
L’adaptativité pour un solveur de l’équation de Vlasov
Le principe de superposition ou Diviser pour régner.
Rendu réaliste en synthèse d’images.
Géométrie épipolaire (deux vues)
Calcul d ’interactions Antenne/Structure par FMM
Projet Télédétection Vidéo Surveillance Deovan Thipphavanh – Mokrani Abdeslam – Naoui Saïd Master 2 Pro SIS / 2006.
OPTIQUE GÉOMETRIQUE.
Modélisation géométrique
Module 8 : Surveillance des performances de SQL Server
KF-RAY Raytracer parallèle Projet long d’informatique
Création en images de Synthèse Modèles de rendu d’une scène 3D
Optimisation par les algorithmes génétiques
Bases de données fédéréEs hétérogènes
Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P0 P2 P1.
Un état de l’art sur les logiciels de détection de collision
Projet Lancer de Rayons
Modèles Mathématiques et représentation discrètes pour la description des images couleur Luc Brun.
ETNA – 1ème année Guillaume Belmas –
Synthèse réaliste d’image par raytracing et photon mapping
Construction d'une hiérarchie mémoire faible consommation
Chapitre VIII Découpage d’une scène selon une fenêtre donnée.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Performance de circuits.
Credits : Joëlle Thollot, Hector Briceño, Edmond Boyer
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Romain Dupont encadré par J.Aubourg et P. Fuchs
Architecture et Fonctionnement d’un GPU Géométrie Rendu.
LCIN4U73 Bases géométriques de l’imagerie
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Plan du cours Cours 1,2 : le pipeline graphique
Visualisation des flots optiques en 3D
Création et Optimisation de Modules Audio avec les instructions SSE
IFT3355: Infographie Plan © Victor Ostromoukhov Dép. I.R.O. Université de Montréal.
Memoire.
Novembre 2003 Simulation numérique en vibro-acoustique par couplage de deux codes parallèles Unité de Recherche Calcul à Haute Performance François-Xavier.
Transcription de la présentation:

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

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

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 =

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 ...

Illustration Source 1 Rayons d ’ombrage Source 2 P O I(P) = a . I(Source1) + 0 . I(Source2)

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) + 0 . I(Source2) + I(P’)

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

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

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

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

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

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

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

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

Illustration

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

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 »

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

Illustration N objets (N<MAX) =

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

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

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

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 ???

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)

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

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

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

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

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 !

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

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 ….)

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

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

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

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)

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)

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

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

Lancer de rayons Tracé de chemins

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) ?