Exercice 3 — Pipeline Différence Vertex vs Fragment Shader ?
Expliquer pourquoi la rasterisation est Correction
nécessaire.
Vertex : sommets
Correction Fragment : pixels
Les GPU manipulent triangles → écran = Exercice 1
pixels
Q1
rasterisation = conversion géométrie →
pixels Pipeline moderne :
Exercice : A. fixe
B. programmable
Q1 C. hybride
D. CPU
Produit scalaire négatif signifie :
Réponse : B, C
A. angle aigu
B. angle obtus Q2
C. lumière nulle
D. lumière max Rasterisation transforme :
Réponse : B, C A. pixels → triangles
B. triangles → pixels
Q2 C. lumière → pixels
D. matrices
Lambert dépend de :
Réponse : B
A. angle
B. distance Q3
C. normale
D. texture Pourquoi un objet peut disparaître ?
Réponse : A, C Correction
Exercice • clipping
Pixels : • hors frustum
• A z=0.3 • profondeur
• B z=0.7 • back-face culling
Correction Énoncé
Donner les étapes du pipeline graphique et
✔ A visible
expliquer le rôle de chacune.
Exercice 4
Correction
Pipeline : Projection de (3,3,3) avec d=3.
1. Modélisation Correction
2. Transformation (modèle → monde (3,3)
→ caméra)
Q5
3. Projection
Expliquer le rôle du Vertex Shader et
4. Clipping Fragment Shader.
5. Rasterisation Correction
6. Fragment processing ✔ Vertex Shader
7. Framebuffer • transforme les sommets
Q1 ✔ Fragment Shader
Expliquer la différence entre projection • calcule couleur pixel
orthographique et perspective.
Q1
Correction
Quelle est la dimension d’une matrice de
• Orthographique : pas de transformation 3D ?
perspective, tailles constantes
A. 2×2
• Perspective : effet de profondeur B. 3×3
Q2 C. 4×4
D. 3×4
Différence entre rasterisation et ray tracing
? Q2
Correction Que fait la fonction glViewport(a,b,c,d) ?
• Rasterisation : rapide (temps réel) A. définit la projection
B. définit la zone d’affichage
• Ray tracing : réaliste (lumière C. définit la lumière
physique) D. applique une rotation
Q3 Q3
Rotation du point (1,0,0) autour axe Z de Une rotation autour d’un point P se fait :
90°.
A. directement avec glRotate
Correction B. translation → rotation → translation
C. rotation seule
(0,1,0)
D. projection
Q4
Q4
Quels sont les composants de l’éclairage ? A. cartésien
B. homogène
A. diffuse C. polaire
B. spéculaire D. cylindrique
C. ambiante
D. toutes les réponses CORRECTION EXERCICE 1
Q5 1→C
2→B
Quel est le rôle du Z-buffer ? 3→B
A. gérer la lumière 4→D
B. gérer la profondeur 5→B
C. gérer la couleur 6→B
D. gérer les textures 7→B
8→B
Q6 9→B
Exercice 1
Quelle fonction donne une couleur à un
sommet ? Une matrice de transformation homogène
3D :
A. glVertex()
B. glColor3f() A. est 3×3
C. glMaterial() B. est 4×4
D. glTranslate() C. permet translation
D. ne permet pas rotation
Q7
Q2
Différence entre glColor3f et glColor3d ?
Ordre correct pour tourner autour d’un
A. aucune
point P :
B. float vs double
C. RGB vs RGBA A. Rotation → Translation
D. 2D vs 3D B. Translation → Rotation
C. Translation(-P) → Rotation →
Q8
Translation(+P)
Un objet hors du viewport : D. Rotation seule
A. est affiché Q3
B. est ignoré
Le clipping se fait :
C. provoque une erreur
D. est dupliqué A. avant projection
B. après projection
Q9
C. avant rasterisation
Système utilisé pour transformations D. après rasterisation
matricielles ?
Q4
Si Z-buffer est mal initialisé : Dans un pipeline moderne (GPU), quelles
étapes sont programmables avec OpenGL
A. rien ne s’affiche ?
B. artefacts
C. objets inversés A. Vertex Shader
D. pas d’impact B. Rasterisation
C. Fragment Shader
Q5 D. Clipping
gl_Position est calculé dans : Q2
A. Fragment Shader Un vecteur normal doit être :
B. Vertex Shader
C. CPU A. normalisé
D. Geometry Shader B. parallèle à la surface
C. perpendiculaire à la surface
Q6 D. quelconque
Une projection perspective : Q3
A. conserve parallélisme Dans le Z-buffer :
B. introduit fuite
C. dépend de z A. grande valeur = proche
D. indépendante de z B. petite valeur = proche
C. dépend du système
Correction + pièges D. inutile
Q1 → B, C Q4
Q2 → C
Q3 → B, C Une transformation homogène permet :
Q4 → B, C
Q5 → B A. translation
Q6 → B, C B. rotation
Exercice 3 C. scaling
D. projection
Expliquer pourquoi la rasterisation est
nécessaire. Q5
Correction Dans une projection perspective :
Les GPU manipulent triangles → écran = A. x dépend de z
pixels B. y dépend de z
C. z dépend de x
rasterisation = conversion géométrie → D. indépendant de z
pixels
CORRECTION
Exercice :
Q1 → A, C
Q1 Q2 → A, C
Q3 → B Le fragment shader agit sur :
Q4 → A, B, C, D A. les sommets
Q5 → A, B B. les primitives
C. les fragments
D. les textures uniquement
Q1
Q7
Le pipeline graphique transforme :
A. une image en primitives Le Z-buffer permet de :
B. des primitives géométriques en pixels A. stocker les couleurs
C. des pixels en objets 3D B. gérer la visibilité
D. des textures en vertices C. compresser l’image
D. accélérer le GPU
Q2
Q8
Le clipping intervient :
A. après rasterisation Dans le Z-buffer :
B. avant rasterisation A. une valeur faible correspond à un objet
C. après shading éloigné
D. dans le framebuffer B. une valeur élevée correspond à un objet
proche
Q3 C. une valeur faible correspond à un objet
La projection perspective : proche
A. conserve le parallélisme D. il stocke des couleurs
B. dépend de la profondeur Q9
C. conserve les distances
D. est linéaire Le framebuffer contient :
A. les sommets
Q4 B. les matrices
La projection orthographique : C. l’image finale
A. dépend de z D. les textures
B. conserve les angles Q10
C. conserve le parallélisme
D. introduit une distorsion La rasterisation consiste à :
A. transformer les sommets
Q5 B. convertir les primitives en pixels
Le rôle du vertex shader est de : C. projeter les objets
A. colorer les pixels D. appliquer les textures
B. transformer les sommets (…)
C. gérer la mémoire
D. calculer les textures Je continue directement avec toutes les
questions pour que ce soit utilisable tel
Q6 quel.
Q11
Une matrice de transformation 3D Q17
homogène est de dimension :
A. 2×2 Le modèle de Phong permet de calculer :
B. 3×3 A. uniquement la diffusion
C. 4×4 B. uniquement la réflexion spéculaire
D. 5×5 C. diffusion + spéculaire
D. uniquement la couleur
Q12
Q18
La translation en 3D nécessite :
A. coordonnées cartésiennes Le Gouraud shading :
B. coordonnées homogènes A. interpole les couleurs
C. coordonnées polaires B. interpole les normales
D. coordonnées cylindriques C. est plus précis que Phong
D. est plus rapide que Phong
Q13
Q19
Les transformations géométriques :
A. sont toujours commutatives Le back-face culling permet :
B. dépendent de l’ordre A. d’accélérer le rendu
C. sont toujours inversibles B. d’ajouter des détails
D. ne changent jamais la forme C. d’éliminer les faces invisibles
D. de modifier la géométrie
Q14
Q20
Le produit scalaire entre deux vecteurs
permet de : Le viewport transforme :
A. calculer une normale A. coordonnées monde → caméra
B. mesurer un angle B. coordonnées écran → pixels
C. obtenir un vecteur C. coordonnées normalisées → écran
D. déterminer la perpendicularité D. coordonnées objets → monde
Q15 Q41
Une normale à une surface est : Soit le point 𝑃(1,2,3). Appliquer une
A. parallèle à la surface translation 𝑇(2, −1,0).
B. perpendiculaire à la surface Q42
C. dépendante de la lumière
D. indépendante de la géométrie Appliquer une rotation de 90° autour de
l’axe Z au point (1,0,0).
Q16
Q43
Le modèle de Lambert dépend :
A. de la position de la caméra Calculer la norme du vecteur (1,2,2).
B. de l’angle lumière-surface
Q44
C. de la distance caméra
D. du matériau uniquement Normaliser le vecteur (0,3,4).
Q45 Q56
Calculer le produit scalaire entre (1,0,0) et Expliquer le rôle du vertex shader.
(0,1,0).
Q57
Q46
Expliquer le rôle du fragment shader.
Calculer l’angle entre deux vecteurs
orthogonaux. Q58
Q47 Expliquer la différence entre Gouraud et
Phong.
Déterminer si les vecteurs (1,2,3) et (2,4,6)
sont colinéaires. Q59
Q48 Définir le modèle d’éclairage de Lambert.
Calculer le produit vectoriel de (1,0,0) et Q60
(0,1,0). Définir la réflexion spéculaire.
Q49 Q61
Déterminer la normale d’un triangle donné Pourquoi normalise-t-on les vecteurs en
par 3 points. éclairage ?
Q50 Q62
Soit une projection perspective avec Qu’est-ce que le frustum de vision ?
distance d. Donner la formule.
Q63
Q51
Que devient un point derrière la caméra ?
Expliquer pourquoi la projection
perspective déforme les objets. Q64
Q52 Pourquoi utilise-t-on des coordonnées
homogènes ?
Donner la différence entre clipping et
culling. Q65
Q53 Expliquer l’importance de l’ordre des
transformations.
Expliquer le rôle du Z-buffer dans le rendu.
Q66
Q54
Donner un exemple de transformation non
Pourquoi initialise-t-on le Z-buffer à commutative.
l’infini ?
Q67
Q55
Donner les étapes du pipeline graphique.
Expliquer le rôle de la matrice de Que se passe-t-il si on oublie
projection. [Link]() ?
Q68 Q89
Expliquer la différence entre coordonnées Expliquer le rôle de [Link]().
monde et écran.
Q90
Q69
Pourquoi gère-t-on les événements dans
Donner les avantages du GPU. Pygame ?
Q70 Q91
Expliquer le parallélisme dans le pipeline Expliquer la différence entre CPU et GPU.
graphique.
Q92
Q81
Pourquoi le rendu est-il accéléré par le
Expliquer pourquoi glBegin() est obsolète GPU ?
dans OpenGL moderne.
Q93
Q82
Qu’est-ce qu’un double buffering ?
Donner le rôle de glVertex.
Q94
Q83
Expliquer le phénomène de flickering.
Expliquer l’ordre d’application des
transformations dans OpenGL. Q95
Q84 Définir le FPS.
Pourquoi utilise-t-on glLoadIdentity() ? Q96
Q85 Expliquer l’impact de la complexité de
scène sur le FPS.
Expliquer le rôle des shaders.
Q97
Q86
Qu’est-ce qu’un shader programmable ?
Pourquoi OpenGL moderne utilise-t-il des
shaders ? Q98
Q87 Expliquer le rôle des textures.
Expliquer le rôle de la boucle principale en Q99
Pygame. Expliquer le mapping de texture.
Q88 Q100
Proposer une architecture simple de moteur C
3D en Python. ✔ Petite valeur z = objet proche.
correction Q9
Q1 C
✔ Framebuffer = image finale.
B
✔ Le pipeline transforme des primitives Q10
(triangles) en pixels. B
Q2 ✔ Rasterisation = conversion en pixels.
B Q11
✔ Le clipping se fait avant rasterisation C (4×4)
pour éviter des calculs inutiles.
✔ Utilisée en coordonnées homogènes.
Q3
Q12
B
B
✔ La perspective dépend de z
✔ Nécessite coordonnées homogènes.
(profondeur).
Q13
Q4
B
C
✔ L’ordre est critique.
✔ L’orthographique conserve le
parallélisme. Q14
Q5 B et D
✔ Produit scalaire → angle et
B
perpendicularité.
✔ Le vertex shader transforme les
sommets. Q15
Q6 B
C ✔ Normale ⟂ surface.
✔ Le fragment shader agit sur les Q16
fragments (pixels candidats).
B
Q7
✔ Lambert dépend angle.
B
Q17
✔ Le Z-buffer gère la visibilité.
C
Q8
✔ Diffuse + spéculaire.
Q18 Q41
A et D P(1,2,3) + T(2,-1,0) = (3,1,3)
✔ Gouraud interpole couleurs, plus rapide Q42
mais moins précis.
Rotation 90° autour Z :
Q19 (1,0,0) → (0,1,0)
A et C Q43
✔ Accélération + suppression faces
invisibles. Norme = √(1²+2²+2²) = 3
Q20 Q44
(0,3,4) → norme = 5
C
Normalisé = (0, 3/5, 4/5)
✔ Coordonnées normalisées → écran.
Q45
Q21–30
(1,0,0)·(0,1,0) = 0
21 B
22 A Q46
23 C Vecteurs orthogonaux → angle = 90°
24 D
Q47
25 B
26 A (2,4,6) = 2×(1,2,3)
27 C
28 A Q48
29 A
(1,0,0) × (0,1,0) = (0,0,1)
30 D
Q49
Q31–40
Normale = produit vectoriel des côtés
31 C
32 A Q50
33 C Projection perspective :
34 A
𝑥𝑑 ′ 𝑦𝑑
35 D 𝑥′ = ,𝑦 =
𝑧 𝑧
36 A
37 C Q51
38 B
✔ Les objets lointains paraissent plus petits
39 A (division par z)
40 B
Q52
✔ Clipping = coupe géométrie Q64
✔ Culling = élimine faces
✔ Permet translation matricielle
Q53
Q65
✔ Gère visibilité pixel par pixel
✔ Non commutativité
Q54
Q66
✔ Initialisé à ∞ pour accepter le premier
✔ Rotation puis translation ≠ inverse
pixel
Q67
Q55
✔ Transforme 3D → 2D
✔ Étapes :
Application → Géométrie → Rasterisation Q68
Q56 ✔ Monde ≠ écran
✔ Transforme sommets + calculs associés Q69
Q57 ✔ Parallélisme massif
✔ Calcule couleur finale pixel Q70
Q58 ✔ Pipeline parallèle GPU
✔ Gouraud : interpole couleurs Q81
✔ Phong : interpole normales
✔ OpenGL moderne → shaders
Q59
Q82
✔ Lambert = diffusion dépend angle
✔ Définit sommet
Q60
Q83
✔ Réflexion miroir dépend vue
✔ Ordre inversé (pile matrices)
Q61
Q84
✔ Pour obtenir cos(angle correct)
✔ Reset matrice
Q62
Q85
✔ Volume de vision (pyramide tronquée)
✔ Programmes GPU
Q63
Q86
✔ Invisible (clipping)
✔ Flexibilité + performance
Q87 ✔ Mapping texture → coordonnées UV
✔ Boucle infinie pour animation (Pygame)
Q88 Q100
✔ Rien affiché ✔ Architecture :
Q89
✔ Limite FPS
Q90
✔ Interaction utilisateur
Q91
✔ CPU = logique / GPU = calcul
graphique
Q92
✔ GPU parallèle
Q93
✔ Double buffer = éviter scintillement
Q94
✔ Flickering = rendu instable
Q95
✔ FPS = images/seconde
Q96
✔ Complexité ↑ → FPS ↓
Q97
✔ Shader programmable GPU
Q98
✔ Image appliquée sur surface
Q99