Loading
Notes d'étude
Study Reminders
Support
Text Version

Fenêtre à afficher-Transformation du port

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Bonjour et bienvenue à la conférence numéro 20 dans le cours Computer Graphics. Nous discutons actuellement du pipeline graphique, c'est-à-dire la série d'étapes ou d'étapes à réaliser pour convertir une description 3D d'une scène à une image 2D sur un écran d'ordinateur ou sur cet écran que nous voyons.Donc, il y a cinq étapes, comme nous avons déjà mentionné la première étape de la représentation des objets, la modélisation des transformations de la deuxième étape, l'éclairage de la troisième étape, ces trois étapes que nous avons déjà discutées complètement. Actuellement, nous sommes à la quatrième étape de l'affichage du pipeline, et il y aura une autre étape de la cinquième étape qui est la conversion d'analyse.Maintenant, la quatrième étape, le pipeline de visualisation, contient un ensemble de sous-étapes. La première sous-étape est une transformation d'une description de scène coordonnée du monde 3D à une description de scène de coordonnées 3D. Cette coordonnée de vue est également appelée système de coordonnées de l'oeil ou de la caméra. Et cette transformation est généralement appelée transformation d'affichage 3D, que nous avons déjà discutée lors de nos conférences précédentes.La deuxième étape est la projection, donc nous projetons la description de la coordonnée de la vue 3D sur le plan de la vue.Et cette projection est effectuée par une transformation généralement appelée transformation de projection. Nous en avons également discuté lors de nos conférences précédentes.Il y a une troisième étape dans laquelle nous réalisons un mappage ou une transformation qui provient du plan de vue que nous mappons vers un port d'affichage défini sur le système de coordonnées de l'unité. Il s'agit de la fenêtre de mappage du port d'affichage où la fenêtre se trouve sur le plan de vue, et le port d'affichage se trouve sur le système de coordonnées de l'unité. Et cette troisième étape que nous allons discuter aujourd'hui.Maintenant, avant de discuter du mappage, nous discuterions d'un aspect important de la transformation de projection dont nous n'avons pas discuté lors de notre dernière conférence, c'est-à-dire l'idée du volume de vue canonique. Voyons ce que signifie ce volume.Comme nous l'avons mentionné précédemment, il y a une étape importante dans le pipeline graphique. En fait, cela fait partie de la quatrième étape dont nous discutons actuellement qui est en train de voir le pipeline. Ici, ce que nous faisons est ce que les objets sont en dehors du volume de vue sont coupés. Maintenant, cette étape est appelée écrêtage. Et nous le faisons pour supprimer tous les objets qui se trouvent à l'extérieur du volume de vue.Nous savons déjà ce qu'est un volume de vue, c'est-à-dire une région dans l'espace 3D que nous voulons projeter. Maintenant, si elle implique beaucoup d'objets qui sont en partie en dehors du volume de vue et en partie à l'intérieur ou dans de nombreux objets qui se trouvent en dehors du volume de vue, alors nous avons besoin d'un grand nombre de calculs pour déterminer ceux qui veulent découper.Et cela implique la surface de l'objet, voir les calculs du point d'intersection des limites du volume. Ainsi, lorsque les surfaces d'objet sont en intersection avec les limites du volume de vue. Par conséquent, si le nombre estgrand, ces calculs de limites seront importants, et ces calculs de limites ne sont pas faciles. Ils impliquent beaucoup d'opérations à virgule flottante et, par conséquent, la complexité est élevée.Maintenant, si nous devons effectuer de tels calculs d'intersection avec le volume de vue arbitraire où nous n'avons pas de contrôle sur les plans aux limites du volume de vue, alors cette complexité n'est qu'à être plus. Donc, on peut s'attendre à un grand nombre de calculs, ce qui va probablement prendre beaucoup de temps pour réduire la qualité de l'image alors que nous allons voir le flicker.Afin d'éviter cela, nous pouvons utiliser une idée simple, c'est-à-dire que nous pouvons trouver une définition standardisée du volume de vue, quel que soit le volume de vue réel. Nous pouvons toujours le convertir en un volume de vue standardisé ou un volume de vue standard. Il s'agit d'un volume de vue canonique ou CVV en bref.Il s'agit essentiellement d'une représentation standard du volume de vue, quelle que soit la nature réelle du volume. N'oubliez pas qu'il existe deux types de volume de vue. L'un est pour la projection parallèle, c'est-à-dire un tube rectangulaire parallèle, et l'autre est pour une projection de perspective qui est un tronc de frustation. Maintenant, ces deux systèmes peuvent être convertis en un format standard que nous appelons le volume de vue canonique, ce qui rend les calculs d'intersection standard et plus faciles à implémenter.Ainsi, pour la projection parallèle et la projection de perspective, le volume de vue standard est identique. Cependant, la façon d'arriver au volume normalisé ou canonique pour les deux projections pour les deux types de projections est différente. Alors, commençons par la projection parallèle. Par conséquent, pour la projection parallèle, le volume de vue canonique que nous définissons est un cube dans une plage spécifiée, qui est de -1 à 1 avec tous les trois axes X, Y et Z. Et comme je l'ai déjà mentionné, tout volume de vue arbitraire peut être transformé en CVV simplement par l'opération de mise à l'échelle.Donc, supposons qu'il s'agit d'un volume de vue arbitraire défini en termes de ses plans de sondage, six plans, de sorte que nous pouvons toujours la mapper à l'échelle de cette plage le long de la direction X Y Z et, par conséquent, nous obtenons le volume de vue canonique.En cas de projection de perspective, cette transformation est un peu plus compliquée car Ici nous avons affaire à une vue frustum et nous avons besoin de le convertir en un volume de vue canonique pour une production parallèle qui est le tube rectangulaire rectangulaire où l'étendue X, Y et Z des plans de sondage se trouvent à l'intérieur d'une plage spécifiée.Donc, ce que nous pouvons faire ici, nous allons juste parler de l'idée plutôt que d'entrer dans les détails, nous pouvons convertir cette vue arbitraire frustum au volume de la vue canonique ici, en appliquant la cisaillage et la mise à l'échelle dans l'ordre. Comme nous pouvons le deviner à partir des chiffres, ce cisaillement est nécessaire pour changer la forme et l'échelle est nécessaire pour changer la taille. Donc, lorsque nous appliquons cela aux transformations sur la vue d'origine, nous obtenons le volume de vue canonique, bien sûr, ici ne va pas entrer dans plus de détails que cette idée de base.Alors, ce que nous avons appris? Que nous définissons un volume de vue et ce volume de vue, nous transformons en un volume de vue canonique de sorte que dans les étapes ultérieures lorsque nous effectuons le découpage, les calculs sont plus faciles à mettre en oeuvre car nous avons affaire à une définition normalisée du volume de vue.(Reportez-vous à la page Heure de la diapositive: 10:14)Revoyez la séquence de transformations que nous réalisons pour projeter un point p dans le monde des coordonnées de la scène à un point sur le plan de la vue. Maintenant, nous avons mentionné que cela revient à prendre une photo qui est de le transférer pour voir le système de coordonnées, puis de prendre une projection. Cependant, plus tôt, nous avons mentionné ces deux étapes.Maintenant, une troisième étape est ajoutée. Tout d'abord, nous transformons le monde, coordonnons le point sur le système de coordonnées de la vue, comme nous en avons discuté lors d'une conférence précédente. Et la prochaine étape n'est pas la projection. A la place, ce que nous faisons est dans cette description de coordonnées de vue, nous définissons un volume de vue, et ce volume de vue est transformé en un   volume de vue canonique. En conséquence, le point est également transformé par l'application du même ensemble de transformations. Par conséquent, l'étape suivante consiste à transformer le point du volume de vue en un point du volume de vue canonique ; ensuite, l'étape finale consiste à effectuer la transformation de projection qui est, projet le point dans le volume de la vue canonique sur le plan de vue.Ainsi, ces trois étapes, une transformation pour afficher la coordonnée, puis la transformation en volume de vue canonique, puis la transformation de projection constituent la séquence à travers laquelle nous projetons un point dans la scène de coordonnées du monde en un point sur le plan de la vue. Mathématiquement ou en notation matricielle que nous suivons, nous pouvons écrire cette série d'étapes comme indiqué ici dans cette expression où cette transformation représente la transformation vers le volume de vue.Celle-ci représente la transformation en volume de vue canonique, et celle-ci représente la transformation de projection. Puisque nous les appliquons en séquence, nous suivons la règle de gauche. Donc, la première transformation pour voir le système de coordonnées, puis la transformation en volume de vue canonique, puis la transformation pour voir le plan par projection.Donc, c'est l'idée de réaliser une projection sur le plan de la vue. Il y a encore un point à noter. Jusqu'à présent, nous avons mentionné que les points 3D de projection sont mappés à 2D. L'implication est que nous supprimons le composant Z ou profondeur. Cependant, on peut noter ici à ce pointque pendant que nous implémenons le pipeline, ce composant de profondeur n'est en fait pas supprimé et pourquoi c'est ainsi?Une opération que nous effectuons dans cette quatrième étape est appelée retrait de surface masquée. Nous parlerons de cette opération en détail lors d'une conférence ultérieure. Le point à noter ici est que cette opération nécessite des informations détaillées. Ainsi, les informations de profondeur après projection ne sont pas supprimées. A la place, ces informations de profondeur d'origine sont stockées dans un espace de stockage distinct, appelé "tampon Z" ou "tampon de profondeur".Ainsi, nous ne supprimons pas les informations de profondeur, bien que nous fasions une projection à la place, nous le stockons séparément dans la mémoire tampon Z ou dans la mémoire tampon de profondeur. Cette information est nécessaire pour effectuer une opération ultérieure appelée retrait de surface masquée, ce qui nous donne un effet réaliste dans une image.(Reportez-vous à la page Heure de la diapositive: 14:56)Ainsi, c'est en bref ce que nous faisons lors de la projection et de la façon dont nous projetons d'une scène internationale coordonnée à un plan de vue. Il y a maintenant une autre étape. Allons à cette étape qui est mappé depuis ce plan de vue vers un port d'affichage de l'espace de l'unité.(voir Heure de la diapositive: 15:21)Par conséquent, ce que nous avons discuté? Nous avons discuté des étapes pour transformer un point de coordonnées mondiales en une fenêtre de découpe sur le plan de vue. Cela signifie une région sur le plan de vue sur lequel nous projetons les objets qui font partie du volume de vue.Maintenant, vous avez également montré qu'il s'agit généralement du plan proche du volume de la vue canonique. (voir Heure de la diapositive: 15:59)Nous pouvons supposer que, pour la simplicité, la fenêtre est à 0 profondeur ou Z égal à 0, c'est-à-dire uniquement pour la simplicité, bien qu'en général, ce n'est pas une exigence absolue.On peut également noter que nous parlons de volume de vue canonique que les domaines X et Y doivent être à l'intérieur d'une plage fixe indépendamment de leur position réelle dans la scène internationale, et à cause de cette région où nous limitons tout au sein d'une plage fixe, ce volume de vue canonique est standardisé et la fenêtre de découpe qui est définie sur le Près du plan du volume de vue canonique est souvent appelé une fenêtre normalisée.Ainsi, ici, nous avons affaire à une fenêtre normalisée dans laquelle l'étendue des valeurs doit se trouver dans une plage prédéfinie.Maintenant, ce plan de vue est en fait un concept abstrait. Par conséquent, la fenêtre de découpage est également un concept abstrait et intermédiaire. Nous ne pouvons pas le voir ; ce que nous voyons à l'écran est quelque chose de différent. Les points qui se trouvent sur la fenêtre de découpe doivent être affichés à l'écran. Mais la scène qui se trouve dans la fenêtre n'a pas besoin d'occuper l'écran entier, par exemple, ici.Supposons que ce rectangle externe définit une scène entière à partir de laquelle nous avons projeté cette partie définie dans la fenêtre de découpage. Maintenant, cette partie peut être affichée sur n'importe quelle région de l'écran et peut être de n'importe quelle taille maintenant la région sur laquelle cette partie est affichée à l'écran elle est appelée viewport.Donc, nous avons deux concepts ici, fenêtre, qui est la même que la fenêtre de découpe, qui est normalisée. Et les objets sont projetés sur cette fenêtre, et nous avons l'autre concept de point de vue, qui est défini dans l'espace de l'appareil par rapport à l'origine et aux dimensions de l'écran. Par conséquent, ce viewport fait référence à une région sur l'espace de l'unité où cette image projetée doit être affichée. Désormais, cette région peut se trouver à n'importe quel emplacement de l'espace de l'unité d'espace et peut être de n'importe quelle taille, quelle que soit la taille de la fenêtre de découpage. Alors, ce dont nous avons besoin? Nous devons mapper cette fenêtre vers le port d'affichage.Ainsi, il faut une transformation supplémentaire pour transférer les points de la fenêtre vers le port d'affichage.Ainsi, voyons comment nous pouvons effectuer cette transformation. Donc ce que nous voulons, supposons que c'est notre fenêtre, et c'est notre point de vue, notez qu'ici nous n'utilisons pas cette gamme normalisée. Nous formulons le problème dans une scène très générique où Wx et Wy peuvent prendre n'importe quelle valeur. Donc, Wx, Wy est un point sur la fenêtre, et nous voulons le mapper à un point sur le viewport Vx, Vy.Alors, comment pouvons-nous faire ça? La première chose est que nous devons maintenir la position relative de ce point par rapport à ses limites, de sorte que la même position relative doit être maintenue dans le viewport, donc si nous voulons maintenir cela, alors nous obtenons des relations comme celle illustrée ici entre les dimensions de la fenêtre et les dimensions du port d'affichage.Maintenant, cette expression peut être simplifiée dans ce formulaire. Ainsi, nous pouvons représenter la coordonnée X du point dans le port d'affichage en fonction de la coordonnée X du point dans la fenêtre et de ces deux constantes, qui sont définies ici en termes de tailles de fenêtre et de vue.Une relation similaire que nous pouvons former entre la coordonnée Y du point dans le viewport et la coordonnée Y du même point dans la fenêtre, formant, les relations d'abord entre les coordonnées y, puis la simplification et la réorganisation pour obtenir cette relation où Vy est la coordonnée Y du point dans le port d'affichage, Wy est la coordonnée Y du point dans la fenêtre.Et ces deux sont Les constantes définies ici en termes de, encore, les tailles de fenêtre et de viewport.Ainsi, à l'aide de ces expressions, nous pouvons en fait former les mesures de transformation comme indiqué ici. Il s'agit donc des mesures permettant de transformer ce point de fenêtre en point de vue.Et nous allons suivre la même règle pour obtenir que le point de conversion multipliera le point d'origine par les mesures de transformation, comme indiqué ici. Notez qu'ici encore, nous avons affaire àle système de coordonnées homogène puisqu'il s'agit de points bidimensionnels, donc nous avons des vecteurs à trois éléments et trois par trois matrices.Et à la fin, nous devons diviser les coordonnées obtenues ici avec le facteur homogène comme indiqué ici, pour obtenir les points transformés. L'approche est semblable à ce que nous avons vu plus tôt. Donc, c'est l'idée de base de la transformation à partir d'un point de la fenêtre ou de la fenêtre de découpe jusqu'à un point du point de vue, qui peut se trouver n'importe où sur l'espace de l'unité.Maintenant, essayons de comprendre les concepts que nous avons passés jusqu'à présent en termes d'exemples.(voir Heure de la diapositive: 24:38)Ainsi, dans notre conférence précédente, nous avons trouvé cet exemple où nous avons mentionné un objet, montré ici et une vue de position de la caméra vers le haut, tout a été mentionné, et nous avons calculé le point central de transformation de l'objet dans le système de coordonnées de vue.Ainsi, nous n'allons pas entrer dans le système. Des détails sur la façon dont nous avons calculé cela à nouveau, il suffit de mentionner le point de transformation. Il s'agit de 0, 0,-1 que nous avons obtenu après l'application de cette transformation d'affichage.Maintenant, supposons que le plan de vue est situé à Z égal à-0,5. Et nous voulons une projection parallèle. Alors, quelle serait la coordination du centre d'objets après la projection? En supposant que le volume de vue est suffisamment grand pour englober l'ensemble de l'objet transformé.Ainsi, notre matrice de transformation de projection parallèle est donnée ici, et nous savons que D est 0,5. Donc, c'est notre matrice de projection parallèle.Donc, si nous utilisons ces matrices et que nous réalisons la multiplication matricielle ici. La matrice de projection et le vecteur de point. Ensuite, nous obtenons ce point comme point projeté sur le plan de la vue. Ici, puisque le facteur homogène est 1, alors notre point est directement obtenu.Maintenant, considérons la projection de perspective. Plus tôt, nous avons envisagé une projection parallèle, que se passera-on si nous considérons maintenant la projection de perspective avec le même plan de vue? Alors, quel serait le nouveau point après projection?Ainsi, les mesures de transformation pour la projection de perspective sont affichées ici. Nous connaissons la valeur de d en remplacement d en cela, nous obtenons nos métriques de projection. Et avec cette matrice, ce que nous faisons?Nous le multiplions avec le vecteur de point comme avant, comme montré ici, donc après la multiplication, nous obtenons ce point de transformation dans un système de coordonnées homogène. Maintenant, notez ici que le facteur homogène n'est pas 1, plus tôt j'ai mentionné que dans la projection, en particulier la projection de perspective, nous obtenons des facteurs homogènes qui ne sont pas 1, donc il nous faut être prudent pour conclure le point final transformé nous devons diviser ce que nous avons avec le facteur homogène. Donc, après la division, nous obtiens ce point, ou c'est le dernier point que nous obtenons après la projection de perspective appliquée sur le point central.Donc, nous avons réalisé la projection. Maintenant, essayons de voir ce qui se passe si nous voulons exécuter cette fenêtre pour visualiser la transformation du port. Supposons maintenant que nous projetons le point sur une fenêtre de coupure normalisée. Et ce point projeté est au centre de la fenêtre normalisée. Maintenant, nous définissons un point de vue avec un coin inférieur gauche à (4, 4) et le coin supérieur droit à (6, 8).Donc, cela signifie que si c'est notre vue, alors le coin inférieur gauche est le 1. Ceci est (4, 4) et le coin supérieur droit est (6, 8). Donc, si nous réalisons une fenêtre de transformation du port d'affichage, alors quelle serait la position du point, le même point central dans le port d'affichage? Essayons de dériver cela.Maintenant, nous avons déjà mentionné que la fenêtre de découpe est normalisée, donc les valeurs ou l'étendue de la fenêtre sont fixes. Et nous obtenons ces valeurs. Donc, c'est entre 1 et 1, et là encore, c'est aussi entre-1 à 1. Donc, nous obtenons ces valeurs, et de la spécification de viewport, on peut voir que c'est (4, 4). Donc, ce 4 et c'est donc ce point c'est (6, 8) alors ça doit être 6. Cela doit être 8. Donc, nous obtenons ces valeurs. Donc, ensuite, nous remplaçons simplement ces valeurs dans les matrices de transformation que nous avons vues précédemment.Nous calculons d'abord les valeurs constantes sx, sy, tx, en utilisant les valeurs que nous avons vues précédemment pour obtenir ces résultats. Sx est 1, sy est 2, tx est 5 et ty est 6.Ainsi, la matrice de transformation peut être obtenue en remplaçant les valeurs sx, sy, tx, ty dans cette matrice de transformation originale qui nous donne cette matrice. Ainsi, il s'agit de notre fenêtre sur la matrice de transformation du port d'affichage.Maintenant, une fois que nous obtenons la matrice de transformation, il est plus facile d'obtenir le point transformé dans le port d'affichage en multipliant les mesures de transformation par le vecteur de point pour obtenir le point de transformation en coordonnées homogènes. Ici encore, le facteur de coordination n'est pas 1. Donc, nous devons diviser ces valeurs avec le facteur homogène comme indiqué ici et ici, ce qui nous donne finalement le point (5, 6).Donc, ce sera notre point transformé après l'application de la fenêtre à la transformation viewport. Donc, c'est comme ça que nous obtenons un point transformé dans le port d'affichage. Dans cet exemple, vous avez probablement remarqué que nous avons défini le port d'affichage indépendamment de la description de la fenêtre, nous pouvons le définir n'importe où dans l'espace de l'unité.Ce dont nous avons besoin est essentiellement une transformation, vous avez probablement remarqué que la taille du viewport n'a rien à voir avec la taille de la fenêtre, la fenêtre est normalisée, alors que le port d'affichage n'est pas normalisé. Donc, nous pouvons définir n'importe quelle taille en spécifiant ses domaines de coordonnées, et par la cartographie, nous obtenons ce point transformé. Donc, cela nous donne la flexibilité de placer l'image projetée n'importe où sur l'écran avec n'importe quelle taille.Donc, en résumé, ce que nous avons discuté jusqu'à présent est trois sous-étapes de l'étape de l'affichage du pipeline. Donc, ces trois sous-étapes sont la transformation de vue, la transformation de projection et la transformation d'affichage. Pour récapitulation, ces trois sous-étapes sont utilisées pour simuler l'effet de la prise d'une photographie. Donc, quand vous prenez une photo, nous regardons la scène à travers le mécanisme fourni dans la caméra pour que nous mimions en effectuant la transformation de visualisation, nous transformons la scène de coordonnées mondiales en un système de coordonnées de vue 3D, ce qui est en fait l'équivalent de regarder la scène à travers le mécanisme de visualisation de la caméra. Ensuite, nous prenons une photo qui signifie que nous la projetons sur le plan de vue qui se fait par la transformation de projection.Et finalement, nous l'affichons sur l'écran, ce qui n'est évidemment pas une partie de l'analogie de la photographie, mais nous le faisons en infographie pour que les étapes imitent avec l'utilisation des fenêtres pour la transformation viewport. Cette transformation est nécessaire pour avoir la flexibilité d'afficher l'image projetée n'importe où sur l'écran et avec n'importe quelle taille, quelle que soit la taille de la fenêtre de découpe. Au cours de la quatrième étape, à l'exception de ces trois sous-étapes, qui sont liées à trois types de transformations, deux opérations supplémentaires sont effectuées.Nous l'avons déjà mentionné dans cette conférence. L'un d'entre vous clipping une est une suppression de surface masquée. Donc, ces deux opérations dont nous discuterons lors de nos conférences ultérieures.Tout ce que j'ai discuté aujourd'hui peut être trouvé à partir de ce livre, Computer Graphics. Vous pouvez passer par le chapitre 6, la section 6.2.3 et 6.3 cette section se trouve dans la rubrique du volume de la vue canonique, et cette section décrit en détail la fenêtre de transformation de viewport. C'est tout pour aujourd'hui. Merci et au revoir.