Infographie – chapitre 3 Rendu fondamentaux : Algorithmes de base et techniques locales Infographie v.2014 HE-Arc / HES-SO – BSc3 Stéphane Gobron 1 Avant-propos Cadre de cette présentation : 1 Modélisation E.g. NPR E.g. Via OpenGL 2 Rendu fluides 3 Animation E.g. Via OpenGL 2 Plan Introduction 1. Algorithmes de base 2. Diverses techniques locales Référence / conclusion / discussion 3 Plan Introduction i. Buts du rendu 1. Algorithmes de base 2. Diverses techniques locales ii. Buts de ce cours iii. Pré requis Référence / conclusion / discussion vi. Un "bon" rendu 4 Introduction i. Buts du rendu • Percevoir les objets visibles – Quoi ? – Où ? • Dessiner ces objets – Comment ? 5 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 6 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 7 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 » 8 Plan Introduction 1. Algorithmes de base 1.1 techniques Algorithme du peintre 2. Diverses locales 1.2/ Z-buffer Référence conclusion / discussion 1.3 Area subdivision 1.4 Illumination locale de Phong 1.5 Shadings de Gouraud et de Phong 9 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 10 1. Algorithmes de base 1.1 Algorithme du peintre -suite Exercice et discussion • Identifions les problèmes de cette approche 11 1. Algorithmes de base 1.1 Algorithme du peintre Avantages / inconvénients + Le plus simple des algorithmes - Ambiguïté 12 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 13 1. Algorithmes de base 1.2 Z-buffer Propriétés • Les ambiguïtés disparaissent • Exemple 14 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 15 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 16 1. Algorithmes de base 1.3 Area subdivision (2/5) Zone de travail Englobe Inclus Intersecte Disjoint 17 1. Algorithmes de base 1.3 Area subdivision (3/5) Visibilité connue • Zone vide ou complète • Tous les polygones sont disjoints • Un seul polygone intersecte ou inclus • Un polygone englobant qui est devant les autres 18 1. Algorithmes de base 1.3 Area subdivision (4/5) Pour ou contre +/- Plus efficace avec des grands polygones - Coût mémoire parfois élevé + Implémentation facile : appels récursifs • Exemple : 19 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 20 1. Algorithmes de base 1.4 Illumination locale : modèle de Phong (1/6) Trois grands effets pour générer un modèle simple • Lumière ambiante • Lumière diffuse • Lumière spéculaire 21 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) 22 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) 23 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) (ka) 24 (kd) 1. Algorithmes de base 1.4 Illumination locale : modèle de Phong (5/6) Effet spéculaire • Effet de « brillance » q 25 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 26 1. Algorithmes de base 1.5 Shadings (1/5) • Un Shading ? "ombrage" /!\ à cette traduction comment considérer les normales pour faire un dégradé de couleur? • En effet : q q a • Deux modèles : Gouraud et Phong • Ne pas confondre modèle d'illumination de Phong et modèle de Shading (i.e. normale) de Phong 27 1. Algorithmes de base 1.5 Shadings (1/5) suite Exercice et discussion • Réfléchir sur le rapport entre vecteurs normaux et couleurs pour réaliser le dégradé de couleur 28 1. Algorithmes de base 1.5 Shading (2/5) Pb Gouraud … 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 29 dégradé de couleur 1. Algorithmes de base 1.5 Shading (3/5) …de Phong • Phong – Quelque soit le pixel, calcul de la normale interpolée – ou par facette ou par sommet– en ce point – Calculs des couleurs correspondants n2 n1 n3 C1 C2 C3 … Ci • Plus lent que Gouraud, mais spéculaire plus net 30 1. Algorithmes de base 1.5 Shading (4/5) …de Phong Résultat (ks) 31 (n) 1. Algorithmes de base 1.5 Shading (5/5) Phong vs. Gouraud • Un exemple de chez Pixar • Phong / Gouraud 32 Plan Introduction 1. Algorithmes de base 2. Diverses techniques locales 2.1 Backface culling Référence / conclusion / discussion 2.2 Bump mapping et normal map 2.3 Textures 2.4 Ombrages 33 2. Diverses techniques locales 2.1 Backface culling • Éliminer tous les polygones qui ne sont pas tournés vers la caméra Caméra 34 2. Diverses techniques locales 2.1 Backface culling Principe • Si le point de vue n’est pas devant le polygone, on n’affiche pas le polygone • Utilisation du produit scalaire (vectCam . VectFacet) Caméra + 35 2. Diverses techniques locales 2.1 Backface culling Résultat • Comparaison avec / sans • Résultat identique sauf… 2 x plus rapide ! 36 2. Diverses techniques locales 2.2 Bump mapping et normal map Principe • Les deux : illusion de profondeur sur une surface plate Direction de la lumière Calcul de la géométrie réelle Illusion de géométrie normal map normal map 37 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 Bump 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 38 2. Diverses techniques locales 2.2 Bump mapping et normal map Application • Exemple classique : les planètes 39 2. Diverses techniques locales 2.3 Textures (1/7) • Pourquoi texturer ? – Ajout d'information visuelle à petit prix – Support hardware + = 40 2. Diverses techniques locales 2.3 Textures (1/7) suite Exercice et discussion • Où se trouve la difficulté? 41 2. Diverses techniques locales 2.3 Textures (2/7) Continuité • Continuité dans la texture et la géométrie 42 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 ») 43 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 44 2. Diverses techniques locales 2.3 Textures (4/7) Billboards cloud (2/3) • (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 45 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! 46 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 47 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 48 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 49 2. Diverses techniques locales 2.4 Ombrages Nature des ombres douces 50 2. Diverses techniques locales 2.4 Ombrages Diverses techniques (1/2) • Lancer de rayons – Facile mais très lent • Accélération 51 2. Diverses techniques locales 2.4 Ombrages Diverses techniques (2/3) • BSP • /!\ La position des obstacles est fausse 52 2. Diverses techniques locales 2.4 Ombrages Scène découpée Image Diverses techniques (3/3) 1 source 3 sources 53 Questions / discussion 54
© Copyright 2024 ExpyDoc