Éclairage, ombrage Fiat lux !.

Slides:



Advertisements
Présentations similaires
( Application Programming Interface)
Advertisements

Carsten Dachsbacher Christian Vogelgsang Marc Stamminger
Hierarchical Z-Buffer Visibility
Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation.
Sylvère FONTENEAU & Didier REBAUDO DESS IMM Synthèse dImages
The Reyes Image Rendering Architecture
Technique des Surfels Surfels: Surface Elements as Rendering Primitives SIGGRAPH 2000 H.Pfiste, J.van Baar, M.Zwicker, M.Gross.
Matthias Zwicker Hanspeter Pfister Jeroen van Baar Markus Gross
Les erreurs types à ne pas commettre OpenGL Carina Portella Jean-Philippe Reynier DESS TNI – IDI Année
Synthèse d’images.
Scène de test (60000 polygones, 4000m2)
à partir notamment du cours Siggraph 97 et d’autres ….
Modèles empiriques d’éclairement
IMAGIS-GRAVIR / IMAG Rendu de forêts en temps-réel iMAGIS / GRAVIR Franck Sénégas DEA IVR Tuteur: Fabrice Neyret.
Lancer de rayons interactif
1 Visualisation avec OpenGL Jérémie Allard 4 Novembre 2002.
Programmation des logiciels infographiques interactifs 2D et 3D, et le OpenGL.
GIF-19263/GIF Vision numérique
É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
Modélisation géométrique à l’aide d’un maillage
IFT3730: Infographie 3D Illumination locale
Modélisation de l’éclairage
Création d’images virtuelles
Nicolas Holzschuch iMAGIS-GRAVIR/IMAG
Ombres en temps-réel Nicolas Holzschuch Cours dOption Majeure 2
Images synthètiques de haute qualité
Courbes de Bézier.
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
Introduction Sollicitation /Déformée Test de traction Modèle détude Notion de contrainte Loi de Hooke Condition de résistance Traction Cisaillement.
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
Design dun système de vision embarqué. Application:
Régression linéaire (STT-2400)
Application de texture en OpenGL
IFT3355: Infographie Visibilité
Techniques de points de contrôle en OpenGL : formes de Bézier
PROTOTYPE D’UN PROGRAMME ÉCRIT EN C++ BASÉ SUR OPENGL
Éclairage en OpenGL.
IFT3355: Infographie Illumination locale
Modélisation avec des solides facette arête sommet Solides paramétriques.
Synthèse d’images 2. illumination
Modélisation géométrique
Les images de synthèses Duprat Anatole. Les images de synthèses consistent en la création assistée par ordinateur, d'images numériques. Il existe différentes.
GRAPHISME PAR ORDINATEUR
KF-RAY Raytracer parallèle Projet long d’informatique
Création en images de Synthèse Modèles de rendu d’une scène 3D
GRAPHISME PAR ORDINATEUR
Chapitre 4 Réflexion et réfraction de la lumière
TP optique. Réfraction, lentilles et fibre optique
Projet Lancer de Rayons
Chapitre VIII Découpage d’une scène selon une fenêtre donnée.
Les bases de la modélisation Primitives simples et CSG.
CHAPITRE III Calcul vectoriel
Credits : Joëlle Thollot, Hector Briceño, Edmond Boyer
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.
Initiation à l’Algorithmique
Synthèse d’images Introduction Doc. non diffusé En cours d’élaboration.
Synthèse d’images et Rendu Réaliste Compression Progressive de Modèles 3D DOMENGET Bruno DUMAS Benjamin EISTI.
Architecture et Fonctionnement d’un GPU Géométrie Rendu.
Plan du cours Cours 1,2 : le pipeline graphique
Visualisation des flots optiques en 3D
Post-optimisation, analyse de sensibilité et paramétrage
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
Illumination des objets
Introduction aux technologies du jeux-vidéo Steve Gury
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 7 Introduction à l’illumination avec XNA Voir le tutoriel:
Synthèse sur l’Eclairage
MECANIQUE DES MILLIEUX CONTINUS ET THERMODYDAMIQUE SIMULATIONS.
Transcription de la présentation:

Éclairage, ombrage Fiat lux !

Introduction à la programmation graphique - A. Benassarou Éclairage & ombrage Modèles d’éclairage Déterminent la couleur en chaque point de la surface en fonction de propriétés optiques et/ou empiriques. La normale à une surface en un point = vecteur dont la direction est perpendiculaire à la surface. glNormal3{b|d|f|i|s} (nx, ny, nz) glNormal3{b|d|f|i|s}v (const TYPE *) Tant que l’on ne fait pas de nouveau appel à glNormal, tous les sommets ont pour normale [nx ny nz]. Les normales sont supposées être unitaires ! Si toutefois la fainéantise vous submerge… glEnable (GL_NORMALIZE) 2006 / 2007 Introduction à la programmation graphique - A. Benassarou

Introduction à la programmation graphique - A. Benassarou Éclairage & ombrage Éclairage Lambert Modèle physique basé sur la loi de Lambert. Surfaces idéalement diffuses (= lambertiennes) Cd = Kd*Ld*cosθ = Kd*Ld*(N∙L) avec Kd le coefficient diffus, Ld la lumière diffuse incidente, N la normale à la surface et L le vecteur de la surface à la lampe. 2006 / 2007 Introduction à la programmation graphique - A. Benassarou

Introduction à la programmation graphique - A. Benassarou Éclairage & ombrage Éclairage Phong Développé par Bui Tuong Phong en 1973. Perception des tâches de réflexion spéculaire. Cs = Ks*Ls*cosnφ = Ks*Ls*(V∙R)n avec V la direction de vision, R le vecteur de réflexion spéculaire et n le coefficient de brillance. Crédits: fr.wikipedia.org 2006 / 2007 Introduction à la programmation graphique - A. Benassarou

Éclairage Blinn-Phong Éclairage & ombrage Éclairage Blinn-Phong Proposé par Jim Blinn en 1977. Version simplifiée/accélérée de l’éclairage Phong. Évaluation de R relativement coûteuse. Cs = Ks*Ls*(N∙H)n Crédits: fr.wikipedia.org 2006 / 2007 Introduction à la programmation graphique - A. Benassarou

Introduction à la programmation graphique - A. Benassarou Éclairage & ombrage Lumière OpenGL distingue 4 types de lumière : Lumière émise GL_EMISSION Lumière ambiante GL_AMBIENT Lumière diffuse GL_DIFFUSE Lumière spéculaire GL_SPECULAR GL_SHININESS Pour les 4 composantes R, G, B & A : C = Ke + Ka*Ga + ∑(Kd*Ld*V∙R + Ks*Ls*(N∙H)n) 2006 / 2007 Introduction à la programmation graphique - A. Benassarou

Introduction à la programmation graphique - A. Benassarou Éclairage & ombrage Matériaux Notion de face intérieure/extérieure. GL_FRONT / GL_BACK / GL_FRONT_AND_BACK glMaterialf (GLenum face, GLenum param, GLfloat value) Propriétés de matériau à paramètre unique. GL_SHININESS glMaterialfv (GLenum face, GLenum param, GLfloat * values) Propriétés à paramètres multiples (R, G, B & A) GL_EMISSION GL_AMBIENT GL_DIFFUSE GL_SPECULAR GL_AMBIENT_AND_DIFFUSE 2006 / 2007 Introduction à la programmation graphique - A. Benassarou

Introduction à la programmation graphique - A. Benassarou Éclairage & ombrage Lampes glEnable (GL_LIGHTING) Active l’éclairage. glEnable (GL_LIGHT0) Active la 1ère lampe / 8 (GL_LIGHT0  GL_LIGHT7) . glLightf (GLenum light, GLenum param, GLfloat value) glLightfv (GLenum light, GLenum param, GLfloat * values) Associe les valeurs au paramètre param de la lampe light. Lampes positionnelles Lampes directionnelles Lampes omnidirectionnelles Lampes spots Couleur de la lumière Coefficients d’atténuation. 2006 / 2007 Introduction à la programmation graphique - A. Benassarou

Introduction à la programmation graphique - A. Benassarou Éclairage & ombrage Modèles d’ombrage glShadeModel (GL_FLAT) 1 normale pour 1 facette (flat) Éclairage Blinn-Phong sur la facette. glShadeModel (GL_SMOOTH) 1 normale pour 1 sommet (Henri Gouraud, 1971) Éclairage Blinn-Phong sur chaque sommet. Interpolation bilinéaire le long du triangle. Et l’ombrage Phong ? 1 normale pour 1 pixel Normale interpolée le long du triangle. Éclairage Blinn-Phong sur chaque pixel. Nécessite la mise en œuvre d’un pixel shader. 2006 / 2007 Introduction à la programmation graphique - A. Benassarou

Élimination des faces cachées

Introduction à la programmation graphique - A. Benassarou Faces cachées Algorithme du peintre Si tous les triangles sont affichés dans n’importe quel ordre, le dernier affiché recouvrira tous les autres, qu’ils soient devant ou derrière lui. L’algorithme du peintre propose de dessiner les polygones du plus lointain au plus proche. Cet algorithme est coûteux car il faut trier tous les polygones. Pour trier n primitives, il faut au minimum n log(n) opérations. Problèmes potentiels dus aux intersections. Crédits: fr.wikipedia.org 2006 / 2007 Introduction à la programmation graphique - A. Benassarou

Introduction à la programmation graphique - A. Benassarou Faces cachées Z-buffer L’algorithme du Z-buffer permet de résoudre le problème des faces cachées à coût constant. L’utilisation d’un 2ème buffer, de dimensions égales à celles du framebuffer, permet de conserver la profondeur associée à chaque pixel. Pour chaque pixel, on peut ainsi déterminer si celui-ci doit être conservé ou écrasé par un autre simplement en comparant les deux profondeurs. glutInitDisplayMode (GLUT_DEPTH | …) Déclaration du Z-buffer. glEnable (GL_DEPTH_TEST) Activation du test de profondeur. glClear (GL_DEPTH_BUFFER_BIT | …) Effacement simultané des deux buffers. 2006 / 2007 Introduction à la programmation graphique - A. Benassarou

Introduction à la programmation graphique - A. Benassarou Faces cachées Culling L’étape de rasterization est la plus coûteuse. Certes, le Z-buffer permet de générer correctement les images mais il n’évite pas les calculs engendrés par les faces cachées. Besoin d’un test simple, qui élimine un grand nombre de primitives ! Produit scalaire entre V et N. Élimine en moyenne 50% des facettes. glEnable (GL_CULL_FACE) glCullFace (GLenum mode) 2006 / 2007 Introduction à la programmation graphique - A. Benassarou