Implémentation et comparaison de Brdf dans le moteur de rendu photoréaliste Mitsuba



Documents pareils
IFT3355: Infographie Sujet 6: shading 7 (illumination globale 4)

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La

Télécom Nancy Année

Etude comparative de différents motifs utilisés pour le lancé de rayon

6.4. Les Ombres Raytracées (Raytraced Shadows) Shading Lamp Shadow and Spot Hemi Spot Sun Sun Scene F10 Shadow Render Ray Ray Shadow Shadow and Spot

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies

Groupe Eyrolles, 2006, ISBN :

Observation des modalités et performances d'accès à Internet

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

Application 1- VBA : Test de comportements d'investissements

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Mémoire. Rendu 3D temps-réel de grands objets. Benoît Bossavit Stéphane Romero-Romero Frédérick Roy Romain Vergne. Vendredi 07 Avril 2006

Chapitre 1 Cinématique du point matériel

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Immersion - Vision 3D dans la RV.

Rappels sur les suites - Algorithme

Manuel d Utilisateur - Logiciel ModAFi. Jonathan ANJOU - Maud EYZAT - Kévin NAVARRO

- I - Fonctionnement d'un détecteur γ de scintillation

SweetyPix, mode d'emploi

MS PROJECT Prise en main. Date: Mars Anère MSI. 12, rue Chabanais PARIS E mail : jcrussier@anere.com Site :

Comprendre l Univers grâce aux messages de la lumière

DIFFRACTion des ondes

ESXi: Occupation RAM avec VM_Windows et VM_Linux. R. Babel, A. Ouadahi April 10, 2011

CHROMOPHARE Génération F : éclairage innovant à réflecteur avec LED. Un concept et un design d'éclairage qui réunissent fonctionnalité et esthétique

Traitement numérique de l'image. Raphaël Isdant

Perrothon Sandrine UV Visible. Spectrophotométrie d'absorption moléculaire Étude et dosage de la vitamine B 6

LES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES

Bonnes Pratiques de Fabrication des médicaments à usage humain et vétérinaire

Retournement Temporel

Rendu HDR et illumination par image

Simulation des capteurs de flux thermique. Guillaume Dauster 7 mai 2014

X-Rite RM200QC. Spectrocolorimètre d'imagerie portable

(VM(t i ),Q(t i+j ),VM(t i+j ))

Éléments d'architecture des ordinateurs

La visio-conférence holographique : Pourquoi? Comment?

D'UN THÉORÈME NOUVEAU

INFORM :: DEMARRAGE RAPIDE A service by KIS

Développements limités. Notion de développement limité

Réussir et traiter ses photos sous UV avec Photoshop

1S9 Balances des blancs

Mario Geiger octobre 08 ÉVAPORATION SOUS VIDE

Chapitre 0 Introduction à la cinématique

CYCLE 3D. Certification RNCP "Lead Infographiste 2D/3D" Niveau II - Bac +3

Programmation Objet - Cours II

DETERMINER LA LARGEUR DE PAGE D'UN SITE et LES RESOLUTIONS d'ecran

PHPWEBSITE -Tutoriel image

DÉCOUVERTE DE CAPTURE ONE

G.P. DNS02 Septembre Réfraction...1 I.Préliminaires...1 II.Première partie...1 III.Deuxième partie...3. Réfraction

Régler les paramètres de mesure en choisissant un intervalle de mesure 10µs et 200 mesures.

RIE LE RENDU THEO. 2 e trim ÉTAPE DE FINITION BOÎTE DE DIALOGUE. remarques


chapitre 4 Nombres de Catalan

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Rapidolect Les Productions de la Columelle ( ) Page 1

Master Modélisation Aléatoire Paris VII, Cours Méthodes de Monte Carlo en nance et C++, TP n 2.

POLITIQUE SUR LA SÉCURITÉ LASER

Méthodes de Simulation

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

Algorithmique avec Algobox

= 1 si n = m& où n et m sont souvent des indices entiers, par exemple, n, m = 0, 1, 2, 3, 4... En fait,! n m

Continuité d une fonction de plusieurs variables

Comparaison des performances d'éclairages

Création d'un questionnaire (sondage)

LE PROBLEME DU PLUS COURT CHEMIN

Microscope numérique portable Celestron (HDM) Modèle nº Informations, spécifications et instructions

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Leica DM4000 B LED. Une imagerie facilitée par un éclairage brillant!

Organiser des séquences pédagogiques différenciées. Exemples produits en stage Besançon, Juillet 2002.

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

Projet Matlab/Octave : segmentation d'un ballon de couleur dans une image couleur et insertion d'un logo

Formation projet informatique. Expression de besoins, définir un besoin informatique

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Mode d'emploi du plugin Grayscale_Granulometry

RECOMMANDATION UIT-R SM (Question UIT-R 68/1)

DYNAMIQUE DE FORMATION DES ÉTOILES

Chapitre 4 : Guide de Mouvement et Masque

pcon.planner 6 Préparer et présenter une implantation en toute simplicité

Nombre de marches Nombre de facons de les monter

Année : Team-War Jaafar AMRANI-MESBAHI Fabien GARCIA Abdelali NAIT BELKACEM Rahma NAKARA Philippe NGUYEN

Table des matières. 10 Gimp et le Web. Option de traitement d'images Mémento pour la séance N o Création d'animation

Infolettre #18 : Les graphiques avec Excel 2010

Optimiser le référencement naturel de son site web

Dossier table tactile - 11/04/2010

TITRE PARTIE TITRE SECTION. Faire des anaglyphes avec CatiaV5

Chapitre 02. La lumière des étoiles. Exercices :

Etudes des nuages et de la convection autour des dépressions intenses des moyennes latitudes

1. Création d'un état Création d'un état Instantané Colonnes Création d'un état Instantané Tableau... 4

Tp_chemins..doc. Dans la barre "arche 2" couleur claire 1/5 21/01/13

Modèle de troncature gauche : Comparaison par simulation sur données indépendantes et dépendantes

ENREGISTREUR DE TEMPERATURE

FICHE 1 Fiche à destination des enseignants

EXERCICE 2 : SUIVI CINETIQUE D UNE TRANSFORMATION PAR SPECTROPHOTOMETRIE (6 points)

Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

Diagnostic adaptatif d'un flux d'alarmes par méta diagnostic distribué Application à la détection d'intrusions dans un serveur Web

TD1 PROPAGATION DANS UN MILIEU PRESENTANT UN GRADIENT D'INDICE

Comment optimiser dans ImageReady?

modélisation solide et dessin technique

Transcription:

Implémentation et comparaison de Brdf dans le moteur de rendu photoréaliste Mitsuba Pierre Moreau Encadré par Nicolas Holzschuch 3 juin 2013 30 août 2013 Équipe Maverick, Inria Rhône-Alpes, Grenoble Résumé Le rendu des matériaux est primordial pour des rendus photoréalistes ; les bidirectional reectance distribution function (Brdf) représentent les propriétés des matériaux. Il existe deux familles de Brdf : les Brdf mesurées qui prennent un certain espace de stockage et les Brdf analytiques qui peuvent échouer à rendre certains matériaux ou les rendre moins précisément que les brdf mesurées. Quelque soit la famille utilisée, le temps de calcul n'est pas négligeable. Toutefois, les Brdf analytiques ont un avantage sur les Brdf mesurées : comme ce sont des formules, on peut prédire leur comportement et ainsi choisir en conséquence les endroits qu'il est préférable d'échantillonner, permettant de grandement accélérer les calculs. J'ai tout d'abord implémenté les modèles de Brdf mesurées ainsi que de la Brdf shifted gamma distribution (Sgd), une Brdf analytique, puise je me suis intéresseré à l'importance sampling pour la Brdf Sgd, enn j'ai proposé une nouvelle fonction d'échantillonnage permettant d'utiliser très peu d'échantillons pour un rendu peu bruité ; cette même fonction peut également s'appliquer aux Brdf mesurées. Mots-clés graphisme rendu photoréaliste Brdf 1

Remerciements Je voudrais remercier toute l'équipe Maverick pour son accueil, sa gentillesse et la mise à disposition de matériel assurant d'excellentes conditions de stage, et tout particulièrement Nicolas Holzschuch pour son soutien, son aide et sa grande disponibilité tout au long du stage. 2

Table des matières Introduction 4 1 Contexte 5 1.1 Image de synthèse - simulation d'éclairage............................... 5 1.2 Présentation des notations et de quelques dénitions......................... 5 1.3 Présentation du domaine et travaux précédents............................ 8 1.4 Présentation du modèle de Cook-Torrance............................. 9 1.4.1 La fonction D........................................... 9 1.4.2 La fonction G d'ombrage-masquage............................... 9 1.4.3 Le coecient de Fresnel F................................... 10 1.5 Présentation du modèle utilisé : SGD................................. 11 1.6 Présentation de Mitsuba........................................ 11 2 Contribution 12 2.1 Objectifs.................................................. 12 2.2 Brdf mesurées.............................................. 12 2.3 Brdf Sgd................................................. 12 2.4 Amélioration de la fonction d'échantillonnage............................. 13 2.5 Comparaisons............................................... 15 Conclusion 19 3

Introduction Le cinéma utilise de plus en plus les ordinateurs, pour les eets spéciaux notamment, mais également pour le décor, l'éclairage ; certains jeux-vidéos essaient de modéliser des univers physiquement, et visuellement, les plus réalistes possibles. D'autres métiers peuvent bénécier de rendu photoréaliste : un designer d'automobiles peut vérier le rendu, dans n'importe quelle condition d'éclairage, de telle peinture sur une voiture, sans avoir besoin de réaliser un prototype ; un designer d'intérieur peut montrer à ses clients, en temps réel, les répercussions d'un changement en incluant les jeux de lumière. Le photoréalisme consiste à représenter de manière réaliste un environnement ; une capture d'écran d'un rendu photoréaliste pourrait être confondue avec une photo. Pour atteindre ce but, le rendu des matériaux est primordial ; avoir la bonne couleur ne sut, il faut également la bonne texture (une porte en bois, qui aurait la couleur du bois, mais la texture du métal, ne paraîtrait pas réaliste). Il est possible de mesurer en laboratoire les propriétés des matériaux, d'en constituer une base de données, puis d'aller piocher dans cette base lors du rendu d'un matériau particulier. Toutefois, les chiers des matériaux sont relativement lourds (environ 30 Mo pour un chier de la base de données Merl-Mit [6] ne contenant qu'un seul matériau, qui plus est isotrope). Une alternative consiste à développer des méthodes analytiques de construction de matériaux qui s'approchent de la réalité, mais elles restent toutefois gourmandes en temps de calcul et échouent à capturer certains matériaux. La bidirectional reectance distribution function (Brdf) shifted gamma distribution (Sgd) est une méthode alternative rapide (45 secondes ; même si ce n'est pas encore du temps réel) et légère (elle consomme un peu plus d'espace de stockage que les autres méthodes analytiques, mais bien moins que les Brdf mesurées), développée au sein de l'équipe Maverick à l'inria Rhône-Alpes. Le but de ce stage est d'intégrer Sgd dans le moteur de rendu open-source Mitsuba, ainsi que d'évaluer ses performances sur la base de matériaux standards. 4

Chapitre 1 Contexte 1.1 Image de synthèse - simulation d'éclairage Si, dans un jeu-vidéo ou un lm d'animation, on se contente d'acher le modèle géométrique d'une scène avec les couleurs dénies par le graphiste et sans simuler l'éclairage, même si ce modèle est très détaillé, il ne paraîtra pas pour autant réaliste. Il manquera beaucoup de petits détails liés à l'interaction de la lumière avec les matériaux : les petites taches blanches (appelées taches spéculaires) sur les objets, les reets et les ombres, notamment (cf la gure 1.1(a)). An de remédier à ce problème, des chercheurs ont commencé à simuler l'éclairage en plus du modèle géométrique. L'utilisation de Brdf simples, mais donnant tout de même de bons résultats, comme Blinn- Phong [2] a permis d'obtenir des objets dont la couleur variait suivant les conditions d'éclairage : plus sombre si peu éclairés, plus claire si plus éclairés, avec la possibilité d'obtenir des taches spéculaires (cf la gure 1.1(b)). Un objet qui n'est pas éclairé directement par une source de lumière apparaîtra noir lors du rendu. Or, dans la réalité, les rayons de lumière ne rebondissent pas qu'une fois, mais de multiples fois, leur permettant d'atteindre indirectement des objets et induisant une couleur de base, appelée lumière ambiante, s'appliquant à tous les objets, même ceux qui ne sont pas éclairés directement. Certains modèles l'incluent sous la forme d'une constante, d'autres, et c'est le domaine de la radiosité et de l'illumination globale, utilisent des formules pour la calculer. 1.2 Présentation des notations et de quelques dénitions Tous les vecteurs sont normalisés, et symbolisés par une lettre latine en gras : par exemple, h ou encore i. i symbolise le rayon incident, mais dirigé vers la source de lumière ; ceci permet de simplier les calculs, notamment pour le calcul des diérents angles car on n'a pas besoin d'inverser le vecteur pour le produit vectoriel ; o symbolise le rayon sortant ; h symbolise le vecteur normalisé à mi-chemin entre i et o ; n symbolise la normale de la face ; m symbolise la normale de la microfacette. est utilisé pour représenter un produit membre à membre de vecteurs. La gure 1.2 présente les diérents angles utilisés par la suite. Le vecteur t représente la tangente, et b la bi-tangente. La gure 1.3 présente quant à elle la diérence entre la macro- et la microfacette, ainsi qu'entre les vecteurs n et m. Matériau isotrope les propriétés de ce dernier sont constantes dans tout le matériau (le matériau n'est pas constitué d'impuretés) et aucune direction n'est privilégiée lors de la réexion. 5

(a) Pas de simulation d'éclairage (b) Ajout d'une source de lumière avec une Brdf de Blinn-Phong Figure 1.1 Diérence entre une scène sans simulation de lumière, et une scène avec n n o θ o θ i i o h θh θ d i t φ o φ i t φ h φ d b (a) Représentation classique b (b) Représentation de Rusinkiewicz [8] Figure 1.2 Dénition des diérents angles utilisés m n θ h micro-facette macro-facette Figure 1.3 Microfacette macrofacette 6

da Figure 1.4 Visualisation de l'irradiance sur une surface da Flux radiant (Φ) nombre de joules émis par seconde par une source lumineuse. Irradiance (E) densité de ux radiant par rapport à une surface, ou dit autrement, le nombre de joules émis par seconde qui atteignent une surface prédénie, A (voir gure 1.4). E = dφ da Réectance (L o ) Lorsqu'un rayon lumineux rencontre une surface, il n'est pas forcément entièrement rééchi : une partie peut être absorbée ou alors se diuser dans le matériau. La fraction rééchie de l'irradiance est appelée réectance ; le coecient appliqué à l'irradiance pour donner la réectance est la Brdf, notée f ou ρ. L o (o) = f(i, o) de(i) dω o (1.2) Ω est obtenu à partir de f(i, o) = dl o(o) de(i) Ω étant l'hémisphère centré sur la norme n de la face considérée du modèle. Bidirectional reectance distribution function (Brdf) fonction qui calcule la réectance d'un matériau en fonction du rayon incident et du rayon sortant, à l'aide de probabilités. Shifted gamma distribution (Sgd) Brdf basée sur le modèle de Cook-Torrance [10]. Partie spéculaire ne prend en compte que la réexion du rayon incident par rapport à la surface. Partie diuse s'occupe de tout ce qui est transmission, scattering, absorption dans le matériau : ce qui donne à un matériau sa couleur. Toutefois pour les Brdf, contrairement à la partie spéculaire, la partie diuse est caractérisée par une valeur mesurée, et non par une formule analytique. Les Bssrdf et Btdf (le t signie transmission), présentées ultérieurement, utilisent au contraire une formule analytique pour la partie diuse ; ce sont des modèles plus complexes, qui demandent plus de ressources à l'exécution. Le ttage consiste à trouver la valeur des diérents paramètres du modèle, an que le modèle approxime au mieux une source ; l'algorithme utilisé est celui de Levenberg-Marquardt [4], [5] pour l'implémentation. L'échantillonnage consiste à lancer plusieurs rayons par pixel, puis de faire une moyenne pondérée pour obtenir le résultat nal pour ce pixel. Comme le modèle est basé sur des probabilités, lancer un unique rayon par pixel aurait des résultats très diérents entre les images d'une même scène, ainsi qu'au sein d'une même scène : deux pixels adjacents, représentant une même surface, pourraient avoir deux valeurs totalement diérentes, ce qui crée du bruit. Lancer plusieurs rayons a pour eet de lisser le résultat. Par la suite, une image obtenue avec 100 échantillons signie que l'on a lancé 100 rayons pour chaque pixel de l'image. (1.1) (1.3) 7

(a) Partie diuse uniquement (b) Partie spéculaire uniquement (c) Partie diuse et spéculaire Figure 1.5 On peut remarquer que la partie diuse est constitué d'une couleur unie sur toute la surface du matériau, ce qui est normal sur un matériau opaque comme le gold-paint utilisé ici. La partie spéculaire représentant les réections, on a une couleur qui varie suivant l'intensité et la direction de l'éclairage. 1.3 Présentation du domaine et travaux précédents La notion de Brdf a été introduite par Fred E. Nicodemus en 1965 [7]. Son but était de proposer une généralisation du calcul de la réectance d'une surface opaque, indépendante de la géométrie, alors que les travaux précédents ne s'appliquaient qu'à une même géométrie. La notion de bidirection pour la Brdf n'est pas explicitement citée dans le papier de Nicodemus, mais transparaît par la loi de réciprocité d'helmhotz : si on intervertit le rayon incident et le rayon sortant, la réectance ne change pas. Il existe deux grandes familles de Brdf : les Brdf mesurées et les Brdf analytiques. Les Brdf mesurées consistent en une table contenant les valeurs mesurées sur un modèle réel, sous diérents angles de vue et d'éclairage. Lors de leur utilisation dans un programme, il sut de choisir la table correspondant au matériau voulu, puis d'aller piocher la valeur en se servant des rayons incident et sortant, pour calculer l'indice. Plusieurs papiers se sont penchés sur le problème du stockage de telles Brdf (leur empreinte mémoire étant leur point faible), ainsi que sur les méthodes d'acquisition des données. Ainsi, Matusik et al. [6] ont développé un système d'acquisition plus simple de Brdf mesurées isotropes, système basé sur la représentation de Rusinkiewicz [8]. Il permet de réduire la taille des chiers de stockage (un chier fait environ 30 Mo). Ils ont, de plus, créé la base de données Merl-Mit qui contient les Brdf de plus de 100 matériaux. Les Brdf analytiques sont exprimées sous la forme d'une fonction ayant pour paramètres les rayons incident i et sortant o ; par la suite nous utiliserons ρ pour symboliser la Brdf. Cette famille contient un sousgroupe qui suit la théorie de la microfacette : la théorie considère que la macro-facette du modèle est en réalité constituée d'une multitude de microfacettes, qui ne sont pas présentes dans le modèle géométrique (3D), mais qui participent activement à l'eet visuel de la partie spéculaire du matériau, notamment pour sa rugosité (voir gure 1.6). Pour arriver à un rendu similaire, en se basant uniquement sur le modèle 3D, il faudrait descendre à un niveau de précision du modèle assez extrême (de l'ordre du micromètre, ce qui créerait des modèles avec un nombre de points astronomiques de plusieurs milliers de milliards, et des chiers gigantesques de quelques dizaines de giga-octets), ainsi qu'avoir un modèle d'éclairage très précis, ce qui demanderait beaucoup de ressources. Les cousins des Brdf Il existe d'autres modèles qui prennent en compte des aspects supplémentaires : Bssrdf les ss signient subsurface scattering ; elle modélise en plus le rayon réfracté qui se diuse dans la matière, augmentant le réalisme des objets translucides. Svbrdf les sv sigient spatially varying ; la Brdf dépend en plus de la position du point touché. 8

(a) Avec une rugosité de 0 (b) Avec une rugosité de 0.03 (c) Avec une rugosité de 0.1 Figure 1.6 Rendu d'une sphère en chrome, avec diérentes rugosités Beckmann exponential TR/GGX 1 P 22 (x) α exp ( ) x 1 2 α 2 2α exp ( ) x α 2 2 α 2 (α 2 +x) 2 Table 1.1 Diérentes fonctions pour P 22 1.4 Présentation du modèle de Cook-Torrance Le modèle de réectance de Cook-Torrance [10] utilise le principe de microfacettes (voir gure 1.3 ainsi que le paragraphe précédant les cousins des Brdf). Cette Brdf a pour formule : ρ(i, o) = ρ d π + ρ s D(θ h )G(i, o)f(i h) (1.4) π cos(θ i ) cos(θ o ) avec h = i+o i+o ; θ h, θ i, θ o sont les angles entre la normale de la face n et, respectivement, h, i et o (cf la gure 1.2). ρ d et ρ s représentent respectivement, la partie diuse et la partie spéculaire de la Brdf ; les diérentes fonctions D, G et F seront présentées dans les sous-sections suivantes. Ce modèle a l'avantage de très bien approcher les matériaux dius et brillants, toutefois, les matériaux spéculaires (comme les métaux) sont moins bien représentés ; cette partie est corrigée dans Sgd (présenté en 1.5) grâce à un choix diérent pour la fonction D. 1.4.1 La fonction D Appelée fonction de distribution, elle donne la densité de probabilité de la normale de la microfacette. Elle représente la densité de probabilité que m soit dans le cône d'angle θ h, centré sur n. Son expression est la suivante : D(θ) = χ [0,π/2](θ) π cos 4 (θ) P 22( tan 2 (θ) ) θ [ ] 0, π 2 (1.5) P 22 est un des paramètres du modèle ; la table 1.1 contient quelques exemples classiques de P 22. D doit vérier π ( 2 ) 2π 0 0 (D(θ) cos(θ)) sin(θ) dφ dθ = 1, et renvoie une valeur entre 0 et +. 1.4.2 La fonction G d'ombrage-masquage Comme on peut le voir sur la gure 1.7, il est possible qu'un rayon lumineux arrivant sur la surface ne reparte pas (cf gure 1.7(a)), qu'il n'atteigne pas une certaine zone (cf gure 1.7(b)), ou qu'il ait subi de multiples réexions (cf gure 1.7(c)). Cette fonction approxime ce phénomène en renvoyant une valeur entre 0 et 1, qui agit comme coecient sur la partie spéculaire. Les fonctions D et G sont liées par leur dénition, mais aussi par leur formule, G dépendant de P 22. 1. représente ici un produit membre à membre de vecteurs G(i, o) G 1 (θ i ) G 1 (θ o ) 1 (1.6) 9

partie ombragée (a) Phénomène d'ombrage partie masquée (b) Phénomène de masquage inter-réexions (c) Phénomène d'inter-réexions Figure 1.7 Explication physique de la fonction G avec χ π [0, 2 G 1 (θ) = ](θ) 1 + Λ(θ) Λ(θ) = P 2 (r) = + 1 tan(θ) + (1.7) P 2 (r) ( r tan(θ) 1 ) dr (1.8) P 22 ( r 2 + q 2) dq (1.9) 1.4.3 Le coecient de Fresnel F Ce coecient représente la réection externe, c'est-à-dire quand la lumière passe de l'air entourant l'objet, à la matière composant l'objet ; il est tiré des équations de Fresnel : avec R = R s + R p 2 ( ) 2 n 1 cos(θ i ) n n1 2 (1 sin(θ i ) n 2 R s = ( ) 2 n 1 cos(θ i ) + n n1 2 (1 sin(θ i ) n 2 ( ) 2 n n1 1 (1 sin(θ i ) n 2 cos(θ i ) n 2 R p = ( ) 2 n n1 1 (1 sin(θ i ) + n 2 cos(θ i ) n 2 2 2 (1.10) (1.11) (1.12) Il est aussi possible de calculer ce coecient à partir de données mesurées et de la formule de la BRDF ( F(x) = m(i, o) ρ ) d π cos(θ i) cos(θ o ) (1.13) π ρ s D(θ h )G(i, o) ou à partir de l'approximation de Schlick [9] F(x) = F 0 + (1 F 0 ) (1 x) 5 x [0, 1] (1.14) ce qui permet de gagner un certain temps de calcul, vu la complexité des équations (1.11) et (1.12). F(x) renvoie une valeur comprise dans [0, 1]. 10

1.5 Présentation du modèle utilisé : SGD Le modèle Sgd [1] se base sur le modèle de Cook-Torrance, présenté dans la section précédente. Il utilise toutefois une fonction de distribution diérente, ainsi qu'une approximation de Schlick (cf partie 1.4.3) à laquelle un terme a été rajouté, pour le coecient de Fresnel. Outre quelques fonctions diérentes par rapport à Cook-Torrance, toutes les fonctions de Sgd renvoient des vecteurs de dimension 3, contenant le canal rouge, puis vert, puis bleu. Fonction de distribution P 22 : La formule de D est identique à (1.5), mais on utilise la fonction suivante pour P 22 (x) = Γ(s, x) = 1 αγ(1 p, α) + x ( exp ( α2 +x α α 2 +x α ) ) p (1.15) t s 1 exp( t) dt (1.16) avec α une valeur propre au matériau ; p une autre valeur propre au matériau ; la fonction Γ est la fonction gamma incomplète. 1 On utilisera par la suite K α,p = αγ(1 p,α) ; cette valeur ne sera pas calculée à l'exécution, mais précalculée et stockée avec α et p (entre autres). Fonction G 1 On utilise pour l'implémentation l'approximation suivante pour : { ( 1 + λ 1 exp ( c(θ θ 0 ) k) ) si θ > θ 0 G 1 (θ) 1 sinon (1.17) avec ( θ 0 = π ( ) log 1 + 1 2 λ c ) 1 k (1.18) λ, c et k sont des valeurs propres à chaque matériau, et sont stockées avec K α,p et les autres. Coecient de Fresnel Un terme a été rajouté à l'approximation de Schlick, an de mieux prendre en compte certains matériaux comme le nickel ou le gold-paint, ce qui donne l'équation suivante : F(x) = F 0 + (1 F 0 ) (1 x) 5 F 1 x x [0, 1] (1.19) 1.6 Présentation de Mitsuba Mitsuba [3] est un logiciel open-source de lancer de rayons, développé par Wenzel Jakob, et essentiellement utilisé par le milieu de la recherche. Il intègre la plupart des diérentes Brdf existantes, ce qui permet de facilement comparer les résultats, ainsi que diérents intégrateurs, entre autres ; les intégrateurs résolvent l'équation du transport de la lumière. Il est basé sur un système de plugins, ce qui permet de rajouter facilement une nouvelle Brdf, un nouvel intégrateur. 11

Chapitre 2 Contribution 2.1 Objectifs Le stage avait pour but de comparer le rendu debrdf mesurées de la base de données Merl-Mit et du modèle de Brdf Sgd dans un moteur de lancer de rayons open-source, Mitsuba. Plus précisément, les objectifs étaient les suivants : 1. ajouter le rendu de Brdf mesurées, tirée de la base de données Merl-Mit ; 2. ajouter le rendu du modèle de Brdf Sgd ; 3. comparer la Sgd à la Brdf mesurée ; 4. ajouter une fonction d'importance à Sgd pour accélérer la convergence ; 5. ajouter de la pré-visualisation à la Brdf mesurée, en s'inspirant des équations de Sgd. Toutes les images présentées par la suite on été obtenues sur une machine double-c ur cadencée à 2.4 GHz travaillant en parallèle avec une machine huit-c urs cadencée à 3.6 GHz (les 10 c urs travaillent ensemble sur l'image), avec l'intégrateur direct (sauf mention contraire). 2.2 Brdf mesurées J'ai commencé par ajouter un plugin pour les Brdf mesurées dans Mitsuba, ce qui m'a permis de prendre en main le fonctionnement de son Api. La table 2.1 regroupe quelques matériaux rendus par cette première contribution, avec diérents échantillonnages. Problème rencontré Les images obtenues sont très bruitées, en utilisant 100 échantillons, pour un temps de calcul d'environ 45 secondes. Pour avoir une image peu bruitée, environ 100 000 échantillons sont nécessaires, pour un temps de calcul d'environ dix heures. Comme il s'agit de données mesurées, on ne peut pas se baser sur la formule pour prédire dans quelles directions il serait plus intéressant d'échantillonner ; par contre, il est possible de le faire avec une Brdf analytique, ce qui est un de ses avantages. Comme Sgd approxime la Brdf mesurée, on peut se servir des fonctions d'importance utilisée par les deuxième et troisième contributions pour les appliquer également à la Brdf mesurée. 2.3 Brdf Sgd Ma deuxième contribution a consisté à ajouter un second plugin pour Sgd, avec, en plus, de l'échantillonnage par importance. GGX (un modèle de microfacettes étendu qui permet de simuler la transmission à travers des surfaces rugueuses) [11] sera utilisé dans un premier temps. J'ai aussi ré-utilisé les fonctions de Sgd pour créer le module de pré-visualisation pour les Brdf mesurées et la Brdf Sgd ; ce module permet de visualiser de manière interactive le contenu de la scène. La table 2.2 regroupe quelques matériaux rendus par cette deuxième contribution, avec diérents échantillonnages, ainsi qu'avec importance sampling et sans ; la dernière ligne donne un aperçu du module de prévisualisation. Le module de prévisualisation a été écris en Glsl, le langage de shading d'opengl. OpenGL est un langage syntaxiquement similaire au C/C++ et permettant de faire du rendu en 2D ou 3D. Il est très utilisé dans les jeux-vidéos notamment. 12

Brdf mesurée aventurnine gold-paint chrome nickel 100 échantillons 45 secondes 100 000 échantillons 10 heures Table 2.1 Rendu de di érents matériaux avec la Brdf mesurée, sans fonction d'importance, avec di érents échantillonnages Un langage de shading permet de créer des e ets visuels complexes ; le programme écrit en langage de shading a la particularité de tourner sur la carte graphique. Di cultés rencontrées Les fonctions de Mitsuba qui appellent les fonctions du module Sgd ne fournissent que deux nombres aléatoires, pour tirer la normale de la microfacette. Toutefois, un troisième nombre aléatoire est requis pour déterminer si l'on évalue la partie di use ou la partie spéculaire. Comme je n'ai pas réussi à avoir accès au sampler de la scène, j'ai dû en créer un autre au sein du module, ce qui a pour e et d'écraser le sampler existant, quand ils sont du même type. L'échantillonnage par importance avec GGX a permis de grandement diminuer le bruit sur les images, pour un nombre d'échantillons raisonnables (100 échantillons). Toutefois, on est toujours obligé d'utiliser beaucoup d'échantillons (environ 10 000) pour avoir une image vraiment nette. 2.4 Amélioration de la fonction d'échantillonnage Pour avoir une convergence plus rapide, j'ai cherché une nouvelle fonction qui approxime le mieux la fonction P22 et dont on peut calculer l'inverse de l'intégrale ; la gure 2.1 représente cette nouvelle fonction, à côté de fonctions classiques a n de pouvoir les comparer. On peut voir que la queue de la courbe est bien mieux approximée par la nouvelle fonction que les autres, par contre ce n'est pas le cas pour la tête. Toutefois, un seul échantillon peut su r pour approcher la tête et avoir un résultat correct, alors que plusieurs seront nécessaires pour la queue ; ainsi, cette nouvelle fonction devrait donner de meilleurs résultats que les fonctions précédentes. L'approximation à laquelle je suis arrivé, est la suivante : 10 exp 10x λα P22 (x) λα (2.1) Cette fonction sera appelée par la suite la fonction exponentielle, par rapport à sa formule. θm est égal à l'inverse de 2π fois l'intégrale de la probabilité avec laquelle on tire la normale m de la microfacette (voir [1]), D(θh ) cos(θh ) si on échantillone la partie spéculaire, π1 cos(θh ) si c'est la partie di use. On obtient : q arctan αλ 10 log (1 µ2 ) pour la partie spéculaire θm (2.2) arcsin µ2 pour la partie di use 13

Sgd aventurnine gold-paint chrome nickel sans importance 100 échantillons 45 secondes sans importance 1 000 échantillons 7 minutes importance avec GGX 100 échantillons 45 secondes rendu en Glsl 5-10 secondes Table 2.2 Rendu de di érents matériaux avec Sgd, sans fonction d'importance puis avec GGX, avec di érents nombres d'échantillons, et pour nir, le module de prévisualisation en Glsl 14

(a) Échelle normale (b) Échelle logarithmique Figure 2.1 Achage de la fonction exponentielle, par rapport à diérentes fonctions P 22 utilisant les paramètres du chrome classiques, en La formule pour obtenir les poids vient de [11], et est la suivante : weight(i, o) = ρ(i, o) o n p(o) (2.3) avec p la probabilité de tirer le rayon sortant : p(o) = D(θ h ) cos(θ h ) ω h ω o (2.4) ω h ω o est le jacobien de la transformation de la demi-direction. On arrive à : w di 4(ρ s + ρ d ) π w spéc 4(ρ s + ρ d ) π cos(θ o ) i m π cos(θ h ) D(θ h)f(i h)g(i, o) i m cos(θ i ) π cos 3 (θ h )λα ( 10 exp 10 tan2 (θ h ) λα (2.5) ) (2.6) Chaque poids a été divisé par une probabilité supplémentaire : celle d'échantillonner la partie diuse ou la partie ρ spéculaire. Pour la partie spéculaire, elle est de s ρ d +ρ s, et de pour la partie diuse. ρ d ρ d +ρ s Diculté rencontrée Trouver une fonction qui approxime bien une autre fonction, avec en plus une préférence pour certains intervalles (qui ont visuellement une plus grande importance), n'est pas tâche aisée. Résultats Les images obtenues avec cette fonction d'importance ont, avec 100 échantillons et en 45 secondes, une meilleure qualité que les 100 000 échantillons sans importance obtenus en 10 heures, ainsi que les 1 000 échantillons de l'importance avec GGX obtenus en 1 heure. 2.5 Comparaisons Toutes les images de la table 2.3 ont été obtenues avec 100 échantillons en 45 secondes. On peut voir que Sgd obtient quasiment les mêmes images que la Brdf mesurée, à l'exception du chrome qui est un des matériaux les plus diciles à capturer correctement (peut-être qu'un rettage du matériau pourrait améliorer le résultat) ; on peut voir qu'il est bien plus sombre et violet que sur la Brdf mesurée, et ne présente pas de tache. La fonction exponentielle permet d'avoir une image très peu bruitée en seulement 45 secondes, en restant dèle au modèle utilisé (mis à part une exception sur le nickel pour la Brdf mesurée, qui reste inexpliquée à ce jour). 15

Sgd aventurnine gold-paint chrome nickel sans importance importance avec GGX importance avec exponentielle Brdf mesurée sans importance importance avec GGX importance avec exponentielle Table 2.3 Récapitulatif des di érents résultats pour 100 échantillons, pour les di érentes Brdf, utilisant di érentes fonctions d'échantillonnage ; temps de rendu 45 secondes 16

Pour nir, la gure 2.2 regroupe diérents matériaux rendus avec Sgd et exponentielle, avec 100 échantillons et photonmapping comme intégrateur, en 4 minutes. Le photonmapping est un des meilleurs intégrateurs : il est plus lent à résoudre l'équation de transport de la lumière, mais obtient des résultats bien plus précis ; en eet, il prend en compte l'éclairage indirect en plus de l'éclairage direct. Ce qui a une conséquence directe sur l'image : la partie basse de la sphère était toujours sombre voire noire sur les matériaux spéculaires (chrome ou nickel), les rayons étant bloqués par le plan sur lequel est posée la sphère ; en ajoutant l'éclairage indirect, cette partie devient accessible. 17

(a) Aventurine (b) Gold-paint (c) Chrome (d) Nickel Figure 2.2 Rendu de Sgd avec exponentielle, en utilisant du photonmapping comme intégrateur ; temps de rendu 4 minutes 18

Conclusion Ce stage avait pour but de comparer deux méthodes de rendu de matériaux prenant en compte la réectance, l'une mesurée (utilisant la base de données Merl-Mit [6]), l'autre analytique (Sgd [1]). Ces méthodes sont d'une grande importance, car elles permettent de donner un rendu réaliste aux matériaux en ajoutant des détails à priori inmes qui permettent à l' il de mieux saisir la texture de ces matériaux. Les applications sont multiples : cinéma, commerce, jeux, etc. et d'autant plus nécessaires que la résolution des écrans s'accroît (4K2K, voire ultérieurement 8K4K). La comparaison se voulait réaliste, aussi l'implémentation des deux méthodes s'est-elle faite au sein d'un moteur de rendu open-source, Mitsuba, largement utilisé dans la communauté scientique. Lors de ce stage, j'ai donc ajouté deux modules à Mitsuba, l'un pour les données de la base de données Merl-Mit et l'autre pour Sgd, accompagnés d'un module de pré-visualisation en Glsl. An d'accélérer le rendu, diérentes fonctions d'importance sampling ont été utilisées dans le but de réduire le nombre d'échantillons nécessaires à produire une image peu (voire pas) bruitée, car les échantillons sont tirés intelligemment. La fonction exponentielle permet d'obtenir une image de qualité comparable en un temps bien inférieur (45 secondes contre 11 heures) par rapport à l'utilisation d'un même modèle, sans fonction d'importance. Il pourrait être intéressant de retter et d'étudier plus en détails quelques matériaux, notamment le chrome, les calculs de l'éclairage ayant tendance à diverger un peu pour ces matériaux lors de l'utilisation de Sgd. De même, essayer de trouver une nouvelle fonction d'importance qui approximerait mieux P 22 que la fonction exponentielle, permettrait peut-être d'arriver à des temps de rendu de l'ordre de la seconde, et de passer progressivement sur du temps réel. 19

Bibliographie [1] M. Bagher, Mahdi, Cyril Soler, and Nicolas Holzschuch. Accurate tting of measured reectances using a Shifted Gamma micro-facet distribution. Computer Graphics Forum, 31(4), June 2012. 11, 13, 19 [2] James F. Blinn. Models of light reection for computer synthesized pictures. SIGGRAPH Comput. Graph., 11(2) :192198, July 1977. 5 [3] Wenzel Jakob. Mitsuba renderer, 2010. http://www.mitsuba-renderer.org. 11 [4] Christian Kanzow, Nobuo Yamashita, and Masao Fukushima. Levenbergmarquardt methods with strong local convergence properties for solving nonlinear equations with convex constraints. Journal of Computational and Applied Mathematics, 172(2) :375397, 2004. 7 [5] M.I.A. Lourakis. levmar : Levenberg-marquardt nonlinear least squares algorithms in C/C++. [web page] http://www.ics.forth.gr/~lourakis/levmar/, Jul. 2004. 7 [6] Wojciech Matusik, Hanspeter Pster, Matt Brand, and Leonard McMillan. A data-driven reectance model. ACM Transactions on Graphics, 22(3) :759769, July 2003. 4, 8, 19 [7] Fred E Nicodemus. Directional reectance and emissivity of an opaque surface. Applied Optics, 4(7) :767 773, 1965. 8 [8] Szymon M Rusinkiewicz. A new change of variables for ecient brdf representation. In Rendering techniques' 98, pages 1122. Springer, 1998. 6, 8 [9] Christophe Schlick. An inexpensive brdf model for physically-based rendering. In Computer graphics forum, volume 13, pages 233246. Wiley Online Library, 1994. 10 [10] Kenneth E Torrance and Ephraim M Sparrow. Theory for o-specular reection from roughened surfaces. JOSA, 57(9) :11051112, 1967. 7, 9 [11] Bruce Walter, Stephen R Marschner, Hongsong Li, and Kenneth E Torrance. Microfacet models for refraction through rough surfaces. In Proceedings of the 18th Eurographics conference on Rendering Techniques, pages 195206. Eurographics Association, 2007. 12, 15 20