• Aucun résultat trouvé

Partition spatiale contrainte et convexe pour la simulation basée rayons

N/A
N/A
Protected

Academic year: 2021

Partager "Partition spatiale contrainte et convexe pour la simulation basée rayons"

Copied!
123
0
0

Texte intégral

(1)

Pour l'obtention du grade de

DOCTEUR DE L'UNIVERSITÉ DE POITIERS UFR des sciences fondamentales et appliquées

XLIM-SIC

(Diplôme National - Arrêté du 25 mai 2016)

École doctorale : Sciences et ingénierie pour l'information, mathématiques - S2IM (Poitiers) Secteur de recherche : Informatique

Présentée par :

Maxime Maria

Partition spatiale contrainte et convexe pour la simulation basée rayons

Directeur(s) de Thèse : Lilian Aveneau, Sébastien Horna Soutenue le 09 novembre 2016 devant le jury Jury :

Président Christophe Renaud Professeur des Universités, Université du Littoral Rapporteur Kadi Bouatouch Professeur des Universités, Université de Rennes 1 Rapporteur Tamy Boubekeur Professeur des Universités, Télécom ParisTech Membre Lilian Aveneau Maître de conférences, Université de Poitiers Membre Sébastien Horna Maître de conférences, Université de Poitiers Membre Frédéric Mora Maître de conférences, Université de Limoges

Pour citer cette thèse :

Maxime Maria. Partition spatiale contrainte et convexe pour la simulation basée rayons [En ligne]. Thèse Informatique. Poitiers : Université de Poitiers, 2016. Disponible sur Internet <http://theses.univ-poitiers.fr>

(2)

THÈSE

pour l’obtention du Grade de

D

OCTEUR DE L

’U

NIVERSITÉ DE

P

OITIERS

(Faculté des Sciences Fondamentales et Appliquées)

(Diplôme National - Arrêté du 7 Août 2006)

École Doctorale

: Sciences et Ingénierie pour l’Information

Secteur de Recherche : Informatique

Présentée par :

Maxime M

ARIA

Partition spatiale contrainte et convexe

pour la simulation basée rayons

Directeur de Thèse :

Lilian A

VENEAU

Co-encadrant de Thèse :

Sébastien H

ORNA

Soutenue le 09 novembre 2016 devant la Commission d’Examen composée de :

Kadi BOUATOUCH, Professeur, Université de Rennes I, IRISA . . . Rapporteur Tamy BOUBEKEUR, Professeur, Telecom ParisTech, LTCI . . . Rapporteur Frédéric MORA Maître de conférences, Université de Limoges, XLIM/ASALI . . . Examinateur Christophe RENAUD Professeur, Université Littoral Côte d’Opale, LISIC . . . Examinateur Lilian AVENEAU, Maître de conférences HDR, Université de Poitiers, XLIM/ASALI . . . Directeur de Thèse Sébastien HORNA, Maître de conférences, Université de Poitiers, XLIM/ASALI . . . Co-encadrant de Thèse

(3)
(4)

S

OMMAIRE

1 Introduction 1

2 État de l’art 7

2.1 Rendu basé rayons . . . 8

2.1.1 Méthodes d’accélération . . . 10

2.1.2 Structures accélératrices . . . 11

2.2 Partition spatiale et partition objet . . . 12

2.2.1 Partition spatiale . . . 13

2.2.2 Partition objet . . . 15

2.2.3 Partition hybride . . . 18

2.3 Qualité de la partition . . . 19

2.3.1 Qualité d’une grille uniforme. . . 20

2.3.2 Qualité d’une partition spatiale binaire . . . 21

2.3.3 Qualité d’un BVH . . . 23 2.4 Structures de données . . . 25 2.4.1 Structures hiérarchiques . . . 25 2.4.2 Structures linéaires . . . 26 2.5 Parallélisation . . . 27 2.5.1 Parallélisation CPU . . . 28 2.5.2 Parallélisation GPU. . . 30

2.6 Partition spatiale contrainte . . . 32

2.6.1 Principe général . . . 32

2.6.2 Graphe cellules-et-passages . . . 34

2.6.3 Tétraédrisation de Delaunay Contrainte . . . 35

2.7 Conclusion . . . 38

3 CCSP pour bâtiments 41 3.1 Préliminaires . . . 42

3.1.1 Cartes généralisées . . . 42

3.1.2 Modèle topologique pour bâtiments . . . 44

3.1.3 Coordonnées de Plücker . . . 46

3.2 Description de la CCSP . . . 49

3.2.1 Description des volumes . . . 50

3.2.2 Structure de données . . . 50

3.3 Construction de la CCSP . . . 50

3.3.1 Génération de la CCSP . . . 51 III

(5)

3.4.1 Recherche du volume d’origine . . . 54

3.4.2 Recherche de la face de sortie . . . 55

3.5 Rayons secondaires . . . 58

3.5.1 Ensemble potentiellement visible (PVS) . . . 58

3.5.2 Arbre de lumière . . . 59

3.6 Résultats et discussions . . . 60

3.6.1 Méthodologie de test et résultats . . . 60

3.6.2 Construction de la CCSP . . . 61

3.6.3 Parcours de la CCSP . . . 64

3.6.4 Rayons secondaires . . . 66

3.7 Conclusion . . . 69

4 Vers une généralisation aux objets quelconques 71 4.1 CCSP comme méta-structure . . . 72

4.1.1 Construction . . . 72

4.1.2 Parcours. . . 74

4.2 Vers une généralisation de la CCSP aux objets quelconques . . . 75

4.2.1 Méthodes de décomposition convexe de polyèdres 3D . . . 75

4.2.1.1 Complexe linéaire par morceaux . . . 76

4.2.1.2 Décomposition convexe 3D exacte et approchée . . . 77

4.2.1.3 Méthodes existantes de décomposition convexe exacte . . . . 78

4.2.2 Tétraédrisation de Delaunay Contrainte . . . 79

4.2.2.1 Qualité d’une tétraédrisation de Delaunay contrainte . . . 79

4.2.2.2 Parcours d’une tétraédrisation de Delaunay contrainte . . . . 80

4.2.2.3 Nouvel algorithme de recherche de la face de sortie d’un té-traèdre . . . 82

4.2.2.4 Structure de données. . . 85

4.3 Résultats et discussion . . . 85

4.3.1 CCSP comme méta-structure . . . 86

4.3.2 Tétraédrisation de Delaunay Contrainte . . . 88

4.3.2.1 Méthodologie de test et résultats . . . 90

4.3.2.2 Parcours . . . 90

4.3.2.3 Impact des paramètres de construction sur les performances . 91 4.3.2.4 Stabilité numérique . . . 94 4.3.2.5 Comparaison à l’existant . . . 95 4.4 Conclusion . . . 96 5 Conclusion et perspectives 97 Bibliographie 101 IV

(6)

L

ISTE DES FIGURES

1.1 Exemples de simulations de propagation d’ondes . . . 1

1.2 Exemple de scène complexe . . . 3

2.1 Principe du rendu basé rayons . . . 8

2.2 Réflexion et réfraction d’un rayon . . . 9

2.3 Comparaison ombres dures et douces. . . 9

2.4 Exemple de rendu réaliste. . . 10

2.5 Classification des méthodes d’accélération des simulations basées rayons . . . 11

2.6 Exemples de partitions spatiales . . . 13

2.7 Problème des références multiples dans une partition spatiale . . . 14

2.8 Exemples de volumes englobants . . . 16

2.9 Exemple de hiérarchie de volumes englobants . . . 16

2.10 Subdivision dans un SKD-tree . . . 17

2.11 Exemple de méta-structure . . . 19

2.12 Réduction du chevauchement spatial dans une partition objet . . . 19

2.13 Stratégies de découpe dans un KD-tree . . . 22

2.14 Classement des volumes englobants . . . 24

2.15 Exemple de combinaison de volumes englobants . . . 24

2.16 Partition d’une région de G3 . . . . 25

2.17 Parcours d’un KD-tree . . . 26

2.18 Parcours d’un rope-tree . . . 27

2.19 Architecture simplifiée d’un CPU Intel® Core™ i7-4930K . . . 29

2.20 Puissance de calcul théorique des CPU et GPU . . . 30

2.21 Architecture d’une NVIDIA® GeForce® GTX 680 . . . 31

2.22 Exemple de partition spatiale contrainte . . . 33

2.23 Exemple de graphe cellules-et-passages . . . 35

2.24 Calcul du PVS dans un graphe cellules-et-passages . . . 36

2.25 Triangulation de Delaunay et diagramme de Voronoï . . . 37

2.26 Exemples de tétraédrisation de Delaunay contrainte . . . 37

3.1 Involutions d’une 3-G-carte . . . 43

3.2 Cellules et orbites . . . 44

3.3 Représentation topologique d’un bâtiment par une G-carte . . . 45

3.4 Orientation du modèle . . . 45

3.5 Exemple de bâtiment en 2D et 3D . . . 46

3.6 Représentation géométrique des coordonnées de Plücker. . . 47

3.7 Orientation relative de deux droites. . . 48 V

(7)

3.10 Structure de donnée de la CCSP . . . 51

3.11 Parcours de la G-carte pour la génération de la CCSP . . . 52

3.12 Décomposition convexe d’une pièce avec des murs courbes concaves . . . 53

3.13 Parcours de la CCSP . . . 54

3.14 Recherche de la section de sortie d’un rayon depuis l’intérieur d’un volume . . 56

3.15 Recherche de la face de sortie d’un rayon parmi les faces composant une section 57 3.16 Éclairement direct dans un bâtiment . . . 58

3.17 Calcul du PVS des sources lumineuses depuis un volume . . . 59

3.18 Comparaison des méthodes de décomposition convexe . . . 63

3.19 Exemple de la complexité maximale de la recherche d’intersection . . . 64

3.20 Temps de rendu et nombre de volumes traversés. . . 65

3.21 Nombre d’images par seconde en fonction des volumes traversés par rayon . . 65

3.22 Performances en fonction du nombre de rayons d’ombrage lancés . . . 67

3.23 Exemples d’images calculées par tracer de chemins . . . 68

4.1 Inclusion d’objets dans une CCSP . . . 73

4.2 Exemples d’éléments architecturaux complexes . . . 73

4.3 Construction d’une décomposition convexe exacte . . . 76

4.4 Exemples de configurations ne correspondant pas à un complexe linéaire par morceaux . . . 77

4.5 Exemples de décompositions convexes . . . 77

4.6 Caractéristiques d’un tétraèdre . . . 80

4.7 Intersection rayon/triangle avec les coordonnées de Plücker . . . 81

4.8 Comparaison side et produit mixte . . . 81

4.9 Description d’une face d’un tétraèdre. . . 82

4.10 Recherche de la face de sortie d’un rayon depuis l’intérieur d’un tétraèdre . . . 84

4.11 Description de la structure de données de la tétraédrisation de Delaunay contrainte 85 4.12 Voisinage entre tétraèdre . . . 86

4.13 Scène ADMINmeublée . . . 87

4.14 Exemples de rendu de scènes meublées . . . 89

4.15 Temps de rendu et nombre de tétraèdres traversés. . . 92

4.16 Nombre d’images par seconde en fonction des tétraèdres traversés par rayon. . 92

4.17 Performances en fonction du ratio rayon/arêtes minimum donné à la construction. 93 4.18 Illustration du nombre de tétraèdres traversés par rayon en fonction du ratio rayon/arêtes minimum donné à la construction. . . 94

(8)

L

ISTE DES TABLEAUX

2.1 Classification des structures accélératrices . . . 12

3.1 Caractéristiques des scènes . . . 60

3.2 Performances mesurées pour la CCSP . . . 61

3.3 Comparaison des méthodes de décomposition convexe . . . 63

3.4 Comparaison des performances du lancer de rayons primaires. . . 66

3.5 PVS et arbres de lumière . . . 67

4.1 Organisation des données d’un tétraèdre . . . 82

4.2 Face de sortie à partir de l’identifiant et de la face d’entrée . . . 83

4.3 Caractéristiques des scènes meublées. . . 87

4.4 Performances mesurées pour la méta-CCSP . . . 88

4.5 Comparaison des performances du lancer de rayons primaires pour des scènes meublées . . . 88

4.6 Caractéristiques des scènes . . . 90

4.7 Résultats Ray casting . . . 91

4.8 Performances en fonction de la configuration de la tétraédrisation de Delaunay contrainte . . . 93

4.9 Erreurs numériques . . . 95

4.10 Comparaison des performances avec [ALK12] . . . 95

(9)
(10)

CHAPITRE 1

I

NTRODUCTION

Les applications de simulation de propagation d’ondes (acoustiques, thermiques, radio ou encore optiques) sont de plus en plus utilisées dans l’industrie et ce, dans des domaines d’ap-plication divers et variés. Par exemple, dans le domaine de la télécommunication et plus par-ticulièrement des réseaux sans fil, simuler la propagation d’ondes radio permet de déterminer la zone de couverture d’un dispositif d’émission. La figure1.1(a)illustre le résultat d’une telle simulation avec le logiciel RaPSor (Ray Propagation Simulator)1. Autre exemple, dans le

do-maine du divertissement, la simulation d’éclairage est utilisée pour la synthèse d’images que ce soit pour le cinéma (d’animation ou non) ou encore les jeux vidéos. La figure1.1(b)montre une image tirée du jeu vidéo « Assassin’s Creed : Unity »2, réalisée avec le moteur de rendu Arnold

développé par la société SolidAngle3.

(a) (b)

FIGURE1.1 – Exemples de simulations de propagation d’ondes : (a) ondes radio avec le logiciel

RaPSor ; (b) synthèse d’images pour le jeu « Assassin’s Creed : Unity » réalisée avec le moteur de rendu Arnold développé par SolidAngle.

1. http://rapsor.sourceforge.net/

2. Digic Pictures - Ubisoft Entertainment 3. https://www.solidangle.com/

(11)

Les méthodes basées rayons sont très appréciées pour la simulation de propagation d’ondes. Elles ont pour avantage de respecter fidèlement le système physique et ainsi produire des résul-tats proches de la réalité. En contrepartie, ces méthodes requièrent des temps de calcul consé-quents afin d’obtenir des résultats précis. Une problématique importante de ce type de méthode est la requête d’intersection (i.e. la recherche d’intersection(s) entre un rayon et l’environne-ment de simulation). Généralel’environne-ment, la résolution de ce problème est accélérée en organisant la géométrie de la scène dans une structure de données particulière dite structure accélératrice.

Depuis les années 80, de nombreux travaux de recherche se sont concentrés sur l’accéléra-tion des algorithmes de simulal’accéléra-tion basés rayons et notamment sur la concepl’accéléra-tion de structures accélératrices. Au début des années 2000, ces méthodes se sont démocratisées avec l’augmenta-tion des performances des ordinateurs grand public et des calculateurs dédiés. Les algorithmes et méthodes d’accélération ont dus être adaptés afin de tirer profit des avancées technologiques et de permettre des simulations précises et rapides. Néanmoins, les demandes en termes de qua-lité et de performance sont de plus en plus fortes et ce domaine fait encore l’objet de recherches intensives.

Les travaux de cette thèse se placent dans le contexte de l’accélération des algorithmes de simulation basés rayons. Plus précisément, nous proposons d’approfondir l’étude d’un type structure accélératrice peu exploré jusqu’alors : la partition spatiale contrainte et convexe (CCSP - Constrained Convex Space Partition). Pour illustration, nous nous plaçons dans le domaine de la synthèse d’images par lancer de rayons. Cependant, les observations et conclusions tirées sont valides pour tout autre type de simulation basée rayons. Dans une première partie, nous proposons une nouvelle structure accélératrice, de type CCSP, spécialement dédiée à la simu-lation en environnement architectural. Ensuite, nous profitons de ces premiers résultats pour étudier la généralisation de l’approche à des scènes quelconques (i.e. architecturales ou non).

Requête d’intersection

Concrètement, les algorithmes de simulation basés rayons peuvent être décomposés en deux parties distinctes : la requête d’intersection et les traitements physiques sous-jacents. D’un point de vue général, l’efficacité de ces méthodes réside dans leur capacité à trouver rapidement l’in-tersection la plus proche entre un rayon et les primitives géométriques constituant l’environne-ment de simulation.

En fonction du type d’application, les requêtes d’intersection peuvent être quelque peu diffé-rentes. Par exemple, pour résoudre une question de visibilité entre deux points, il est nécessaire de déterminer s’il existe au moins une intersection entre un rayon et un objet de la scène. Ainsi, il est inutile de trouver l’intersection la plus proche. Pour d’autres applications, comme la simu-lation de rayons X, il est nécessaire de rechercher l’ensemble des intersections existantes entre le rayon et la géométrie de la scène. Dans cette thèse, nous nous concentrons uniquement sur l’accélération de la requête d’intersection la plus proche.

Dans l’espace euclidien E3, un rayon R est une demi-droite orientée décrite par son origine O et sa direction D. N’importe quel point appartenant à cette demi-droite peut être calculé en utilisant l’équation paramétrique du rayon :

R(t) = O + t× D (1.1)

(12)

CHAP 1. INTRODUCTION 3 L’équation1.1 est utilisée pour tester l’intersection entre un rayon et une primitive géomé-trique quelconque, e.g. des triangles [Bad90,MT97,Sho98,Woo04,KS06,SSK07b,JSF10] ou encore des morceaux de surfaces quelconques [SB86,NSK90,wWcScC01,BWS04].

L’intersection la plus proche entre un rayon et un ensemble de primitives est trouvée pour la plus petite distance tmin ∈]0, ∞[. Notons qu’il est facilement possible d’adapter cette requête pour chercher une intersection dans un intervalle de distance imposé tel que tmin ∈ [t1, t2].

Le problème réside dans la complexité des environnements de simulation. Ceux-ci sont généralement constitués de plusieurs centaines de milliers voire de millions de primitives. Par exemple, la figure1.2illustre une scène très détaillée, tirée de [DS07], composée d’un milliard et demi de triangles. Naïvement, la recherche de l’intersection la plus proche consiste à tester l’ensemble des primitives et à comparer les distances d’intersection pour garder la plus proche. Une telle approche a une complexité linéaire en nombre de primitives et requiert un temps d’exécution trop important pour être viable.

FIGURE 1.2 – Exemple de scène complexe (1,5 milliard de triangles) [DS07] : les détails de la

végétation nécessitent beaucoup de primitives géométriques.

Le plus souvent, une structure accélératrice est utilisée pour organiser la géométrie de la scène dans une structure de données afin d’accélérer la recherche. L’objectif est de réduire le nombre de tests d’intersection rayon/primitive nécessaires et ainsi avoir une complexité algo-rithmique sous-linéaire. Ces trente dernières années, de nombreuses structures accélératrices ont été proposées, dont certaines se révèlent très efficaces et permettent, par exemple, un rendu réaliste et interactif que ce soit sur CPU [WWB∗14] ou sur GPU [PFL13]. Cependant, de

nom-breux facteurs influent sur leur efficacité (configuration de la scène, algorithme de simulation utilisé, environnement d’exécution, etc.). En fonction de ces facteurs, les structures accéléra-trices possèdent toutes des avantages et des inconvénients. Notre objectif est d’étudier le poten-tiel d’une partition spatiale contrainte et convexe utilisée comme structure accélératrice et de la comparer aux structures accélératrices classiques.

(13)

Simulation en environnement architectural

Les simulations basées rayons sont essentielles dans le domaine de la conception architec-turale. Elles permettent d’étudier l’agencement des pièces, la position des ouvertures, la dispo-sition de l’éclairage ou encore la répartition des sources de chauffage. Par exemple, pour des questions liées à la préservation de l’environnement et au développement durable, il est pri-mordial de prévoir la consommation électrique et thermique d’un bâtiment avant même que sa construction ne débute. Pour ce faire, des simulations d’éclairage et de propagation de cha-leur sont réalisées au sein d’environnements virtuels, avec pour objectif d’estimer les dépenses énergétiques et ainsi d’éviter toute surconsommation.

Le principal obstacle au développement de telles applications réside dans la complexité des environnements de simulation. Les environnements architecturaux peuvent être composés de centaines de millions de polygones, organisés de manière à mettre en défaut les structures ac-célératrices classiques. Un bâtiment est constitué de régions fermées (les pièces), délimitées par de larges surfaces occlusives (les murs) et des ouvertures (les portes et fenêtres). Ainsi, depuis un point de vue donné, seule une petite partie de la scène est potentiellement visible. La plupart du temps, ce haut degré d’occlusion est exploité pour construire des structures ac-célératrices particulières (de type cellules-et-passages) et accélérer les algorithmes de simu-lation [Air90, TS91, TFFH94, LG95, MBMD98, MBSB03, FMH05]. Le principal inconvé-nient de ces structures réside dans leur construction. Les méthodes de construction automatique posent plusieurs problèmes : la nature des éléments architecturaux (murs, ouvertures, etc.) est difficile à détecter ; respecter précisément la géométrie engendre des problèmes de stabilité nu-mérique ; et le schéma de découpe peut être complexe et ralentir le parcours de la structure par un rayon. Si construire la structure à la main permet de résoudre ces problèmes, ce processus est trop long et fastidieux pour être utilisé en pratique.

Dans le cadre d’un projet de recherche du département ASALI de l’institut XLIM, nous pro-posons une nouvelle structure accélératrice, conçue spécifiquement pour les simulations basées rayons en environnement architectural. Celle-ci est basée sur une partition spatiale contrainte et convexe (CCSP). Ces travaux exploitent la richesse du modèle à base topologique dédié à la modélisation architecturale proposé dans les travaux de Horna et al. [HDMB07,HMDB09].

Nous montrons que cette nouvelle structure accélératrice possède des avantages significa-tifs par rapport à celles habituellement utilisées. D’une part, son parcours exploite l’ensemble des informations topologiques disponibles dans le modèle. Ainsi, elle permet d’accélérer no-tablement la requête d’intersection, que ce soit pour un rayon simple, un paquet de rayons ou encore un faisceau. De plus, l’algorithme de parcours est adapté à une exécution en parallèle, que ce soit sur CPU ou sur GPU. D’autre part, sa construction est directe puisque qu’il s’agit d’une simple extraction d’informations depuis la structure topologique utilisée pour modéliser la scène. En effet, le modèle sous-jacent contient l’ensemble des informations géométriques, topologiques et sémantiques nécessaires à la construction de la CCSP.

Ce dernier avantage représente aussi une limite de cette approche. En effet, la construction de la structure nécessite la description topologique de la scène. Ainsi, elle ne peut être construite à partir d’une description purement géométrique. Cet inconvénient pose deux problèmes quant à l’utilisabilité de l’approche proposée. D’une part, la méthode ne peut s’appliquer directement aux scènes habituellement utilisées dans la littérature (e.g. SodaHall, Sponza, San Miguel, etc.). D’autre part, elle ne permet pas la prise en compte de l’ameublement des bâtiments, détails

(14)

CHAP 1. INTRODUCTION 5 potentiellement nécessaires pour certains types de simulation. L’objectif est alors de se détacher des contraintes liées au modèle utilisé pour construire la CCSP et de généraliser l’approche à des scènes quelconques, décrites uniquement par leur géométrie.

Généralisation de l’approche

Le problème de la prise en compte de l’ameublement des bâtiments peut être résolu en combinant la CCSP avec une autre structure accélératrice, utilisée seulement pour gérer les détails géométriques. Nos expérimentations montrent qu’une telle solution est suffisante pour permettre des simulations basées rayons plus rapides qu’avec une structure accélératrice clas-sique. Toutefois, cette technique induit une divergence d’exécution en environnement parallèle, limitant ainsi ses performances. De plus, cette approche ne se détache pas du modèle architec-tural utilisé pour construire la scène.

Une solution plus adaptée serait de généraliser la CCSP pour qu’elle puisse prendre en compte l’ensemble des détails géométriques de l’environnement de simulation, ameublement compris. Pour ce faire, il est nécessaire de mettre en place une méthode de construction robuste, permettant de décomposer l’espace de la scène en un ensemble de volumes convexes. Les mé-thodes de décomposition convexe 3D sont très difficiles à mettre en pratique, principalement à cause des problèmes de complexité algorithmique et de stabilité numérique. Ainsi, elles font l’objet de travaux de recherche encore aujourd’hui, notamment en géométrie algébrique.

À notre connaissance, les méthodes de décomposition convexe 3D les plus fonctionnelles restent celles basées sur une tétraédrisation de Delaunay contrainte. La première et seule étude de l’utilisation d’une tétraédrisation dans le contexte du lancer de rayons a été réalisée en 2008 [LD08a]. Elle révèle que la tétraédrisation a le potentiel de devenir une alternative viable aux structures accélératrices classiques.

Nous approfondissons cette étude en proposant une représentation particulière des données permettant la mise en place d’un nouvel algorithme de parcours de la structure par un rayon. Nous montrons que ce nouvel algorithme est plus efficace que ceux précédemment proposés, notamment en environnement parallèle. En effet, il réduit notablement les problèmes de di-vergence d’exécution tout en étant numériquement plus stable. D’autre part, nous proposons d’étudier les performances du parcours en fonction des paramètres de construction de la tétraé-drisation, en évaluant un coût de traversée de la structure. Les résultats révèlent qu’en fonction des scènes, ces paramètres doivent être adaptés pour maximiser la vitesse d’exécution.

Organisation du mémoire

Le plan de ce mémoire est le suivant. Dans le chapitre 2, nous commençons par présenter les différentes techniques de rendu basé rayons ainsi que les principales méthodes d’accéléra-tion, en nous concentrant sur les structures accélératrices. Ensuite, nous analysons les qualités et défauts des structures accélératrices en fonction du type de partition et de la structure de données utilisés. Nous comparons aussi leur comportement en environnement parallèle. Enfin, nous discutons des partitions spatiales contraintes.

(15)

Dans le chapitre3, après avoir introduit les notions préliminaires utilisées dans le reste du mémoire, nous décrivons notre CCSP, conçue pour les simulations en environnement architec-tural. Nous discutons ensuite des expérimentations réalisées pour évaluer son comportement et ses performances.

Dans le chapitre4, nous présentons tout d’abord une extension de la CCSP permettant d’in-clure le mobilier au sein des bâtiments. Puis, nous étudions les méthodes de décomposition convexe 3D. Enfin, nous approfondissons l’étude de la tétraédrisation de Delaunay contrainte utilisée comme structure accélératrice pour le lancer de rayons. Nous proposons un nouvel al-gorithme de parcours que nous évaluons ensuite en pratique.

Enfin, nous concluons et présentons les différentes perspectives de notre travail dans le chapitre5.

(16)

CHAPITRE 2

É

TAT DE L

ART

Sommaire

2.1 Rendu basé rayons . . . 8

2.2 Partition spatiale et partition objet . . . 12

2.3 Qualité de la partition . . . 19

2.4 Structures de données . . . 25

2.5 Parallélisation . . . 27

2.6 Partition spatiale contrainte . . . 32

2.7 Conclusion . . . 38

Dans ce chapitre, nous analysons les principaux travaux en relation avec les nôtres. L’objec-tif est de préciser l’orientation de notre étude et d’apporter les notions nécessaires à la compré-hension de la suite de la thèse.

Nous commençons par présenter brièvement les différentes méthodes de rendu dans la sec-tion2.1. Nous évoquons les principales techniques permettant d’améliorer leurs performances et rappelons le principe général d’une structure accélératrice. Nous proposons notamment une classification des structures accélératrices permettant de structurer notre analyse. Dans la sec-tion2.2, nous décrivons les caractéristiques intrinsèques des structures accélératrices selon le type de partition sur lequel elles reposent. Ensuite, dans la section 2.3, nous discutons de la qualité des partitions en fonction des choix effectués lors de leur construction. Cette qualité est évaluée sur la capacité à trouver le plus rapidement possible l’intersection la plus proche entre un rayon et l’ensemble des primitives géométriques composant l’environnement de simulation. Dans la section2.4, nous nous intéressons aux structures de données utilisées pour représenter les structures accélératrices, ainsi qu’à leur impact sur les performances des algorithmes. La section2.5traite du comportement des algorithmes de parcours de structures accélératrices en environnement parallèle, sur les architectures matérielles grands publics (les processeurs cen-traux et les cartes graphiques). Nous présentons les caractéristiques principales des architectures modernes, ainsi que les contraintes à prendre en considération pour optimiser le parcours des structures accélératrices. Enfin, la section 2.6 introduit un type de structure particulier et très peu étudié, sur lequel nous nous appuyons dans ce mémoire : la partition spatiale contrainte.

(17)

2.1 Rendu basé rayons

La première étude concernant l’utilisation des méthodes basées rayons dans le cadre de la synthèse d’image a été réalisée par Appel [App68] en 1968. Dans le but de générer une image 2D à partir d’une scène virtuelle 3D, il propose de lancer des rayons depuis une caméra virtuelle (simulant l’œil de l’observateur) à travers chaque pixel afin de trouver le plus proche l’objet touché (les rayons primaires sur la figure2.1). Le pixel traité est ainsi coloré en fonction de la couleur de l’objet touché. Parallèlement, il propose aussi de lancer de nouveaux rayons (rayons d’ombrage) pour déterminer si le point visible est éclairé ou non. Pour ces rayons, il n’est pas nécessaire de chercher l’intersection la plus proche. Si le rayon d’ombrage touche un quelconque objet de la scène, le point d’intersection n’est pas éclairé.

Rayons primaires

Rayons d’ombrage Image

Caméra

FIGURE 2.1 – Principe du rendu basé rayons : les rayons primaires permettent de connaître

ce qui est visible depuis la caméra. Les rayons d’ombrage permettent de déterminer si l’objet touché par le rayon primaire est éclairé ou non.

Ces travaux ne prennent pas en compte les phénomènes de réflexion et de réfraction, dé-crits par les lois de Snell-Descartes (cf. Déf. 1). En effet, lorsqu’un rayon touche une surface séparant deux milieux homogènes dans lesquels la lumière se propage, ce rayon est réfléchi et potentiellement réfracté (cf. Fig.2.2).

Définition 1 (Lois de Snell-Descartes)

Soit θi, l’angle formé par le rayon incident et la normale de la surface S. Soit P , le plan d’incidence formé par le rayon incident et la normale de la surfaceS.

❒ Loi de réflexion :

Le rayon réfléchi parS se situe dans P et est le symétrique du rayon incident par rapport à la normale deS. L’angle de réflexion θrest donc égal à l’angle d’incidence :θr = θi. ❒ Loi de réfraction :

Le rayon traversantS est réfracté dans P avec un angle θRtel quen1sin θi = n2sin θR, oùn1 etn2 correspondent respectivement aux indices de réfraction des milieux d’entrée et de sortie du rayon. L’indice de réfraction d’un milieu est mesuré suivantn = c/v, où c désigne la célérité de la lumière dans le vide etv celle dans le milieu en question.

(18)

2.1. Rendu basé rayons 9 θi θr θR Milieu 2 : n2 Milieu 1 : n1 S ri rr rR

FIGURE2.2 – Réflexion et réfraction d’un rayon : lorsque le rayon ritouche la surface S, il passe

d’un milieu de propagation à un autre : il est réfléchi, selon un angle θr = θi, et potentiellement réfracté, selon un angle θR= arcsin(n1sin θi/n2).

En 1980, Whitted [Whi80] introduit l’algorithme du lancer de rayons récursif. Il consiste à lancer des rayons dits secondaires pour prendre en compte les effets d’ombrage, de réflexion et de réfraction. Avec cette méthode, les rayons rebondissent récursivement dans la scène simulant ainsi le trajet inverse de la lumière, i.e. depuis la caméra et vers les sources lumineuses. La ré-cursion s’arrête dès que le rayon sort de la scène, ou après un nombre de rebonds prédéfini. Cette méthode est limitée à des réflexions et réfractions spéculaires pures et à des sources lumineuses ponctuelles produisant donc des ombres dures (cf. Fig. 2.3(a)). En 1984, Cook et al. [CPC84] présentent le lancer de rayons distribué, qui permet d’inclure des effets plus réalistes tels que la réflexion sur des matériaux brillants, le flou de mouvement ou encore la profondeur de champ et de prendre en compte les sources lumineuses surfaciques produisant ainsi des ombres douces (cf. Fig.2.3(b)).

Source ponctuelle

(a)

Source surfacique

(b)

FIGURE 2.3 – Comparaison ombres dures et douces : (a) Une source lumineuse ponctuelle

(19)

Ces techniques ne permettent pas de calculer l’éclairement global de la scène. En effet, elles ne prennent pas en compte l’apport lumineux indirect, i.e. provenant des réflexions lumineuses sur les différentes surfaces de la scène. Ainsi, plusieurs méthodes ont été proposées pour pal-lier ce problème. Parmi celles-ci, on retrouve le tracé de chemins [Kaj86], le tracé de chemins bi-directionnel [LW93], les méthodes basées Metropolis [VG97, KSKAC02], le calcul de ra-diosité [GTGB84,CWH93] ou encore les cartes de photons [Jen01]. Pour plus d’informations, le lecteur intéressé peut se référer à l’état de l’art établi par Ritschel et al. [RDGK12].

Si les méthodes basées rayons permettent de calculer des images photo-réalistes, comme par exemple l’image de la figure2.4réalisée avec le moteur de rendu OctaneRender1, elles sont

cependant très coûteuses en temps de calcul. En effet, prendre en compte l’ensemble des phé-nomènes lumineux avec précision nécessite de lancer des milliers de rayons par pixel. De plus, les images sont elle-mêmes formées de millions de pixels (e.g. deux millions pour une image en Full HD, ou encore huit millions pour une image 4K). Enfin, les scènes sont composées de centaines de millions de polygones. Ainsi, naïvement, plusieurs milliards de tests d’intersection sont effectués. Il est donc nécessaire de mettre en place des méthodes d’accélération.

FIGURE2.4 – Exemple de rendu réaliste (réalisé avec le moteur de rendu OctaneRender).

2.1.1 Méthodes d’accélération

Nous pouvons classer les méthodes permettant d’accélérer les simulations basées rayons selon quatre catégories (cf. Fig.2.5) :

(1) Réduire le nombre de rayons utilisés. (2) Généraliser les rayons en les regroupant.

(3) Optimiser le test d’intersection entre un rayon et la géométrie de la scène. (4) Optimiser la recherche d’intersection pour un rayon.

(20)

2.1. Rendu basé rayons 11

Optimisation des tests d’intersection Accélération des simulations basées rayons

Optimisation de la recherche d’intersection - Volumes englobants - Intersections efficaces - Structures accélératrices - Techniques directionnelles - Profondeur adapative - Anti-aliassage adaptatif - Faisceaux - Cones - Pinceaux Réduction du nombre de rayons Généralisation des rayons

Accélération globale Accélération locale (par rayon)

(1) (2) (3) (4)

FIGURE 2.5 – Classification des méthodes d’accélération des simulations basées rayons.

On remarque qu’il existe ainsi deux classes d’accélération. La première réunit les méthodes d’accélération dites « globales » ((1) et (2)), i.e. qui accélèrent l’algorithme dans son ensemble. La seconde ((3) et (4)) regroupe celles réduisant le coût de l’algorithme par rayon. Dans cette thèse, nous nous concentrons sur cette dernière classe et plus particulièrement sur les structures accélératrices. Pour plus d’informations sur les autres méthodes d’accélération, le lecteur in-téressé peut se référer par exemple à [AK89, CDR02, PH10]. Notons que les algorithmes de simulation basées rayons peuvent être parallélisés afin d’accélérer une nouvelle fois le traite-ment.

2.1.2 Structures accélératrices

Afin de déterminer l’intersection la plus proche entre un rayon et la géométrie de la scène, une approche naïve consiste à tester l’ensemble des primitives en comparant les distances d’in-tersection. Un tel algorithme a une complexité linéaire en le nombre de primitives (O(n)), ce qui, excepté pour des scènes triviales, requiert un temps d’exécution trop important pour être viable. Le plus souvent, une structure accélératrice est utilisée pour réduire le nombre de tests d’intersection rayon/primitive nécessaires, et ainsi avoir une complexité sous-linéaire.

Une structure accélératrice a généralement pour principe de réaliser une partition ((cf. Déf.2)) de la scène pour organiser la recherche d’intersection rayon/primitive la plus proche. Nous pro-posons de classer les structures accélératrices selon le tableau2.1. Pour éviter toute confusion, nous définissons qu’une partition spatiale correspond à une partition de l’espace euclidien de la scène (E3), et qu’une partition objet est une partition de l’ensemble des primitives de la scène (G3). Nous partons du principe que le lecteur est familier avec les structures accélératrices clas-siques. Le lecteur intéressé par plus d’informations peut se référer à [Hav00].

(21)

Définition 2 (Partition d’un ensemble)

SoitE un ensemble quelconque fini. Une partition de E est un ensembleP = {R1, · · · , Rn} den sous-ensembles Ri deE (appelés « régions ») tel que :

❒ Aucune région deP n’est vide : ∀Ri ∈ P, Ri 6= ∅. ❒ L’union des régions deP est égale à E :

|P| S i=1

Ri = E.

❒ Les régions de P sont disjointes deux à deux : ∀Ri, Rj ∈ P, Ri ∩ Rj = ∅, i 6= j ∈ {0, · · · , |P|}.

Type de partition

Partition spatiale Partition objet

St

ru

ct

ur

e Linéaire

Grille uniforme [FTI86]

Volumes englobants [Han89] Grille non uniforme [Gig90]

Hiérarchique

BSP-tree [FKN80]

BVH [RW80,KK86] KD-tree [Ben75,Kap85]

Octree [Gla84] Grilles hiérarchiques [HS99]

TABLEAU 2.1 – Classification des structures accélératrices avec quelques exemples des plus

communes.

Notes sur les méthodes Divide-and-Conquer

Récemment, une nouvelle approche a émergée. Au lieu de construire une structure accéléra-trice en amont du rendu, cette méthode propose de construire la structure accéléraaccéléra-trice au fur et à mesure que le rayon traverse la scène. Ce type d’approche, dite paresseuse, a été inspirée par les travaux de Arvo et Kirk [AK87]. Elle a été adaptée pour les KD-trees [Mor11] et pour les BVH [KW11]. L’utilisation d’une telle méthode permet un rendu plus rapide pour des scènes dynamiques (évite la construction d’une structure accélératrice) et reste compétitive pour des scènes statiques. Cette méthode reste donc un sujet de recherche actif e.g. [Áfr12, NIDN13, RN13, DLPP14]. Ces travaux sortent du cadre de l’étude de cette thèse et sont volontairement omis dans le reste du chapitre.

2.2 Partition spatiale et partition objet

Par définition, les approches par partition spatiale et par partition objet sont duales. Dans une partition spatiale, chaque point de l’espace n’est représenté qu’une unique fois tandis qu’une primitive géométrique peut être référencée dans plusieurs régions. À l’inverse, dans une parti-tion objet, chaque primitive n’est référencée qu’une unique fois alors qu’un point de l’espace peut exister dans plusieurs régions.

(22)

2.2. Partition spatiale et partition objet 13 Dans cette section, nous proposons de décrire les caractéristiques intrinsèques de ces deux types de partition, ainsi que leurs impacts sur les méthodes basées rayons. Enfin, nous évoquons les structures basées sur un mélange de partition spatiale et objet.

2.2.1 Partition spatiale

Une partition spatiale correspond à une partition de l’espace euclidien de la scène E3 (cf. Déf.3). Quelques exemples classiques de structures accélératrices basées sur une partition spa-tiale sont représentés (en 2D) sur la figure2.6.

Définition 3 (Partition spatiale)

Une partition spatialeP = {R1, · · · , Rn} subdivise l’espace euclidien E3. Une primitiveG∈ G3 représentée dans E3 par un ensemble de points X ⊂ E3 est associée à une régionR si et seulement si∃x ∈ X | x ∈ R.

(a) (b) (c)

FIGURE 2.6 – Exemples de partitions spatiales 2D : (a) Grille uniforme 5×5; (b) BSP-tree;

(c) Quadtree (en 3D octree).

La grille uniforme [CWBV83, FTI86], est probablement la structure accélératrice la plus simple. Elle subdivise l’espace de la scène en régions de même taille (généralement nommées voxels) dont les bords sont alignés aux axes du repère. Cette subdivision est effectuée sans tenir compte de la distribution des primitives dans la scène. Chaque voxel contient une liste (possi-blement vide) de primitives qu’il contient au moins partiellement. La figure2.6(a)présente une grille uniforme 2D divisant l’espace de la scène en 5 × 5 voxels. Le parcours de ces voxels se fait selon un algorithme similaire à celui de Bresenham, nommé 3D-DDA (3D Digital Differen-tial Analyser) [AW87]. Seules les primitives en partie contenues par les voxels traversés sont testées.

D’autres structures accélératrices ont pour principe de réaliser récursivement des partitions de l’espace en le subdivisant à l’aide de plans. Les subdivisions successives sont organisées de manière hiérarchique sous la forme d’un arbre. La racine de l’arbre correspond à l’espace entier de la scène. Chaque nœud interne représente une portion de l’espace partitionnée par ces fils. Chaque feuille est une région associée à une liste (possiblement vide) de primitives contenues au moins partiellement. Le parcours de l’arbre se fait de manière récursive en partant de sa

(23)

racine. Seules les primitives contenues par les feuilles visitées sont testées. Par exemples, le BSP-tree [FKN80] repose sur une subdivision binaire de l’espace par des plans arbitrairement orientés (cf. Fig.2.6(b)). Le KD-tree correspond à un cas particulier du BSP-tree dont les plans sont alignés aux axes. L’octree (arbre octal) [Gla84] subdivise récursivement l’espace en huit régions régulières (ou octants) par trois plans respectivement perpendiculaires à chacun des trois axes (cf. Fig.2.6(c)).

Par définition, les régions d’une partition sont disjointes deux à deux (cf. Déf.2). Autrement dit, une partition spatiale garantit qu’il n’y a pas de chevauchement de l’espace découpé. Cette propriété peut être exploitée pour accélérer la recherche de l’intersection la plus proche entre un rayon et la géométrie de la scène. En effet, il est possible de parcourir la structure d’avant en arrière (front-to-back) s’assurant ainsi que la première intersection trouvée est la plus proche (si plusieurs intersections sont trouvées dans la même région, la plus proche est sélectionnée). Cependant, il est nécessaire de prendre en compte l’autre propriété partagée par les partitions spatiales, i.e. le fait qu’une primitive puisse être référencée dans plusieurs régions (cf. Déf.4). Définition 4 (Références multiples dans une partition spatiale)

Soient P = {R1, · · · , Rn} une partition de E3 et G ∈ G3 une primitive représentée dans E3 par un ensemble de points X ⊂ E3. G est référencée plusieurs fois dans P si card(R ∈ P | R ∩ X 6= ∅) > 1.

Ce référencement multiple peut engendrer des erreurs de détection de l’intersection la plus proche. En effet, il est possible de détecter une intersection avec une primitive référencée dans la région courante alors que le point d’intersection se trouve dans une autre région. Il faut donc s’assurer qu’il n’y a pas une intersection plus proche dans les autres régions où est référencée cette primitive. La figure2.7illustre ce problème. Une intersection est détectée entre le rayon r et la primitive G3 dans la région R1. Or, le point d’intersection se trouve dans la région R2 et une intersection plus proche existe (avec G2). Deux solutions sont envisageables pour pallier ce problème. R1 R2 G3 G2 r G1

FIGURE2.7 – Problème des références multiples dans une partition spatiale : dans la région R1,

une intersection est détectée entre le rayon r et la primitive G3alors que le point d’intersection se trouve dans R2. Il est donc nécessaire de visiter aussi R2pour obtenir la plus proche intersection.

(24)

2.2. Partition spatiale et partition objet 15 La première se met en place pendant la construction de la structure accélératrice. Elle consiste à découper les primitives chevauchant plusieurs régions selon les plans délimitant les régions les contenant. Les primitives résultant de ces découpes, qui forment un nouvel ensemble G′3, sont ensuite réparties dans chacune des régions. Ainsi, chaque primitive de G′3est référen-cée une et une unique fois. Notons que la structure partitionne alors à la fois R3 et G′3. En pratique, cette approche n’est généralement pas utilisée car, d’une part, elle peut créer beau-coup de nouvelles primitives et donc entraîner un surcoût mémoire conséquent, et d’autre part, elle est source d’erreurs en raison de problèmes de robustesse numérique.

La seconde solution ne requiert aucun pré-traitement. Elle consiste à simplement rejeter les intersections trouvées à l’extérieur de la région courante pendant le parcours de la struc-ture. Le surcoût engendré par ce test étant faible, cette approche est généralement préférée à la première. Cependant, ces multiples références d’une primitive dans la partition impliquent potentiellement plusieurs tests d’intersection entre un rayon et cette même primitive.

Ce problème peut être résolu en utilisant un système dit de « boîte aux lettres » (mail-boxing) [AW87, KA91]. L’idée est d’associer un identifiant unique à chaque rayon puis, après chaque test d’intersection effectué, de marquer la primitive testée avec l’identifiant du rayon. Ainsi, avant de tester une intersection, il suffit de comparer l’identifiant stocké par la primitive avec celui du rayon pour décider d’exécuter ou non le test d’intersection. Si les identifiants sont égaux, alors il est inutile de tester la primitive. Le mailboxing implique donc un surcoût mé-moire (un entier ou un pointeur par primitive) ainsi qu’un léger surcoût pour l’algorithme de parcours, dû aux comparaisons des identifiants. De plus, elle engendre généralement des accès mémoires incohérents polluant le cache des processeurs. L’amélioration des performances par cette technique dépend donc fortement du type de primitives utilisées et plus précisément de la complexité de leur test d’intersection avec un rayon. Par exemple, elle ne sera que peu efficace pour des primitives peu coûteuses telles que des triangles [Hav02]. Cette technique est aussi problématique en environnement parallèle, car il est alors nécessaire de gérer les problèmes d’accès mémoire concurrents. Afin de réduire le coût mémoire et les accès mémoires incohé-rents, Wald et al. [WSBW01] proposent de stocker une table de hachage contenant les dernières intersections testées. Si ce système n’améliore que peu les performances lorsque les rayons sont lancés de manière séquentielle par rapport à une boîte aux lettres classique, il est beaucoup plus efficace en environnement parallèle.

2.2.2 Partition objet

Une partition objet correspond à une partition de l’ensemble des primitives géométriques de la scène G3 (cf. Déf.5). Dans une partition objet, la plus petite région correspond à une unique primitive (un élément de G3). Le plus souvent, un volume fermé, dit englobant, est associé à chaque région contenant un ensemble non vide de primitives. Lorsqu’un rayon ne traverse pas un tel volume englobant, on est alors assuré qu’il ne touche aucune primitive contenue.

Définition 5 (Partition objet)

Une partition objet P = {R1, · · · , Rn} subdivise l’espace des primitives géométriques de la scèneG3. Un pointx∈ E3est associé à une régionR si et seulement si∃G ∈ R|x ∈ G

(25)

La figure2.8présente (en 2D) cinq types de volume englobant d’un même objet : une sphère, un parallélépipède rectangle (ou boîte) aligné aux axes (AABB), une boîte orientée (OBB), un polytope discret orienté formé de k/2 paires de plans parallèles (k-DOP) ainsi qu’une enveloppe convexe (i.e. le plus petit volume convexe contenant entièrement l’objet).

(a) (b) (c) (d) (e)

FIGURE 2.8 – Exemples de volumes englobants en 2D : (a) Sphère ; (b) AABB ; (c) OBB ;

(d) 6-DOP ; (e) Enveloppe convexe.

Un exemple typique de structure accélératrice basée sur une partition objet est la hiérarchie de volume englobant (BVH - Bounding Volume Hierarchy). Un BVH regroupe les primitives en volumes englobants organisés de manière hiérarchique sous la forme d’un arbre. La racine de l’arbre correspond au volume englobant de toute la scène. Chaque nœud interne représente un ensemble (i.e. un volume englobant contenant des primitives) subdivisé par ses fils. Chaque feuille est une région de la partition, associée à une liste (non vide) de primitives entièrement contenues. La figure2.9présente en 2D un exemple de BVH dont les volumes englobants sont des AABB. Le parcours de l’arbre se fait alors de manière récursive depuis sa racine. Si le rayon ne traverse pas le volume englobant d’un nœud donné, alors le sous-arbre associé peut entièrement être éliminé.

FIGURE 2.9 – Exemple de de hiérarchie de volumes englobants (BVH) 2D : (a) les volumes

englobants (ici des AABB) peuvent se chevaucher (zone rouge) ; (b) arbre associé.

Par définition, une partition objet possède les propriétés opposées d’une partition spatiale. D’une part, elle garantit qu’une primitive ne puisse pas être référencée dans plusieurs régions.

(26)

2.2. Partition spatiale et partition objet 17 Ainsi, contrairement à une partition spatiale, il est impossible de tester plusieurs fois la même primitive lors du parcours de la structure accélératrice. D’autre part, deux volumes englobants (sous-espaces de E3) peuvent se chevaucher (cf. Fig.2.9). Autrement dit, un point de l’espace E3 peut être représenté dans plusieurs régions (cf. Déf. 6). Il est donc impossible d’effectuer une sortie anticipée de l’algorithme de parcours comme dans une partition spatiale : lorsqu’une intersection avec une primitive est trouvée dans une région, rien ne garantit qu’il n’existe pas une intersection plus proche dans une autre région.

Définition 6 (Chevauchement spatial dans une partition objet)

Soient P = {R1, · · · , Rn} une partition de G3, où une région R est associée dans E3 à un volume englobant VR. Il y a chevauchement spatial entre deux régions Ri et Rj, i 6= j ∈ {1, · · · , n} si ∃x ∈ E3 | x ∈ V

Ri etx∈ VRj.

Ce chevauchement spatial implique un surcoût lors de la recherche d’intersection. En effet, lorsqu’un rayon visite un nœud interne subdivisé, trois configurations sont possibles :

(1) Le rayon ne traverse aucun des sous-volumes englobants : l’ensemble des primitives contenues est éliminé.

(2) Le rayon traverse un seul des sous-volumes englobants : les primitives contenues par les autres sous-volumes sont éliminées.

(3) Le rayon traverse les plusieurs sous-volumes englobants : il y a chevauchement spatial et aucune primitive n’est éliminée.

Clairement, la configuration (3) est la plus coûteuse. Elle n’est possible que lorsque les sous-volumes d’un nœud se chevauchent. Il est donc nécessaire de chercher à réduire les ré-gions de chevauchement afin de diminuer la probabilité qu’un rayon ne traverse une telle confi-guration. Dans cette optique, plusieurs études proposent d’autoriser le référencement multiple des primitives dans la partition [EG07, DK08, SFD09, PGDS09, GPP∗10]. Ne respectant pas

strictement les propriétés d’une partition objet, ces approches sont présentées en détails dans la section2.2.3.

Une alternative aux volumes fermés pour partitionner G3 consiste à utiliser des paires de plans parallèles entre eux et alignés aux axes. Ainsi, un sous-espace de E3est subdivisé en deux sous-espaces qui peuvent se chevaucher (cf. Fig.2.10). Ce type de partition peut être considéré comme une extension des KD-trees découpant E3, mais avec deux plans partitionnant G3. Le SKD-tree (Spatial KD-tree) adopte ce principe pour des applications d’indexation dans des bases de données géographiques [Ooi87].

Dans le contexte du rendu basé rayons, plusieurs travaux indépendants se sont penchés sur cette approche et ont proposés des structures similaires, sous différents noms [HHS06,WK06, WMS06,ZU06]. Havran et al. [HHS06] adaptent le SKD-tree original. Wächter et al. [WK06] se concentrent sur une construction rapide d’une hiérarchie d’intervalles englobants (BIH -Bounding Interval Hierarchy). Elle présente une complexité de construction en O(n). Le BKD-tree (Bounded KD-BKD-tree), proposé par Woop et al. [WMS06], est une structure similaire im-plémentée sur des architectures spécifiques pour la gestion de scènes dynamiques. Zuniga et Uhlmann [ZU06] proposent le DE-tree (Dual Extent-tree) qui a pour particularité de conserver les primitives les plus larges dans les premiers niveaux de la hiérarchie.

(27)

(a) (b) (c)

FIGURE2.10 – Subdivision dans un SKD-tree en 2D : (a) les deux sous-espaces se chevauchent ;

(b) les deux sous-espaces sont disjoints ; (c) dans les deux cas, l’arbre associé reste le même.

Ces structures consomment moins de mémoire qu’un BVH classique tout en étant plus ra-pides à construire. Cependant, leur parcours est moins efficace. En effet, durant la construction, des régions contenant de grands espaces vides peuvent être créées et la probabilité pour un rayon de toucher une primitive dans une telle région est faible. Pour pallier ce problème, Havran et al.[HHS06] introduisent le H-tree qui est un combinaison entre un SKD-tree et un BVH. L’idée est d’inclure des AABB (donc six plans) à certains niveaux de la hiérarchie pour éliminer l’es-pace vide. Le problème est que l’utilisation de deux types de découpe rend plus complexe le parcours de la structure. Le SSH (Single Slab Hierarchy) [EWM08] n’utilise qu’un plan de dé-coupe par nœud. Il s’apparente ainsi à un KD-tree même s’il partitionne G3. Il permet d’éviter la présence d’espace vide dans la partition et consomme très peu de mémoire. Cependant, la hiérarchie est généralement très profonde, ce qui ralentit son parcours.

2.2.3 Partition hybride

Une solution intéressante est de tirer profit des avantages des deux types de partitions tout en laissant de coté leurs inconvénients. C’est pourquoi, d’autres travaux se sont penchés sur le développement de partitions hybrides. Dans cette section, nous évoquons deux approches : les méta-structures et les BVH autorisant le référencement multiple des primitives dans la partition. Une autre approche est la partition spatiale contrainte. La structure accélératrice proposée dans ce mémoire étant basée sur ce type de partition, son cas est discuté dans la section2.6.

Une méta-structure correspond à une combinaison d’au moins deux structures accéléra-trices classiques (cf. Fig. 2.11). Plusieurs exemples existent dans la littérature. Scherson et Caspary [SC87] proposent d’utiliser un octree contenant des BVHs dans les derniers niveaux de l’arbre. Subramanian et Fossel [SF90] construisent un KD-tree contenant des BVHs dans les feuilles. Klimaszewski et Sederberg [KS97] et Müller et Fellner [MF99] utilisent un BVH contenant des grilles uniformes dans les derniers niveaux de l’arbre.

Ces approches soulèvent trois questions qui restent ouvertes à ce jour :

❒ Combien de structures et lesquelles faut-il combiner pour une efficacité maximale ? Ce choix dépend de la configuration de la scène et, théoriquement, une infinité de combinai-sons est possible.

❒ Comment décider du changement de structure accélératrice lors de la construction ? ❒ En environnement parallèle, comment éviter la divergence d’exécution due au

(28)

2.2. Partition spatiale et partition objet 19

(a) (b)

FIGURE2.11 – Exemple de méta-structure en 2D (KD-tree contenant des grilles uniformes dans

les feuilles) : (a) Représentation dans E2; (b) Représentation de la structure.

D’autres travaux autorisent le référencement multiple des primitives dans les partitions ob-jets afin de réduire les chevauchements spatiaux (cf. Sec.2.2.2). Ils consistent généralement à réaliser des découpes spatiales lorsque de telles zones sont rencontrées. Ernst et Greiner [EG07] proposent un pré-traitement visant à diviser récursivement les volumes englobants des primi-tives, jusqu’à atteindre une surface de chevauchement minimum définie (cf. Fig.2.12(b)). Dam-mertz et Keller [DK08] introduisent une approche similaire basée sur une subdivision des pri-mitives (cf. Fig.2.12(c)). En 2009, Stich et al. [SFD09] proposent une méthode plus complexe réduisant considérablement le chevauchement spatial (cf. Fig.2.12(d)). Contrairement aux mé-thodes précédentes, celle-ci ne s’applique pas comme un pré-traitement. Ainsi, il possible de décider de la nécessité d’une découpe en prenant en compte l’ensemble des primitives d’un vo-lume donné. Le SBVH (Split Bounding Vovo-lume Hierarchy) résultant de cette méthode est certes plus long à construire qu’un BVH classique, mais aussi et surtout plus efficace à parcourir. No-tons qu’une méthode similaire a été parallèlement proposée par Popov et al. [PGDS09]. Dans le même esprit, les travaux de Gourmel et al. [GPP∗10] introduisent le FBVH (Fitted Bounding

Volume Hierarchy), destiné aux méta-balles pour le rendu d’objets « mous ».

(a) (b) (c) (d)

FIGURE 2.12 – Réduction du chevauchement spatial dans une partition objet : (a) BVH

clas-sique : aucune méthode n’est appliquée ; (b) Méthode de [EG07] ; (c) Méthode de [DK08] ; (b) Méthode de [SFD09].

(29)

2.3 Qualité de la partition

La qualité d’une structure accélératrice correspond à sa capacité à trouver le plus rapidement possible l’intersection la plus proche entre un rayon et un ensemble de primitives géométriques. Cette efficacité dépend fortement des décisions prises lors de la construction de la partition. Dans cette section, nous détaillons les paramètres influençant la qualité des trois structures les plus communément utilisées, à savoir les grilles uniformes, les kd-trees et les BVH.

2.3.1 Qualité d’une grille uniforme

Une grille uniforme subdivise la scène en voxels de même taille dont les bords sont alignés aux axes (cf. Fig.2.6(a)). Seules les intersections avec les primitives contenues dans les voxels parcourus par le rayon sont testées.

Le principal inconvénient d’une grille uniforme est qu’elle ne s’adapte pas à la distribution des primitives dans l’espace de la scène. Ce problème apparaît notamment lorsque les primitives géométriques sont réparties de manière hétérogène. Ce défaut est connu comme le problème de « la théière dans le stade » (teapot in the stadium). Dans un tel cas, l’algorithme parcourt généra-lement un grand nombre de voxels vides avant de visiter un voxel contenant de la géométrie. De plus, les quelques voxels non-vides contiennent souvent beaucoup de références géométriques. La recherche de l’intersection la plus proche y est donc coûteuse, puisque linéaire en le nombre de références contenues.

Le choix de la résolution de la grille est donc primordial pour un parcours efficace. Une heuristique prend comme résolution R d’une grille pour chacun des axes i ∈ {x, y, z} de E3 [CWBV83] :

Ri = di 3 r δN

V , i∈ {x, y, z} (2.1)

où di est la taille de la boîte englobante de la scène le long de l’axe i, V est son volume, N correspond au nombre de primitives dans la scène et δ est une constante définie par l’utilisateur, communément référencée comme la densité de la grille. Par exemple, Wald et al. [WIK∗06]

utilisent une densité de cinq. Une étude plus approfondie a été réalisée par Ize et al. [ISP07]. D’un point de vue général, les grilles uniformes sont naturellement plus adaptées aux scènes dont la géométrie est uniformément distribuée dans l’espace de la scène [HKH11].

La grille non uniforme, proposée par Gigante [Gig90], a pour but de se détacher du pro-blème de régularité des grilles uniformes. Dans une grille non uniforme, les plans délimitant chaque voxel sont aussi alignés aux axes mais peuvent être positionnés selon la répartition des primitives le long de chaque axe. Cette structure s’adapte ainsi mieux à la géométrie de la scène qu’une grille uniforme. Cependant, son parcours est moins efficace et sa construction est plus longue.

Les grilles hiérarchiques ont pour objectif d’améliorer l’adaptation à la distribution des pri-mitives de la scène. Elles subdivisent récursivement E3 par des grilles uniformes. Lorsque la concentration en références de primitives géométriques est trop élevée dans un voxel, celui-ci est à nouveau subdivisé par une grille uniforme. Les approches connues basées sur les grilles hiérarchiques sont les grilles récursives [JW89], les hiérarchies de grilles uniformes (HUG -Hierarchy of Uniform Grids) [CDP95] et les grilles adaptatives [KS97]. Ces trois structures se

(30)

2.3. Qualité de la partition 21 distinguent principalement par leur construction. Le parcours d’une grille hiérarchique est plus coûteux que celui d’une grille uniforme étant donné qu’il implique des changements de niveau de hiérarchie. De plus, le choix de la résolution des grilles reste problématique, et déterminer le critère d’arrêt de la subdivision récursive est difficile. Pour plus d’informations, le lecteur in-téressé peut se référer à [HS99]. Remarquons enfin que l’octree peut-être vu comme une grille hiérarchique 2×2×2.

2.3.2 Qualité d’une partition spatiale binaire

Les partitions spatiales binaires subdivisent récursivement E3 en deux à l’aide de plans. La qualité de ce type de partition est dépend fortement du choix du plan de découpe utilisé. Ce choix repose sur deux degrés de liberté : l’orientation et la position du plan dans l’espace. Un plan est défini par un quadruplé de réels : (a, b, c, d) ∈ R3 (cf. Déf. 7). Le triplet (a, b, c) définit la normale du plan et donc son orientation dans l’espace. Si la normale est unitaire (i.e. si a2+ b2+ c2 = 1) alors d correspond à la distance entre l’origine du repère (0, 0, 0) et le plan, et définit sa « position ».

Définition 7 (Plan dans E3)

Soient a, b, c, d ∈ R | (a, b, c) 6= (0, 0, 0). Un plan Π est l’ensemble des points (x, y, z) ∈ E3 | ax + by + cz + d = 0.

D’un point de vue général, un plan de découpe d’un BSP-tree peut être orienté arbitrairement dans l’espace. Ainsi, il peut s’adapter au mieux à la géométrie. Cependant, ce type de structure est peu utilisé en pratique car le test d’intersection rayon/plan est alors trop coûteux. En effet, pour un rayon d’origine O = (Ox, Oy, Oz) et de direction D = (Dx, Dy, Dz), la distance t du point d’intersection du rayon à l’origine est :

t = − (a.Ox+ b.Oy + c.Oz+ d)

a.Dx+ b.Dy + c.Dz . (2.2)

Le KD-tree est un cas particulier du BSP-tree dont les plans de découpe sont alignés aux axes. S’il s’adapte naturellement moins bien à la géométrie de la scène, il est habituellement préféré au BSP-tree classique pour deux raisons principales. D’une part, contrairement au BSP-tree, le nombre d’orientations possibles est borné et égal à trois. D’autre part, le test d’intersection rayon/plan est à la fois plus rapide et numériquement plus stable. En effet, l’équation d’un plan perpendiculaire à un axe se résume à i = dioù i ∈ {x, y, z} et diest la constante déterminant la position du plan sur l’axe i. Ainsi, t se calcule avec une seule instruction MAD (Multiply and Add) sur des flottants :

t = di− Oi Di = di× 1 Di + ( −Oi Di ). (2.3)

L’autre degré de liberté dans le choix du plan de découpe réside dans sa position dans l’es-pace. À chaque niveau de la hiérarchie, un plan partitionne l’espace courant en deux sous-espaces et répartit les primitives dans chaque sous-espace (cf. Déf. 8). La position du plan de découpe détermine donc grandement l’adaptation de la structure à la géométrie de la scène.

(31)

Définition 8 (Partition d’un espace de E3 par un plan et répartition de la géométrie.) Un planΠ : ax + by + cz + d = 0 partitionne un espace E ∈ E3en deux régionsR+etR⊂ E telles que :

❒ R+ ={(x, y, z) ∈ E | ax + by + cz + d ≥ 0}. ❒ R− ={(x, y, z) ∈ E | ax + by + cz + d < 0}. ❒ R+∪ R− = E et R+∩ R=∅.

Une référenceρ à une primitive géométrique G∈ G3représentée dansE ⊂ E3par un ensemble de pointsX ⊂ E est associée à R+et/ouRselon que :

❒ ρ∈ R+ ⇔ ∃(x, y, z) ∈ X | ax + by + cz + d ≥ 0. ❒ ρ∈ R− ⇔ ∃(x, y, z) ∈ X | ax + by + cz + d < 0.

Plusieurs stratégies sont applicables pour déterminer cette position. La plus simple a pour but d’équilibrer l’espace autour du plan de découpe. Elle consiste à systématiquement placer le plan au milieu de l’axe le plus long de l’espace qu’il découpe (cf. Fig.2.13(a)). La découpe est donc effectuée sans prendre en compte la distribution de la géométrie de la scène. Ainsi, lorsque la répartition de la géométrie de la scène est hétérogène, une telle méthode engendre un arbre déséquilibré, ce qui ralentit la recherche d’intersection (cf. Sec.2.4.1).

(a) (b)

(c) (d)

FIGURE 2.13 – Stratégies de découpe dans un KD-tree pour un axe en 2D : (a) Découpe au

milieu de l’espace ; (b) Découpe uniforme en le nombre d’objets ; (c) Plans possibles avec SAH (pour un axe, 2N plans possibles pour N primitives) ; (d) Plans possibles avec 8 bins.

(32)

2.3. Qualité de la partition 23 Une autre stratégie simple consiste à choisir la position du plan de sorte que les références soient réparties uniformément autour du plan de découpe (cf. Fig.2.13(b)). Cette méthode gé-nère ainsi un arbre équilibré. Cependant, elle produit généralement des régions dans lesquelles la probabilité pour un rayon de toucher une primitive est faible, conduisant à des visites de nœud potentiellement inutiles.

D’autres approches se basent sur des heuristiques pour choisir la position du plan de dé-coupe. L’heuristique SAH (Surface Area Heuristic) [GS87,MB90] est la plus souvent utilisée. Elle permet d’estimer le coût de recherche d’intersection pour un rayon. En partant du prin-cipe que les rayons sont uniformément distribués et qu’ils ne touchent aucune primitive de la scène, elle a pour but de choisir un plan parmi plusieurs possibilités dans le but de minimiser ce coût. Une structure accélératrice est alors considérée comme optimale lorsque son coût SAH est minimal.

Étant donné un rayon et un sous-espace R ⊂ E3, la probabilité P qu’un rayon touche l’un des sous-espaces fils Rf ⊆ R est proportionnelle au rapport des aires A des surfaces extérieures du volume associé à Rf et du volume initial :

P (Rf/R) = A(Rf)

A(R) . (2.4)

Dans une partition binaire, le coût de traversée CRd’un rayon dans un sous-espace R se calcule donc en fonction de la probabilité de toucher ces sous-espaces fils R+et R:

CR =CR+.P (R+/R) +CR−.P (R−/R) +Ct. (2.5) Dans l’équation 2.5, Ct est la constante de coût de test d’un sous-espace, et C+

R et C − R cor-respondent respectivement au coût de parcours des sous-arbres représentant les sous-espaces fils R+ et R. Cependant, les coûts C+

R et C −

R ne peuvent être calculés que lorsque les sous-arbres correspondant sont construits. Pour pallier ce problème, une approximation locale dite « gloutonne » du SAH considère R+et Rcomme des feuilles. Ainsi, le coût de parcours d’un sous-arbre est remplacé par le coût d’intersection Ci d’une primitive multiplié par le nombre N de primitives référencées dans le sous-espace associé :

CR=Ci.(N+.P (R+/R) + N−.P (R−/R)) +Ct =Ci. A(R +).N++A(R).N− A(R)  +Ct. (2.6)

La construction d’une partition spatiale selon cette approche est généralement longue. Par exemple dans un KD-tree, en partant du principe que les plans de découpe possibles sont déter-minés par les bords des AABB de chaque primitive, le nombre de candidats est égal à 6N, où N est le nombre de primitives référencées dans le volume à découper (cf. Fig.2.13(c)). Pour ac-célérer la construction de la partition, une stratégie similaire vise à restreindre les possibilités à un nombre prédéfini de plans répartis de manière uniforme et appelés bins (cf. Fig.2.13(d)). En pratique, le Binned SAH ne réduit que faiblement la qualité de la partition par rapport à un SAH classique tout en permettant une construction à la fois rapide et plus facilement parallélisable (cf. e.g. [DPS10]).

(33)

2.3.3 Qualité d’un BVH

Un BVH subdivisent récursivement G3en regroupant les primitives de la scène en une hié-rarchie de volumes englobants. La qualité d’un BVH dépend du choix du type des volumes englobants ainsi que de leur position. Un volume englobant de qualité doit satisfaire deux pro-priétés. D’une part, la complexité de son test d’intersection avec un rayon doit être la plus faible possible devant celle de l’ensemble des primitives contenues. D’autre part, il doit s’adapter au mieux à la géométrie qu’il contient. Si un rayon traverse le volume englobant alors la proba-bilité de toucher une primitive contenue doit être la plus haute possible. Ces propriétés étant opposées, il convient donc de trouver un bon compromis entre les deux.

La figure2.14classe les différents types de volumes englobants présentés sur la figure2.8 selon ces deux propriétés. La sphère est sans doute le volume englobant à la fois le plus simple et le plus rapide à tester mais s’adapte généralement mal à la géométrie. À l’opposé, l’enveloppe convexe décrit le plus petit volume englobant convexe et s’adapte donc très bien à la géométrie. En contrepartie, son test d’intersection est complexe, et elle demande un fort coût mémoire.

+

Sphère AABB OBB 6-DOP Enveloppeconvexe

Adaptation à la géométrie

Efficacité du test d’intersection

− +

FIGURE 2.14 – Classement des volumes englobants selon l’efficacité du test d’intersection et

l’adaptation à la géométrie.

En théorie, il est possible d’utiliser n’importe quel type de volume, voire même des vo-lumes différents au sein d’une même hiérarchie (e.g. [Erl02]). Notons qu’il est aussi possible de créer de nouveaux volumes en combinant plusieurs volumes simples. La figure2.15montre un exemple d’intersection entre une OBB et une sphère. En pratique, l’AABB est généralement utilisée pour deux raisons. D’une part, son test d’intersection avec un rayon est à la fois simple, robuste et rapide (e.g. [WBMS05]). D’autre part, son coût mémoire est faible : une AABB est définie par deux points m = (min(x), min(y), min(z)) et M = (max(x), max(y), max(z)). Certaines applications particulières utilisent des OBB, comme par exemple pour calculer du flou de mouvement [HQL∗10] ou pour le rendu de cheveux ou de fourrures [WBW14].

=

Références

Documents relatifs

Dans cette thèse, nous avons étudié la faisabilité de la reconstruction des objets génériques (médicals ou industriels) en CT à partir d’un faible nombre de projections:

- L’ionisation que déterminent les rayons a en traversant la matière est en partie indirecte : les ions ne sont pas tous produits sur le passage de la particule

On tire une boule de l’urne, on note son numéro et on la remet dans l’urne puis on recommence jusqu’à obte- nir 7 numéros.. Un sac contient 8 pièces dont une (truquée)

Exercice 4 : On considère une urne contenant trois boules jaunes, deux boules bleues, une boule rouge et quatre boules vertes.. On tire au hasard une boule

Nombre de calculs réalisés Nombre de résultats corrects.. Nombre de calculs réalisés Nombre de

En tant que vice-président, ses priorités sont : œuvrer pour toujours plus d’assise et de visibilité de la SFP dans les laboratoires, les organismes de recherche et

(lui se comportent dans bien des cas de la même façon que les corps comprimés émettent aussi des radiations de nature différente suivant la direction dans laquelle.. ils

pas sensible.. - si les rayons N sont incapables d’agir directement sur les plaques photographiques, on peut toutefois enregistrer l’action produite par ces rayons