infographie chapitre 3 - stephane-gobron.net€¦ · –quoi ? –où ? • dessiner ... local et...

54
1 Infographie v.2014 HE-Arc / HES-SO – BSc3 Stéphane Gobron Infographie chapitre 3 Rendu fondamentaux : Algorithmes de base et techniques locales

Upload: votruc

Post on 10-Sep-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

1

Infographie v.2014

HE-Arc / HES-SO – BSc3

Stéphane Gobron

Infographie – chapitre 3

Rendu fondamentaux :

Algorithmes de base et techniques locales

2

Cadre de cette présentation :

Modélisation

Rendu

Animation

E.g. Via

OpenGL

fluides

E.g. NPR

1

2

3E.g. Via

OpenGL

Avant-propos

3

Introduction

1. Algorithmes de base

2. Diverses techniques locales

Référence / conclusion / discussion

Plan

4

Plan

Introduction

1. Algorithmes de base

2. Diverses techniques locales

Référence / conclusion / discussion

i. Buts du rendu

ii. Buts de ce cours

iii. Pré requis

vi. Un "bon" rendu

5

Introduction

i. Buts du rendu

• Percevoir les objets visibles

– Quoi ?

– Où ?

• Dessiner ces objets

– Comment ?

6

Introduction

ii. Buts de ce cours

Présenter les principales méthodes et techniques de rendu

local et global en infographie

A noter : pour une meilleure compréhension des approches relatives à

l’éclairage global, une brève interprétation formelle sera présentée

Pour l’étudiant, les objectifs à atteindre sont

• Connaître les avantages et faiblesses de ces techniques et méthodes

de rendu fondamentales

• Savoir choisir une méthode de rendu adaptée pour rendre telle ou telle

scène basée sur un ou plusieurs modèles géométriques que ce soit dans

le cadre de développement ou d'option logicielle

7

Introduction

iii. Pré requis

Il est préférable de connaître

• Les algorithmes de base de infographie 2D

• Les différents modèles géométriques en infographie

• Les bases de la géométrie projective

8

Introduction

iv. Un "bon" rendu

Le rendu est influencé par

• Le/les types de modèles géométriques

• De nombreuses techniques et méthodes

• Affectation locale ou globale (scène ou écran)

Ces principes peuvent être combinés

=> On ne peut pas définir de propriétés relatives à

un « bon rendu »

9

Plan

Introduction

1. Algorithmes de base

2. Diverses techniques locales

Référence / conclusion / discussion

1.1 Algorithme du peintre

1.2 Z-buffer

1.3 Area subdivision

1.4 Illumination locale de Phong

1.5 Shadings de Gouraud et de Phong

10

1. Algorithmes de base

1.1 Algorithme du peintre

Tri par la profondeur

• On dessine d’abord les polygones les plus

lointains, puis les polygones proches de l’œil

• Les polygones plus proches cachent les polygones

lointains

Caméra

11

Exercice et discussion

• Identifions les problèmes de cette approche

1. Algorithmes de base

1.1 Algorithme du peintre -suite

12

1. Algorithmes de base

1.1 Algorithme du peintre

Avantages / inconvénients

+ Le plus simple des algorithmes

- Ambiguïté

13

1. Algorithmes de base

1.2 Z-buffer

• Principe– Pour chaque polygone dans la liste de pré-sélection

– Pour chaque pixel qui touche ce polygone

– Si Z courant est + petit que Z stocké

– Alors stocker sa couleur et son Z• Champs d’action

14

1. Algorithmes de base

1.2 Z-buffer

Propriétés

• Les ambiguïtés disparaissent

• Exemple

15

1. Algorithmes de base

1.2 Z-buffer

Résultats

• Avantages– Facile à implémenter

– Inutile de trier les facettes

– Le développement hardware est facile

– Requière relativement peu de mémoire • Env 9MB pour une résolution de 1280x1024

• Inconvénients– Génère des problèmes d’aliasing

• Un unique échantillon par pixel

– Ne gère pas les transparences

16

1. Algorithmes de base

1.3 Area subdivision (1/5)

Principe

• Algorithme de « Warnock »

• Principe– Diviser l’écran en zones de travail (Quadtree)

– Pour chaque zone => polygones inclus

– Si la visibilité est connue, s’arrêter

– Sinon subdiviser

– Interrompt la subdivision si une taille limite atteinte

17

EnglobeInclus

1. Algorithmes de base

1.3 Area subdivision (2/5)

Zone de travail

Intersecte Disjoint

18

• Zone vide ou complète

• Tous les polygones sont disjoints

• Un seul polygone intersecte ou inclus

• Un polygone englobant qui est devant les autres

1. Algorithmes de base

1.3 Area subdivision (3/5)

Visibilité connue

19

+/- Plus efficace avec des grands polygones

- Coût mémoire parfois élevé

+ Implémentation facile : appels récursifs

• Exemple :

1. Algorithmes de base

1.3 Area subdivision (4/5)

Pour ou contre

20

1. Algorithmes de base

1.3 Area subdivision (5/5)

Solutions optimisées

• FOLEY et al. 1996: Divide-And-Conquer

– Division warnock

– Division utilisant les sommets des polygones

21

Trois grands effets pour générer un modèle simple

• Lumière ambiante

• Lumière diffuse

• Lumière spéculaire

1. Algorithmes de base

1.4 Illumination locale :

modèle de Phong (1/6)

22

1. Algorithmes de base

1.4 Illumination locale : modèle de Phong (2/6)

Effet ambiant

• Couleur dépend uniquement de l’objet : I = Ia ka

• Ia lumière ambiante

• ka coefficient de réflexion ambiante

• Modèle très primitif– Pas de sens physique possible

– La forme des objets est invisible

– Mais néanmoins très utile pour masquer les défauts des autres modèles

(ka)

23

1. Algorithmes de base

1.4 Illumination locale : modèle de Phong (3/6)

Effet diffus

• Réflexion dans toutes les directions

•Matériaux mats

• I = Ip . kd . cos(q)

– Ip source ponctuelle

– kd coefficient de réflexion diffuse

– t angle entre la source et la normale

(kd)

24

1. Algorithmes de base

1.4 Illumination locale : modèle de Phong (4/6)

Effet ambiante et diffuse

• Lumière ambiante (ka) et diffuse (kd)

(kd)

(ka)

25

1. Algorithmes de base

1.4 Illumination locale : modèle de Phong (5/6)

Effet spéculaire

• Effet de « brillance »

q

26

1. Algorithmes de base

1.4 Illumination locale : modèle de Phong (6/6)

En pratique

• Tout ensemble Ambiant, diffus, et spéculaire

I = Iaka+ Ipkd cos(q)Ip ks cos(a)n

avec un coefficient n représentant les propriétés spéculaires de la

surface au point P

• Si plusieurs sources lumineuses :

=> somme des intensités

27

• Un Shading ? "ombrage" /!\ à cette traduction

comment considérer les normales pour faire un dégradé de couleur?

• En effet :

• Deux modèles : Gouraud et Phong

• Ne pas confondre modèle d'illumination de Phonget modèle de Shading (i.e. normale) de Phong

q q a

1. Algorithmes de base

1.5 Shadings (1/5)

28

Exercice et discussion

• Réfléchir sur le rapport entre vecteurs normaux et couleurs pour réaliser le dégradé de couleur

1. Algorithmes de base

1.5 Shadings (1/5) suite

29

1. Algorithmes de base

1.5 Shading (2/5)

… de Gouraud

• Gouraud (« Ombrage de… »)– Calcul des normales en chaque sommet

– Calcul de la couleur en ces sommets

– Interpole linéaires des couleurs

n1

n2

n3

Pb Gouraud

dégradé de couleur

30

• Phong– Quelque soit le pixel, calcul de la normale interpolée – ou par

facette ou par sommet– en ce point

– Calculs des couleurs correspondants

• Plus lent que Gouraud, mais spéculaire plus net

1. Algorithmes de base

1.5 Shading (3/5)

…de Phong

n1

n2

n3

C1C2

C3Ci

31

Résultat

(n)

(ks)

1. Algorithmes de base

1.5 Shading (4/5)

…de Phong

32

•Un exemple de chez Pixar

•Phong / Gouraud

1. Algorithmes de base

1.5 Shading (5/5)

Phong vs. Gouraud

33

Plan

Introduction

1. Algorithmes de base

2. Diverses techniques locales

Référence / conclusion / discussion2.1 Backface culling

2.2 Bump mapping et normal map

2.3 Textures

2.4 Ombrages

34

Caméra

• Éliminer tous les polygones qui ne sont pas tournés

vers la caméra

2. Diverses techniques locales

2.1 Backface culling

35

Caméra

• Si le point de vue n’est pas devant le polygone, on

n’affiche pas le polygone

• Utilisation du produit scalaire (vectCam . VectFacet)

2. Diverses techniques locales

2.1 Backface culling

Principe

+

-

36

• Comparaison avec / sans

• Résultat identique sauf…

2 x plus rapide !

2. Diverses techniques locales

2.1 Backface culling

Résultat

37

2. Diverses techniques locales

2.2 Bump mapping et normal map

Principe

• Les deux : illusion de profondeur sur une surface plateDirection

de la

lumière

Calcul de la

géométrie

réelle

Illusion

de géométrie

normal mapnormal map

38

2. Diverses techniques locales

2.2 Bump mapping et normal map

Application

Bump mapping• Grey image

• Léger

• mais un peu plus de calculs

Normal map• RGB image

• 3x plus lourd

• mais moins de calculs

Le cumul des deux techniques apporte

élévations et normales et donner lieu à moins

de calcul pour plus d’effets Normal map

Bump map

39

2. Diverses techniques locales

2.2 Bump mapping et normal map

Application• Exemple classique : les planètes

40

2. Diverses techniques locales

2.3 Textures (1/7)

• Pourquoi texturer ?

– Ajout d'information visuelle à petit prix

– Support hardware

+ =

41

Exercice et discussion

• Où se trouve la difficulté?

2. Diverses techniques locales

2.3 Textures (1/7) suite

42

2. Diverses techniques locales

2.3 Textures (2/7)

Continuité

• Continuité dans la texture et la géométrie

43

2. Diverses techniques locales

2.3 Textures (3/7)

Réalisation 2D ou 3D

• 2D => projection directe

• 3D => construction d’une texture en volume

(e.g. « bruit de Perlin »)

44

2. Diverses techniques locales

2.3 Textures (4/7)

Billboards (1/3)

• Utilisation de transparence dans les textures

• (a) Utilisation classique

=> 1 texture avec projection relative à la caméra

• Idée générale exemple – Doom1TM

45

• (b) Pour simuler un objet en 3D

• Multi textures pour la géométrie & texture d’un objet

=> Il n’y a pas de projection relative à la camera

• Idée générale exemples

2. Diverses techniques locales

2.3 Textures (4/7)

Billboards cloud (2/3)

46

2. Diverses techniques locales

2.3 Textures (5/7)

Billboards cloud (3/3)

• (c) Simplification maximum du modèle => relatif au LoD

Deux films exemples

/!\ Modification géométrique impossible

/!\ L’objet est dénaturé –géométrie et texture!

47

2. Diverses techniques locales

2.3 Textures (6/7)

Texture 3D avancée (1/2)

• Calcul de la continuité dans la texture sur un

nombre restreint d’échantillons

48

2. Diverses techniques locales

2.3 Textures (8/8)

Texture 3D avancée (2/2)

• Automates cellulaires réguliers sur

surface 3D (3DSCA)

– Auto-génération de texture 3D

– Association de comportement

entre cellules voisines

• Voir chapitre 6 « animation » et

simulation de phénomènes naturels

49

2. Diverses techniques locales

2.4 Ombrages

Ombres dures et douces

• Ombres dures (Hard shadows)

– Source ponctuelle

– Détermination binaire

– Renseignent sur la position des obstacles par rapport à l'oeil

• Ombres douces (Soft shadows)

– Source étendue

– Variation continue

– Renseignent sur la position relative source/obstacle/récepteur

50

2. Diverses techniques locales

2.4 Ombrages

Nature des ombres douces

51

2. Diverses techniques locales

2.4 Ombrages

Diverses techniques (1/2)

• Lancer de rayons

– Facile mais très lent

• Accélération

52

• BSP

• /!\ La position des obstacles est fausse

2. Diverses techniques locales

2.4 Ombrages

Diverses techniques (2/3)

53

2. Diverses techniques locales

2.4 Ombrages

Diverses techniques (3/3)

Imag

eS

cène

déc

oupé

e

1 source 3 sources

54

Questions / discussion