OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de...

Post on 03-Apr-2015

109 views 0 download

Transcript of OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de...

OpenGL - Révisions

Repères

z

y

xx

z

y

Repère du monde

Repère des objets(repère de modélisation)

Matrices de transformations

z

y

x

glBegin(GL_TRIANGLES);glVertex2f(2,0);glVertex2f(4,0);glVertex2f(3,3);glEnd();x

z

y

glTranslatef(-3,0,0);

xz

y

Matrices de transformations

z

y

x

glBegin(GL_TRIANGLES);glVertex2f(2,0);glVertex2f(4,0);glVertex2f(3,3);glEnd();

glTranslatef(-3,0,0);

xz

y

Matrices de transformations

z

y

x

glBegin(GL_POLYGONE);glVertex2f(0,0);glVertex2f(2,0);glVertex2f(2,2);glVertex2f(0,2);glEnd();

xz

y

z

y

xx

z

y

z

y

x

1. Rotation autour de yz

y

x

2. Translation en x

Matrices de transformations

Vue du repère du monde

z

y

xx

z

y

z

y

x

1. Translation en xz

y

x

2. Rotation autour de y

Matrices de transformations

Vue du repère du monde

z

y

xx

z

y

z

y

x

1. Rotation autour de y2. Translation en x

z

y

x

1. Translation en x2. Rotation autour de y

Matrices de transformations

Vue du repère du monde

z

y

xx

z

y

z

y

x

1. Rotation autour de yz

y

x

2. Translation en x

Matrices de transformations

Vue du repère de l’objet

z

y

xx

z

y

z

y

x

1. Rotation autour de y2. Translation en x

z

y

x

1. Translation en x2. Rotation autour de y

Matrices de transformations

Vue du repère de l’objet

z

y

xx

z

y

z

y

x

1. Rotation autour de y2. Translation en x

z

y

x

1. Translation en x2. Rotation autour de y

Matrices de transformations

Vue du repère du monde

Matrices de transformations

z

y

x

glBegin(GL_POLYGONE);glVertex2f(0,0);glVertex2f(2,0);glVertex2f(2,2);glVertex2f(0,2);glEnd();

xz

y

glTranslatef(-3,0,0);glRotatef(1,0,45,0);

Matrices de transformations

• POT – chapitre 2, concept 1.2, 1.7, 1.8 et 1.9Repère relatif à l’objet

- transformations dans l’ordre de leur déclaration

Repère du monde- transformations dans l’ordre inverse de leur

déclaration

Matrices de transformations

z

y

x

glBegin(GL_POLYGONE);glVertex2f(0,0);glVertex2f(2,0);glVertex2f(2,2);glVertex2f(0,2);glEnd();

xz

y

glTranslatef(-3,0,0);

x’z’

y’

Matrices de transformations

z

y

x

glBegin(GL_POLYGONE);glVertex2f(0,0);glVertex2f(2,0);glVertex2f(2,2);glVertex2f(0,2);glEnd();

glTranslatef(-3,0,0);glRotatef(1,0,45,0);

x’

z’

y’

Pile de matrices

glPushMatrix() : recopie la matrice courante au sommet de la pile

sauvegarde du contexte courant

glPopMatrix() : supprime la matrice au sommet de la pile

restauration du contexte précédent

Pile de matrices

Exemple du playmobil

void dessineCorps(){ glBegin(GL_POLYGON); glVertex2f(-1,0); glVertex2f( 1,0); glVertex2f( 1,3); glVertex2f(-1,3); glEnd();}

Pile de matrices

Exemple du playmobil

void dessineJambe(){ glBegin(GL_POLYGON); glVertex2f( 0 ,0); glVertex2f(0.5,0); glVertex2f( 0 ,2); glVertex2f(0.5,2); glEnd();}

Pile de matrices

Exemple du playmobil

dessineCorps();Déplace le repère objet en (0.5,-2)dessineJambe();Déplace le repère objet en (-1,-2)dessineJambe();

Pile de matrices

Exemple du playmobil

dessineCorps();Déplace le repère objet en (0,-2)

Pile de matrices

Exemple du playmobil

dessineCorps();Déplace le repère objet en (0,-2)

Sauvegarde le contexte

Pile de matrices

Exemple du playmobil

dessineCorps();Déplace le repère objet en (0,-2)

Sauvegarde le contexteDécale le repère à droitedessineJambe();

Pile de matrices

Exemple du playmobil

dessineCorps();Déplace le repère objet en (0,-2)

Sauvegarde le contexteDécale le repère à droitedessineJambe();Restaure le contexte

Pile de matrices

Exemple du playmobil

dessineCorps();Déplace le repère objet en (0,-2)

Sauvegarde le contexteDécale le repère à droitedessineJambe();Restaure le contexte

Sauvegarde le contexte

Pile de matrices

Exemple du playmobil

dessineCorps();Déplace le repère objet en (0,-2)

Sauvegarde le contexteDécale le repère à droitedessineJambe();Restaure le contexte

Sauvegarde le contexteDécale le repère à gauche dessineJambe();Restaure le contexte

Pile de matrices

Exemple du playmobil

dessineCorps();glTranslate2f(0,-2);

glPushMatrix();glTranslate2f(0.5,0);dessineJambe();glPopMatrix();

glPushMatrix();glTranslate2f(-1,0);dessineJambe();glPopMatrix();