Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
GRAPHISME PAR ORDINATEUR
SIF-1032
2
Contenu du cours 4 Pipeline de visualisation d’OpenGL sur Unity
Transformations de visualisation OpenGL Références:
3
Pipeline de visualisation d’OpenGL sur Unity
Cet outil développé dans Unity permet de décrire la pipeline de transformations 3D utilisées dans OpenGL et Unity pour passer d’un système de coordonnées à l’autre pour ainsi permettre l’affichage d’une image de la scène à partir des objets 3D dont les sommets exprimés dans le système de coordonnées du monde sont projetés dans une image dont le système de coordonnées est 2D. Permet aussi de comprendre les transformations 3D pouvant être implémentées dans un vertex shader (OpenGL) et de simuler et visualiser ces transformations 3D dans un environnement facilement modifiable.
4
Pipeline de visualisation d’OpenGL sur Unity
Les cube blancs sont les “game objects” et représentent les sommets qui pourraient être passés au vertex shader. Les sommets dans cette application ne subissent pas de transformations dans le système de coordonnées du monde. Mais ce genre de transformations 3D du monde pourraient être ajoutées en modifiant les scripts associés à ces cubes. Le “transform manager” héberge le script créant les “game objects” (cubes) représantant les sommets transformés géométriquement par les transformations de visualisation (view), de projection et de viewport.
5
Pipeline de visualisation d’OpenGL sur Unity
6
Pipeline de visualisation d’OpenGL sur Unity
7
Pipeline de visualisation d’OpenGL sur Unity
La propriété Scale permet l’ajustement de l’échelle des objets 3D (game objects) générés. La transformation de caméra (Transform Camera) permet la gestion des matrices de visualisation (view) et de projection. D’autres objets 3D peuvent être ajoutés à la liste de sommets pour aussi voir l’effet des transformations de chaque étape de la pipeline. Les propriétés booléennes de visualisation des transformations View, Projection, et Viewport sont utilisées pour observer ou non les étapes de transformation.
8
Pipeline de visualisation d’OpenGL sur Unity
9
Pipeline de visualisation d’OpenGL sur Unity
En exécutant le script, des sphères orange sont ajoutées à la scène. Elles représentent les sommets après avoir été transformés par la matrice de visualisation de la caméra. La matrice de visualisation avec Unity est exprimée par la propriété “worldToCameraMatrix” de la caméra: cette matrice view transforme les sommets exprimés en coordonnées du monde en coordonnées de caméra (eye or view coordinates). Les sommets plus proches de la caméra ont une composante z plus petite et plus grande si éloignées.
10
Pipeline de visualisation d’OpenGL sur Unity
11
Pipeline de visualisation d’OpenGL sur Unity
12
Pipeline de visualisation d’OpenGL sur Unity
13
Pipeline de visualisation d’OpenGL sur Unity
14
Pipeline de visualisation d’OpenGL sur Unity
Note importante: La position des sphères orange observées ne représentent pas exactement le résultat de la transformation de visualisation en 4D: Une division homogène doit être effectuée sur le vecteur homogène 4D (1X4) pour le transformer en un vecteur 3D (1X3) qui correspond à la coordonnée de la sphère 3D dans la scène Sachant que le facteur homogène w=1, ce facteur (4ième dimension) peut alors être ignoré et les coordonnées de la sphères peuvent être déduites (x/w, y/w, z/w => x, y, z quand w=1).
15
Pipeline de visualisation d’OpenGL sur Unity
Note importante: La position des sphères orange observées ne représentent pas exactement le résultat de la transformation de visualisation en 4D: 3. Pour chacun des sommets transformés, il est possible d’observer leurs coordonnées 4D dans la section propriété “Homogeneous Vertex” et la coordonnées 3D dans la propriété position qui représentent la position des sprères dans la scène 3D.
16
Pipeline de visualisation d’OpenGL sur Unity
Note importante: La position des sphères orange observées ne représentent pas exactement le résultat de la transformation de visualisation en 4D: 3. Pour chacun des sommets transformés, il est possible d’observer leurs coordonnées 4D dans la section propriété “Homogeneous Vertex” et la coordonnées 3D dans la propriété position qui représentent la position des sprères dans la scène 3D.
17
Pipeline de visualisation d’OpenGL sur Unity
18
Pipeline de visualisation d’OpenGL sur Unity
19
Pipeline de visualisation d’OpenGL sur Unity
La configuration du “transform manager” permet la visualisation des transformations de visualisation et de projection. Il en résulte un système de coordonnées 4D qui représente l’espace de découpage (clip space). De cet espace il est possible de déduire une liste de sommets à afficher, sommets produits par le vertex shader (OpenGL). Le découpage est effectué dans ce système de coordonnées en comparant les coordonnées x, y, z à w. Chaque sommet avec des composantes x, y, ou z > w ou < -w sont découpé. Les sommets qui clignotent sont ceux qui sont découpés.
20
Pipeline de visualisation d’OpenGL sur Unity
Ensuite, une autre transformation permet de faire passer les sommets ayant passés la phase de découpage dans un espace 3D normalisé du dispositif d’affichage (normalized device coordinate system) et ce en effectuant une division des coordonnées par le facteur homogène w. Ce système de coordonnées est en fait une transformation du frustum sous la forme d’un volume de visualisation canonique (parallépipède) borné par -1, 1 sur chaque axe. Ce volume est représenté par un cube en fil de fer. Les sommets coupés étant hors de ce volume.
21
Pipeline de visualisation d’OpenGL sur Unity
22
Pipeline de visualisation d’OpenGL sur Unity
23
Pipeline de visualisation d’OpenGL sur Unity
24
Pipeline de visualisation d’OpenGL sur Unity
25
Pipeline de visualisation d’OpenGL sur Unity
26
Pipeline de visualisation d’OpenGL sur Unity
Une dernière transformation permet de projeter les sommets présents dans le volume de visualisation canonique (volume normalisé) dans le plan du viewport. Cet outil fait une mise à l’échelle (scale) des coordonnées normalisées de dispositif (normalized device coordinates) pour quelles puissent s’insérer dans les dimensions du viewport en largeur et hauteur. Cette transformation dans un espace 2D, revient à éliminer la composante z des coordonnées normalisées . Les coordonnées résultantes se retrouvent alors dans le viewport.
27
Pipeline de visualisation d’OpenGL sur Unity
28
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.