Survol de techniques de rendu expressif ou rendu

  • Slides: 48
Download presentation
Survol de techniques de rendu expressif (ou rendu non-photoréaliste Non. Photorealistic. Rendering) • Introduction

Survol de techniques de rendu expressif (ou rendu non-photoréaliste Non. Photorealistic. Rendering) • Introduction • La représentation réaliste et non-réaliste dans l’art et dans l’infographie • Survol des techniques de rendu expressif existantes

INTRODUCTION • transformation de la réalité pour des raisons d’ordre : • esthétique :

INTRODUCTION • transformation de la réalité pour des raisons d’ordre : • esthétique : certains styles artistiques (ou techniques) paraissent visuellement plus plaisants que d’autres; • technique : limitations de certaines techniques de reproduction comme par exemple la gravure, le dessin au crayon ou la peinture à l’huile; • fonctionnel : pour focaliser l’attention du spectateur sur la partie qui mérite plus d’attention que les autres, pour atteindre une meilleure clarté, ou pour mieux illustrer un trait particulier de l’objet représenté; • historique : c’est souvent la tradition qui dicte le style approprié; • philosophique : l’artiste représente souvent le monde de son imagination, plutôt que le monde tel qu’il est perçu par l’artiste.

INTRODUCTION • Rendu stylisé dans des buts de communication ou de personnalisation. Par exemple,

INTRODUCTION • Rendu stylisé dans des buts de communication ou de personnalisation. Par exemple, • le rendu schématique dans des domaines techniques, • le rendu dans le style bande dessinée utilisé, par exemple, dans les jeux, • l'ajout d'effets visuels sur un rendu photoréaliste (effets de coloration, de contourage, • de relief. . . ). • Il s'agit d'un sujet vaste dont nous ne traiterons qu'une partie. • Nous nous focaliserons essentiellement sur les effets qui peuvent se traiter simplement • par programmation.

 EXEMPLE Exemple de rendu non photo-réaliste: par à-plats (Tone Shading) avec texture et

EXEMPLE Exemple de rendu non photo-réaliste: par à-plats (Tone Shading) avec texture et contour par halo et par angle de vue avec la surface.

Méthode • Projections – Perspectives, supports de projection, projection topologique • Abstraction – Silhouettes,

Méthode • Projections – Perspectives, supports de projection, projection topologique • Abstraction – Silhouettes, contours suggestifs, crêtes et vallées • Marques – Traits, couleurs • Attributs – Cartoon, Gooch, …. . • Cohérence temporelle

 • Spatial – 3 D vers 2 D • Primitives – Points –

• Spatial – 3 D vers 2 D • Primitives – Points – Lignes – Regions • Marques – Trace de l’outil • Attributs – Lien entre tout D’après Joelle Thollot

Projections (J Levene) • Forme de la surface de projection (objectif + film) •

Projections (J Levene) • Forme de la surface de projection (objectif + film) • Pptés de convergence des lignes de vue • Courbure de lignes de vue • Multiples vues

Ex : Projection perspective Surface de projection plane Projecteurs rectilignes Convergence au centre de

Ex : Projection perspective Surface de projection plane Projecteurs rectilignes Convergence au centre de projection

Forme de la surface de projection C : centre de mise à l’échelle (2

Forme de la surface de projection C : centre de mise à l’échelle (2 D) V=(Px-Cx, Py-Cy) : donne P par rapport à C f : 3 : fonction de taille (dépend de la distance) E : Œil S : projection de P surface dp= P-E : distance radiale de P / E ds= S-E : distanec radiale de S/E n scalaire = degré de divergence

Forme de la surface de projection • • Carreau de Bezier bicubique z =

Forme de la surface de projection • • Carreau de Bezier bicubique z = f(a, b) mise à l’échelle de z=1 a=tan-1(x) et b=tan-1(y) Z = profondeur du point dans l’espace de l’œil. Le point sur la surface est calculé en trouvant où le vecteur (a, b) intersecte le plan z=f(a, b) b a Z=1 (x, y, z=(tan(a), tan(b), 1)

Exemples (J Levene)

Exemples (J Levene)

Projections topologiques • Géométrie : de chaque partie de l’objet dans sa position finale

Projections topologiques • Géométrie : de chaque partie de l’objet dans sa position finale • Orientation : caméra et orientations d’assemblage • Groupements : labellisation de parties à regrouper selon contraintes fonctionnelles, sémantiques ou géométriques • Ordre : contraintes sur l’ordre d’assemblage (de la forme attacher partie Pi avant partie Pj Designing Effective Step-By-Step Assembly Instructions Maneesh Agrawala et al

Designing Effective Step-By-Step Assembly Instructions Maneesh Agrawala et al

Designing Effective Step-By-Step Assembly Instructions Maneesh Agrawala et al

Silhouette Différents types de contours traités par Saito et Takahashi (1990).

Silhouette Différents types de contours traités par Saito et Takahashi (1990).

SILHOUETTE • But du rendu de silhouette • Il s'agit soit d'imiter un style

SILHOUETTE • But du rendu de silhouette • Il s'agit soit d'imiter un style bande dessinée en contourant les objets soit d'améliorer la lisibilité d'une figure: – en traçant le contour des objets, – en traçant les frontières entre des zones différentes d'un objet, – en soulignant le relief en traçant les crêtes et les vallées.

 SILHOUETTE Rendu de silhouette par angle de vue d'une surface On colorie les

SILHOUETTE Rendu de silhouette par angle de vue d'une surface On colorie les zones pour lesquelles la vue est rasante et donc susceptibles de correspondre à une frontière entre une zone visible et une zone cachée. Cad |N. V| ≤ ℇ

SILHOUETTE Calcul du rendu de silhouette par angle de vue d'une surface On calcule

SILHOUETTE Calcul du rendu de silhouette par angle de vue d'une surface On calcule le produit scalaire du vecteur de vue et de la normale à la surface. On accède à une texture de seuillage en fonction de la valeur de ce produit scalaire: float 3 silhouette = tex 2 D(bord, float 2( saturate(Ndot. V) *. 8 + 0. 1 , 0. 0)). rgb; On combine la couleur de bord avec la couleur de l'objet: C *= silhouette; Ou bien on attribue aux points des objets donnant un produit scalaire < eps une couleur de bord Si (N. V) < eps coul bord Sinon coul Modele(V, L, N) Fin {modèle diffus ou spéculaire}

 SILHOUETTE Rendu de silhouette par halo

SILHOUETTE Rendu de silhouette par halo

 SILHOUETTE Construction du halo autour d'un maillage Le maillage expansé est construit en

SILHOUETTE Construction du halo autour d'un maillage Le maillage expansé est construit en tout sommet M de normale n en prenant MM' = k n

 SILHOUETTE Contrôle de la taille du halo • On recherche la hauteur h

SILHOUETTE Contrôle de la taille du halo • On recherche la hauteur h entre deux points M et M' du plan z = z 0 qui correspond à un pixel sur le plan de projection. Soit H, le nombre de pixels en hauteur: (top + bottom) / (H. near) = h / z 0 donc h = (z 0 / near). ((top + bottom) / H)

ESPACE IMAGE • Principe • • Le traitement dans l'espace image consiste à enrichir

ESPACE IMAGE • Principe • • Le traitement dans l'espace image consiste à enrichir le rendu à partir d'une sortie bitmap intermédiaire (et non directement sur le maillage). Exemples Recherche de contours à partir de différences de couleur entre des rendus d'objets. Recherche de contours à partir de cartes de normales (normal map): une sortie image encodant la direction de la normale en chaque pixel. Recherche de contours à partir de cartes de profondeurs (depth map): une sortie image encodant la distance à la caméra. Modification du rendu à partir de fonction de transfert sur une sortie image (flou, rendu sépia, seuillage. . . ).

ESPACE IMAGE La carte de profondeur (a) et les contours obtenus à partir de

ESPACE IMAGE La carte de profondeur (a) et les contours obtenus à partir de la carte de profondeur (b); la carte de normales (c) et les contours obtenus à partir de la carte de normales (d); les contours obtenus à partir de la carte de profondeur et la carte de normales (e) (Source : [Her 98]).

Contours suggestifs • Points – de la silhouette d’une vue voisine de la vue

Contours suggestifs • Points – de la silhouette d’une vue voisine de la vue courante – pas en correspondance avec la silhouette de la vue courante • Points – où la courbure radiale (courbure normale dans la direction du vecteur de vue) s’annule – et où la dérivée de cette courbure dans la direction du vecteur de vue est positive

Contours suggestifs • • • Surface S Centre de perspective (camera) en c. Génératrice

Contours suggestifs • • • Surface S Centre de perspective (camera) en c. Génératrice du contour = { p S / n(p). v(p) =0 } Contour = partie visible de la génératrice n(p) normal unitaire à la surface v vector de vue : v(p) = c-p.

Contours suggestifs v est projeté sur le plan tangent w Plan radial : formé

Contours suggestifs v est projeté sur le plan tangent w Plan radial : formé par p, n et w Son intersection avec S -> courbe radiale dont la courbure est k(p) Rappels Courbure d’une courbe : k(p) = inverse du rayon du cercle osculateur en p Courbure d’une surface S en p mesurée le long d’une courbe C appartenant à S et passant par p : En général C = S P où P est défini par p, n et d (arbitraire) dans le plan tangent de S en p courbure normale comprise entre les 2 courbures principales k 1(p) et k 2(p) calculées dans les directions de courbure principale. courbure radiale kr(p) = courbure normale dans la direction de w

Contours suggestifs génératrice du contour suggestif = {p / kr = 0 et Dw

Contours suggestifs génératrice du contour suggestif = {p / kr = 0 et Dw kr >0} kr = 0 : ---- et ____ • • Pb : S doit être une surface différentiable (lisse). Pour un maillage on approxime la courbure en chaque sommet

Crêtes et vallées • Rappel : – courbures principales : maximum (k 1) et

Crêtes et vallées • Rappel : – courbures principales : maximum (k 1) et minimum (k 2) de la courbure normale k. – Courbures Gaussienne K et moyenne H • K= k 1 k 2 • H= ½ (k 1+k 2) • Crêtes = {p tq k 1/ t 1 =0 et 2 k 1/ t 12<0 et k 1>|k 2 } • Vallées = {p tq k 1 / t 2 =0 et 2 k 2/ t 22>0 et k 2<-|k 1|}

Crêtes et Vallées Estimation sur maillages : -approximation aux moindres carrés du maillage par

Crêtes et Vallées Estimation sur maillages : -approximation aux moindres carrés du maillage par un polynôme cubique estimé en chaque sommet + k-voisinage -calcul des dérivées sur le polynôme Fast and Robust Detection of Crest Lines on Meshes de Yoshizawa , Belyaev, Seidel

Marques • Illustration – Traits – Hachures – Pointillés • Peinture - Couleur –

Marques • Illustration – Traits – Hachures – Pointillés • Peinture - Couleur – Marques , à plats – Aquarelle

Traits • • Noir et Blanc (encre de Chine, crayon, fusain, gravure) Une ligne

Traits • • Noir et Blanc (encre de Chine, crayon, fusain, gravure) Une ligne = 1 ou plusieurs traits

 • => paramétrage de la ligne • triangle strip + texture Graftals Markosian

• => paramétrage de la ligne • triangle strip + texture Graftals Markosian et al

Techniques de rendu inspirées par le dessin, la gravure, l’aquarelle et d’autres techniques artistiques

Techniques de rendu inspirées par le dessin, la gravure, l’aquarelle et d’autres techniques artistiques Une série de textures cohérentes entre elles et représentant différents niveaux d’intensités est produite séparément. Pendant le rendu, la variante appropriée, indexée par le niveau d’intensité désiré, est choisie. Système de dessin à la plume (Pen-and-Ink) de Georges Winkenbach et David Salesin (1994) : avec (à gauche) et sans (à droite) indications sur le placement de texture.

Techniques de rendu inspirées par le dessin, la gravure, l’aquarelle et d’autres techniques artistiques

Techniques de rendu inspirées par le dessin, la gravure, l’aquarelle et d’autres techniques artistiques Système de dessin à la plume (Pen-and-Ink) de Georges Winkenbach et David Salesin (1996) appliqué aux surfaces paramétriques.

 HACHURES Hachures Rendre des hachures comme sur un tracé à la plume. Difficulté

HACHURES Hachures Rendre des hachures comme sur un tracé à la plume. Difficulté Éviter du flou et du mélange de hachures à des niveaux de résolution et à des niveaux de gris intermédiaires. Les mipmaps ne conviennent donc pas. Méthode On utilise des Tonal Art Maps qui sont des textures telles que les traits à un niveau d'opacité apparaissent dans les niveaux d'opacité supérieurs.

 HACHURES Exemple de rendu de hachures Emil Praun, Hugues Hoppe, Matthew Webb, Adam

HACHURES Exemple de rendu de hachures Emil Praun, Hugues Hoppe, Matthew Webb, Adam Finkelstein Real-Time Hatching. SIGGRAPH 2001, Computer Graphics Proceedings

Peinture Couleur • Marques et à plats function paint(source. Image, R 1. . .

Peinture Couleur • Marques et à plats function paint(source. Image, R 1. . . Rn) { canvas : = a new constant color image // paint the canvas for each brush radius Ri, from largest to smallest do { // apply Gaussian blur reference. Image = source. Image * G(fs Ri) // paint a layer paint. Layer(canvas, reference. Image, Ri) } return canvas } procedure paint. Layer(canvas, reference. Image, R) { S : = a new set of strokes, initially empty // create a pointwise difference image D : = difference(canvas, reference. Image) grid : = fg R for x=0 to image. Width stepsize grid do for y=0 to image. Height stepsize grid do { // sum the error near (x, y) M : = the region (x-grid/2. . x+grid/2, y-grid/2. . y+grid/2) area. Error : = Si j M Dij / grid 2 if (area. Error > T) then { // find the largest error point (x 1, y 1) : = arg max i j M , Di, j s : =make. Stroke(R, x 1, y 1, reference. Image) add s to S } } paint all strokes in S on the canvas, in random order }

function make. Spline. Stroke(x 0, y 0, R, ref. Image) { stroke. Color =

function make. Spline. Stroke(x 0, y 0, R, ref. Image) { stroke. Color = ref. Image. color(x 0, y 0) K = a new stroke with radius R and color stroke. Color add point (x 0, y 0) to K (x, y) : = (x 0, y 0) (last. Dx, last. Dy) : = (0, 0) for i=1 to max. Stroke. Length do { if (i > min. Stroke. Length and |ref. Image. color(x, y)-canvas. color(x, y)|< |ref. Image. color(x, y)-stroke. Color|) then return K // detect vanishing gradient if (ref. Image. gradient. Mag(x, y) == 0) then return K // get unit vector of gradient (gx, gy) : = ref. Image. gradient. Direction(x, y) // compute a normal direction (dx, dy) : = (-gy, gx) // if necessary, reverse direction if (last. Dx * dx + last. Dy * dy < 0) then (dx, dy) : = (-dx, -dy) // filter the stroke direction (dx, dy) : =fc*(dx, dy)+(1 -fc)*(last. Dx, last. Dy) (dx, dy) : = (dx, dy)/(dx 2 + dy 2)1/2 (x, y) : = (x+R*dx, y+R*dy) (last. Dx, last. Dy) : = (dx, dy) add the point (x, y) to K } return K }

Peinture Couleur • Aquarelle

Peinture Couleur • Aquarelle

Attributs • Rendu « cartoon » – Tone shading – Goosh

Attributs • Rendu « cartoon » – Tone shading – Goosh

 TONE SHADING Rendu diffus par à-plats (Tone Shading)

TONE SHADING Rendu diffus par à-plats (Tone Shading)

 TONE SHADING

TONE SHADING

ILLUSTRATION TECHNIQUE les couleurs chaudes – telles que le rouge, l’orange, le jaune –

ILLUSTRATION TECHNIQUE les couleurs chaudes – telles que le rouge, l’orange, le jaune – sont perçues très différemment des couleurs froides – le bleu, le violet ou le vert. Technique d’illumination non-photoréaliste avec modèle d’illumination nonstandard décrite par Amy Gooch, Bruce Gooch, Peter Shirley et Elaine Cohen (1998).

 GOOCH Éclairage de Gooch Amy Gooch - Bruce Gooch - Peter Shirley -

GOOCH Éclairage de Gooch Amy Gooch - Bruce Gooch - Peter Shirley - Elaine Cohen A Non-Photorealistic Lighting Model For Automatic Technical Illustration. SIGGRAPH 1998, Computer Graphics Proceedings

 GOOCH Méthode On remplace la lumière diffuse rendue par des variations dans la

GOOCH Méthode On remplace la lumière diffuse rendue par des variations dans la luminosité (ou valeur) par des variations sur le ton (hue) On combine la couleur de l'objet avec des couleurs prises dans une palettes de couleurs chaudes à froides en fonction de l'intensité de la lumière diffuse.

 GOOCH

GOOCH

 GOOCH Exemple

GOOCH Exemple

 ESPACE IMAGE Traitement d'image pour l'augmentation de la morphologie

ESPACE IMAGE Traitement d'image pour l'augmentation de la morphologie