Académique Documents
Professionnel Documents
Culture Documents
Transformations 2D et 3D
Animation 2D et 3D
Simulation d’éclairage 3D
PROGRAMMATION GRAPHIQUE 2D-3D - AMEL TILOUCHE - MDW4 2
INTRODUCTION
Programmation Graphique
Applications de la PG
Principe général
OpenGL et WebGL
Processus de PG
Pipeline Graphique
• Types d’images
◦ Dessins/Peintures
◦ Photographies
◦ Images de synthèse
◦ Automobile
◦ Architecture
Visualisation d’informations
◦ Cartographie
◦ Données statistiques
◦ Imagerie médicale
o Jeux vidéo
Interfaces Homme-Machine
o Modèles de fenêtrage
o Menus, icônes, boutons, barres de défilements, …
Réalité virtuelle
Algorithmes Image
Modèle de Synthèse affichée
2D/3D
d’images à l’écran
Algorithmes Image
Modèle de Synthèse affichée
2D/3D
d’images à l’écran
Constitué par :
◦ Des primitives : points, lignes, polygones 2D, courbes, primitives 3D, …
Algorithmes
Image
Modèle de Synthèse affichée
2D/3D
d’images à l’écran
Algorithmes Image
Modèle de Synthèse affichée
2D/3D
d’images à l’écran
API
Graphique
Application 2D/3D GPU
Interaction
Image/vidéo synthétisée
PROGRAMMATION GRAPHIQUE 2D-3D - AMEL TILOUCHE - MDW4 23
Processus de PG
Représentation d’une scène 2D/3D par des
Modélisation structures de données en utilisant ses
propriétés géométriques et photométriques
Projection
& Clipping
Fenêtre de vue
33
Projection
Rastérisation & Clipping
Fenêtre de vue
34
Fragment Projection
Shader Rastérisation & Clipping
(Frame Buffer)
Fenêtre de vue
35
Fragment Projection
Shader Rastérisation & Clipping
(Frame Buffer)
Fenêtre de vue
Opérations sur 36
les fragments
(Frame Buffer) Les fragments peuvent subir des
opérations par exemple l’application
d’une texture.
PROGRAMMATION GRAPHIQUE 2D-3D - AMEL TILOUCHE - MDW4 36
(x, y) ou (x, y, z)
Entrée Geometry Shader
Vertex
(Description des Assemblage des
Shader
Pipeline graphique
primitives 2D/3D en primitives
sommets)
Fragment Projection
Shader Rastérisation & Clipping
(Frame Buffer)
Fenêtre de vue
Opérations sur 37
Formes basiques 2D
Primitives WebGL
P(x, y)
triangle.html
Varyings
Input Input
Fragment Shader
Frame Buffer
PROGRAMMATION GRAPHIQUE 2D-3D - AMEL TILOUCHE - MDW4 46
Canvas HTML et Contexte WebGL
Canvas HTML 5 (index.html):
<body>
<canvas width = "570" height = "570" id = "mon_Canvas"></canvas>
</body>
Contexte WebGL en JS:
Code graphique
Code hôte
= shaders
Utilité :
• Alléger la charge du processeur
• Rapidité d’exécution
Deux types :
• Vertex Shader
• Fragment Shader
PROGRAMMATION GRAPHIQUE 2D-3D - AMEL TILOUCHE - MDW4 49
Vertex shader
Génère des coordonnées dans l'espace de
projection (volume de clipping).
Est appelé une fois par vertex. Chaque fois qu’il est
exécuté la variable globale gl_Position doit être
renseignée avec des coordonnées.
Est appelé une fois par pixel. Chaque fois qu’il est
exécuté la variable globale gl_FragColor doit être
renseignée avec une couleur.
Deux types:
• ARRAY_BUFFER : utilisé pour stocker les coordonnées ou les couleurs des vertex
d’un objet.
• ELEMENT_ARRAY_BUFFER : utilisé pour stocker les indices des vertex des autres
VBO à utiliser pour dessiner un objet.
VBO
des
coordonnées
VBO
des
indices
Déclaration de varying
dans le code source
du fragment shader
carre.html