24
GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert [email protected] a Session H09 11 mars 2009 H18-Physique de l’éclairage et du rendu (partie 3)

GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert [email protected] Session H09 11 mars 2009 H18-Physique de léclairage et du

Embed Size (px)

Citation preview

Page 1: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

GIF-23205 Qualité et performance du rendu en infographie

Patrick Hé[email protected]

Session H0911 mars 2009

H18-Physique de l’éclairage et du rendu (partie 3)

Page 2: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

http://www.gel.ulaval.ca

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

2

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

http://www.gel.ulaval.ca

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.

Page 4: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

http://www.gel.ulaval.ca

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

*Voir section 2 de Todd Zickler dans le document de cours ICCV 2007

LVSN LightStudio

Page 5: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

http://www.gel.ulaval.ca

Certains défis: matériaux anisotropiques

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

Le métal brossé

Page 6: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

http://www.gel.ulaval.ca

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

4 3: ; ( , ) ( , )F l v F l v

Page 7: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

http://www.gel.ulaval.ca

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

Page 8: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

http://www.gel.ulaval.ca

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]

Page 9: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

http://www.gel.ulaval.ca

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.

0 ( ) ( , ) cos cos max( . ,0)k Lk ik ik ksources k

L v F l v E avec n l

Page 10: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

http://www.gel.ulaval.ca

Représentation des vecteurs d’intérêt

*tiré de [2]

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

http://www.gel.ulaval.ca

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

Page 12: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

http://www.gel.ulaval.ca

(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]

Page 13: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

http://www.gel.ulaval.ca

(suite)

Encadré noir: une partie de la surfacesur 4 texels. La normale est en rougeet 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 moyenneet normalisation. Les lobes sont tropétroits.Encadré jaune: correction décrite à lapage suivante

*tiré de [1]

Page 14: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

http://www.gel.ulaval.ca

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’

'(1 )

n mm

n m n

*tiré de [1]

Page 15: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

http://www.gel.ulaval.ca

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

15

Page 16: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

http://www.gel.ulaval.ca

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

16

Page 17: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

http://www.gel.ulaval.ca

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

17

Page 18: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

http://www.gel.ulaval.ca

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

18

Page 19: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

http://www.gel.ulaval.ca

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

19

22

1 1( , , , ) exp 2

4 1cos cos

x ydbd i i r r s

x yi r

H T H B

H N

* Des variations de ce modèle existent

Page 20: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

http://www.gel.ulaval.ca

(suite)

• 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

20

1

( , ) cos cos ( , , , )N

dr r s s hn i i i bd i i r r

i

L I L L

Peut être un simplecoefficient

Page 21: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

// 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. shaderattribute vec3 rm_Tangent;

uniform vec3 LightDir; // Light direction in eye coordinatesuniform 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}

21

Page 22: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

22

// 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 surfaceuniform vec2 P; // Diffuse reflectance (x) and specular reflectance (y)uniform vec2 A; // Slope distribution in x and yuniform vec3 Scale; // Scale factors for intensity computation

varying vec3 N, L, H, R, T, B;

Page 23: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

// suitevoid 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);}

23

Page 24: GIF-23205 Qualité et performance du rendu en infographie Patrick Hébert hebert@gel.ulaval.ca Session H09 11 mars 2009 H18-Physique de léclairage et du

http://www.gel.ulaval.ca

Références utiles

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

2. OpenGL Shading Language, Randi J. Rost et al, Addison Wesley, 2e édition, 2006 (section 14.3)

3. ICCV 2007 Short Course : Principles of Appearance Acquisition and Representation, T. Zickler et al., http://www.cs.princeton.edu/~tweyrich/iccv07-course/