Opengl Pipeline Graphique

Opengl Pipeline Graphique

G´en´eralit´es Pipeline Graphique OpenGL Pipeline Graphique R´emi Synave ([email protected]) ENSEIRB 2009-2010 R´emi Synave OpenGLPipeline Graphique 1 G´en´eralit´es Pipeline Graphique OpenGL, c’est quoi? Ensemble de fonctions regroup´ees dans une biblioth`eque permettant de manipuler la carte graphique Biblioth`eque ´ecrite en C API multi-plateforme Permet de visualiser une sc`ene 3D (et aussi 2D) complexe `a partir de primitives simples R´emi Synave OpenGLPipeline Graphique 2 G´en´eralit´es Pipeline Graphique OpenGL, c’est quoi? Biblioth`eque ind´ependante du mat´eriel utilis´e Sp´ecifications ´evoluent en fonctions du comit´eARB Aujourd’hui, support´ee par toutes les cartes graphiques R´emi Synave OpenGLPipeline Graphique 3 G´en´eralit´es Pipeline Graphique Historique Ann´ees 80 : SGI IRIS GL Biblioth`eque cr´e´ee par Silicon Graphics (SGI) en 1992 : OpenGL 1.0 Cr´eation du standard et des sp´ecifications Machine `a´etats 1993 : premi`ere carte graphique supportant OpenGL 1.0 (station Silicon Graphics Iris 4D/510 Crimson VGXT) 1995 : DirectX/Direct3D 1.0 1999 : 1er pipeline mat´eriel grand public : NVIDIA Geforce ... Aoˆut 2008 : sp´ecifications officielles d’OpenGL 3.0 R´emi Synave OpenGLPipeline Graphique 4 G´en´eralit´es Pipeline Graphique Machines SGI IRIS = Integrated Raster Imaging System Syst`eme d’exploitation : IRIX (IRIS UNIX) SGI Indigo R´emi Synave OpenGLPipeline Graphique 5 G´en´eralit´es Pipeline Graphique Machines SGI SGI Indy R´emi Synave OpenGLPipeline Graphique 6 G´en´eralit´es Pipeline Graphique Machines SGI SGI Onyx R´emi Synave OpenGLPipeline Graphique 7 G´en´eralit´es Pipeline Graphique Machines SGI SGI O2 R´emi Synave OpenGLPipeline Graphique 8 G´en´eralit´es Pipeline Graphique Machines SGI SGI Octane R´emi Synave OpenGLPipeline Graphique 9 G´en´eralit´es Pipeline Graphique Machines SGI SGI Tezro R´emi Synave OpenGLPipeline Graphique 10 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Pipeline g´en´eral Pipeline graphique Chaîne de rendu Données géométriques Assemblage des primitives Rastérisation Élimination − Projection Échantillonnage R´emi Synave OpenGLPipeline Graphique 11 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Donn´ees g´eom´etriques Ensemble de maillages polygonaux ou de primitives : Polygones convexes Sph`ere Cube Tore Cˆone ... R´emi Synave OpenGLPipeline Graphique 12 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Pipeline g´en´eral Pipeline graphique Chaîne de rendu Données géométriques Assemblage des primitives Rastérisation Élimination − Projection Échantillonnage R´emi Synave OpenGLPipeline Graphique 13 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Assemblage des primitives Positionnement/animation des objets grˆace `ades translations et des rotations Utilisation des coordonn´ees homog`enes Repr´esentation des transformations sous forme de matrices R´emi Synave OpenGLPipeline Graphique 14 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Coordonn´ees homog`enes Coordonn´ees homog`enes =6 Coordonn´ees cart´esiennes Permet de d´efinir la position d’un point dans l’espace Ajout d’une composante (dimension) W =6 0 aux classiques (X , Y , Z) → (X , Y , Z, W ) Cart´esienne → Homog`ene (X , Y , Z) (X , Y , Z, 1) Homog`ene → Cart´esienne X Y Z (X , Y , Z, W ) ( W , W , W ) Notation non unique : point(1, 2, 3, 1) = point(2, 4, 6, 2) R´emi Synave OpenGLPipeline Graphique 15 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Coordonn´ees homog`enes Pourquoi ? ? ! ! Permet de repr´esenter les rotations, translations et mises `a l’´echelle par une matrice Application de toutes ces transformations par des multiplications de matrices Combinaison de transformations repr´esent´ee par une seule matrice (multiplication des matrices de chaque transformation) R´emi Synave OpenGLPipeline Graphique 16 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Coordonn´ees homog`enes Matrices de rotation : 10 00 0 cos(α) −sin(α) 0 de αo suivant l’axe X : 0 sin(α) cos(α) 0 00 01 cos(α) 0 sin(α) 0 0 1 0 0 de αo suivant l’axe Y : −sin(α) 0 cos(α) 0 0 0 0 1 R´emi Synave OpenGLPipeline Graphique 17 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Coordonn´ees homog`enes Matrice de rotation : cos(α) −sin(α) 0 0 sin(α) cos(α) 0 0 de αo suivant l’axe Z : 0 0 10 0 0 01 Matrice de translation : 1 0 0 Tx −→ 0 1 0 T d’un vecteur T = (T , T , T ) : y x y z 0 0 1 T z 000 1 R´emi Synave OpenGLPipeline Graphique 18 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Assemblage des primitives Utilisation des matrices en coordonn´ees homog`enes pour le positionnement des objets dans la sc`ene : la multiplication de deux matrices n’est pas commutative ! ! ! translation + rotation =6 rotation + translation rotation de 20o suivant X + rotation de 30o suivant Y =6 rotation de 30o suivant Y + rotation de 20o suivant X L’ordre d’application des transformations est important ! R´emi Synave OpenGLPipeline Graphique 19 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Assemblage des primitives Exemples : Point A(0, 1, 0) → rotation de 90o suivant X puis translation de (0, 2, 0). Point A(0, 1, 0) → translation de (0, 2, 0) puis rotation 90o suivant X. Point A(0, 1, 0) → rotation de 90o suivant Z puis rotation de 90o suivant Y. Point A(0, 1, 0) → rotation de 90o suivant Y puis rotation de 90o suivant Z. Transformation affine d’un point P par une matrice M : M1,1 M1,2 M1,3 M1,4 Px M M M M P 2,1 2,2 2,3 2,4 . y M M M M P 3,1 3,2 3,3 3,4 z M4,1 M4,2 M4,3 M4,4 1 R´emi Synave OpenGLPipeline Graphique 20 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Pipeline g´en´eral Pipeline graphique Chaîne de rendu Données géométriques Assemblage des primitives Rastérisation Élimination − Projection Échantillonnage R´emi Synave OpenGLPipeline Graphique 21 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Elimination´ Polygones invisibles : Polygones vus de l’arri`ere (orientation importante des polygones) : Back face culling Polygones se trouvant derri`ere un autre polygone depuis le point de vue de la cam´era : Z-buffer lors de la rast´erisation R´emi Synave OpenGLPipeline Graphique 22 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Elimination´ Point de vue dans le mˆeme sens que la normale du polygone ? On le voit de derri`ere On le supprime Point de vue dans le sens oppos´e`ala normale du polygone ? Le polygone nous fait face On le conserve R´emi Synave OpenGLPipeline Graphique 23 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Elimination´ P1 (−1,2) p (3,0) (2,1) P2 −→ −→p .P1= −3 < 0 → on conserve le polygone P1 −→ −→p .P2 = 6 > 0 → on supprime le polygone P2 R´emi Synave OpenGLPipeline Graphique 24 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Elimination´ Elimination´ des polygones non visible Faible coˆut par polygone Suffisant pour les mod`eles num´eriques valides imprimables (mod`eles num´eriques sans bord) Etape´ pr´eliminaire pour d’autres algorithmes Economise´ 50% de temps de calcul (en moyenne) R´emi Synave OpenGLPipeline Graphique 25 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Projection Projection Orthogonale : Projection perpendiculaire au plan de projection f R´emi Synave OpenGLPipeline Graphique 26 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Projection f Consid´erons : Point de vue centr´een (0, 0, 0) Plan de projection d’´equation z = f 100 0 010 0 → Matrice de projection : 0 0 0 f 000 1 R´emi Synave OpenGLPipeline Graphique 27 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Projection Projection Perspective : Projection en direction du centre de projection f R´emi Synave OpenGLPipeline Graphique 28 Donn´ees g´eom´etriques G´en´eralit´es Assemblage des primitives Pipeline Graphique Elimination´ - Projection Rast´erisation - Echantillonnage´ Projection f Consid´erons : Point de vue centr´een (0, 0, 0) Plan de projection d’´equation z = f 10 0 0 01 0 0 → Matrice de projection : 00 1 0 1 0 0 f 0 R´emi Synave OpenGLPipeline

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    36 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us