0% ont trouvé ce document utile (0 vote)
87 vues44 pages

Introduction à OpenGL et ses fonctions

Transféré par

Imane Lamnouar
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
87 vues44 pages

Introduction à OpenGL et ses fonctions

Transféré par

Imane Lamnouar
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

Cours OpenGL

Computer Graphics
Computer Graphics
Computer Graphics (Quelques définitions)
• Refresh rate du moniteur: le nombre d’images que le moniteur peux
afficher par seconde [Hz]
• FPS: frame per seconde est Le nombre d’images par seconde ou cadence
d'images à la seconde calculer par la carte graphique (GPU) d’un
ordinateur, téléphone portable ou console de jeu vidéo [Hz]

https://www.youtube.com/watch?v=3BJU2drrtCM
• CPU: central processing unit : c’est le cerveau de l’ordinateur. CPU est
un composant présent dans de nombreux dispositifs électroniques qui
exécute les instructions machine des programmes informatiques
• GPU : graphics processing unit est une unité de calcul assurant les
fonctions de calcul d'image

https://www.youtube.com/watch?v=-P28LKWTzrI&t=2s
Les base du computer graphics

Output
Input devices device
Pipeline graphique
Computer Graphics
Pipeline graphique

depth test
OpenGL (Open Graphics Library)

• Ensemble normalisé de fonctions de calcul


d'images 2D ou 3D lancé par Silicon Graphics en 1992.
• Cette interface de programmation est disponible sur de
nombreuses plateformes où elle est utilisée pour des
applications qui vont du jeu vidéo jusqu'à la CAO en passant
par la modélisation.
• OpenGL permet à un programme de déclarer la géométrie
d'objets sous forme de points, de vecteurs, de polygones, de
bitmaps et de textures.
• OpenGL effectue ensuite des calculs de projection en vue de
déterminer l'image à l'écran, en tenant compte de la distance,
de l'orientation, des ombres, de la transparence et du cadrage.
OpenGL (Open Graphics Library)

• L'interface regroupe environ 250 fonctions


différentes qui peuvent être utilisées pour afficher
des scènes tridimensionnelles complexes à partir de
simples primitives géométriques.
• Utilisée par la majorité des applications
scientifiques, industrielles ou artistiques 3D et
certaines applications 2D vectorielles.
• utilisée dans l'industrie du jeu vidéo où elle est
souvent en rivalité avec la bibliothèque
de Microsoft : Direct3D.
Installation de Codebloks et Glut
GLUT (OpenGL Utility Toolkit

• bibliothèque utilitaire dont les droits d'auteur sont détenus par 


Mark J. Kilgard, offrant un jeu de routines pour la gestion des
fenêtres OpenGL et les interactions avec le système d'exploitation
(gestion clavier, souris, etc.) indépendamment de celui-ci et du
gestionnaire de fenêtres. Elle est essentiellement utilisée pour la
création de programmes de démonstrations.
#include <windows.h>
#include <GL/glut.h>
void display(){
glClearColor(1.0, 1.0, 1.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0, 1.0, 1.0, 0.0);//left, right, bottom, top of screen viewing region
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POLYGON);
glColor3f(1.0, 0.0, 0.0);
glVertex2f(0.0, 0.0);
glVertex2f(1.0, 0.0);
glVertex2f(0.5, 0.9);
glEnd();
glFlush();}
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(600, 400);
glutInitWindowPosition(0, 0);
glutCreateWindow("Essai");
glutDisplayFunc(display);
glutMainLoop(); }
Initiation au language c

•#include<iostream>
•using namespace std;
•main()
•{
• cout <<"bonjour\n";
• return 0;
•}
Initaition au language c
Initiation au language c
Initiation au language c
Initiation au language c
Initiation au language c
Initiation au language c
Initiation au language c
Initiation au language c
Initiation au language c
Initiation au language c

Les tableaux
Initiation au language c
printf
#include <stdio.h>
int main()
{
   char ch = 'A';
   char str[20] = "fresh2refresh.com";
   float flt = 10.234;
   int no = 150;
   double dbl = 20.123456;
   printf("Character is %c \n", ch);
   printf("String is %s \n" , str);
   printf("Float value is %f \n", flt);
   printf("Integer value is %d\n" , no);
   printf("Double value is %lf \n", dbl);
   printf("Octal value is %o \n", no);
   printf("Hexadecimal value is %x \n", no);
   return 0;
}
OpenGL Primitives
Exercice I
Système de Coordonnées sur OpenGL
• OpenGL utilise les coordonnées homogènes pour spécifier un point dans
l’espace

• Si w =0 il définie une direction .
• Si w =1 il désigne un point dans l’espace
• utilisé généralement dans la projection en perspective. Ainsi, Pour
retrouver les coordonnées cartésiennes il suffit de diviser toutes les
composantes par w.
• Ce système de coordonnée permet à OpenGL l’utilisation des matrices 4*4
dans toutes les transformation dans l’espace
Système de Coordonnées sur OpenGL
Système de Coordonnées sur OpenGL

On peut constater que la seul transformation qui oblige l’utilisation des


Coordonnées homogènes est :
Système de Coordonnées sur OpenGL
Système de Coordonnées sur OpenGL

Ainsi quand OpenGL fait une transformation dans l’espace il faut


mettre en tête qu’il s’git d’un produit matriciel
M’= S*R*T*M
NB: le produit matriciel n’est pas souvent commutatives

glrotatef

gltranslatef glrotatef
gltranslatef
Changement de repère sur OpenGL

• glPushMatrix()
• ….
• …..
• glPopMatrix()
• Utilisée pour dire à openGL :
• De créer une nouvelle matrice de transformation dont les coordonnées
sont la position actuelle.
• Seulement les objets crées entre glPushMatrix() et glPopMatrix() vont
subir des transformation par rapport au nouveau repère
Changement de repère sur OpenGL

Dessine un ellipse

glTranslate

glPushMatrix()

Dessine un rectangle

glRotate

glTranslate

glPopMatrix()

glRotate
A vous de jouer
En utilisant glPushmatrix et glPopmatrix dessiner
le robot suivant
y

25

30

x
Les matrices de projection
PROJECTIONS

Parallèles
Perspectives

1 point de fuite

Orthogonales
2 points de fuite
Obliques
3 points de fuite Vues dessin industriel

Perspective Cavalière
Projections axonométriques
Cabinet à 45°
Isométrique

Cabinet à 30°
Dimétrique

Trimétrique
Types de projection sur OpenGL
• OpenGL propose deux types de projection:
• Projection orthogonale

• Projection en perspective
Matrice de Projection orthogonale
(r,t,-n)
• l ≤ x ≤ r, b ≤ y ≤ t ,n ≤ - z ≤ f

(L,b,-f)

(1,1,1)

• − 1 ≤ x’ ≤ 1, − 1 ≤ y’ ≤ 1, − 1 ≤ z’ ≤ 1
(-1,-1,-1)

• x’(l)=-1 et x’(r)= 1 avec x’=ax+b


Matrice de Projection en perspective

Vous aimerez peut-être aussi