GRAPHISME PAR ORDINATEUR

Slides:



Advertisements
Présentations similaires
( Application Programming Interface)
Advertisements

Chaîne de Synthèse Réel Modélisation Rendu Image Fichier Scène
Calcul de volume méthode des tranches
Réalisation dun travail concret avec des matrices Afficher un objet 3D sur une surface Lui appliqué des transformations Le voir se transformer suivant.
Géométrie vectorielle
RECONNAISSANCE DE FORMES
Chapitre 2: Les régularités et les relations
IFT3730: Infographie 3D Transformations Géométriques
1 Transformations affines But: fixer le positionnement et lorientation des objets de la scène.
Traitements d'images et Vision par ordinateur
Concepts avancés en mathématiques et informatique appliquées
Transformations de visualisation en OpenGL
Mouvement rectiligne uniformément accéléré
IFT3355: Infographie Projections
Lignes trigonométriques.
VOXPOP Questions de concepts en vrac…. Voxpop Deux sphères uniformément chargées sont fixées solidement à des rondelles (tout en étant électriquement.
SUJETS SPÉCIAUX EN INFORMATIQUE I PIF Contenu du cours Transformations géométriques des objets –Transformations 2D –Transformations entre systèmes.
Gestion des événements liés à la fenêtre et aux périphériques dentrée.
Modélisation géométrique à l’aide d’un maillage
Transformations de corps rigides
Courbes de Bézier.
Visualisation de surfaces décrites analytiquement
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
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
IFT3355: Infographie Imagerie 2D
RECONNAISSANCE DE FORMES
SUJETS SPÉCIAUX EN INFORMATIQUE I
La projection orthogonale à vues multiples
Perspectives, développements et projections
Technique de points de contrôle: Formes de Bézier
Rappel... Matrices bloc. Décomposition des matrices:
CONSTRUCTIONS GÉOMÉTRIQUES
Découpage des objets selon le volume de vue
Géométrie analytique Distance d’un point à une droite.
IFT3355: Infographie Transformations Géométriques
Représentation et traitement des images en OpenGL
IFT3730: Infographie Projections
PROTOTYPE D’UN PROGRAMME ÉCRIT EN C++ BASÉ SUR OPENGL
Éclairage en OpenGL.
Transformations visuelles des objets
Géométrie épipolaire (deux vues)
Transformations ponctuelles des objets
GRAPHISME PAR ORDINATEUR
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 3 Autres outils de dessin (Suite) –Découpage 2D Modélisation d ’objets 3D sous forme de maille polygonale.
La fonction quadratique
Séquence de travail Orientation de la pièce Faire afficher les plans de références Aligner la vue avec les touche CTRL + J Masquer les plans de références.
© Sofia ZAIDENBERGCNRS Mai Interfaces Graphiques Tracer une fonction y = f(x) avec JAVA 2D.
Chapitre VIII Découpage d’une scène selon une fenêtre donnée.
CHAPITRE III Calcul vectoriel
OUTILS MATHEMATIQUES POUR LES SII
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 10 Textures –Définir la texture –Superposition d’une texture sur une surface plane –Superposition.
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 6 Transformation et animation de plusieurs modèles 3D avec XNA –Chargement des modèles 3D (modèle.
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.
PROGRAMMATION SCIENTIFIQUE EN C PRO Résolution de système d’équations non- linéaires (racines d’équations) u Méthode de la bissection u Analyse.
GRAPHISME PAR ORDINATEUR
Equipe synthèse d ’images et réalité virtuelle IRIT-UPS Toulouse Surfaces implicites Les différents modèles analytiques.
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 3 Introduction à XNA –Modélisation d’objets 3D –Transformations 3D: matrices, systèmes de coordonnées.
Concepts avancés en mathématiques et informatique appliquées MAP-6014.
GRAPHISME PAR ORDINATEUR
GRAPHISME PAR ORDINATEUR
GRAPHISME PAR ORDINATEUR
ΔΑΣΚΑΛΟΥ ΠΕΤΡΑ.
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 10 Textures –Définir la texture –Superposition d’une texture sur une surface plane –Superposition.
Premières notions de la 3D
Cotation fonctionnelle des pièces
Faculté Polytechnique Cours 9: Représentation de courbes spatiales Géométrie et communication graphique Edouard Rivière-Lorphèvre.
Introduction à l’analyse multidimensionnelle Master BOE LATLI Adrien
De la Terre à la carte: Projections et Géoréférencement
GRAPHISME PAR ORDINATEUR
Transcription de la présentation:

GRAPHISME PAR ORDINATEUR SIF-1032

Contenu du cours 6 Visualisation 3D LECTURES: Chapitres 5 et 7 Projection en perspective Découpage 3D Projection en perspective avec OpenGL Modélisation d’objets par MilkShape et importation dans OpenGL Examen LECTURES: Chapitres 5 et 7

Pipeline de visualisation Visualisation 3D Pipeline de visualisation La visualisation 3D peut s’apparenter à la prise d’images par caméra Étapes de capture de photographies Positionnement de la caméra Orientation de la caméra Ajustement de l’ouverture

Pipeline de visualisation Visualisation 3D Pipeline de visualisation Étapes de transformation des coordonnées du monde 3D aux coordonnées de l’écran 2D Modélisation de la scène Transformation des coordonnées du monde en coordonnées de visualisation spécification de la position de l’observateur Positionnement du plan de projection Transformation des coordonnées de visualisation en coordonnées de projection (perspective) dans le plan de projection Transformation des coordonnées de projection dans les coordonnées de l’écran

Volume de visualisation Une fenêtre de visualisation dans le plan de visualisation permet de définir la portion de scène à observer (avec OpenGL: front plane, near plane) Les bordures de la fenêtre sont parallèles aux axes xv et yv et leur position respective est spécifiée en fonction du système de coordonnées de visualisation

Volume de visualisation Les bordures de la fenêtre de visualisation permettent alors de définir un volume de visualisation Seulement les objets dans le volume de visualisation sont affichés à l’écran, les autres sont découpés avant d’être affichés Les dimensions du volume de visualisation sont fonction des dimensions de la fenêtre de visualisation La forme du volume est fonction du type de projec-tion (Frustum si projection perspective)

Volume de visualisation En projection par perspective, le volume est une pyramide avec comme sommet le point de référence de projection

Volume de visualisation Pour limiter la dimension du volume de visualisation nous ajoutons un plan frontal (Zfront, near plane) et un arrière plan (Zback, far plane) qui sont parallèles au plan de visualisation (avec OpenGL: le plan de visualisation est le front plane)

Volume de visualisation (OpenGL) Avec OpenGL, le volume de visualisation est définit par un plan frontal (near plane) et un arrière plan (far plane) Le plan de visualisation est le front plane

Volume de visualisation (OpenGL) L’ouverture de champs (fovy) et le rapport w/h (aspect ration) permettent de définir la dimension des plans rapproché et éloigné

Volume de visualisation (OpenGL)

Transformation généralisée en projection en perspective Le point de référence de projection (prp) peut être localisé à n’importe quelle position dans le système de visualisation sauf dans le plan de visualisation ou entre le plan frontal et l’arrière plan A partir d’un volume de visualisation de forme générale nous obtenons une transformation généralisée en projec-tion en perspective en: Déformant le volume de visualisation pour que la bissectrice du Frustum soit perpendiculaire au plan de visualisation Appliquer la projection en perspective (changement d’échelle)

Transformation généralisée en projection en perspective

Transformation généralisée en projection en perspective Avec un point de référence (xprp,yprp,zprp) la première transformation suppose une déformation (shearing) et une translation Si le prp est sur l’axe Zv xprp = yprp= 0

Transformation généralisée en projection en perspective Le changement d’échelle produit un parallélépipède Si le prp est sur l’axe Zv xprp = yprp= 0

Projection en perspective (explication graphique) Choix d’un point de référence Positionnement du plan de visualisation Front plane

Projection en perspective (explication graphique) Calcul des coordonnées sur la ligne de projection Sur le plan de visualisation z’=zvp on peut déduire u

Projection en perspective (explication graphique) Substituons u dans les équations de x’ et y’

Découpage 3D Le découpage 3D conserve les surfaces qui sont à l’intérieure du volume de visualisation pour l’affichage Les surfaces hors du volume de visualisation sont éliminées Le découpage 3D est semblable au découpage 2D mais plutôt que d’effectuer le découpage par rapport à des bordures rectilignes, le découpage s’accomplit par rapport aux plans du volume de visualisation Pour découper une ligne par rapport au volume de visualisation nous devons vérifier la position de la droite par rapport aux équations des plans du volume de visualisation

Découpage 3D Un point d’extrémité positionné en (x,y,z) est à l’extérieur d’un plan Si Ax + By + Cz + D > 0 Un point d’extrémité positionné en (x,y,z) est à l’intérieur d’un plan Si Ax + By + Cz + D < 0 Si les 2 points terminaux sont à l’extérieur, la ligne est rejetée, si ils sont à l’intérieur la ligne est conservée SINON nous cherchons le point (xI,yI,zI) qui satisfait AxI + ByI + CzI + D = 0

Découpage 3D Avant d’accomplir le découpage 3D nous transformons le volume de visualisation en un parallélépipède Le découpage par rapport à un parallélépipède est plus simple puisque chaque plan du volume de visualisation est perpendiculaire à un des axes de coordonnées

Découpage 3D De plus nous pouvons accomplir le découpage 3D sur un viewport 3D. La pipeline de transformations est décrite par:

Découpage 3D Viewport 3D

Découpage 3D La transformation permettant la création d’un viewport 3D est: Les limites du volume de visualisation sont xwmin, xwmax, ywmin, ywmax, zfront, et zback

Découpage de viewport 3D Nous utilisons le concept de code de région définit pour le découpage 2D En 3D le code de région est de 6 bits Pour un point terminal de coordonnées (x,y,z) l’assigna-tion des bits du code de région s’effectue comme suit: bit 1 = 1 Si x < xvmin (gauche) bit 2 = 1 Si x > xvmax (droite) bit 3 = 1 Si y < yvmin (bas) bit 4 = 1 Si y > yvmax (haut) bit 5 = 1 Si z < zvmin (devant) bit 6 = 1 Si z > zvmax (arrière)

Découpage de viewport 3D Si les extrémités sont à l’intérieur du viewport 3D leur code est 000000, 000000 respectivement Si une opération logique ET entre les 2 codes donne une valeur non nulle c’est que les 2 extrémités sont hors du viewport 3D (Dans la même région) Si les 2 extrémités ne sont pas complètement à l’intérieur ou l’extérieur du viewport 3D nous devons déterminer l’intersection avec les plans du viewport 3D

Découpage de viewport 3D (recherche de l’intersection) Les forme paramétriques des droites 2D peuvent être généralisées en 3D. Sachant que P1= (x1, y1, z1) et P2= (x2, y2, z2) sont les points d’extrémités

Découpage de viewport 3D Les coordonnées (x,y,z) représentent un point sur le segment de droite P1P2 Si nous substituons les coordonnées des plans du viewport 3D nous pouvons isoler u Par exemple, si nous testons une droite par rapport au plan zvmin(plan frontal) alors

Découpage de viewport 3D Si u  0,1 le segment P1P2 ne traverse pas ce plan (Voir la ligne A)

Découpage de viewport 3D Si u  0,1 les coordonnées x,y de l’intersection sont données par:

Découpage de viewport 3D Si xI ou yI ne sont pas dans les limites des bordures du viewport 3D alors cette droite traverse le plan zvmin au delà des limites des bordures du viewport 3D (Voir la ligne B)

Projection en perpective avec OpenGL Avec OpenGL, la matrice de transformation de projection en perspective (GL_PROJECTION) est déduite par la commande gluPerspective() gluPerspective(fovy,aspect,zNear,zFar) fovy représente l’angle d’ouverture du volume de visualisation aspect représente le ratio w/h zNear représente la distance du plan de visualisation (plan frontal) dans la direction de visualisation zFar représente la distance de l’arrière plan dans la direction de visualisation Création du volume de visualisation (Frustum) (voir la procédure ChangeSize()) glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(60.0f,w/h,1.0,400);

Projection en perpective avec OpenGL Exemple ORTHO VS PERSPECT

Projection en perpective avec OpenGL Exemple ORTHO VS PERSPECT

Projection en perpective avec OpenGL Exemple ORTHO VS PERSPECT

Projection en perpective avec OpenGL Avec OpenGL, la création du viewport est effectué par la commande glViewport() glViewport(x,y,w,h) x,y représente la position du viewport dans le fenêtre d’affichage (coin inférieur gauche, généralement (0,0)) w,h représente la largeur (w) et la hauteur (h) du viewport Création d’un viewport (voir dans la procédure ChangeSize()) glViewport(0,0,w,h);

Projection en perpective avec OpenGL Voir l’exemple SOLAR

Projection en perpective avec OpenGL Voir l’exemple SOLAR

Modélisation d’objets par MilkShape et importation dans OpenGL Voir le Game Programming Lesson 4 sur le site ftp

Modélisation d’objets par MilkShape et importation dans OpenGL Voir le Game Programming Lesson 4 sur le site ftp

Modélisation d’objets par MilkShape et importation dans OpenGL Voir le Game Programming Lesson 4 sur le site ftp

Modélisation d’objets par MilkShape et importation dans OpenGL Voir le Game Programming Lesson 4 sur le site ftp

Modélisation d’objets par MilkShape et importation dans OpenGL Voir le Game Programming Lesson 4 sur le site ftp

Modélisation d’objets par MilkShape et importation dans OpenGL Voir le Game Programming Lesson 4 sur le site ftp

Examen dans une semaine ….. Bien comprendre les transformations