Brevet FR2594980A1 — publié le 19870828

La synthèse de scènes visuelles par l'utilisation d'ordinateurs (infographie) est un domaine de l'informatique en plein développement. Il existe d'innombrables applica- tions de l'infographie, comprenant la Conception Assistée par Ordinateur (CAO), la synthèse de diagrammes de présen- tation, la création de titres et d'autres visualisations graphiques pour l'utilisation en télévision, et la simula- tion d'événements physiques. Pour faciliter la génération par ordinateur d'une scène comprenant un ou plusieurs objets, la première étape consiste normalement à créer des descriptions tridimension- nelles des objets à visualiser, et à les enregistrer sous forme mathématique dans une base de données. Ensuite, on traite et on manipule les données de façon à pouvoir pré- senter la scène sur un écran de visualisation. On peut considérer que le traitement de l'infor- mation provenant de la base de données fait intervenir cinq fonctions fondamentales: 1. Décomposition des objets (de façon mathémati- que) en petites sections qu'on peut commodément manipuler. Ces sections sont couramment des polygones plans, représen- tant chacun une partie de la surface d'un objet à visuali- ser; 2. Extraction de la base de données des données correspondant à une section d'un objet; 3. Transformation de la description tridimension- nelle en une description bidimensionnelle en coordonnées "d'écran"; 4. Sélection des pixels d'un écran de visualisation qui doivent être activés pour présenter la section, et définition de leur couleur et de leur intensité; et 5. Détermination des zones de la section qui sont visibles dans la scène et visualisation de ces zones. La répétition de ce processus pour toutes les sections de tous les objets de la scène conduit à la forma- tion d'une image représentant la scène désirée. L'invention concerne les deux opérations mention- nées en dernier. L'invention concerne en outre le tracé de vecteurs, ou de segments de ligne, sur un écran de visuali- sation qui peut visualiser ou non d'autres objets. Des processeurs de visualisation de l'art anté- rieur ont présenté une limitation en ce qui concerne la vitesse à laquelle les données sont traitées et visuali- sées. La limitation a été due, dans une certaine mesure, à la tendance à utiliser dans l'art antérieur des ordinateurs universels fonctionnant sous la dépendance d'un logiciel comprenant des algorithmes destinés à l'accomplissement des opérations exigées. Ceci a obligatoirement nécessité d'accomplir des calculs en série, ce qui fait que le résul- tat final peut ne pas être obtenu aussi rapidement qu'il serait souhaitable. L'invention a donc pour but de procurer un pro- cesseur de visualisation perfectionné pour un système informatique graphique, capable d'améliorer notablement la vitesse de fonctionnement par rapport à l'art antérieur. Le processeur de visualisation de l'invention comporte un matériel spécialisé et une structure pipeline permettant d'accomplir en parallèle un grand nombre des calculs nécessaires, ce qui conduit à une augmentation con- sidérable de la vitesse de fonctionnement. De plus, le pro- cesseur utilise des algorithmes originaux d'une grande effi- cacité, ce qui améliore encore davantage la vitesse. L'invention utilise une visualisation par balayage récurrent, par opposition à une visualisation par balayage cavalier ou par tracé de points. Elle est prévue pour l'uti- lisation en association avec une base de données externe et un processeur de type géométrique, qui fournissent des don- nées sous la forme de paquets, chaque paquet décrivant un polygone plan ou un segment de ligne dans un système de coordonnées tridimensionnel. Dans le mode de réalisation actuellement préféré du système, l'origine du système de coordonnées se trouve dans le coin supérieur gauche de l'écran, mais on pourrait utiliser d'autres positions, si on le désirait. Des valeurs entières de X désignent des posi- tions de pixel à droite de l'origine, et des valeurs entiè- res de Y désignent des numéros de ligne de trame allant du haut vers le bas. Des valeurs de profondeur (Z) désignent une distance relative en arrière de l'écran. Comme il est courant dans le domaine de l'info- graphie, chaque objet dans la scène à visualiser est déceom- posé en une série de petits polygones plans, qui ne sont pas nécessairement réguliers. Dans le cas d'objets comple- xes, comme par exemple un visage humain, on donne aux poly- gones une taille suffisamment faible et une forme et une couleur telles que ces polygones forment conjointement une représentation satisfaisante de l'objet désiré. Des objets plus simples, comme des surfaces planes avec un éclairage plan, peuvent être représentés de façon satisfaisante par de plus grands polygones. Le processeur de visualisation de l'invention est destiné à reproduire des représentations d'objets simples comme d'objets complexes. I1 existe deux modes de fonctionnement fondamen- taux du processeur de visualisation. Dans un mode (appelé remplissage par des polygones), on reproduit sur l'écran de visualisation des polygones positionnés de façon que l'effet conjoint de l'ensemble des polygones soit une représentation des objets ou de la scène désirés. Dans ce mode, chaque polygone est reproduit sur l'écran sous la for- me d'une zone colorée qui n'est pas limitée par un contour contrasté. Chaque polygone est caractérisé par une couleur uniforme sur toute son étendue, dont l'intensité peut varier, en fonction de la teinte désirée. On commande la teinte par l'information de gradient d'intensité qui est fournie par un processeur géométrique externe. La teinte d'un polygone peut être uniforme, ou bien elle peut varier de façon linéaire sur la surface du polygone, dans la direc- tion X, la direction Y, ou les deux. Dans un mode de réalisation actuellement préféré de l'invention, on combine dans un seul nombre binaire à 12 bits enregistré dans une mémoire tampon d'image l'infor- mation de couleur et d'intensité pour chaque pixel sur l'écran. On utilise les bits de fort poids pour désigner la couleur, et on utilise les bits de faible poids pour dési- gner l'intensité. L'utilisateur est libre de déterminer la fraction du mot qui est utilisée pour définir la couleur et la fraction qui est utilisée pour définir l'intensité. Pour former le mot combiné, les résultats de calcus d'intensité sont "décalés vers la droite" du nombre de bits nécessaire pour les placer dans la position désirée dans le mot, et la valeur d'intensité décalée est ensuite additionnée au nom- bre binaire désignant la couleur, dans lequel les bits de désignation de couleur occupent les positions de fort poids. Dans le mode de remplissage par des polygones, le processeur de visualisation utilise des données définissant chaque côté d'un polygone de façon à créer des "plages" contenant une information de couleur et d'intensité, chaque "plage" contenant une information concernant une ligne de trame à visualiser. Après comparaison de la position de profondeur du polygone à chaque adresse de pixel avec la profondeur de tous les polygones traités précédemment (par l'utilisation d'une mémoire tampon "Z" ou de profondeur), l'information de couleur et d'intensité est introduite dans la mémoire tampon d'image à l'adresse de pixel, uniquement si la comparaison montre que le nouveau polygone est plus proche de l'écran, à cette position de pixel, que tout autre polygone traité précédemment. De cette manière, les surfaces cachées de polygones sont supprimées et ne sont pas visualisées. Les polygones utilisés dans le mode de remplissage par des polygones ne sont pas nécessairement pleins, et ils peuvent comporter des ouvertures internes. Conformément aux principes de la présente invention, des polygones comportant de telles ouvertures ou découpes ne nécessitent pas un traitement spécial, et sont traités de la même manière que des polygones normaux. Plusieurs plages seront créées pour chaque ligne de trame qui rencontre une ouverture dans un polygone, mais le fonctionnement du sys- tème restera le même. Dans le second mode, qu'on appelle "tracé de vec- teur", on peut tracer des segments de ligne droite sur l'écran aux emplacements désirés. On utilise également le mode de tracé de vecteur pour la "mise en évidence des côtés", c'est-à-dire l'opération qui consiste à délimiter un polygone (ou un groupe de polygones) par une ligne de couleur différente de celle du polygone lui-même. Le mode de tracé de vecteur utilise une informa- tion définissant les coordonnées de chaque sommet, et la pente de la ligne (dans les plans XY, XZ et YZ), pour adresser séquentiellement les pixels qui doivent être activés pour tracer la ligne. Des moyens sont prévus pour permettre de tracer des vecteurs ayant un aspect discontinu. On répète dans ce but un "motif de tracé" créant n'importe quelle configura- tion désirée de pixels éclairés et éteints, pouvant compor- ter jusqu'à 64 pixels. On effectue ceci par l'utilisation d'un registre à décalage spécifique associé à une combinai- son de 1 et de O circulant continuellement, qui correspond à la configuration désirée. Un signal de sortie du registre à décalage interdit l'écriture dans la mémoire tampon d'ima- ge lorsque le signal de sortie du registre est dans l'état "1". On peut utiliser la caractéristique de définition de motif de tracé en association avec le mode de remplissage par des polygones, pour créer un effet de surface texturée. La suite de la description se réfère aux dessins annexés qui représentent respectivement: Figure 1: un schéma synoptique simplifié d'un système de traitement graphique complet. Figure 2: un schéma synoptique du processeur de visualisation de l'invention. Figures 3A et 3B, considérées conjointement: un schéma synoptique du soussystème de traitement vidéo de la présente invention. Figure 4: un exemple de polygone utilisé pour faciliter l'explication du fonctionnement de l'invention dans le mode de remplissage par des polygones. Figure 5: un exemple de segment de ligne utilisé pour faciliter l'explication du fonctionnement de l'inven- tion dans le mode de tracé de vecteur. Figure 6: un schéma synoptique du registre de motif de tracé et du compteur de longueur de motif de tracé de l'invention. La figure 1 représente un schéma synoptique géné- ralisé d'un système de traitement graphique complet d'un type qu'on pourrait utiliser en association avec le proces- seur de visualisation de l'invention, et cette figure mon- tre les principaux sous-systèmes et leurs interconnexions. L'information décrivant chaque objet ou surface dans la scène à visualiser est introduite dans le système par l'in- termédiaire d'une interface d'utilisateur 10, qui peut com- prendre, par exemple, un manche à balai, une souris, une tablette graphique, un clavier alphanumérique ou un dispositf pour déplacer un curseur au moyen d'une bille ou de boutons. Pour synthétiser une scène, on organise la surface de chaque objet dans la scène sous la forme d'une série de polygones plans qui constituent conjointement une bonne approximation de l'objet ou des objets à visualiser. Les données qui définissent ces polygones sont enregistrées dans une base de données 11. Lorsque la scène doit être visualisée, des paquets de données, décrivant chacun un polygone, sont transférés vers le processeur géométrique 13, un à la fois, par le bus de données VME 12. Pendant que le processeur géométrique effectue des calculs sur un paquet de données, la base de données 11 se prépare à transférer le paquet suivant. Pour chaque polygone à visualiser, le processeur géométrique 13 fournit au processeur de visualisation 20 des données en coordonnées de balayage récurrent ou par tra- me, qui définissent chaque côté du polygone, ainsi que cer- taines données concernant le polygone dans son ensemble. Ces données sont également transmises par le bus de données VME 12. Le processeur de visualisation 20 convertit les données de côtés et de polygone reçues en données qui spécifient la couleur, l'intensité et la profondeur relative de chaque pixel dans la trame active, il enregistre les données dans la mémoire tampon d'image 22 et la mémoire tampon "Z" 23, et il visualise finalement sur un tube cathodique 21 une repro- duction visuelle de la scène. La mémoire tampon d'image 22 et la mémoire tampon Z 23 sont des dispositifs classiques utilisés dans le domai- ne de l'infographie. Dans le mode de réalisation actuelle- ment préféré de l'invention, la mémoire tampon d'image con- siste en un sous-système de mémoire vive comportant 1280 x 1024 adresses, chaque adresse enregistrant 12 bits. La mémoire tampon Z a la même taille de sous-système, mais elle accepte des mots de 16 bits. Il y a deux modes de fonctionnement fondamentaux pour le traitement de données dans le processeur de visua- lisation, comme on le décrira ci-après. Ces modes sont le mode de représentation de polygones en couleur, ou "remplis- sage par des polygones", et le mode de tracé de segments de ligne, ou "tracé de vecteur". En outre, un mode de "contour- nement" permet de diriger des ordres d'initialisation vers la mémoire tampon d'image 22 et la mémoire tampon Z 23, pour fixer des adresses X et Y destinées à être utilisées en tant qu'adresses de départ pour les modes de fonctionnement. On a adopté pour les besoins de l'explication qui suit le système de coordonnées et les notations représentés sur la figure 4. La figure 4 montre, à titre d'exemple, un polygone plan 42, 43, 44, 45, superposé sur une grille de coordonnées. Un trou triangulaire 46, 47, 48 est situé à l'intérieur du polygone. Le polygone représenté peut être par lui-même une surface complète, ou bien il peut être un petit segment d'une surface complexe à visualiser. Le pro- cesseur de visualisation traite les deux situations de façon identique. On utilise un système de coordonnées XY ayant son origine dans le coin supérieur gauche de l'écran. Les lignes de trame sont numérotées de façon consécutive du haut vers le bas, et les positions de pixel sont numérotées consécutivementvers la droite à partir de l'origine. Une position de pixel est définie par les coordonnées du coin supérieur gauche du carré qui contient le pixel. Ainsi, le pixel représenté par les hachures en 41 se trouve en 7,3. Chaque adresse de pixel (par exemple Xt, Yt) est constituée par un nombre entier représenté par les bits de fort poids d'un mot binaire à 12 bits. La valeur précise de X à l'intersection d'un c8té d'un polygone avec une ligne de trame n'est cependant habituellement pas un nombre entier, comme le montre le point Xu sur la figure 4. Dans certains cas, c'est la valeur entière d'une quantité telle que Xu, et non sa valeur précise, qui intervient dans des calculs, et on utilise dans ces cas un soulignement (par exemple X u) pour indiquer la valeur entière. On peut obte- nir la valeur entière en tronquant simplement au nombre de bits représentant des entiers, le mot binaire qui exprime la valeur précise. Le côté 42 du polygone 42, 43, 44 et 45 se termine à deux sommets 40 et 49. Un jeu de coordonnées Xt, Yt, et Zt est défini par le pixel dans lequel se trouve le sommet supérieur (40), Zt représentant la distance du point Xt, Yt en arrière de l'écran. On définit également une valeur appe- lée Xu qui est la valeur de X (avec une précision élevée) à l'intersection du côté du polygone avec la première ligne de trame qu'il rencontre (c'est-à-dire la ligne de trame Yt+l, appelée Yu). De façon similaire, on peut voir que Xd est la coordonnée X précise de l'intersection du côté 42 avec la ligne de trame située juste au-dessus du sommet 49. Xb, Yb et Zb sont les coordonnées du pixel contenant le sommet 49. Les pentes des côtés par rapport aux trois axes sont dési- gnées par les fonctions dX/dY, dZ/dX, et dZ/dY. Une autre variable qui intervient dans la visua- lisation est l'intensité, désignée par la lettre S. Selon la teinte désirée pour le polygone, S peut varier par rapport à l'un quelconque ou à la totalité des axes, comme le représentent les fonctions dS/dX, dS/dY, et dS/dZ. Dans un mode de réalisation actuellement préféré de l'invention, on effectue les calculs d'intensité avec une précision de 27 bits afin que des erreurs d'arrondi n'affectent pas la visualisation. Cette précision est cepen- dant très supérieure à ce qui est nécessaire pour la visua- lisation, et on utilise un plus petit nombre de bits pour fixer l'intensité des pixels sur le tube cathodique. L'in- formation de couleur et l'information d'intensité pour chaque pixel sont contenues dans un seul mot à 12 bits qui est formé pendant le traitement et qui est enregistré dans la mémoire tampon d'image 22 à l'adresse du pixel. La cou- leur est spécifiée par les bits de fort poids et l'utilisa- teur sélectionne le nombre de bits nécessaire pour spécifier le nombre de couleurs désiré. L'intensité est spécifiée par les bits de faible poids. Pour générer un mot de 12 bits comprenant les deux sortes d'information, on génère tout d'abord un mot de couleur à 12 bits (au moyen du processeur géométrique), dans lequel l'information de couleur occupe le nombre de bits de fort poids qui a été fixé par l'utilisateur, les bits restants étant des zéros. Le mot d'intensité à 27 bits est tronqué et limité à 12 bits, et il est ensuite décalé vers la droite du nombre de bits néces- saire pour éviter les bits de couleur. Le mot de couleur et le mot d'intensité sont ensuite additionnés pour obtenir un mot composite contenant les deux quantités. Un circuit de limitation 98 est prévu pour éviter que le mot d'intensité ne déborde dans la zone de bits de couleur du mot. On peut voir sur la figure 2 un schéma synoptique simplifié d'un mode de réalisation actuellement préféré du processeur de visualisation 20 de l'invention, dans lequel on a représenté les principaux sous-ensembles du processeur et les principaux chemins de données et d'instructions. Le processeur est sous la commande directe du micro-séquenceur 26, qui reçoit par le bus de données VME 12 des ordres pro- venant du processeur géométrique, de l'interface d'utilisa- teur et d'autres parties du système, de la manière appro- priée. Le micro-séquenceur 26 contient une mémoire de com- mande du type mémoire vive (sous-système de mémoire vive à accès direct) qui, dans le système actuellement préféré, peut contenir 8 K mots x 60 bits. Au moment de l'initiali- sation, le microprogramme destiné à commander le proces- seur de visualisation est transféré par le bus de données VME 12 vers la partie de mémoire vive de commande du micro- séquenceur 26. Pendant le fonctionnement, le micro-séquen- ceur produit une séquence d'adresses, et des instructions de programme sont émises vers ces adresses par la mémoire vive de commande. Les instructions dirigées vers le micro- processeur 27 sont transmises par le bus 39 et celles diri- gées vers les moyens de traitement vidéo sont transmises par le bus 34. On utilise ici le terme "micro-séquenceur 26" pour désigner à la fois le micro-séquenceur et la mémoire vive de commande. Comme indiqué ci-dessus, le processeur de visuali- sation 20 accepte des données provenant du processeur géomé- trique 13 et il les manipule de façon à produire la visuali- sation désirée. Les données qui proviennent du processeur géométrique sont appliquées à une mémoire parmi deux mémoi- res d'entrée identiques 24, 25. Chacune des mémoires d'en- trée 24, 25 comprend des registres d'entrée et de sortie commandant la transmission d'informations sur des bus, un registre/compteur d'adresse, et un sous-système de mémoire vive à accès direct. A un instant donné quelconque, l'une de ces mémoires est connectée au bus de données VME 12, et l'autre est connectée aux bus Y et D du processeur de visualisation. Ainsi, une mémoire peut recevoir des données d'entrée par l'intermédiaire de l'interface externe, pendant que des données reçues précédemment et enregistrées dans l'autre mémoire font l'objet d'un traitement. Des instruc- tions provenant de la mémoire vive de commande 26 assurent la commande pour la sélection de fonctions pour la mémoire d'entrée. L'adressage des mémoires peut être séquentiel ou direct, sous la commande du microprogramme. Lorsqu'une opé- ration de lecture est effectuée, les données sont chargées dans le registre de sortie de la mémoire, et elles sont appliquées à l'instant approprié au bus D. Pour des opéra- tions d'écriture, les données provenant du bus Y sont char- gées dans le registre d'entrée de la mémoire et ensuite dans le soussystème de mémoire lui-même, sous la commande du microprogramme. Pendant le traitement d'un bloc de données d'entrée, on peut utiliser la mémoire d'entrée pour enre- gistrer des résultats immédiats. Les éléments de traitement arithmétique et les mémoires tampons de données (microprocesseur 27, multiplica- teur 28 et registres associés) permettent l'accomplissement d'opérations arithmétiques et logiques à 16 bits en parallè- le. Les opérations arithmétiques comprennent l'addition, la soustraction, la multiplication, la division, l'incrémenta- tion, la décrémentation, la sommation, les décalages simples et multiples et la comparaison. Il est possible d'accomplir toutes les fonctions logiques courantes, comprenant les fonctions ET, OU, OU-EXCLUSIF, les inversions logiques et autres. On effectue la multiplication dans un multiplica- teur rapide 28 qui accepte deux opérandes à 16 bits prove- nant du bus Y et qui émet un produit à 32 bits sur le bus D (en deux cycles). En faisant passer l'un des opérandes par une table d'inverses qui, dans le cadre de cet exposé, peut être considérée comme faisant partie du multiplicateur 28, on effectue une division. Toutes les opérations arithmétiques autres que la multiplication et la division et toutes les opérations logiques sont accomplies dans le microprocesseur micropro- grammable 27 qui, dans un mode de réalisation actuellement préféré, comprend une unité arithmétique/logique complète à 16 bits en parallèle, un registre circulaire à 16 bits, trente-deux registres à 16 bits et des circuits logiques associés. Les données de sortie et/ou les données intermé- diaires peuvent être enregistrées temporairement dans les mémoires d'entrée 24, 25 ou dans la mémoire de travail 31. L'information de sortie de la fonction de traite- ment est normalement appliquée à une mémoire premier entré- premier sorti 29, comprenant 64 mots de 18 bits, qui assure un couplage lâche pour les données dirigées vers le sous- système de traitement vidéo ("STV") 30. L'information qui est appliquée au processeur de visualisation 20 dépend du mode de fonctionnement désiré, à savoir le mode de remplissage par des polygones ou le mode de tracé de vecteur. Quel que soit le mode sélectionné, l'information est fournie par paquets, un paquet décrivant un polygone dans le mode de remplissage par des polygones et décrivant un segment de ligne dans le mode de tracé de vecteur. Dans le mode de remplissage par des polygones, un paquet comprend une information définissant chaque côté du polygone, et une information concernant le polygone consi- déré dans son ensemble. Pour chaque côté, les données sui- vantes (qu'on appelle un "paquet de côté") sont fournies. PTR - un pointeur d'identification qui permet d'accéder aux données liées au polygone; HOR - un indicateur qui indique si le bord est horizontal ou non; SSF - un indicateur de départ/arrêt qui indique si l'intérieur du polygone se trouve à gau- che ou à droite du bord; Xt; Yt; Zt; Xu --U S; u+ Yb; yb' dX/dY; et dS/dY. Pour le polygone considéré dans son ensemble, les données suivantes sont fournies: Couleur de la surface du polygone; dZ/dX; et dZ/dY. Après que l'information ci-dessus relative à un polygone complet a été regue dans l'une des mémoires d'en- trée 24, 25, le micro-séquenceur 26 connecte cette mémoire aux bus D et Y et il déclenche un calcul pour déterminer les pixels de la trame qui doivent 8tre activés pour visualiser le polygone. Dans un but d'explication, on décrira le fonc- tionnement du système en considérant l'exemple de polygone de la figure 4. Il faut noter que la taille de pixel repré- sentée sur la figure 4 est très grande par rapport à la taille du polygone, ce qui fait que la représentation pré- sentée pour le polygone de la figure 4 serait notablement déformée. Cependant, en ce qui concerne l'explication, les principes de l'invention apparaissent plus clairement lorsqu'on considère des pixels relativement grands. De façon générale, le microprocesseur 27 et le multiplicateur 28, ainsi que les composants associés, pré- lèvent les données de côté et de polygone qui sont introdui- tes dans les mémoires d'entrée 24, 25 et, pour chaque ligne de trame active du polygone, ils fournissent au sous-système de traitement vidéo ("STV") 30 des données qui identifient les pixels de début et de fin sur la ligne, et les valeurs * Z et S pour les pixels de début. Le STV 30 prend ces don- nées, ainsi que des données de gradient qui lui sont trans- mises, et il calcule les valeurs d'intensité et les valeurs Z pour chaque pixel entre les pixels de début et de fin. On utilise les valeurs Z pour supprimer des surfaces cachées, et elles sont enregistrées dans la mémoire tampon Z 23, tandis que les valeurs d'intensité pour des surfaces qui ne sont pas cachées sont enregistrées dans la mémoire tampon d'image 22, pour une visualisation ultérieure par le tube cathodique 21. Lorsque le calcul est déclenché, une liste d'adresses de mémoire d'entrée (qu'on appelle la "liste ordonnée par rapport à Yt") est formée et enregistrée dans la mémoire de travail 31. Les adresses de la liste dési- gnent des positions dans la mémoire d'entrée active (24 ou ) qui contiennent les données de paquet de côté concer- nant les côtés respectifs du polygone qui est traité. La liste est maintenue ordonnée sur la base de la ligne de tra- me qui contient le sommet supérieur de chaque côté, c'est-à- dire Yt' Une rubrique donnée dans la liste ordonnée par rapport à Yt peutcomprendre l'adresse de plus d'un jeu de données de paquet de côté. La liste ordonnée par rapport à Yt pour le polygone simple représenté sur la figure 4 con- tiendrait des adresses destinées à recevoir les données de paquets de côtés dans l'ordre suivant: Rubrique n Adresse de paquet de côté 1 42,43 2 46,47 3 44 4 45 On peut noter que le côté 48 n'apparaît pas dans la liste ci-dessus. Ceci vient du fait que le côté 48 est un côté horizontal et ne limite donc aucun pixel interne. L'indicateur de côté horizontal, HOR, empêche le traitement de côtés horizontaux. L'utilisation de la liste ordonnée par rapport à Yt augmente la vitesse du processeur de visualisation, du fait qu'elle permet un traitement séquen- tiel des lignes de trame qui rencontrent chaque côté, sans qu'il soit nécessaire de traiter les lignes de trame qui se trouvent au-dessus ou audessous des points extrêmes des côtés. En d'autres termes, en utilisant à titre d'exemple le polygone représenté sur la figure 4, la liste ordonnée par rapport à Yt permet de traiter les données en commen- çant par la ligne de trame qui est associée au sommet supé- rieur du paquet de côté associé aux bords 42 et 43, c'est- à-dire la ligne 1 et non la ligne 0. Comme il apparaîtra ultérieurement, du fait de la manière selon laquelle les données sont traitées, la ligne de trame Yt + 1, c'est-à- dire Y (ou la ligne de trame 2 dans le cas des côtés 42 et U 43), sera en réalité la première ligne de trame ayant des pixels actifs. Une fois que la liste ordonnée par rapport à Yt a été achevée, le processeur de visualisation effectue un calcul pour créer une série de "plages" qui feront conjoin- tement apparaître sur l'écran du tube cathodique un polygone ayant la couleur désirée. On appelle "plage" les données qui définissent la condition de chaque pixel le long d'une ligne de trame limitée par deux côtés du polygone. Dans le cas de certains polygones, il peut y avoir plus d'une plage sur une ligne de trame. Par exemple, sur la figure 4, la ligne de trame 6 comprendra deux plages. On crée des plages, une à la fois, en partant de la plage qui fait intervenir la ligne de trame ayant le numéro le plus faible qui est coupée par le polygone (ce qu'on détermine en se référant à la liste ordonnée par rapport à Yt). Pour faciliter le traitement, on crée et on entretient une "liste de côtés actifs". La liste de côtés actifs comprend les adresses des données de paquet de côté correspondant à chaque côté qui rencontre la ligne de trame en cours de traitement. On décrira la création des plages en deux étapes, à savoir premièrement les calculs effectués par le micro- processeur 27 et le multiplicateur 28 et les composants associés, et secondement les opérations effectuées dans le STV 30. L'examen de la liste ordonnée par rapport à Yt pour l'exemple de polygone de la figure 4 fait apparaître que les côtés actifs correspondant à la première ligne de trame à traiter sont les côtés 42 et 43. La liste de côtés actifs contiendra alors les adresses de paquets de côtés pour les côtés 42 et 43. Le paquet de côté pour le côté 42 contiendra un indicateur de début, tandis que le paquet de côté pour le côté 43 contiendra un indicateur de fin. On a adopté en relation avec le mode de réalisa- tion actuellement préféré de l'invention, une règle arbi- traire qui spécifie qu'un pixel ne sera pas considéré comme appartenant à un polygone, sauf si les coordonnées du pixel (le coin supérieur gauche de l'espace de pixel) sont à l'intérieur des limites du polygone. Ainsi, conformément à la règle, le premier pixel actif dans le polygone de la figure 4 est le pixel 5, 2. On peut déterminer les pixels de début et de fin le long d'une ligne de trame par les équations suivantes: pour un côté de début: X1 = Xi + 1; et pour un côté de fin: X2 = Xi avec les notations suivantes: X1 est la coordonnée X du pixel de début de la plage, X est la coordonnée X du dernier pixel de la pla- ge, et Xi est la valeur entière de l'intersection réelle du côté et de la coordonnée Y de la plage. Pour la première plage (Y = 2), Xi pour le côté 42 est égal à Xu' c'est-à-dire 4; pour le côté 43, X. est égal à 6. Comme on pourra le noter, les coordonnées X pour les côtés de début et de fin de la ligne de trame doivent être ordonnées et associées par paires, avant d'effectuer les calculs ci-dessus. En relation avec le calcul de grou- pement par paire, on effectue un test pour exclure toutes les plages apparentes dans lesquelles le pixel de fin a une adresse inférieure à celle du pixel de début. Une telle anomalie peut se produire lorsqu'une partie d'un polygone sous-tend moins d'un pixel, ou lorsqu'une erreur d'arrondi dans le calcul projette les côtés en introduisant un léger désordre. Dans un cas comme dans l'autre, on ne traite pas de telles données. Les opérations consistant à grouper les coordonnées par paire et à les ordonner sont effectuées par le microprocesseur 27 sous la commande du programme qui se trouve dans la mémoire vive de commande 26. Une conséquence de l'action consistant à ordonner les coordonnées de début/ fin et à ne pas traiter des paires lorsque le pixel de fin a une adresse inférieure à celle du pixel de départ, con- siste en ce que des trous dans une surface apparaissent automatiquement comme des trous, et aucun traitement spécial n'est nécessaire pour en tenir compte. La valeur de Z1 (la coordonnée Z du premier pixel actif) pour la première ligne de trame (Yu) est calculée à partir de Zt et des gradients Z fournis par le processeur géométrique 13, de la manière suivante: z1 = z + (-u Xt)(dZ/dX) + dZ/dY en désignant par Xu la valeur entière de Xu. Pour des lignes de trame faisant suite à Yu l'équation est: Z1 = Zl(prec.) + (Xi - Xi(prec.)(dZ/dX) + dZ/dY avec les notations suivantes: Zl(prec.) est la valeur de Z1 de la ligne de trame précédente X. est la valeur entière de l'intersection réelle -1 du côté et de la coordonnée Y sur la ligne de tra- me courante, et Xi(prec.) est la valeur Xi de la ligne de trame précédente. Les données que fournit le processeur géométrique 13 comprennent Su+l, c'est-à-dire l'intensité du premier pixel actif de la ligne de trame Yu (c'est-à-dire Xu+l). Pour des lignes de trame suivantes, on utilise l'équation ci-après: S1 = Sl(prec.) + dS/dY dans laquelle Sl(prec.) est la valeur S1 de la ligne de trame précédente. On caleule également d'une manière similaire l'intensité finale pour chaque ligne de trame (S2), en uti- lisant la valeur S de début et un gradient pour le côté de fin de la plage. On calcule ensuite le gradient dS/dX pour la plage: dS S2 - S dX X2-Xt+l Le 1 supplémentaire au dénominateur tient compte du fait que la valeur calculée pour S2 ne se rapportepas réellement au dernier pixel de la plage, mais au pixel situé au-delà du dernier. Il peut y avoir plus d'une plage sur une ligne de trame donnée, comme par exemple dans la région du polygone de la figure 4 qui comprend un trou. Chaque côté du trou est traité comme un côté de polygone, et lorsque les côtés sont associés par paire, on trouve que l'indicateur de fin qui accompagne le côté 46 précède l'indicateur de début qui accompagne le côté 47. La région de la ligne de trame qui est comprise entre les côtés 46 et 47 n'est donc pas trai- tée. On doit accomplir les calculs ci-dessus pour chaque paire de côtés actifs. A l'achèvement de tous les calculs de plage pour une ligne de trame, on compare Yb pour les côtés actifs avec l'adresse de ligne de trame courante. Si Yb a été atteint pour un côté quelconque, ce côté n'est plus traité. De plus, on accède au paquet de côté qui correspond à la rubrique suivante dans la liste ordonnée par rapport à Yt, pour déterminer si Yt a été atteint pour un nouveau côté. Si l'une quelconque de ces conditions a été réalisée, on ajuste d'une manière appropriée la façon selon laquelle les côtés sont associés par paire. Lorsque le dernier Yb a été examiné, on achève les calculs pour ce polygone et on déclenche les calculs pour le polygone suivant. Pour le polygone représenté sur la figure 4, par exemple, la liste de côtés actifs comprend initialement les adresses pour les paquets de côtés qui décrivent les côtés 42 et 43. Une fois que la ligne de trame 3 a été traitée, les côtés 46 et 47 sont ajoutés à la liste de côtés actifs et les appariements des côtés sont mis à jour de la manière suivante: 42, 46 et 47, 43. Après la ligne de trame 4, du fait que Yb pour le côté 43 et Yt pour le côté 44 ont été atteints, le côté 43 est supprimé et le côté 44 est ajouté à la liste de côtés actifs. Les appariements sont ajustés de façon appropriée. Lorsque les calculs de plages sont terminés, les résultats sont chargés dans le registre premier entré-premier sorti 29, et ils sont ensuite dirigés vers les registres appropriés du STV 30, par l'intermédiaire du registre tampon 33, à la demande du STV 30. Le registre premier entré- premier sorti 29 permet au STV 30 de travailler sur un jeu de données de plage pendant qu'un autre jeu de données est en cours de chargement dans le registre premier entré- premier sorti. Pour permettre ce chevauchement, il est pré- férable que le registre premier entré-premier sorti 29 soit suffisamment "profond" pour contenir au moins deux jeux com- plets de données de plage. Les données qui sont transmises vers le STV 30 dans le mode de remplissage par des polygones sont indiqués ci-après. (Le nombre de bits qui est indiqué à la suite de chaque rubrique est le nombre de bits transmis dans le mode de réalisation actuellement préféré de l'invention, qui n'est indiqué ici qu'à titre d'exemple. On peut noter que le bus de données qui est utilisé ne peut accepter que 16 bits, ce qui fait que certaines valeurs de données exigent deux cycles machioe pour être complètement transférées.) Données de polygone: dZ/dX - 30 bits Y1 -l (l'adresse de la ligne de trame située au-dessus du premier Yu du polygone) - 12 bits Couleur - 12 bits Décalage d'intensité - 4 bits Motif de tracé - 64 bits (tous des "zéros") Longueur du motif de tracé - 6 bits (tous des tuns") Données de plage: X1 - 12 bits, X2 - 12 bits, Z1 - 30 bits; S1 - 27 bits; Y. - 1 bit inc En plus de ce qui précède, le gradient dS/dX est également transmis. Selon le type de représentation de tein- te désiré, dS/dX peut être une quantité liée à un polygone ou une quantité liée à une plage. L'indicateur Y.in est inc émis avec la première plage sur une ligne de trame donnée, sous la forme d'un signal dirigé vers le STV 30, pour incré- menter le registre Y dans le STV 30 et la mémoire tampon d'image et la mémoire tampon Z, de façon à les faire passer à la ligne de trame suivante avant le traitement des don- nées de plage. On expliquera ci-après la signification des signaux de motif de tracé en relation avec le mode de tracé de vecteur. Comme indiqué en relation avec le mode de rem- plissage par des polygones (tous les bits à "O" dans le registre de motif de tracé et tous les bits à "1" dans le registre de longueur de motif de tracé), la fonction de définition de motif de tracé est inactive. Cependant, comme il apparaîtra de façon évidente à l'homme de l'art après avoir lu l'explication de la définition de motif de tracé dans le mode de tracé de vecteur, il est possible d'utili- ser la fonction de définition de motif de tracé dans le mode de remplissage par des polygones, pour texturer la surface qui est visualisée. Les figures 3A et 3B constituent un schéma synop- tique du STV 30 (sous-système de traitement vidéo), dans lequel la référence 30A désigne les éléments de manipula- tion de données et la référence 30B désigne l'unité de com- mande qui commande les fonctions de traitement de données du STV. Les flèches dirigées vers "C" sur la figure 3A désignent une connexion allant vers l'unité de commande B. Les lignes de commande qui partent de l'unité de com- mande 30B en direction des divers registres, multiplexeurs, additionneurs et comparateurs, ne sont pas représentées, dans un but de clarté. A la réception d'un ordre sur la ligne 34, le STV déclenche un chargement de données dans ses registres de données par la ligne 35. Les données sont chargées dans les registres suivants selon une séquence prédéterminée, sous la commande du micro-séquenceur 26, par l'intermédiaire du registre de bus Y, 31, et du registre tampon 32, par la ligne 35: Quantité dZ/dX Y1 Couleur Décalage d'Inten- sité Registre dZ/dX, 52 Mémoire Tampon d'Image 22 et Mémoire Tampon Z, 23 Couleur, 54 Décalage d'Intensité, 55 Motif de Tracé Registre à Décalage 56 (tous les bits à "0") Longueur de Motif Longueur de Motif de Tracé, de Tracé 57 (tous les bits à "1") Une fois que les quantités précédentes liées au polygone ont été chargées, les quantités suivantes liées à la plage sont chargées à partir du registre premier entré- premier sorti 29, par l'intermédiaire du registre tampon 33, par la ligne 35: Quantité Registre X1 X1, 58 X2 X2, 59 S1 S, 61 Z1 Z, 60 Y. Mémoire Tampon d'Image 22 et mlnc Mémoire Tampon Z, 23 Lorsque X1 est chargé dans le registre X1 58, les registres d'adresse X de la mémoire tampon d'image 22 et de la mémoire tampon Z, 23 sont également fixés à X1. Yinc n'accompagne que la première plage sur une ligne de trame. Le mode de réalisation actuellement préféré de l'invention fonctionne à une cadence d'horloge de 10 MHz, ce qui fait que chaque quantité ayant 16 bits ou moins peut être chargée en un cycle machine de 100 nanosecondes, tandis que celles ayant plus de 16 bits sont chargées en deux cycles machine. Une fois que le chargement est terminé, le traitement des données de plage pour la première plage est lancé. Les calculs des divers paramètres sont effectués en parallèle à la période d'horloge de 100 nanosecondes. On peut noter que les calculs relatifs à Z et S sont effectués avec une précision élevée (respectivement 30 et 27 bits), mais que 16 et 12 bits seulement sont respectivement rete- nus dans la mémoire tampon Z et la mémoire tampon d'image. On effectue ceci pour éviter qu'une accumulation d'erreurs d'arrondi n'affecte le fonctionnement du système. La tron- cature à 16 et 12 bits, respectivement, est indiquée par la légende "TRONC" dans le schéma synoptique de la figure 3A. La valeur absolue des données est également limitée de façon à être contenue dans des limites admissibles. Une telle limitation est indiquée par la légende "LIMIT." sur la figure 3A. Lorsque les calculs relatifs à la première plage commencent, Yinc incrémente de 1 les registres d'adresse Y de la mémoire tampon d'image 22 et de la mémoire tampon Z, 23, ce qui fait passer les adresses à la valeur Y pour la u première ligne de trame du polygone. Simultanément, la valeur Z présente à la position X1, Y1 dans la mémoire tampon Z 23 est transmise par le registre 62 au comparateur 63, dans lequel elle est compa- rée avec le contenu du registre Z 60 (tronqué à 16 bits). Si la valeur provenant du registre 60 est inférieure ou égale à la valeur contenue dans la mémoire tampon Z, la valeur tronquée présente dans le registre Z 60 est transmise par les multiplexeurs 64 et 66 à la mémoire tampon Z, et elle est écrite à la place de l'ancienne valeur Z. Si le contenu du registre 60 est supérieur à l'ancienne valeur de la mémoire tampon Z, l'ancienne valeur est récrite dans la mémoire tampon Z. De cette manière, la mémoire tampon Z gar- de la trace de la valeur Z de l'objet le plus proche de l'écran à chaque adresse. Les résultats de la comparaison effectuée dans le comparateur 63, ainsi qu'un signal prove- nant du registre de motif de tracé 56, par l'intermédiaire. de la porte ET 65, indiquent à l'unité de commande 30B si elle doit autoriser l'écriture à cette adresse dans la mémoire tampon d'image. Pour les besoins de l'explication présente, on suppose que le signal de sortie du registre de motif de tracé 56 est tel qu'il valide la porte ET 65, ce qui fait que c'est uniquement la comparaison portant sur la valeur Z qui détermine si une nouvelle valeur doit être écrite dans la mémoire tampon d'image 22. On envisagera ci-après les caractéristiques concernant la définition du motif de tracé. On peut voir que la comparaison portant sur la valeur Z accomplit l'enlèvement des surfaces cachées en faisant en sorte que la mémoire tampon d'image ne contienne qu'une information concernant l'objet le plus proche. Simultanément, le contenu du registre dZ/dX 52 est additionné au contenu du registre Z 60 dans l'additionneur 67, et le résultat est ramené dans le registre Z 60, par l'intermédiaire du multiplexeur 68. Le nouveau contenu du registre Z 60 est la valeur Z qui correspond à la position de pixel X1 + 1, (Z1 + dZ/dX). En parallèle avec les calculs précités, le contenu du registre de décalage d'intensité 55 agit sur l'unité de décalage 75 de façon à décaler le contenu tronqué du regis- tre S 61 d'un certain nombre de bits prédéterminé vers la droite, la valeur résultante étant ajoutée au contenu du registre de couleur 54, dans l'additionneur 76. Le circuit de limite 98 est prévu pour faire en sorte que la valeur d'intensité qui est additionnée au contenu du registre de couleur 54 ne pénètre pas dans les bits de couleur. La somme ainsi formée définit une couleur et une intensité, comme décrit précédemment. Le signal de sortie de l'additionneur 76 est transmis à la mémoire tampon d'image 22 par l'inter- médiaire du multiplexeur 77 et du registre de données d'ima- ge 78. Si la comparaison portant sur Z détermine que-le polygone qui est traité est plus proche de l'écran à cette adresse que des polygones traités précédemment, l'écriture de cette valeur dans la mémoire tampon d'image est validée, comme indiqué ci-dessus. De plus, simultanément, le contenu du registre dS/dX 85 est additionné au contenu du registre S 61 dans l'additionneur 86, ce qui donne une nouvelle valeur d'inten- sité qui est renvoyée vers le registre S 61 par l'intermé- diaire du multiplexeur 87. C'est cette valeur de S qui sera utilisée pour le pixel X1 + l,(S1 + dS/dX). Finalement, une comparaison entre le contenu du registre X1, 58, et celui du registre X2, 59, est effectuée dans le comparateur 90. Si ces contenus ne sont pas égaux, le registre X1 et les registres d'adresse X dans la mémoire tampon d'image 22 et la mémoire tampon Z 23 sont tous incrémentés de 1, et les calculs ci-dessus sont répétés pour le pixel X1 + 1. L'incrémentation du registre X1 est effectuée en ajoutant 1 au contenu du registre dans l'addi- tionneur 93, et en récrivant le résultat dans le registre. Ce processus se poursuit jusqu'à ce que le contenu du registre X1 58 soit égal au contenu du registre X2 59, et à ce moment le comparateur 90 indique à l'unité de commande B d'émettre un signal"terminé",à un bit, sur la ligne 36, vers le micro-séquenceur 26. A la réception du signal "terminé", qui signifie que le STV 30 a achevé les calculs pour une plage, le micro-séquenceur 26 commande au registre premier entré-premier sorti 29 de commencer à emplir les registres du STV 30 avec des données relatives à la plage suivante. Ce processus se poursuit jusqu'à ce que toutes les plages pour un polygone donné aient été traitées, après quoi le traitement d'un autre polygone peut commencer, ou bien un segment de ligne peut être tracé dans le mode de tracé de vecteur. Si la fonction suivante à accomplir est le tracé d'un vecteur, ou le tracé d'un côté d'un polygone dans une teinte autre que la teinte de l'intérieur du polygone (mise en évidence des côtés), on emplit la mémoire tampon d'image et la mémoire tampon Z en utilisant un algorithme de traite- ment différent de celui décrit ci-dessus. L'information reçue dans les mémoires d'entrée 24, 25 dans le mode de tra- cé de vecteur est similaire à celle reçue dans le mode de remplissage par des polygones, mais légèrement différente. A titre d'exemple, l'explication qui suit du tracé d'un segment de ligne dans le mode de tracé de vecteur se référe- ra au segment de ligne représenté sur la figure 5. Ce segment de ligne possède un sommet supérieur dans l'espace de pixel 9,1 et un sommet inférieur dans l'espace 1,5. La notation est la même que celle utilisée en relation avec le mode de remplissage par des polygones. Dans un but d'illus- tration, les zones de pixel qui seront activées au moment du tracé du segment de ligne envisagé sont représentées avec des hachures (en supposant que le segment de ligne tracé soit l'objet le plus proche de l'écran de visualisation). Pour chaque vecteur, le processeur géométrique 13 émet les quantités suivantes sur le bus de données VME 12: Xt (X1) Yt (Y1) Xb (X2) Yb (Y2) Zt ou bien Zb; X ou bien X; dX/dY; dZ/dX; dZ/dY; Couleur (comprenant l'intensité); Motif de tracé; Longueur de motif de tracé. L'ordre dans lequel Xt,Yt et XbYb sont émis détermine si le segment de ligne sera tracé du haut vers le bas ou du bas vers le haut. L'ordre indiqué dans la liste précédente conduira à un tracé en direction descendante. En émettant Xb,Yb dans les positions X1,Y1 et XtYt dans les positions X2,Y2, et en émettant les quantités Zb et Xv à la place des quantités Zt et Xu, le tracé sera effectué en direction montante. L'explication qui suit s'applique à un tracé descendant. La direction du tracé est établie par deux indica- teurs SBX et SBY. Le microprocesseur 26 génère ces indica- teurs sous l'effet du résultat de la comparaison de X1 avec X2 et de Y1 avec Y2' Si X1 est supérieur à X2, SBX = 1, et si Y1 est supérieur à Y2, SBY = 1. Ces indicateurs détermi- nent si les registres X1 et/ou Y1 (58 et 95) dans le STV 30 doivent 8tre incrémentés ou décrémentés pendant la séquence de tracé. Si un indicateur SB est instauré (1), le registre associé sera décrémenté, tandis que si l'indicateur n'est pas instauré (0), il sera incrémenté. Si le registre X1 58 est décrémenté (SBX = 1) et si le registre Y1 95 est incré- menté (SBY = 0), le vecteur sera tracé en direction descen- dante et vers la gauche. Si SBX est fixé à 0, le registre X sera incrémenté et le vecteur progressera vers la droite. Si SBY est égal à 1, le vecteur sera tracé en direction montante. L'incrémentation ou la décrémentation des regis- tres X1 et Y1 est accomplie par les additionneurs 93 et 94 qui additionnent ou soustraient un du contenu du registre considéré et qui récrivent les résultats dans le registre. Comme dans le mode de remplissage par des polygo- nes, les données nécessaires pour tracer un segment de ligne sont transmises au STV 30 par un chemin parmi deux: par le registre premier entré-premier sorti 29 et le registre tam- pon 33, ou par le registre de bus Y 31 et le registre tampon 32. Les registres suivants sont chargés: Données Registre X1 X1 (58) Yt Y1 (95) Zt Z (60) Xu Xu (61) Xb X2 (59) Yb Y2 (96) dX/dY dX/dY (85) dZ/dX dZ/dX (52) dZ/dY dZ/dY (97) Couleur Couleur (54) Motif de tracé motif de tracé (56) Longueur de longueur de motif de tracé motif de tracé (57) HOR unité de commande 30B SBX unité de commande 30B SBY unité de commande 30B Les quantités Xt, Yt sont respectivement chargées par les lignes 70 et 71 dans les registres d'adresse de la mémoire tampon d'image 22 et de la mémoire tampon Z 23. Après que les données ont été chargées dans les registres du STV 30, la séquence de tracé démarre sous l'effet d'un ordre provenant du microséquenceur 26. Une comparaison entre le contenu du registre Z 60 (tronqué à un nombre de bitségal à celui de la mémoire tampon Z (16)) et le contenu précédent de la mémoire tampon Z est effec- tuée d'une manière similaire à celle décrite pour le mode de remplissage par des polygones, à l'exception du fait qu'après chaque caleul le registre Z 60 n'est pas seulement incrémenté de dZ/dX chaque fois que l'adresse X est incré- mentée, mais est également incrémenté de dZ/dY, à partir du registre dZ/dY 97, chaque fois que l'adresse Y est incré- mentée. Si le contenu tronqué du registre Z 60 au moment d'une comparaison quelconque est inférieur ou égal au conte- nu de la mémoire tampon Z 23 à cette adresse, la nouvelle valeur de Z est écrite dans la mémoire tampon Z, et le con- tenu du registre de couleur 54 est transmis par le multi- plexeur 77 et le registre de données d'image 78 vers la mémoire tampon d'image 22, d'une manière identique à celle décrite précédemment. L'adresse du pixel initial est Xt, Yt, comme indi- qué ci-dessus. En utilisant dans un but d'illustration le vecteur qui est représenté sur la figure 5, on peut voir que Xt, Yt correspond aux coordonnées 9, 1. Du fait que X1 est supérieur à X2 et que Y2 est supérieur à Y1, SBX = 1 et SBY = O. Le registre X1 58 sera donc décrémenté et le regis- tre Y1 95 sera incrémenté au fur et à mesure de la progres- sion du tracé du vecteur. Avant d'incrémenter ou de décrémenter un registre quelconque, on compare Y1 avec Y2 (comparateur 91), on com- pare X1 avec X2 (comparateur 92) et on compare X1 avec Xu (le contenu du registre Xu 61, tronqué à 12 bits) (compara- teur 90). Dans l'exemple spécifique du segment de ligne représenté sur la figure 5, Y1 = 1, Y2 = 5, X1 = 9, X2 = 1 et Xu = 8. Si aucune des comparaisons n'indique une égalité, ce qui est le cas dans l'exemple choisi, le registre X1 58 est décrémenté d'un espace de pixel, de même que les regis- tres d'adresse X de la mémoire tampon d'image et de la mémoire tampon Z. L'opération de comparaison portant sur Z et d'écriture dans la mémoire tampon Z et dans la mémoire tampon d'image est ensuite répétée pour le pixel qui est adressé maintenant, c'est-à-dire le pixel 8, 1. Lorsque les comparaisons portant sur X et Y sont effectuées cette fois, on trouve que X est égal au contenu du registre X1, 58. --U Lorsque ceci se produit, le comparateur 92 autorise l'unité de commande 30B à incrémenter le registre Y1 et les regis- tres d'adresse Y de la mémoire tampon d'image 22 et de la mémoire tampon Z, 23. Simultanément, le contenu du registre dX/dY 85 est additionné au contenu du registre Xu, 61. Le contenu du registre X 61 est alors la coordonnée exacte de u l'intersection du vecteur avec Y = 3. On peut noter que les intersections du vecteur avec les coordonnées de pixel Y sont calculées avec une précision de 27 bits et que les valeurs sont tronquées ultérieurement pour représenter des adresses de coordonnées X entières. La raison de ceci est la suivante: en procédant ainsi, lorsque le vecteur est tracé dans le but d'effectuer une mise en évidence des côtés, le vecteur apparaît de façon précise sur le côté du polygone, et il n'y a pas de pixels de la couleur du poly- gone qui s'étendent au-delà du côté mis en évidence. Après une répétition de l'opération de comparai- son relative à Z et d'écriture aux adresses de pixel 8, 3, les trois comparaisons relatives à X sont effectuées et ne font pas apparaître des égalités. Ceci a pour effet de décrémenter d'une adresse le registre X1 58 et les regis- tres d'adresse X de la mémoire tampon Z et de la mémoire tampon d'image. Cette procédure est répétée à chaque cycle d'horloge jusqu'à ce qu'il y ait une égalité entre le con- tenu du registre X1 58 et celui du registre X2 59, ou entre le contenu du registre Y1 95 et celui du registre Y2 96, ou les deux. Après que X1 (58) est devenu égal à X2 (59), les registres X ne sont plus décrémentés, et après que Y1 (95) est devenu égal à Y2 (96), les registres Y ne sont plus incrémentés. Lorsque les deux égalités se produisent, le vecteur a été achevé et l'unité de commande 30B émet un signal "terminé" vers le microséquenceur 26, par la ligne 36. On notera que toute région du vecteur dans laquelle la valeur Z enregistrée dans la mémoire tampon Z 23 est inférieure à la valeur Z du vecteur à cette adresse ne sera pas dessinée, mais l'objet introduit précédemment dans cette région restera dans les mémoires tampons et sera visualisé dans la scène finale. De façon similaire, des polygones ou des lignes suivants dont les valeurs Z indi- quent qu'ils sont plus prèsduprenmierplandela scène que le vecteur tracé à une adresse de pixel quelconque, déplaceront le vecteur se trouvant à cette adresse. On a présenté l'explication précédente du tracé d'un segment de ligne sans prendre en considération la possibilité de "définition de motif de tracé" du système. On utilise ici l'expression "définition de motif de tracé" pour désigner l'aptitude du système à produire des lignes intermittentes, telles que des lignes en pointillés. Il est possible d'obtenir une grande variété de combinaisons ou de motifs de tracé en utilisant le registre de motif de tracé 56 et le registre de longueur de motif de tracé 57 pour déterminer si un pixel particulier d'un vecteur sera activé. Le registre de motif de tracé 56 est un registre à décalage à circulation en boucle, à entrée parallèle et sor- tie série, qui est chargé par quatre mots à 16 bits séquen- tiels au moment o les données de tracé de vecteur sont chargées dans le STV 30. En outre, un mot de 6 bits est chargé dans le compteur de longueur de motif de tracé 57. Le mot à 6 bits présent dans le registre de longueur de motif de tracé 57 commande la longueur de fonctionnement du regis- tre de motif de tracé 56, ce qui fait que bien qu'on dispose d'un maximum de 64 étages, le registre peut fonctionner à la manière d'un registre plus court, selon le contenu du compteur de longueur de motif de tracé 57. Ainsi, si la période de répétition du motif de tracé est de 40 pixels, le registre de longueur de motif de tracé 57 serait fixé à une valeur faisant fonctionner le registre de motif de tracé 56 à la manière d'un registre d'un décalage à circulation en boucle à 40 étages. Le registre de motif de tracé 56, qui est un registre à 64 bits et à longueur programmable, a été conçu d'une manière originale pour minimiser le nombre de portes et l'aire occupée. Un registre à décalage caractéristique est conçu avec un élément de mémoire à bascule et un multi- plexeur pour chaque cellule. Un multiplexeur de type 2/1 sélectionne soit la valeur de la cellule précédente, soit la valeur présente sur le bus, en fonction du signal Décalage/ Chargement. On augmente la complexité du multiplexeur et de la logique de sélection en exigeant que le registre à déca- lage ait une longueur programmable de 1 à 64. Dans ce cas, le multiplexeur devient un sélecteur du type 3/1. Les trois signaux d'entrée sont la valeur de prépositionnement ou la valeur pouvant être chargée, la valeur de la cellule voisine la plus proche dans le mode de décalage, et le bit de bou- clage pour sélectionner la longueur programmable. La réalisation originale du registre de motif de tracé 56 dans l'invention a réduit le nombre de portes à environ 400, au lieu de plus de 600 portes équivalentes à 2 entrées pour une structure classique. Pour réaliser ceci, on a tout d'abord remplacé les cellules de mémoire par des bascules de type D, ce qui a permis de réduire de 6 à 3,5 le nombre de portes par cellule. Ceci est possible du fait que le registre ne décale pas les données de cellule en cellule et, à la place, la connexion de sortie est multiple- xée. On réalise le décalage de l'information de sortie au moyen d'un multiplexeur de type 4/1 à trois étages. Le pre- mier étage réduit les 64 bits à 16, le second étage sélec- tionne 4 bits parmi 16, et le troisième étage sélectionne un seul bit parmi les 4 restants. Le passage séquentiel par les 64 bascules, par l'intermédiaire des trois étages de multi- plexeurs, est accompli sous la commande du compteur de lon- * gueur de motif de tracé 57, qui est un compteur à 6 bits. Le compteur émet un signal de commande vers les lignes de sélection des multiplexeurs. Après avoir atteint la longueur programmée, le compteur se restaure et recommence à compter. Au total, le nombre de portes est réduit d'un facteur d'un tiers par rapport à l'art antérieur, avec des performances et une souplesse comparables. La figure 6 montre un schéma synoptique du compteur de longueur de motif de tracé 57 et du registre de motif de tracé-56. Soixante-quatre bascules de type D, 101, sont représentées connectées à 4 registres d'entrée à 16 bits, 105. Les données d'entrée qui définissent le motif de tracé et qui arrivent sur la ligne 35 sont appliquées en quatre mots à 16 bits séquentiels aux 64 registres de type D 101-1 à 101-64, par l'intermédiaire des registres d'entrée -1, 105-2, 105-3 et 105-4. Le signal de sortie Q de cha- que bascule dans des groupes de quatre est appliqué à 16 multiplexeurs 102-1 à 102-16. De façon similaire, le signal de sortie de chaque groupe de quatre multiplexeurs 102 est appliqué à l'un des quatre multiplexeurs 103-1 à 103-4. Finalement, les signaux de sortie des quatre multi- plexeurs 103 sont appliqués au dernier multiplexeur 104. Le compteur de longueur de motif de tracé 57 reçoit par la ligne 35 un signal à 6 bits qui le place dans des conditions lui permettant de compter en sens croissant jusqu'au nombre correspondant à la période de répétition dans le motif de tracé, et à recommencer ensuite le compta- ge. Le signal de sortie du compteur de longueur de motif de tracé 57 sélectionne l'une des 64 bascules 101 devant être connectée à la sortie du registre de motif de tracé 56, par l'intermédiaire des multiplexeurs 102, 103 et 104, en fonc- tion du compte présent dans le compteur. Lorsque le compte du compteur de longueur de motif de tracé 57 change, le signal de sortie du multiplexeur 104 correspond séquentiel- lement aux différentes bascules 101. De cette manière, le registre de motif de tracé 56 fonctionne en registre à décalage à entrée parallèle et sortie série, de longueur programmable. Pour illustrer le fonctionnement de la caractéris- tique de définition de motif de tracé de l'invention dans le mode d'écriture de vecteur, on supposera à titre d'exemple qu'on désire tracer un vecteur avec un effet de tirets cor- respondant à 15 pixels éclairés, 5 pixels éteints, 5 pixels éclairés, 5 pixels éteints, 5 pixels éclairés et finalement pixels éteints. En d'autres termes, le motif correspond à un tiret long suivi par deux tirets courts. La longueur du motif de tracé sera fixée à 40 pixels par le compteur de longueur de motif de tracé 57, du fait que ce nombre est le nombre total de pixels dans la période de répétition. Le registre de motif de tracé 56 fonctionnera alors comme s'il consistait en un registre à décalage à 40 étages, avec la sortie du 40ième étage connectée en retour au premier éta- ge. On utilise une logique négative dans le système de com- mande de motif de tracé (un O en sortie du registre 56 pro- duit un pixel actif), ce qui fait que le chargement du registre 56 sera le suivant: quinze "O", cinq "1", cinq "O", cinq "1", cinq "O" et cinq "1". La sortie du registre de motif de tracé 56 est connectée à la porte ET 65 qui (sous la dépendance d'une comparaison appropriée pour Z) indique à l'unité de commande 30B d'interdire l'écriture de données dans la mémoire tampon d'image chaque fois que le registre de motif de tracé 56 présente un "1" en sortie. A l'achèvement du traitement de tous les polygo- nes et de tous les segments de ligne dans la scène, la mémoire tampon d'image 22 contiendra un mot de 12 bits cor- respondant à chaque pixel sur l'écran du tube cathodique 21. Chaque mot contiendra une information concernant la couleur et l'intensité exigées pour chaque pixel à éclai- rer. Pour visualiser la scène, les adresses de la mémoire tampon d'image sont explorées en un format de trame et le contenu de chaque adresse est transmis au tube cathodique 21 par l'intermédiaire d'une table de couleur 36 et d'un convertisseur numérique/analogique 37. Pour chaque adresse de la mémoire tampon d'image, la table 36 fournit trois mots numériques qui, après avoir été convertis en une amplitude de tension dans le convertisseur numérique-analo- gique 37, attaquent les canons rouge, vert et bleu du tube cathodique 21 pour produire la couleur et l'intensité dési- rées à chaque pixel. REVENDICATIONS 1. Processeur de visualisation pour un système d'infographie à balayage par trame, caractérisé en ce qu'il comprend: (a) une mémoire d'entrée (24, 25) destinée à recevoir et à enregistrer des données concernant au moins une partie d'une scène à visualiser; (b) un mémoire de com- mande (26) destinée à enregistrer un programme de traite- ment; (c) une unité de traitement arithmétique (27, 28) destinée à accomplir des opérations arithmétiques et logi- ques sur les données se trouvant dans la mémoire (24, 25) sous la commande du programme; (d) un sous-système de traitement vidéo (30) qui accepte à la fois des données pro- venant de la mémoire d'entrée (24, 25) et des données prove- nant de l'unité arithmétique (27, 28), ce sous-système de traitement vidéo (30) effectuant un calcul en parallèle de la profondeur relative dans la scène et de l'intensité, pour chaque pixel appartenant à ladite partie d'une scène à visualiser; (e) des moyens (22) destinés à enregistrer des données définissant la couleur et l'intensité de chaque pixel appartenant à la scène à visualiser; (f) des moyens (63) destinés à comparer la profondeur relative à chaque position de pixel dans la partie de la scène à visualiser, avec la profondeur relative à chaque position de pixel de parties de la scène traitée précédemment; et (g) des moyens (65, 30B) destinés à empêcher l'enregistrement des données de couleur et d'intensité pour tout pixel appar- tenant à une partie de la scène à visualiser, si la profon- deur relative des parties traitées précédemment de la scène à visualiser, est inférieure à la profondeur relative de la partie de la scène à visualiser à la position de pixel con- sidérée. 2. Processeur de visualisation selon la revendi- cation 1, caractérisé en ce qu'il comprend en outre un che- min pour des instructions de programme, de la mémoire de commande (26) vers les moyens de traitement arithmétiques (27, 28) et vers le soussystème de traitement vidéo (30), indépendant du chemin de données entre la mémoire d'entrée (24, 25), les moyens de traitement arithmétiques (27, 28) et le sous-système de traitement vidéo (30). 3. Processeur de visualisation selon la revendica- tion 1, caractérisé en ce qu'il comprend en outre une mémoi- re premier entré-premier sorti (29) destinée à transmettre des données des moyens de traitement arithmétiques (27, 28) vers le sous-système de traitement vidéo (30). 4. Processeur de visualisation selon la revendica- tion 1, caractérisé en ce que la mémoire d'entrée comprend deux sections (24, 25), et chacune de ces sections alterne entre une condition dans laquelle elle est connectée à un bus d'entrée (12) pour recevoir des données, et une condi- tion dans laquelle elle est connectée aux moyens de traite- ment arithmétiques (27, 28) de manière que les données reçues précédemment puissent être utilisées dans le proces- seur de visualisation (20). 5. Sous-système de traitement vidéo destiné à produire des données définissant l'intensité désirée de cha- que pixel sur au moins une partie d'une ligne de trame d'un écran de visualisation, dans un système destiné à visualiser une représentation d'objets tridimensionnels sur une trame bidimensionnelle, caractérisé en ce qu'il comprend: (a) un premier registre de données (61) destiné à enregistrer des données définissant une intensité de pixel désirée d'un pre- mier pixel prédéterminé d'une trame; (b) un second registre de données (85) destiné à enregistrer des données définis- sant une valeur incrémentielle d'intensité; (c) des moyens (86, 87) destinés à accomplir de façon répétée les opéra- tions qui consistent à former la somme des contenus du pre- mier et second registres de données (61, 85), et à remplacer par cette somme le contenu du premier registre de données (61); et (d) un troisième registre de données (78) destiné à recevoir et à enregistrer chacune des sommes à des adres- ses prédéterminées. 6. Sous-système de traitement vidéo selon la revendication 5, caractérisé en ce qu'il comprend en outre: (a) un quatrième registre de données (54) destiné à enregis- trer des données définissant la couleur des pixels dans ladite partie d'une ligne de trame; et (b) des moyens (55, , 76) destinés à additionner le contenu du quatrième registre de données (54) à chacune des sommes, et à former un ensemble de mots numériques, d'une manière telle que les données définissant la couleur soient représentées par un premier groupe de chiffres dans ces mots numériques et que les données définissant l'intensité soient représentées par un second groupe de chiffres dans les mots numériques, ces mots numériques étant enregistrés dans le troisième registre de données (78) à la place des sommes précitées. 7. Sous-système de traitement vidéo selon la revendication 6, caractérisé en ce que les moyens (55, 75, 76) destinés à additionner le contenu du quatrième registre de données (54) à chacune des sommes, comprennent des moyens (55, 75) destinés à repositionner les chiffres de chaque somme de façon à créer un nombre binaire ne comprenant que des zéros dans les positions binaires occupées par des don- nées de couleur dans le quatrième registre de données (54). 8. Sous-système de traitement vidéo selon la revendication 5, caractérisé en ce qu'il comprend en outre: (a) un quatrième registre de données (60) destiné à enregis- trer des données définissant la profondeur relative, dans la scène à visualiser, du point d'un objet dans la scène cor- respondant à chaque pixel prédéterminé; (b) un cinquième registre de données (52, 77) destiné à enregistrer des don- nées définissant une valeur incrémentielle de profondeur; (c) des moyens (67) destinés à former de façon répétée des totaux des contenus des quatrième et cinquième registres de données (60; 52, 97); (d) un sixième registre de données (23) destiné à recevoir et à enregistrer les totaux à des adresses prédéterminées; et (e) des moyens (63) destinés à comparer chacun des totaux avec des totaux obtenus précédem- ment et enregistrés à des adresses correspondantes dans le sixième registre de données (23), et à interdire l'enregis- trement de ces totaux et des sommes correspondantes lorsque le total considéré dépasse le total obtenu précédemment qui est enregistré à l'adresse correspondante.