GIF Qualité et performance du rendu en infographie

Slides:



Advertisements
Présentations similaires
Unité 1: La dynamique 2. Mouvement rectiligne B. Vitesse uniforme
Advertisements

Chaîne de Synthèse Réel Modélisation Rendu Image Fichier Scène
Non linéarités liées à la thermique
Simplification Out-of-Core des modèles polygonales complexes
Qian Cui, Stephane Wolf & Arnaud Choquart - DESS IMM /2003
Technique des Surfels Surfels: Surface Elements as Rendering Primitives SIGGRAPH 2000 H.Pfiste, J.van Baar, M.Zwicker, M.Gross.
1/30 Rendu par tracé de chemins ESSI2 George Drettakis http: //www-sop.imag.fr/reves/George.Drettakis/cours/ESSI2/index.html.
Champs de Markov en Vision par Ordinateur
Une approche informationnelle de la restauration d’images
RECONNAISSANCE DE FORMES
Synthèse d’images.
Modèles empiriques d’éclairement
Rendu de pierres taillées en temps réel Stéphane Guy Directeur de stage: Cyril Soler.
IMAGIS-GRAVIR / IMAG Rendu de forêts en temps-réel iMAGIS / GRAVIR Franck Sénégas DEA IVR Tuteur: Fabrice Neyret.
A Pyramid Approach to Subpixel Registration Based on Intensity
1 Intégration numérique garantie de systèmes décrits par des équations différentielles non-linéaires Application à l'estimation garantie d'état et de paramètres.
Exportation des données
Modélisation et commande hybrides d’un onduleur multiniveaux monophasé
RECIT d’une EXPERIENCE Françoise Barachet LYCEE MONTDORY de THIERS
2.5 Champ électrique produit par une distribution continue de charges.
GIF-19263/GIF Vision numérique
Régression linéaire (STT-2400) Section 3 Tests dhypothèses et lhypothèse linéaire générale Version: 26 janvier 2007.
GIF Qualité et performance du rendu en infographie
Journée Jeunes Chercheurs
Angles et distances dans R2
Géométrie vectorielle
Éclairage Structuré et vision active pour le contrôle qualité de surfaces métalliques réfléchissantes Olivier Morel*, Ralph Seulin, Christophe Stolz, Patrick.
Transformations de visualisation en OpenGL
1.2 COMPOSANTES DES VECTEURS
Cours Corporate finance Eléments de théorie du portefeuille Le Medaf
Inversion / Res2dinv Thème 2 = « Organisation et fonctionnement hydrique des couvertures d’altération, des dépôts alluviaux et des sols » devient dans.
CHAPITRE 4 LE POTENTIEL ÉLECTRIQUE.
Les instruments d’optique
Modélisation géométrique à l’aide d’un maillage
IFT3730: Infographie 3D Illumination locale
Nicolas Holzschuch iMAGIS-GRAVIR/IMAG
1 Du pixel à lobjet : méthodes stochastiques X. Descombes Projet Ariana Orféo, 14 juin 2005.
Cours #3 Formation des images
Courbes de Bézier.
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
Les modèles linéaires (Generalized Linear Models, GLM)
Ecaterina Giacomini Pacurar
IFT3730 : Infographie 3D Systèmes et modèles graphiques Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.
IFT2740 : Outils de l'infographie 3D Systèmes et modèles graphiques
IFT3730 : Infographie 3D Plan de cours
Les fentes multiples Méthode semi graphique d’addition d’ondes. La méthode trigonométrique n’est pas commode dans le cas de 3 sources ou plus, ou si les.
Ondes et physique moderne
Chapitre 3 La cinématique à une dimension
électroencéphalographie Estimation des conductivités in vivo
2.2 PRODUIT SCALAIRE ET CALCUL D’ANGLES
Système de coordonnées
Modélisation géométrique de base
Présentation de la méthode des Eléments Finis
La décomposition en valeurs singulières: un outil fort utile
Géométrie épipolaire (deux vues)
Segmentation (1ère partie)
1 Modèles de particules Reeves, W. T., "Particle Systems - A technique for Modeling a Class of Fuzzy Objects," SIGGRAPH 83, Reeves, W. T., and.
Electrostatique- Chap.2 CHAPITRE 2 CHAMP ELECTROSTATIQUE Objectif :
GRAPHISME PAR ORDINATEUR
Laurent Duchêne 1 Leçon inaugurale23 /01 / Approches multi-échelles But: Obtenir le comportement d’un matériau à une échelle souhaitée en partant.
Projet Lancer de Rayons
CHAPITRE III Calcul vectoriel
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 8 Rendu de surfaces –Modèles de rendu de surfaces –Illumination de la scène –Sources lumineuses –Composante.
Dorina Surcel et René Laprise
Synthèse d’images Introduction Doc. non diffusé En cours d’élaboration.
Romain Dupont encadré par J.Aubourg et P. Fuchs
Architecture et Fonctionnement d’un GPU Géométrie Rendu.
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
Éclairage, ombrage Fiat lux !.
Introduction aux technologies du jeux-vidéo Steve Gury
Transcription de la présentation:

GIF-23205 Qualité et performance du rendu en infographie H18-Physique de l’éclairage et du rendu (partie 3) Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009

Liste des notions importantes Représentation des BRDF Implantation d’un modèle de BRDF Gérer les changements d’échelle Gérer la complexité pour des cas avec sources et matériaux multiples Implantation d’un modèle: cas pratique

Acquisition et représentation des BRDF Objectif Réduire le temps d’édition des propriétés des matériaux Capturer et encoder une description de la réflectance d’objets réels Il existe des bases de données de BRDF Exemple: CUReT (Columbia-Utrecht) Des entreprises qui offrent le service ou des appareils de capture Exemple: www.aguruimages.com Un des défis actuels: modéliser des svbrdf sur des objets non-plans.

Acquisition de la BRDF Utilisation d’un gonioréflectomètre* Différents systèmes basés sur la vision ont aussi été proposés* Simplifications: isotropie autour de la normale (ex: plastiques) Exemples de matériaux anisotropiques: bois vernis, velours aluminium non poli, etc … Explosion de la complexité si on considère une SVBRDF, i.e. qui varie à la surface de l’objet ou même la diffusion sous la surface Processus complexe qui suscite un intérêt de recherche grandissant LVSN LightStudio *Voir section 2 de Todd Zickler dans le document de cours ICCV 2007

Certains défis: matériaux anisotropiques Le métal brossé latéral longitudinale Stries dans du métal La peau humaine: anisotropie dynamique . Allongement des pores de la peau selon l’expression faciale . Les variations subtiles sont facilement détectées par un observateur humain

Représentation des BRDF Lors de l’acquisition, on capture des mesures RGB pour chacune des orientations relatives de la lumière incidente (l) et de la direction de l’observateur (v) produit une valeur (R, G, B) Pour une SVBRDF, le domaine est 6D! Nous avons donc une immense table dont les éléments sont sujets au bruit. Il faut changer la représentation pour la rendre utile lors du rendu ou de l’édition

Représentation des BRDF : options Choisir un modèle analytique (basé sur la physique) et ajuster les paramètres Il y a diverses façons d’améliorer les modèles. On peut tenter d’ajouter des termes (physiques ou non) comme par exemple l’ajout de lobes dans un modèle de Phong Une autre approche consiste à estimer la forme d’une BRDF par une somme pondérée de fonctions de base telles que les harmoniques sphériques (section 8.6.1) Ces fonctions constituent une base –orthogonale - de fonctions (tout comme les sinus en analyse de Fourier) On évite l’optimisation Une BRDF est une fonction relativement lisse

Autres possibilités de représentation Une représentation semi-analytique dans laquelle la partie analytique est complétée par une table – compressée - de valeurs La factorisation d’une BRDF, i.e. décomposer la BRDF en une somme de produits de fonctions à dimensions réduites – par exemple à deux dimensions. On pourrait alors stocker le modèle dans une - ou plusieurs paires - de textures. *tiré de [1]

Implanter un modèle de BRDF L’expression est évaluée dans le fragment shader S’il s’agit d’une svbrdf, on encodera les paramètres de la BRDF dans des textures (ou à la limite dans les sommets s’il est raisonnable de les interpoler) Le facteur 1/p est souvent intégré à E pour éviter des calculs Pour des calculs plus efficaces, on exprime les BRDF en fonction des vecteurs l, v, h, (t, b, n) unitaires. Le produit scalaire équivaut alors au calcul du cosinus. Rappel: la base (t, b, n) est la base locale définie à partir de la tangente, la binormale et la normale.

Représentation des vecteurs d’intérêt *tiré de [2]

Les BRDF et l’échelle Peut-on faire du mipmapping avec les BRDF? Seulement s’il existe une relation linéaire entre le paramètre filtré et la couleur finale C’est donc acceptable pour les couleurs diffuses et spéculaires mais pas du tout pour des valeurs comme l’exposant (shininess) Cela produira des incohérences inattendues lorsque la distance objet-caméra variera

(suite) Du point de vue de l’échelle, La BRDF modélise l’aspect microscopique (subpixel); À l’échelle du pixel, c’est la texture qui prend place; À l’échelle de l’objet, ce sont les triangles. En éloignant la caméra de l’objet, ce qui était l’échelle du pixel (la texture) devient une nouvelle BRDF Un cylindre avec une normal map. BRDF: Blinn-Phong *tiré de [1]

(suite) Encadré noir: une partie de la surface sur 4 texels. La normale est en rouge et le lobe est représenté en noir Encadré violet: représentation idéalisée à la moitié et au quart de la résolution Encadré vert: résultat d’une moyenne et normalisation. Les lobes sont trop étroits. Encadré jaune: correction décrite à la page suivante *tiré de [1]

La correction Le modèle de Blin-Phong ne peut décrire adéquatement la situation (encadré vert) Solution: conserver la normale moyenne mais réestimer la largeur du lobe (exposant m du cosinus) qu’on conservera dans une carte supplémentaire (gloss map) Proposition de Toksvig pour le calcul de m’ *tiré de [1]

La complexité: combien de shaders faut-il écrire? Le processus de rendu: Pour chaque source // Phase 1: éclairage Calculer l et E // Phase 2: interaction avec le matériau Récupérer les paramètres de la BRDF ainsi que les paramètres du repère local (t, b, n) Calculer le produit BRDF * E cos q Accumuler le résultat dans le fragment

Le problème de la complexité Il y a plusieurs types de sources possibles (ponctuelles, directionnelles, spot, texture) et une variété de matériaux pour une même scène Pour 6 sources simultanées de 3 types et 5 matériaux, il y a 420 situations possibles On veut éviter les conditions – dynamiques - dans les shaders On ne veut pas non plus écrire 420 shaders ou 1050 si 4 types de sources Une solution possible: ubershader ou « supershader » Il s’agit d’écrire un seul shader qu’on recompilera plusieurs fois avec des drapeaux appropriés

La complexité: une autre solution L’éclairage multi-passe On traite chaque source indépendamment dans une passe différente et on combine les résultats (blend) L’application identifie les sources qui affectent chacun des objets La complexité (en nombre de shaders) est O(mn) avec m le nombre de types de sources (incluant ambiant) et n le nombre de matériaux (25 au lieu de 1050 dans l’exemple précédent) Critique: requiert beaucoup de transfert mémoire à cause des passes multiples

On peut accroître la performance encore davantage Comment? En limitant les calculs par pixel. Pour cela on calcule d’abord la visibilité. On évite de calculer le rendu pour plusieurs fragments dans un pixel. C’est le deferred shading en anglais. On mémorise les attributs (profondeur, normale, coord. Textures, paramètres du matériau) du fragment visible sans en calculer le rendu dans la première passe Dans une seconde passe, on applique l’éclairage. On évite de repasser la scène. Critique: difficulté avec la transparence et possiblement avec la gestion de l’anti-crénelage

Cas pratique d’implantation d’une BRDF: le modèle de (Greg) Ward Modèle de BRDF basé sur les micro-facettes spéculaires et adapté sur la base de l’observation Plus une surface est rugueuse plus seront dispersés les orientations des micro-facettes autour du vecteur H Comprend une composante diffuse et une composante spéculaire Comprend deux facteurs (écarts-types de la distribution –gaussienne - des micro-facettes centrée en H selon x et y). * Des variations de ce modèle existent

(suite) Il reste à implanter l’équation de rendu Peut être un simple coefficient Il reste à implanter l’équation de rendu Les deux premiers termes sont des contributions indirectes (I est la radiance indirecte et Ls est aussi une valeur de radiance indirecte – spéculaire – w est l’angle solide associé à la source i Les vecteurs sont calculés dans le vertex shader puis interpolés Le calcul de l’équation de rendu est fait dans le fragment shader

// Vertex shader for anisotropic reflection based on Greg Ward's method (SIGGRAPH '92) // Author: Randi Rost attribute vec3 rm_Binormal; // un attribute n’est pas communiqué au F. shader attribute vec3 rm_Tangent; uniform vec3 LightDir; // Light direction in eye coordinates uniform vec4 vViewPosition; varying vec3 N, L, H, R, T, B; void main(void) { vec3 V, eyeDir; vec4 pos; pos = gl_ModelViewMatrix * gl_Vertex; eyeDir = pos.xyz; N = normalize(gl_NormalMatrix * gl_Normal); L = normalize(LightDir); V = normalize((gl_ModelViewMatrix * vViewPosition).xyz - pos.xyz); H = normalize(L + V); R = normalize(reflect(eyeDir, N)); T = normalize(gl_NormalMatrix * rm_Tangent); B = normalize(gl_NormalMatrix * rm_Binormal); gl_Position = ftransform(); // ModelViewProjectionMatrix }

// Fragment shader for anisotropic reflection based // on Greg Ward's method (SIGGRAPH '92) // // Author: Randi Rost const float PI = 3.14159; const float ONE_OVER_PI = 1.0 / PI; uniform vec4 SurfaceColor; // Base color of surface uniform vec2 P; // Diffuse reflectance (x) and specular reflectance (y) uniform vec2 A; // Slope distribution in x and y uniform vec3 Scale; // Scale factors for intensity computation varying vec3 N, L, H, R, T, B;

// suite void main (void) { float e1, e2, E, cosThetaI, cosThetaR, brdf, intensity; e1 = dot(H, T) / A.x; e2 = dot(H, B) / A.y; E = -2.0 * ((e1 * e1 + e2 * e2) / (1.0 + dot(H, N))); cosThetaI = dot(N, L); cosThetaR = dot(N, R); brdf = P.x * ONE_OVER_PI + P.y * (1.0 / sqrt(cosThetaI * cosThetaR)) * (1.0 / (4.0 * PI * A.x * A.y)) * exp(E); intensity = Scale[0] * P.x * ONE_OVER_PI + Scale[1] * P.y * cosThetaI * brdf + Scale[2] * dot(H, N) * P.y; vec3 color = intensity * SurfaceColor.rgb; gl_FragColor = vec4(color, 1.0); }

Références utiles Real−Time Rendering, par Tomas Akenine−Möller, Eric Haines et Naty Hoffman, A.K. Peters Ltd., 3e édition, 2008 (sections 7.7 jusqu’à la fin du chapitre). OpenGL Shading Language, Randi J. Rost et al, Addison Wesley, 2e édition, 2006 (section 14.3) ICCV 2007 Short Course : Principles of Appearance Acquisition and Representation, T. Zickler et al., http://www.cs.princeton.edu/~tweyrich/iccv07-course/