La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

GRAPHISME PAR ORDINATEUR

Présentations similaires


Présentation au sujet: "GRAPHISME PAR ORDINATEUR"— Transcription de la présentation:

1 GRAPHISME PAR ORDINATEUR
SIF-1032

2 Contenu du cours 6 Transformation et animation de plusieurs modèles 3D avec XNA Chargement des modèles 3D (modèle multi-mesh) Création des matrices de transformation Animation des modèles Voir le tutoriel: Affichage de triangles Tampon de sommets Tampon d’indices (cube de couleur)

3 Transformation et animation de plusieurs modèles 3D avec XNA
Création des variables d’instance et initialisation des matrices world, view et projection (perspective) permettant l’animation d’un hélicoptère (dans la classe game) Chargement du modèle (multi-mesh) dans la méthode LoadContent()

4 Transformation et animation de plusieurs modèles 3D avec XNA
Mise-à-jour des variables de transformation de modèles dans la méthode Update() Animation des modèles (voir la méthode DrawModel())

5 Transformation et animation de plusieurs modèles 3D avec XNA
Animation des modèles (méthode DrawModel()) Les transformations de chaque modèle 3D (mesh) sont stockées dans la matrice meshWorldMatrix[] model.Meshes.Count donne le nombre de meshes composant le modèle 3D model.Meshes[index] donne accès à la mesh indexée par l’indice index Meshes[0] : fuselage Meshes[1] : rotor principal Meshes[2] : rotor arrière La matrice world découle de la transformation de la mesh relative à son parent, suivie de la transformation de la mesh elle-même et de la transformation globale (tout le modèle 3D)

6 Transformation et animation de plusieurs modèles 3D avec XNA
Animation des modèles (méthode Draw())

7 Transformation et animation de plusieurs modèles 3D avec XNA
Animation des modèles (méthode Draw()) La transformation du modèle 3D (mesh) de la matrice meshWorldMatrix[0] appliquée au fuselage (translation de (0, 0,0)) La transformation du modèle 3D (mesh) de la matrice meshWorldMatrix[1] appliquée au rotor principal (rotation par rapport à l’axe y) La transformation du modèle 3D (mesh) de la matrice meshWorldMatrix[2] appliquée au rotor arrière (translation de (0, -0.25, -3.4) pour placée le rotor à l’origine suivie d’une rotation par rapport à l’axe x, suivie d’une translation de (0, 0.25, 3.4) pour replacer le rotor à sa place

8 Transformation et animation de plusieurs modèles 3D avec XNA
Animation des modèles

9 Transformation et animation de plusieurs modèles 3D avec XNA
Animation des modèles 9

10 Transformation et animation de plusieurs modèles 3D avec XNA
Animation des modèles (sans la transformation: mesh.ParentBone.Transform 10

11 Affichage de triangles
Ajout de variables d’instance permettant la gestion des triangles Création de notre propre objet BasicEffect Création d’un objet VertexBuffer qui contiendra les sommets des triangles

12 Affichage de triangles
Instanciation des objets dans LoadContent() Instanciation de l’objet BasicEffect Création et instanciation d’objets VertexPositionColor[] pour stocker la position et la couleur de chaque sommet Instanciation de l’objet VertexBuffer qui contiendra les sommets des triangles

13 Affichage de triangles
Affichage du triangle dans Draw() Initialisation de l’objet BasicEffect (matrices de tranformation et vertex coloring) La liste des sommets est passée à la carte graphique par le méthode SetVertexBuffer(vertexBuffer) La méthode DrawPrimitives() spécifie le type de primitive (triangle list) à afficher en mode rasterized

14 Affichage de triangles
Affichage du triangle dans Draw()

15 Affichage de triangles (tétrahèdre)
Affichage de triangles: Ajout dans la classe Game1

16 Affichage de triangles (tétrahèdre)
Affichage de triangles: liste de sommets dans LoadContent()

17 Affichage de triangles (tétrahèdre)
Affichage de triangles: Changement de la vue dans Update()

18 Affichage de triangles (tétrahèdre)
Affichage de triangles dans la méthode Draw()

19 Affichage de triangles (tétrahèdre)
Affichage de triangles dans la méthode Draw()

20 Affichage de triangles (liste d’indices: cube)
Une liste d’indices permet de spécifier des triangles sans avoir à générer la liste complète des sommets (ex: cube => 12 triangles X 3 sommets = 36 sommets VS 8 sommets et 12 triangles spécifiés à partir d’une liste d’indices dans la tables des sommets. Ajout des variable d’instance dans la classe Game1

21 Affichage de triangles (cube)
Instanciation et initialisation de la liste de sommets et d’indices dans la méthode LoadContent()

22 Affichage de triangles (cube)
Instanciation et initialisation de la liste de sommets et d’indices dans la méthode LoadContent()…

23 Affichage de triangles (cube)
Affichage dans la méthode Draw() # triangles # sommets

24 Affichage de triangles (cube)
Affichage dans la méthode Draw()

25 Affichage de triangles (cube)
Affichage dans la méthode Draw() 25

26 Constitution des équipes
Projet de session Constitution des équipes Choix du projet (animation, image de synthèse, objets impliqués) Choix du modèle de représentation des objets Répartition initiale des tâches (important) Premier échéancier (28 février 2017) objets modélisés visualisation des objets animation simple dans l’espace


Télécharger ppt "GRAPHISME PAR ORDINATEUR"

Présentations similaires


Annonces Google