FR 2595486 A1 19870911 FR 8702636 A 19870227 La présente invention concerne des systèmes électro- niques de traitement de données, et elle porte plus particu- lièrement sur un système électronique destiné à manipuler des données représentant des objets géométriques et une informa- tion connexe, dans un système d'infographie. 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 applications de l'infographie, parmi lesquelles la conception assistée par ordinateur (CAO), la synthèse de diagrammes d'illustration, la création de titres et d'autres visualisations graphiques pour l'utilisation en télévision, et la simulation d'événe- ments 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 une description tridimensionnelle des objets à visualiser, et à enregistrer cette description sous forme mathématique dans une base de données graphiques. On traite et on manipule les données de façon à pouvoir re- présenter la scène sur un écran de visualisation. On peut considérer que le traitement de l'informa- tion provenant d'une base de données graphiques fait interve- nir quatre fonctions fondamentales: 1. L'extraction dans la base de données graphiques de données correspondant à une certaine partie d'un objet graphique; 2. La détermination des zones de l'objet graphique qui doivent être visibles sur l'écran de visualisation; 3. La transformation de la description tridimension- nelle de l'objet graphique en une description bidimensionnelle dans des coordonnées d'écran de visualisation; et 4. La sélection des pixels de l'écran de visualisa- tion qui doivent être activés pour visualiser l'objet, la dé- finition de leur couleur et de leur intensité, et l'activation de ces pixels pour former l'image graphique désirée. L'invention concerne les seconde et troisième étapes de traitement. Un format pour l'enregistrement d'une base de don- nées graphiques correspond à ce qu'on appelle une "liste de visualisation hiérarchisée", dans laquelle des données graphi- ques décrivant divers objets (ou morceaux d'objets) sont enre- gistrées par "segments". On peut considérer que chaque segment représente un objet graphique. A chaque segment peuvent être associés un ou plusieurs segments qui présentent avec le seg- ment précité une relation "parent-enfant". Le segment enfant d'un segment parent peut à son tour être associé à un ou plu- sieurs segments enfants. Cette relation parent-enfant entre des segments conduit à une structure hiérarchisée en "arbre" inversé. Chaque segment d'une base de données graphiques hiérarchisée contient de façon caractéristique une information de structure qui comprend des "pointeurs" qui désignent des segments parents, enfants et "frères". Des segments frères sont des segments qui ont le même segment parent. Un pointeur désignant un segment identifie la position de départ de ce segment dans une mémoire ou un dispositif d'enregistrement d'un système informatique. En plus des données de structure hiérarchisée, chaque segment peut également contenir une pri- mitive graphique et des attributs de la primitive. Une primi- tive graphique est de façon caractéristique un objet plan sim- ple, tel qu'un polygone ou un vecteur, défini par une liste de coordonnées dans un système de coordonnées tridimensionnel com- mode pour la primitive graphique particulière considérée. Des données d'attributs pour une primitive graphique peuvent défi- nir la couleur ou d'autres caractéristiques de la primitive, et elles peuvent également comprendre une matrice de transfor- mation qui spécifie la position spatiale et l'orientation de la primitive graphique du segment considéré, par rapport au système de coordonnées de son segment parent. Une caractéris- tique d'un type de base de données graphiques hiérarchisée con- siste en ce que dans le cas o l'information d'attribut n'est pas différente de celle du segment parent, il n'est pas néces- saire qu'elle soit définie dans le segment enfant, et peut à la place être "héritée" du segment parent. Les systèmes informatiques comprennent souvent des processeurs périphériques destinés à augmenter la vitesse de calcul du système d'ensemble. Les processeurs périphériques sont de façon caractéristique des systèmes de calcul spéciali- sés qui sont conçus pour accomplir efficacement.une ou plu- sieurs fonctions. Un processeur périphérique de ce type con- siste en un processeur graphique qui est conçu de façon à accepter des données provenant d'une base de données graphi- ques, à sélectionner des parties de ces données devant faire l'objet d'un traitement supplémentaire, à accomplir le traite- ment supplémentaire, et à transférer les données traitées vers un autre processeur spécialisé, pour la présentation sur un écran de visualisation. On utilise de tels processeurs graphiques dans di- verses applications. Par exemple, les systèmes de CAO inter- actifs utilisent souvent des processeurs graphiques en asso- ciation avec un ordinateur hôte pour enregistrer et visualiser un modèle du ou des objets à concevoir. Un concepteur commande le fonctionnement du système au moyen de divers dispositifs d'entrée, pour créerY'le modèle, souvent élément par élément. Les divers éléments du modèle forment une base de données gra- phiques qui est enregistrée dans le processeur graphique et qui est visualisée à la demande. Lorsque le concepteur apporte des changements au modèle, le système modifie la base de don- nées et met à jour l'information présentée sur l'écran de vi- sualisation pour montrer le modèle modifié. Sous la dépendance d'ordres provenant d'un ordina- teur hôte, un processeur graphique conçu de façon appropriée peut créer, copier ou supprimer des segments d'une base de données hiérarchisée, qui est de façon caractéristique enre- gistrée dans une mémoire séparée du processeur graphique. Le processeur graphique peut en outre supprimer, ajouter ou mo- difier diverses données graphiques (telles que les attributs, des primitives graphiques et une matrice de transformation dans chaque segment de la base de données graphiques), sous la dépendance d'ordres du niveau hôte. Une fois que la base de données hiérarchisée a été entièrement établie, le proces- seur graphique lit et traite cette base de données graphiques en produisant sur un écran de visualisation des images des objets représentés par la base de données graphiques, tels qu'ils sont vus à travers une "fenêtre d'observation" définie par l'utilisateur. Pour lire la base de données graphiques, le processeur graphique "parcourt" la base de données en li- sant des données dans un premier segment de la base de données et en passant ensuite à un segment connexe (parent, enfant ou frère), identifié par les pointeurs du premier segment, con- formément à un algorithme de parcours. De cette manière, le processeur graphique parcourt "l'arbre" de segments, jusqu'à ce que les données contenues dans la base de données graphi- ques aient été traitées. Du fait que le traitement graphique est une tâche de traitement qui représente une charge de calcul extrêmement importante, un processeur graphique périphérique peut employer un certain nombre de sous-processeurs spécialisés pour accom- plir des parties séparées de la tâche globale, dans le but de traiter la base de données graphiques en un temps raisonnable. Un processeur géométrique constitue un exemple d'un tel sous- processeur. Un processeur-géométrique perfectionné peut accom- plir un certain nombre de fonctions de traitement sur la base de données graphiques des segments. Une fonction importante consiste à tester les primitives graphiques de chaque segment pour déterminer si les primitives sont contenues dans le champ visuel qui est défini par la fenêtre d'observation. Dans la négative, le segment, et tous ses segments enfants, peuvent être ignorés en ce qui concerne la suite du traite- ment, ce qui augmente la vitesse de traitement globale. Des fonctions supplémentaires d'un processeur géomé- trique peuvent comprendre la concaténation de matrices de transformation, pour produire pour chaque segment une matrice de transformation capable de transformer le système de coor- données de primitive graphique du segment de façon à donner le système de coordonnées du segment de fenêtre d'observation se trouvant au "sommet" de la structure en arbre inversé. De plus, le processeur géométrique peut "couper" des primitives graphiques partiellement visibles, de façon que les parties de primitives qui s'étendent à l'extérieur du champ de vision ne soient pas traitées. Des primitives graphiques qui sont définies en trois dimensions doivent être projetées dans le plan image bidimensionnel du dispositif de visualisation. Les deux prin- cipales techniques de projection sont la projection parallèle et la projection en perspective. On peut effectuer une pro- jection parallèle en ignorant simplement la troisième coor- donnée (profondeur) du système de coordonnées tridimension- nelles. On peut effectuer une projection en perspective en divisant les composantes des deux premières coordonnées (hau- teur et largeur) par la troisième composante (profondeur), pour donner l'effet d'une diminution de taille pour les pri- mitives qui sont "plus loin" de l'observateur. Une fois qu'une primitive graphique a été coupée, projetée et/ou transformée de toute autre manière, un proces- seur géométrique peut convertir les coordonnées de la primi- tive, pour donner les "coordonnées de matériel" qui sont uti- lisées pour présenter les primitives sur un écran de visuali- sation. A partir des coordonnées de matériel, les primitives sont converties en un format de balayage par trame, par un processeur de visualisation qui convertit les coordonnées de matériel des primitives en un ensemble de pixels. Une fois qu'une primitive a été convertie en un format de balayage par trame, on supprime des surfaces cachées qui résultent de pri- mitives en chevauchement. Ce qui précède permet de voir qu'un volume de cal- cul considérable est souvent nécessaire pour traiter et vi- sualiser la primitive graphique d'un segment. Des modèles complexes peuvent faire intervenir une base de données de plusieurs milliers de segments. Il en résulte qu'un processeur graphique peut nécessiter un temps considérable pour convertir les données contenues dans la base de données graphiques, en une image sur un écran. Il est donc souhaitable de concevoir une architecture de processeur graphique ayant une vitesse de traitement graphique très élevée. Il est en outre souhaitable de concevoir une architecture de processeur graphique qui uti- lise une multitude de sous-processeurs pour diviser la tâche complexe consistant à traiter une base de données graphiques pour la transformer en une image, afin d'obtenir une meilleure efficacité et une plus grande vitesse de traitement. Il est donc souhaitable de concevoir un processeur géométrique gra- phique rapide capable de se charger d'une partie de la tâche consistant à traiter une base de données graphiques. L'invention atteint ces buts, ainsi que d'autres, au moyen d'un processeur géométrique ayant une architecture de traitement interne et une architecture de système originale, permettant de traiter une base de données graphiques de façon rapide et efficace, avec une conception simple mais néanmoins puissante. Un but de l'invention est de procurer un processeur géométrique original qui améliore notablement la vitesse de traitement de données graphiques dans un système de traitement graphique. On parvient aux buts et avantages précités grâce à un processeur géométrique ayant une architecture interne et de système exclusive qui facilite le traitement d'une base de données graphiques. Il y a trois caractéristiques hautement souhaitables dans un processeur géométrique. La première ca- ractéristique est une vitesse de transfert de données élevée en entrée et en sortie du processeur géométrique. La seconde caractéristique consiste dans la possibilité d'effectuer un grand nombre d'opérations mathématiques différentes, comme la multiplication, la division, les produits scalaires de matri- ces, les produits vectoriels de matrices, l'extraction de ra- cines carrées, etc. On appellera algorithme une suite de ces calculs mathématiques. La troisième caractéristique consiste en une excellente aptitude à la programmation, pour permettre l'incorporation de nouveaux algorithmes et traitements. La plage d'applications potentielles d'un processeur géométrique est d'autant plus étendue que la précision utili- see dans une opération mathématique est élevée. Certaines ap- plications exigent des nombres en virgule flottante à 32 bits, tandis que d'autres peuvent nécessiter seulement une précision correspondant à des nombres en virgule fixée à 16 bits. On doit parvenir à un compromis entre une précision plus élevée (qui conduit à un système plus coûteux), une plus grande souplesse pour accomplir divers algorithmes, et la vi- tesse de traitement du système. Il est très souhaitable d'exe- cuter divers algorithmes et de transférer des données aussi rapidement que possible, de façon à procurer à l'utilisateur un système graphique fortement interactif. Cependant, de façon générale, le système sera d'autant plus coûteux que la vitesse est élevée. Un système--comprenant des processeurs répartis pour accomplir les opérations nécessaires pour visualiser une base de données graphiques présente donc de nombreux avantages. Dans le mode de réalisation qui est représenté, le processeur géométrique de l'invention est connecté à (a) un processeur de terminal destiné à créer et à entretenir une ba- se de données graphiques sous la dépendance d'ordres provenant de l'ordinateur hôte, (b) un processeur de parcours d'arbre, qui parcourt indépendamment la base de données, en lisant ra- pidement les segments de données graphiques à une cadence op- timisée pour le traitement géométrique, et (c) un processeur de visualisation destiné à convertir en une image visuelle des segments de base de données traités. Le processeur de parcours d'arbre adresse rapidement la mémoire du processeur graphique dans laquelle est enregis- trée la base de données graphiques, et il fournit un train de segments de données graphiques au processeur géométrique, par un bus rapide de mémoire de liste de visualisation. Le proces- seur géométrique élimine les segments qui ne seront pas visi- bles sur l'écran de visualisation, et il transfère les données d'attributs des segments "visibles" sur un second bus de pile direct, reliant le processeur géométrique à une mémoire à structure de pile qui réside dans le processeur de parcours d'arbre.. On a trouvé qu'une telle configuration augmentait nettement la cadence à laquelle il est possible de lire et de traiter des données graphiques provenant de la base de données graphiques. Une fois que le dernier segment d'un chemin de par- cours a été atteint, le processeur de parcours d'arbre inverse sa direction, et il repasse par les segments visibles du che- min en extrayant de sa mémoire à structure de pile les segments ayant subi le traitement d'6imination.Pendant le parcours inverse, les données d'attributs des segments visibles sont retransférées de la mémoire à structure de pile du processeur de parcours d'arbre vers le processeur géométrique, par le bus de pile. De plus, le processeur de parcours d'arbre adresse les primitives graphiques associées des segments visibles enregistrés dans la base de données graphiques, et il transfère les primitives graphiques vers le processeur géométrique, par le bus de mémoi- re de liste de visualisation, pour un traitement ultérieur. On a trouvé qu'une telle configuration augmentait considérable- ment le taux d'utilisation du processeur géométrique et la cadence de traitement de données du système de processeur graphique, considéré dans son ensemble. Il en résulte qu'on peut mettre à jour très rapidement des images présentées sur un écran de visualisation, sous l'effet de modifications ap- portées à la base de données graphiques. Le processeur géométrique de l'invention qui est décrit ici fait partie d'un système de traitement graphique décrit de façon plus détaillée dans la demande de brevet française déposee le même jour par la demanderesse sous le titre "Processeur graphique perfectionné". Le mode de réalisation préféré du processeur géomé- trique est capable d'accepter des cadences de transfert de données dépassant 100 mega-multiplets par seconde, et des vi- tesse de calcul de 100 millions d'instructions par seconde, ou 30 millions d'instructions à virgule flottante à 32 bits par seconde, avec commande microprogrammée du matériel du processeur géométrique, pour procurer une grande souplesse dans la réalisation de divers algorithmes de traitement géo- métrique. Le processeur géométrique de l'invention comporte une structure spéciale d'accumulateur à virgule flottante à 32 bits, prévue pour calculer très efficacement une somme de produits. Cette structure est décrite de façon plus complète dans la demande de brevet française 87 00481, déposée par la demanderesse. Le processeur géométrique comprend également un circuit original de transformation mathématique à virgule flottante à 32 bits, qui accomplit des opérations de division et d'extraction de racine carrée, ainsi que des calculs d'ap- proximation de courbe, avec une cadence de données élevée. Ce circuit de transformation est décrit de façon plus complète dans la demande de brevet française n 87 00480, déposée par la demanderesse. La présente demande fait également intervenir un circuit d'unité arithmétique et logique multifonction ayant un matériel de décision spécial qu'on utilise pour accélérer les algorithmes d'élimination et de coupure ainsi que d'au- tres algorithmes programmés dans le processeur géométrique. Ce circuit est décrit de façon plus complète dans la demande de brevet française n 87 00635, déposée par la demanderesse. Dans son mode de réalisation préféré, le processeur géométrique consiste en un processeur arithmétique à virgule fixée ou à virgule flottante, programmable, à structure pipe- line et réalisé sur une seule carte, qui est spécialement adapté pour l'exécution d'algorithmes géométriques qui sont utilisés pour des applications graphiques. La suite de la description se réfère aux dessins annexés qui représentent respectivement: Figure 1: un schéma d'un système de processeur graphique comprenant le processeur géométrique de l'invention. Figure 2: un exemple schématique de la base de données hiérarchisée à structure en arbre inversé qui est utilisée en association avec l'invention. Figure 3: un exemple schématique de deux objets graphiques avec différents systèmes de coordonnées. Figure 4: une représentation schématique de l'en- semble des circuits du processeur géométrique. Figure 5: une représentation schématique du circuit de commande interne du processeur géométrique. Figure 6: une représentation schématique du circuit arithmétique pipeline interne du processeur géométrique. Figure 7: un schéma synoptique des chemins de don- nées possibles dans le circuit arithmétique pipeline du pro- cesseur géométrique. Figures 8a et 8b: des schémas des circuits logiques de retard du processeur géométrique. Les éléments similaires sont désignés par des réfé- rences similaires dans les divers dessins. Exposé général de l'environnement fonctionnel La figure 1 montre un schéma d'un système de proces- seur graphique 100 dans lequel est incorporé le processeur géométrique de l'invention. Le système de processeur graphique comprend un processeur de terminal 112 qui exécute des ordres de niveau hôte reçus à partir d'un ordinateur hôte (non représenté), par l'intermédiaire d'une interface d'ordinateur hôte 114. La majorité des ordres de niveau hôte portent sur la construction et la gestion d'une base de données graphiques, sous la forme d'une liste de visualisation hiérarchisée qui est enregistrée dans une mémoire de liste de visualisation ("MLV") 116. Le processeur de terminal 112 communique avec la MLV 116 par un bus de système universel 118 qui, dans le mode de réalisation représenté, est un bus à 32 bits standard du type "VMEbus". On peut trouver les spécifications du standard VMEbus dans le document VMEbus Specification Manual, Rev. B, août 1982, VMEbus Manufacturers Group. Des ordres de niveau hôte sont émis par un programme d'application d'ordinateur hôte qui réside dans l'ordinateur hôte. L'utilisateur du programme d'application d'ordinateur hôte peut également introduire directement des données dans le système de processeur graphique 100 en utilisant divers dispo- sitifs d'entrée graphiques, tels qu'une tablette graphique , un clavier alphanumérique 122 ou divers autres disposi- tifs d'entrée tels que des manches à balai, des souris, et des dispositifs à boutons ou à billes (non représentés). On peut utiliser l'information d'entrée provenant de ces disposi- tifs pour émettre des ordres graphiques dans le but de modi- fier la base de données graphiques, de changer des paramètres d'observation et d'effectuer des transformations de déplace- ment panoramique ou de zoom sur l'image graphique que fournit un dispositif de visualisation 126. De cette manière, des ap- plications telles que des systèmes de CAO disposent d'une com- mande locale interactive du dispositif de visualisation 126. Un sous-système de traitement géométrique 130 est connecté au processeur de terminal 112 par l'intermédiaire du bus de système 118. Le soussystème de traitement géométrique comprend un processeur de parcours d'arbre 132 destiné à lire rapidement la liste de visualisation hiérarchisée qui est enregistrée dans la MLV 116. Le processeur géométrique 136 de l'invention est connecté au processeur de parcours d'arbre 132 par un bus de pile bidirectionnel 138. Le processeur géométrique 136 accomplit tous les calculs graphiques pour le sous-système de traitement géomé- trique 130. Le processeur de parcours d'arbre 132 parcourt la base de données enregistrée dans la MLV 116, segment par seg- ment, en adressant séquentiellement les données de chaque segment au moyen d'un bus de MLV 134. Ce parcours convertit la structure d'arbre de la MLV 116 en un train de données qui est transmis par le bus de MLV 134 vers le processeur de par- cours d'arbre 132 et vers le processeur géométrique 136. Le processeur géométrique 136 accomplit les fonctions de traite- ment qui comprennent l'élimination, la coupure, la projection et la concaténation de matrices de transformation. Les fonc- tions d'ensemble du sous-système de traitement géométrique 130 sont expliquées plus complètement dans la demande préci- tée, intitulée "Processeur graphique perfectionné". Comme on l'expliquera ci-après de façon.plus dé- taillée, le processeur géométrique 136 ne traite pas complè- tement chaque primitive graphique avant de passer à la primi- tive suivante. A la place, le processeur géométrique 136 transfère directement des données d'attributs graphiques (comme des attributs de couleur) et des données de transforma- tion vers le processeur de parcours d'arbre 132, par le bus de pile 138 si, pendant le processus d'élimination, le proces- seur géométrique 136 détermine que la primitive graphique as- sociée est potentiellement visible. Le processeur de parcours d'arbre 132 enregistre dans une mémoire à structure de pile interne, selon un mode "premier entré/dernier sorti", les don- nées d'attribut et de transformation qui proviennent du pro- * cesseur géométrique. Par une communication permanente avec le processeur de parcours d'arbre 132, le processeur géométrique 136 fait en sorte que seules les données d'attributs et de transformation concernant des segments visibles soient enre- gistrées dans la mémoire à pile du processeur de parcours d'arbre. Une fois que le processeur de parcours d'arbre 132 a atteint le dernier segment d'un parcours, il inverse sa di- rection, en parcourant à nouveau les segments potentiellement "visibles" (c'est-à-dire les segments ayant des primitives graphiques potentiellement visibles), qui sont indiqués par les données enregistrées dans la mémoire à pile de proces- seur de parcours d'arbre. Pendant que le processeur de par- cours d'arbre 132 suit le chemin de parcours en sens inverse, de segment en segment, il retransfère vers le processeur géo- métrique 136, par le bus de pile 138, les données graphiques relatives à chaque segment qui sont enregistrées dans sa mé- moire à structure de pile. Simultanément, le processeur de parcours d'arbre 132 adresse des données graphiques supplé- mentaires enregistrées dans la MLV 116, qui constituent la primitive graphique associée au segment courant qui est re- transféré vers le processeur géométrique 136. La primitive graphique est transférée vers le processeur géométrique 136 par le bus de MLV 134. Le processeur géométrique 136 utilise les données provenant de la mémoire à structure de pile de processeur de parcours d'arbre et provenant de la MLV 116, pour effectuer ce qu'on appelle un traitement de "face", qui transforme les données graphiques pour la visualisation. Dans le mode de réalisation qui est considéré, le processeur géo- métrique 136 coupe et projette la primitive graphique d'un segment visible, et il effectue une partie des calculsdegeda- tion appropriés. Lorsque le processeur géométrique 136 a ter- miné, il transmet la primitive graphique accompagnée des at- tributs hérités, sous le format d'un "paquet de bord", vers un processeur de visualisation 140, par le bus de système 118. En association avec une mémoire tampon Z 146 et une mé- moire tampon d'image 142, le processeur de visualisation 140 accomplit la conversion sous un format de balayage par trame, la suppression des surfaces cachées et le reste des calculs de gradation.La fonction duprocesseur de visualisation 140 est décrite de façon plus complète dans la demande de brevet française n0 87 01846, déposée par la demanderesse. Ainsi, l'architecture du sous-système de traitement graphique 130 réalise un compromis entre la rapidité du trai- tement et le coût du système, par l'utilisation du processeur géométrique 136 pour les fonctions d'élimination et de trai- tement de face, et du processeur de parcours d'arbre 132 pour les fonctions de parcours en sens direct et inverse. Structure de base de données hiérarchisée Pour permettre de mieux comprendre la conception et le fonctionnement du système de processeur graphique 100, la figure 2 montre un exemple simplifié d'une liste de visualisa- tion hiérarchisée du type en arbre. La liste de visualisation de la figure 2 représente et décrit les objets qui sont repré- sentés sur la figure 3, comprenant une tasse et une soucoupe, 150, et un cube 152. Ces objets simples n'ont été sélectionnés que dans un but d'illustration. Dans la pratique réelle, les- objets qui peuvent être modélisés peuvent être notablement plus complexes. On peut considérer le cube 152 comme un ensemble de six faces 1-6, dans lequel chaque face est représentée par un polygone à quatre côtés ayant une couleur et une gradaion parti- culières, et une relation spatiale particulière avec le cube considéré dans son ensemble. De cette manière, on peut modé- liser des objets complexes en décomposant l'objet en formes simples (primitives graphiques) auxquelles est associée une information d'attribut. L'élément de base dans la lise de visualisation de la figure 2 est le segment. Chaque segment peut comporter une primitive graphique (telle qu'un polygone, un vecteur, etc), des attributs (tels qu'une couleur de polygone, une matrice de transformation, etc) et une information de structure (telle que des pointeurs désignant des segments connexes). Chaque segment de données est divisé en deux tampons: un tampon d'élimination et un tampon de données de primitives.Le tampon d'élimination contient des données d'attributs et une informa- tion nécessaire pour déterminer si la primitive associée est visible dans un champ de vision défini. Le tampon de données de primitive contient les données nécessaires pour définir la primitive graphique elle-même. Le segment racine ou segment supérieur A de la figu- re 2 est le segment de définition de "fenêtre d'observation", qui définit l'angle d'observation sous lequel les objets gra- phiques sont observés, et le volume de l'espace visible à l'observateur. A ce segment est associé un système de coordon- nées de référence qu'on appelle un système de coordonnées "'terrestres" et qui est représenté par les trois axes orthogo- naux 154 sur la figure 3. La relation spatiale entre la tasse et la soucoupe 150, et le cube 152, est définie au moyen de leurs coordonnées terrestres. Un point oculaire 156 et un point de visée 158 (spécifiés en coordonnées terrestres), associés à un angle d'inclinaison 9, définissent un second système de coordonnées, à savoir le système de coordonnées "oculaires". L'origine du système de coordonnées oculaires se trouve au point oculaire 156, avec l'axe Z dirigé le long de la ligne de visée, dans la direction du point de visée 158. L'angle d'inclinaison 9 définit l'angle de rotation des axes X et Y autour de l'axe Z. Le volume d'observation est défini par six "plans de coupure" qui forment de façon caractéristique un tronc de pyramide. De cette manière, le système de coordonnées oculaires identifie l'angle d'observation sous lequel les objets doivent être observés. On définit un système de coordonnées connexe, à sa- voir le système de coordonnées oculaires pondérées, dans le- quel les coordonnées X et Y du système de coordonnées oculai- res sont pondérées pour simplifier le processus de coupure. Le segment de définition de fenêtre d'observation A comporte une matrice de transformation destinée à transformer des coordonnées dans le système de coordonnées terrestres en coordonnées dans le système de coordonnées oculaires, et une seconde matrice de fenêtre d'observation pour convertir les coordonnées oculaires de façon à donner le système de coor- données oculaires pondérées. Au-dessous du segment de définition de fenêtre d'observation A de la figure 2 se trouve un second segment de la liste de visualisation, qu'on appelle le segment B. Le segment B est un segment enfant du segment parent A, et il représente l'ensemble tasse-soucoupe 150. Un système de coor- données de "modèle" 160 est associé à l'ensemble tasse-sou- coupe 150, et on définit le système de coordonnées de modèle en plaçant son origine à un emplacement convenable et en alignant les axes avec certaines des données de primitive. Toutes les données de primitive qui sont contenues dans un segment sont rapportées à son système de coordonnées de modè- le associé. Le segment B comporte une matrice de transforma- tion qui transforme des points dans le système de coordonnées de modèle du segment B pour les faire correspondre au système de coordonnées de son parent, c'est-a-dire le segment A (qui est dans ce cas le système de coordonnées terrestres). Le segment B comporte également des pointeurs diri- gés vers l'un de ses segments enfants, c'est-à-dire le seg- ment D, et vers l'un de ses segments frères, c'est-à-dire le segment C (qui représente le cube 152). Le segment C est éga- lement un segment enfant du segment parent A, et il comporte son propre système de coordonnées de modèle 162, qui comporte dans ce cas une origine placée à l'un des sommets du cube , et trois axes alignés avec des arêtes du cube. Le seg- ment C comporte à son tour six segments enfants F-K pour les six faces de cube 1-6 respectives. Les segments F-K sont tout à fait similaires. A titre d'exemple, le segment F com- porte des pointeurs dirigés vers le segment parent C, le seg- ment frère G et un segment enfant (s'il en existe un). Le segment F possède son propre système de coordonnées de modèle dans lequel les quatre sommets de la face de définition de polygone 1 sont spécifiés. Ce polygone à quatre côtés est la primitive graphique du segment F. Le segment F définit en ou- tre la couleur et d'autres attributs de la primitive graphi- que. Chaque segment de la liste de visualisation est présenté sous un format comprenant un certain nombre de tam- pons de données qui contiennent les données graphiques, et un bloc de commande qui comporte des pointeurs désignant les po- sitions de mémoire dans la MLV 116 auxquelles se trouvent les tampons. Chaque bloc de commande comprend un certain nombre de mots (de façon caractéristique seize mots) qui comprennent des pointeurs, des indicateurs et d'autres données de comman- de. L'un de ces blocs de commande, à savoir le bloc de commande de segment, contient un pointeur dirigé vers le tam- pon d'élimination du segment, qui enregistre les attributs de la primitive graphique associée. Parmi ces attributs figure un "volume de limitation" que le processeur géométrique 136 utilise dans le processus d'élimination. Le volume de limita- tion est un ensemble de huit points de coordonnées qui défi- nissent un volume contenant entièrement la primitive graphi- que pour un segment et toutes les primitives graphiques de tous les segments enfants. Le volume de limitation permet au processeur géométrique 136 d'éliminer rapidement des segments qui sont complètement à l'extérieur du champ de vision défi- ni, au moyen de tests de comparaison simples. Chaque fois que le processeur de terminal 112 in- troduit de nouvelles données graphiques pour un segment, ou modifie une matrice de transformation, ce processeur de ter- minal met à jour les volumes de limitation pour la totalité de la liste de visualisation. Par exemple, si un nouveau po- lygone est introduit dans un segment, cette opération peut augmenter la taille du volume de limitation pour ce segment. Si le volume de limitation du segment augmente, il peut être nécessaire d'augmenter la taille du volume de limitation de son segment parent, pour faire en sorte que le volume de li- mitation su segment parent englobe le nouveau volume de li- mitation du segment enfant. Ainsi, des changements effectués dans un segment peuvent remonter progressivement dans l'arbre de la liste de visualisation, jusqu'à ce qu'on arrive à un segment qui n'est pas affecté par le changement. Un mot d'in- dicateur est instauré dans chaque segment lorsque le segment a été modifié, pour indiquer que le volume de limitation pour le segment parent du segment considéré peut également néces- siter une mise à jour. Outre le volume de limitation, le tampon d'élimina- tion contient également des données d'attribut qui définis- sent certaines caractéristiques de la primitive graphique du segment. Si une caractéristique particulière n'est pas défi- nie dans le tampon d'élimination d'un segment, la définition de cette caractéristique est héritée du segment parent. Par exemple, si le segment C indique que sa primitive graphique associée (s'il y en a une) possède la couleur "rouge", tous ses enfants (les segments de face F-K) qui ne définissent pas localement la couleur de la primitive graphique hériteront la couleur "rouge" pour la primitive graphique. Le tampon d'élimination contient également la ma- trice de transformation destinée à transformer le système de coordonnées local du segment pour donner le systèmede coor- données de son segment parent. Une information de source lu- mineuse peut également être enregistrée dans le tampon d'éli- mination. Un mot du bloc de commande de segment définit un pointeur dirigé vers le tampon de données qui contient les données de primitive du segment. La primitive graphique est définie dans le système de coordonnées de modèle local du segment. La structure de liste de visualisation qu'utilise le système de processeur graphique 100 permet la "mise à disposition" de segments. Ainsi, une fois qu'un seul segment a été créé, d'autres segments dans la structure de liste de visualisation peuvent faire référence un nombre de fois quel- conque à ce segment. Par exemple, un seul segment définissant une face de cube pourrait être appelé par chacun des segments F-K de la figure 2, au lieu de dupliquer l'information cor- respondante pour chaque enfant du segment C. Chaque référence au segment "mis à disposition" peut modifier les attributs de ce segment, du fait que des attributs peuvent être hérités pendant le parcours de l'arbre. Ainsi, chaque segment F-K aurait une matrice de transformation différente pour position- ner la face "mise à disposition" à l'emplacement correct pour former le cube 160. Dans le mode de réalisation qui est representé, toutes les quantités se trouvant dans les tampons de liste de visualisation (y compris les blocs de commande) sont enre- gistrées en paquets de longueur fixe de seize mots ou de trente-deux mots, dans lesquels chaque mot comprend trente- deux bits, Ces paquets de longueur fixe facilitent les tâches d'accès en mémoire, d'affectation d'espace de mémoire et de libération d'espace de mémoire. Pour un paquet caractéristique de tampon d'élimina- tion ou de tampon de données de primitive, on utilise des mots de remplissage en quantité nécessaire pour emplir le pa- quet de façon qu'il comporte seize ou trente-deux mots. Des quantités qui auraient normalement une longueur supérieure à trente-deux mots (comme c'est le cas pour de nombreux types de données de primitive) sont décomposées en paquets de seize mots, et enchainées ensemble par l'intermédiaire de pointeurs de "paquet suivant". Un pointeur de "dernier paquet de tampon de données" du bloc de commande supprime la nécessité de par- courir la totalité de la liste enchainée pour trouver le der- nier paquet du tampon de données afin d'ajouter des données de segment. Les segments décrits ci-dessus forment une liste de visualisation hiérarchisée que le processeur de terminal 112 crée et enregistre dans la MLV 116 d'une manière classique. Le processeur de terminal 112 accède à la MLV 116 par l'in- termédiaire du bus de système 118. Une fois que la liste de visualisation a été enregistrée dans la MLV 116, elle peut être parcourue et traitée pour produire les images désirées des représentations d'objets enregistrées. Algorithmes de transformation du processeur géométrique Le processeur géométrique 136 accomplit toutes les opérations matricielles et vectorielles et les opérations d'élimination, de coupure, de projection et de définition d'échelle sur l'écran en projetant des données tridimension- nelles de liste de visualisation dans un espace d'écran bi- dimensionnel. Comme indiqué ci-dessus, l'élément de base dans la mémoire de liste de visualisation est le segment, et chaque segment peut comporter facultativement une matrice de trans- formation. Cette matrice reçoit des données dans le système de coordonnées du segment et les transforme pour les faire correspondre au système de coordonnées du parent. Par exem- ple, sur la figure 2, lorsque la matrice de transformation du segment D est appliquée aux données se trouvant dans le tampon de données du segment D, elle les transforme pour les exprimer dans le système de coordonnées du segment B. De fa- çon similaire, la matrice de transformation du segment B transforme les données de ce segment pour les exprimer dans le système de coordonnées du segment A. Ces transformations sont accomplies par rotation, pondération et translation de composantes dans chaque matrice de transformation. Dans le mode de réalisation préféré de l'invention, les termes de pondération, rotation et translation sont en- registres dans une matrice de transformation de dimensions 4 x 3. La convention utilisée dans la représentation de la ma- trice est la suivante: moO mol m02 m10 mil m12 m20 m21 m22 m30 m31 m32 Des points d'une primitive graphique sont représen- tés par leurs valeurs de coordonnées X, Y et Z, plus un terme constant, avec la représentation suivante point P = (Px Py Pz) Le fait de multiplier un point par une matrice de transformation donne en sortie le point dans le nouveau sys- tème de coordonnées défini par la matrice de transformation. Par exemple: P' = P*M = (Qx Qy Qz), avec Qx = Px*mOO + Py*mlO = Pz*m20 + m30 Qy = PxmmOl + Py*mll + Pz*m21 + m31 Qz = Pxxm02 + Pyxm12 + Pz*m22 ± m32 Une rotation autour de l'un quelconque des trois axes de coordonnées peut être effectuée à l'aide des matrices suivantes (dans lesquelles 9 est l'angle de rotation): Rotation autour de l'axe X: 1 0 0 0 cosO -sinO 0 sin@ cosO 0 0 0 Rotation autour de l'axe Y: cose -sing 0 sin9 cose Rotation autour de l'axe Z: cose sin9 -sing cos9 o0 On peut effectuer une pondération quelconque des trois axes de coordonnées en termes de pondération désirés (désignés par trice suivante: Sx Sy On peut accomplir une translation termes de translation désirés (désignés par trice suivante: Ty Ty portant sur l'un incorporant les "S")dans la ma- o Sz en fixant des "T") dans la ma- Tz Comme indiqué ci-dessus, le segment de plus haut niveau dans la hiérarchie de la structure en arbre de l'in- vention est le segment de définition de fenêtre d'observa- tion. Le système de coordonnées pour le segment de défini- tion de fenêtre d'observation est appelé le système de coor- données terrestres. C'est dans le système de coordonnées terrestres que sont spécifiées les valeurs du point oculaire 156 et du point de visée 158. La spécification d'un point oculaire et d'un point de visée, ainsi que d'un angle d'in- clinaison 9, définit le système de coordonnées oculaires. On introduit le système de coordonnées oculaires pondérées pour simplifier le processus de coupure. Dans le système de coordonnées oculaires, les équations des plans de coupure sont les suivantes: Plan droit: Plan gauche: Plan supérieur Plan inférieur Plan proche: Plan lointain: X = Z * tg(angle X) X = -Z X tg (angle X) Y' = Z * tg (angle Y) Y' = -Z * tg (angle Y) Z' = valeur proche (constante) Z' = valeur lointaine (constante). En pondérant de façon simple les points X et Y au moyen de leurs termes de cotangente respectifs, on simplifie considérablement les tests de coupure. Plus précisément, si on pose: X' = X * cotg(angle X), et Y' = Y * cotg(angle Y), les équations pour les six plans de coupure deviennent: Plan doit: Plan gauche: Plan supérieur: Plan inférieur: Plan proche: Plan lointain: X = Z Y" = -Z Y" = Z Y" = -Z Z" = valeur proche Z" = valeur lointaine En effectuant une pondération de la manière ci-des- sus, la détermination du fait qu'un point quelconque d'un vo- lume de limitation est du côté intérieur ou extérieur d'un plan de coupure ne nécessite qu'un test de comparaison simple de deux valeurs numériques. Le système de coordonnées résul- tant obtenu en pondérant les coordonnées X et Y est appelé le système de coordonnées oculaires pondérées. On enregistre commodément les termes de pondération dans une matrice de transformation qui est mémorisée dans un paquet de fenêtre d'observation, dans le segment de définition de fenêtre d'observation. Pour la projection en perspective, on utilise la matrice de transformation suivante: cotg(angle X) O O 0 cotg(angle Y) O O O -1 O O O Pour une projection parallèle (orthogonale), l'uti- lisateur définit explicitement une matrice qui fixe les six plans de coupure. La matrice de transformation de projection parallèle est la suivante (avec R = plan droit, L = plan gau- che, T = plan supérieur et B = plan inférieur): 2/(R - L) 0 O 0 2/(T - B) O 0 0 -1 -(R + L)/(R - L) -(T + B)/(T - B) O Avec ces matrices et les plans de coupure définis, tous les points sont soumis à une pondération et une transla- tion les faisant rentrer dans le volume d'observation défini. Organisation du matériel La figure 4 montre le processeur géométrique 136 sous la forme d'une combinaison de blocs de registres à double tampon et à accès multiples et d'une unité arithmétique pipe- line, interconnectés par des bus internes et commandés par un micro-séquenceur, avec des éléments de commande périphériques. L'interface de système 200 connecte le processeur géométrique 136 au bus de système 118. L'interface de système réagit à des ordres provenant du processeur de terminal 112 (représenté sur la figure 1) en adressant tous les regis- tres et indicateurs d'état dans le processeur géométrique 136 par la sélection de l'adresse de lecture ou d'écriture appro- priée. Le processeur de terminal 112 utilise également l'in- terface de système 200 pour transférer des instructions de microprogramme de l'ordinateur hôte vers une mémoire de mi- croprogramme 202, à l'initialisation du processeur géométri- que 136. Un micro-séquenceur 204 utilise ses sorties d'adres- se pour sélectionner une instruction de microprogramme dans la mémoire de microprogramme 202. L'instruction de micropro- gramme sélectionnée est enregistrée temporairement dans un registre pipeline 206. Une partie de l'instruction de microprogramme pro- venant du registre pipeline 206 est renvoyée vers les entrées d'adresse de branchement et les entrées d'instruction du mi- cro-séquenceur 204 pour commander le fonctionnement ultérieur du micro-séquenceur. D'autres bits de l'instruction de micro- programme enregistrée dans le registre pipeline 206 sont di- rigés vers des registres de code de condition et de code opé- ration 208, et vers un circuit logique de retard 210. Le cir- cuit logique de retard 210 achemine des instructions de com- mande vers une unité arithmétique pipeline 212, après un re- tard qui peut être sélectionné. L'unité arithmétique pipeline 212 effectue des calculs séquentiels. Un bus X et un bus Y amènent des données dans l'unité arithmétique pipeline 212, et un bus Z achemine les résultats de l'unité arithmétique pipeline 212 vers un registre de destination qui est indiqué par l'instruction de microprogramme active. Quatre blocs de registres à accès multiples sont connectés aux bus X, Y et Z. Le bloc de registres-de MLV 214 enregistre des paquets de données qui proviennent de la MLV 116 par l'intermédiaire du bus de MLV 134, sous la commande du processeur de parcours d'arbre 132. Un bloc de registres de pile 216 enregistre des données qui proviennent du processeur de parcours d'arbre 26: 132 par le bus de pile 138. Un bloc de registres de travail 218 (qui peut être constitué par un ou plusieurs sous-blocs de registres) enregistre des résultats intermédiaires pendant des calculs effectués en série. Un bloc de registres de sor- * tie 220 enregistre les résultats finals de calculs de l'unité arithmétique pipeline. Le contenu du bloc de registres de sortie 220 peut être placé directement sur le bus de pile 138, ou bien il peut être émis vers le processeur de terminal 112 et/ou le processeur de visualisation 140 par l'intermé- diaire de l'interface de système 200 et du bus de système 118. Le processeur géométrique 136 est connecté au pro- cesseur de parcours d'arbre 132 au moyen du bus de pile bidi- rectionnel 138. Le processeur géométrique 136 est connecté au bus de MLV 134 pour recevoir de l'information uniquement à partir de la MLV 116. Pour réduire le nombre de lignes de si- gnal d'entrée/sortie qui sont connectées au processeur géomé- trique 136, le bus de MLV 134 et le bus de pile 138 sont des bus à 16 bits avec multiplexage temporel dans le mode de réa- lisation qui est représenté. Pendant la première moitié d'un transfert sur un bus, les seize bits de fort poids d'un mot de données sont présents sur le bus, et pendant la seconde moitié du transfert sur le bus, les seize bits de faible poids du mot de données sont présents sur le bus. Le bus de pile 138 communique avec le bloc de re- gistres de pile 216 et le bloc de registres de sortie 220, pour écrire des données dans le bloc de registres de pile 216 et pour lire des données dans le bloc de registres de sortie 220. Le bus de MLV 134 transfère des adresses et des données à partir d'une seule source, à savoir la MLV 116, et dans une seule direction, c'est-à-dire vers le processeur de parcours d'arbre 132 et le processeur géométrique 136. Par conséquent, le bus de MLV 134 ne comporte aucun retard d'ar- bitrage ou d'établissement de liaison de bus Pet il peut donc fonctionner avec des vitesses de transfert de données extrême- ment élevées. Dans le mode de réalisation qui est representé, le bus de MLV 134 peut transférer 40 mégamultiplets de données par seconde, alors que la vitesse du bus de système 118 est de 6 mégamultiplets par seconde. Le bus de système 118 communique avec tous les re- gistres et avec la mémoire de microprogramme 202 dans le pro- cesseur géométrique 136. Le bus de système 118 est capable de remplacer fonctionnellement le bus de MLV 134 et/ou le bus de pile 138. Ceci permet de faire fonctionner et de tester le processeur géométrique 136 en n'utilisant que le bus de sys- tème 118. Le bloc de registres de MLV 214 est une mémoire à structure en tampon double, ce qui signifie qu'elle est divi- sée en deux moitiés. Pendant que le processeur géométrique 136 travaille sur des données se trouvant dans une moitié du bloc de registres de MLV 214, des données sont écrites dans l'autre moitié à partir du bus de MLV 134. Lorsque le processeur géo- métrique a terminé le traitement des données se trouvant du premier côté, et lorsque le bus de MLV 134 a terminé le trans- fert de données vers le second côté, les deux côtés sont per- mutés. L'utilisation d'une structure en tampon double permet au bus de MLV 134 de transférer des données pendant que le processeur géométrique 136 travaille sur des données internes. Le bloc de registres de pile 216 et le bloc de registres de sortie 220 ont également une structure en tampon double. L'accomplissement d'un transfert sur un bus exige la connaissance de l'état du bloc de registres avec lequel le bus doit communiquer. Lorsque le processeur géométrique 136 a ter- miné le traitement de données dans une moitié d'un bloc de re- gistres, cette moitié du bloc de registres est allouée au bus. A chacun des blocs de registres d'entrée et de sortie 214, 216 et 220 est associé un indicateur "Mémoire Disponible", qui in- dique le moment auquel le bloc de registres associé est dispo- nible pour une opération d'entrée. A chaque bloc de registres est également associé un indicateur "Mémoire Chargée", qui in- dique le moment auquel un transfert de bus vers le bloc de re- gistres est terminé. Ainsi, l'utilisation des indicateurs "Mémoire Disponible" et "Mémoire Chargée" selon un mode d'éta- blissement de communication,permet la commande de la circula- tion des données en entrée et en sortie de chaque bloc de re- gistres à structure en tampon double. Le processeur géométri- que 136 utilise également trois signaux d'interruption (un pour chacun des éléments comprenant le processeur de parcours d'arbre 132, le processeur de visualisation 140 et le proces- seur de terminal 112), qu'on emploie pour signaler à d'autres processeurs que des données sont prêtes à être transférées vers l'autre processeur à partir du bloc de registres de sor- tie sur lequel porte l'interruption. Le processeur géométrique 136 génère également un signal "Objet Visible" qui est appli- qué au processeur de visualisation 140. En considérant maintenant la figure 5, on note que le processeur géométrique est commandé par le micro-séquenceur 204 en association avec divers dispositifs périphériques. Dans le mode de réalisation de l'invention qui est représenté, le micro-séquenceur 204 est un microséquenceur de la marque Integrated Device Technology, portant la référence IDT39C10B. Au démarrage du système, l'ordinateur hôte transfère des instructions de microprogramme par l'interface de bus de système 200 vers la mémoire de microprogramme 202, qui est une mémoire de 4096 x 80 bits dans le mode de réalisation qui est représenté. Lorsque le micro-séquenceur 204 reçoit un ordre par l'interface de système 200, l'instruction de microprogram- me appropriée est prélevée dans la mémoire de microprogramme 202 et estplacée dans le registre pipeline à 80 bits 206, de façon que différentes zones de l'instruction de microprogramme puissent être envoyées simultanément vers différents disposi- tifs dans le processeur géométrique. Le micro-sequenceur 204 reçoit une instruction de micro-séquenceur à 4 bits extraite de l'instruction de microprogramme, et il l'exécute, en utili- sant une adresse de branchement qui est fournie par le registre pipeline 206. Pendant l'exécution de l'instruction, le micro- séquenceur 204 obtient une information d'état en examinant des bits qui se trouvent dans l'un des différents registres d'in- dicateur et de code de condition (226, 228 et 230), au moyen d'un multiplexeur de code de condition 232. Un registre de code opération 222 et un registre de compte de mots224 mémorisent des mots de commande issus d'un segment pendant le traitement de données graphiques. Une zone de l'instruction de microprogramme courante peut être acheminée à partir du registre pipeline 206 vers les circuits d'interface de processeur géométrique, l'unité ari- thmétique pipeline 212 ou les entrées d'adresse et la logique de commande de lecture/écriture des divers blocs de registres à accès multiples 214, 216, 218 et 220, pour commander la cir- culation des données dans le processeur géométrique et les opérations accomplies sur ces données. Au moment de l'initialisation, le processeur géomé- trique 136 est placé dans les conditions suivantes: son comp- teur de microprogramme est mis à zéro, tous les indicateurs "Mémoire Disponible" sont instaurés (ce qui indique que les blocs de registres sont disponibles), et tous les indicateurs "Mémoire Chargée" sont restaurés (ce qui indique que les blocs de registres ne sont pas charges). Le processeur géométrique 136 attend ensuite que le bloc de registres de MLV 214 soit chargé. Le processeur de parcours d'arbre 132 contrôle l'état de l'indicateur"Mémoire Disponible" de MLV. Lorsque l'indica- teur "Mémoire Disponibld'de MLV indique que le bloc de regis- tres de MLV 214 est disponible, le processeur de parcours d'arbre 132 provoque l'émission d'un mot de commande, accompa- gné de mots de données en un nombre allant jusqu'à trente et un, par la MLV 116 vers le processeur géométrique 136, sur le bus de MLV 134. Lorsque le bloc de registres de MLV 214 est complètement charge, l'indicateur "Mémoire Chargée" de MLV est instauré. - Les seize bits de fort poids du mot de commande con- sistent en indicateurs. La zone de 8 bits suivante consiste en un code opération, et la zone de 8 bits suivante est un compte de mots. A la réception de l'indicateur "Mémoire Chargée" de MLV, le micro-séquenceur 204 charge le mot de commande dans les registres de code de condition et de code opération, 208. Le code opération, qui est chargé dans le registre de code opération 222, sera utilisé en tant qu'adresse de saut par le micro-séquenceur 204, pour effectuer un branchement vers une séquence particulière d'instructions de microprogramme enre- gistrée dans la mémoire de microprogramme 202, pour déterminer ainsi les opérations à accomplir sur les données chargées dans le bloc de registres de MLV 214. Le micro-séquenceur 204 uti- lise les seize bits d'indicateurs pour prendre des décisions supplémentaires concernant la manière de traiter les données. Le compte de mots, chargé dans le registre de compte de mots 224, indique au micro-séquenceur 204 combien de mots ont été chargés dans le bloc de registres de MLV 214. Pendant que le micro-séquenceur 204 travaille sur des données enregistrées d'un côté du bloc de registres de MLV 214, le processeur de parcours d'arbre 132 peut charger un nouveau jeu de données dans l'autre côté du bloc de registres de MLV 214. Lorsque le microséquenceur 204 a terminé sa tâche en cours, son côté du bloc de registres de MLV 214 est désigné comme étant disponi- ble, au moyen de l'indicateur "Mémoire Disponible" de MLV. Le processeur géométrique 136 effectue ensuite un contrôle pour déterminer si une nouvelle tâche a été chargée dans l'autre côté du bloc de registres de MLV 214; dans l'affirmative, la nouvelle tâche est accomplie. Un fonctionnement similaire a lieu en ce qui con- cerne les données enregistrées dans le bloc de fichiers de pile 216, que le processeur de parcours d'arbre 132 transmet directement au processeur géométrique 136 par le bus de pile 138. De façon similaire, le bloc de registres de sortie 220 enregistre dans une structure en tampon double les données que génère le processeur géométrique 136, et il transmet les données traitées soit vers le processeur de parcours d'arbre 132, par le bus de pile 138, soit vers un processeur externe par le bus de système 118. Les registres de code de condition et de code opé- ration 208 comprennent deux registres qui mémorisent des in- dicateurs de commande provenant de paquets de données qui ont été écrits dans le bloc de registres de MLV 214 pendant le parcours de l'arbre. L'un des registres d'indicateurs 226 contient des indicateurs qu'on considère comme étant les in- dicateurs locaux pour chaque segment dans l'arbre. L'autre registre d'indicateurs 228 mémorise des indicateurs globaux liés à la fenêtre d'observation. Les indicateurs locaux et globaux commandent un traitement conditionnel lié à la ren- contre de différents types d'objets pendant le parcours de l'arbre. En plus des registres d'indicateurs 226, 228, di- vers signaux d'indicateurs indépendants sont appliqués à un registre de code de condition 230. Ces signaux d'indicateurs indépendants comprennent le signal "Mémoire Chargée" du bloc de registres de MLV, qui est activé par le processeur de parcours d'arbre 132 lorsque le bloc de registres de MLV 214 contient des données valides, et le signal "Mémoire Disponi- ble" du bloc de registres de sortie, qui est activé par le processeur de parcours d'arbre 132 lorsque des données ont été lues dans le bloc de registres de sortie 220. L'unité arithmétique pipeline 212 génère un indicateur "Signe" d'UAL (unité arithmétique et logique), un indicateur "Dépas- sement de capacité" d'UAL, un indicateur "Comparaison de Ré- sultats" d'UAL, et un indicateur "Objet Visible" d'UAL, et elle permet au micro-séquenceur 202 d'effectuer un branche- ment conditionnel basé sur des résultats de calculs pendant le traitement graphique. Un multiplexeur de code de condition à 40 bits, 232, peut sélectionner un indicateur ou un code de condition sous la commande de signaux de sélection de condition qui pro- viennent du registre pipeline 206. Les modules fonctionnels du processeur géométrique sont interconnectés par trois bus internes principaux qui transmettent des données arithmétiques de module en module. Ces bus sont le bus X, le bus Y et le bus Z qui, dans le mode de réalisation représenté, sont tous des bus à 16 bits avec multiplexage temporel qui sont attaqués par les seize bits de fort poids d'un mot de données à 32 bits pendant la première moitié d'un cycle d'horloge de système, et par les seize bits de faible poids pendant la seconde moitié du cycle d'horloge. Tout l'acheminement des données par le bus X, le bus Y et le bus Z est commandé par des instructions de microprogramme qui sont temporairement enregistrées dans le registre pipeline 206. La fonction principale du bus X est de transmettre des données d'entrée vers l'entrée A d'un multiplicateur dans l'unité arithmétique pipeline 212. La fonction principale du bus Y est de transmettre des données vers l'entrée B du mul- tiplicateur dans l'unité arithmétique pipeline 212. Le bus Z transmet les signaux de sortie de l'unité arithmétique pipeline 212 vers les entrées du bloc de regis- tres de sortie 220 ou vers les entrées du bloc de registres de travail 218. Le bloc de registres de sortie 220 reçoit des résultats de calculs finals, qui peuvent être transmis vers le bus de pile 138, ou dirigés vers le bus de système 118, en vue de la transmission vers le processeur de terminal 112 ou le processeur de visualisation 140. Les résultats d'un calcul intermédiaire peuvent être enregistrés dans le bloc de regis- tres de travail 218, et une instruction de microprogramme suivante peut prélever les résultats intermédiaires par le bus X ou le bus Y, pour les utiliser dans des calculs ulté- rieurs. La figure 6 montre les circuits de l'unité arithmé- tique pipeline 212, qu'on utilise pour tous les calculs liés à des travaux graphiques dans le processeur géométrique. Toutes les données introduites dans l'unité arithmétique pipeline 212 sont appliquées à un multiplicateur à virgule flottante à 32 bits, 600, qui peut être par exemple le circuit multiplicateur WTL 1032 fabriqué par WEITEK Corporation. Le multiplicateur 600 comporte deux entrées, A et B, qui sont respectivement connectées au bus X et au bus Y. La sortie du multiplicateur 600 est directement con- nectée à l'entrée d'un circuit accumulateur 602. Dans une uti- lisation caractéristique, l'accumulateur 602 accumule la somme de tous les nombres présentés sur ses entrées, et il présente la somme en sortie. L'accumulateur 602 comporte deux signaux de commande, qui sont reçus par l'intermédiaire du circuit logique de retard 210, à partir de l'instruction de micropro- gramme qui est enregistrée dans le registre pipeline 206. Un signal "Premier Terme" restaure l'accumulateur à zéro avant l'accumulation de nombres d'entrée. Un signal "Changement de Signe" commande à l'accumulateur de soustraire le nombre d'en- trée de la somme accumulée, en changeant le signe du nombre d'entrée avant d'effectuer l'addition. L'accumulateur 602 est décrit de façon plus complète dans la demande de brevet fran- çaise n0 87 00481 précitée. Le signal de sortie de l'accumulateur 602 est tou- jours la somme accumulée, comprenant le nombre d'entrée le plus récent. Dans le mode de réalisation qui est représenté, la somme est valide après quatre cycles d'horloge. La sortie de l'accumulateur 602 est connectée aux entrées d'un circuit d'unité arithmétique et logique (UAL) multifonction 604, d'un circuit de transformation 606, d'un circuit tampon de bus Z 608 et d'un ensemble de circuits de mémoire morte (MEM) de consultation de table, 610. L'UAL multifonction 604 peut convertir un nombre en virgule fixée à 32 bits en un nombre en virgule flottante à 32 bits, et inversement, ou comparer des nombres d'un type ou de l'autre. Les entrées de commande du circuit d'UAL mul- tifonction sont attaquées par une mémoire morte (MEM) de com- mande 612 qui reçoit ses adresses à partir du circuit logique de retard 210. La sortie de l'UAL multifonction 604 est con- nectée au bus Z, lorsqu'elle est validée par des signaux de commande provenant de la MEM de commande 612. Les fonctions spécifiques de l'UAL multifonction 604 sont décrites de façon plus complète dans la demande de brevet n 8700635 précitée. Le circuit de transformation 606 peut calculer la racine carrée ou l'inverse d'un nombre en virgule flottante à 32 bits, et générer des courbes, en utilisant un algorithme d'approximation linéaire par morceaux. Les MEM de consultation de table 610 sont connectées aux entrées du circuit de trans- formation 606. Les MEM de consultation de table 610 sont adressées par des données provenant des bits 11 à 22 de la sortie de l'accumulateur 602. Les données d'entrée adressent les MEM de consultation de table 610, qui fournissent pour la transformation une valeur d'ordonnée à l'origine et une valeur de pente correspondantes- et qui les transfèrent vers le cir- cuit de transformation 606. Avec ces deux informations d'en- trée et les bits restants de la sortie de l'accumulateur 602, le circuit de transformation 606 peut accomplir la fonction sélectionnée. Des signaux provenant de la MEM de commande 612 sélectionnent le mode de fonctionnement du circuit de trans- formation 606. Le circuit de transformation 606 est décrit de façon plus complète dans la demande de brevet n 87 00480 précitée. La MEM de commande 612 commande également la conne- xion au bus Z de l'UAL multifonction 604, du circuit de transformation 606 et de l'accumulateur 602. La MEM de com- mande 612 commande également deux compteurs à 8 bits, A et B, qu'on utilise pour le comptage de calculs et d'éléments de données. Les deux compteurs peuvent être mis à zéro, incré- mentés ou connectés au bus Z, de manière indépendante, con- formément à la sélection effectuée par des signaux de commande spécifiques provenant de la MEM de commande 612. L'unité arithmétique pipeline 212 peut effectuer des calculs combinés, avec des données circulant dans un che- min parmi trois au cours d'un calcul quelconque. Les trois chemins de données possibles dans l'unité arithmétique pipe- line 212 sont représentés sur la figure 7. Dans le Cycle Abrégé, les données sont dirigées uniquement vers I'UAL multifonction 604, et elles ne passent pas par le multiplicateur 600 ou l'accumulateur 602. Dans le mode de réalisation qui est représenté, un Cycle Abrégé né- cessite cinq cycles d'horloge. On utilise le Cycle Court lorsque des nombres doi- vent être multipliés et/ou accumulés, mais ne nécessitent pas un traitement ultérieur, et peuvent être appliqués directe- ment de la sortie de l'accumulateur 602 au tampon 608, pour l'application au bus Z. Dans le mode de réalisation qui est représenté, le Cycle Court exige onze cycles d'horloge. Le Cycle Long est le mode qui est pris par défaut, et il exige quatorze cycles d'horloge dans le mode de réali- sation qui est représenté. Dans le Cycle Long, les données passent par le multiplicateur 600, puis par l'accumulateur 602 et ensuite par l'UAL multifonction 604 ou le circuit de transformation 606. Du fait que les circuits qui constituent l'unité arithmétique pipeline 212 exigent un nombre différent de cycles d'horloge pour fonctionner dans chaque mode, un cir- cuit logique de retard 210 est placé entre le registre pipe- line 206 et l'unité arithmétique pipeline 212 pour retarder l'exécution d'instructions de microprogramme jusqu'à ce que des données valides soient présentes aux entrées de l'unité arithmétique pipeline 212. Les figures 8a et 8b montrent l'organisation du circuit logique de retard 210 pour l'unité arithmétique pi- peline. Pour certains signaux, comme les signaux "Premier Terme" et "Changement de Signe", on utilise des registres attaqués par un signal d'horloge pour produire le retard, qui est toujours égal à un nombre spécifique de cycles d'hor- loge. Par exemple, les signaux de commande pour l'accumulateur 602 sont toujours retardés de sept cycles d'horloge pour tenir compte des deux cycles d'horloge nécessaires pour accéder aux données dans le bloc de registres source, et des cinq cycles d'horloge qui sont nécessaires pour un calcul dans le multi- plicateur 600. Comme le montre la figure 8a, le signal "Pre- mier Terme" est simplement appliqué à un registre à 8 bits 800 qui est attaqué par un signal d'horloge, et ce signal est renvoyé six fois dans le même registre, ce qui produit un re- tard de sept cycles d'horloge. On utilise le même type de cir- cuit pour le signal "Changement de Signe". La figure 8b montre une représentation simplifiée du circuit logique de retard qui retarde des instructions de microprogramme pour l'UAL multifonction 604 et le circuit de transformation 606. On produit le retard en enregistrant tem- porairement les bits de commande de chaque instruction de mi- croprogramme dans un bloc de registres de dimensions 16 x 4, portant la référence 802, qui est continuellement adressé par des adresses de lecture et d'écriture décalées. Un compteur modulo 16, portant la référence 804, est continuellement in- crémenté par l'horloge de système, et il génère une adresse à 4 bits qui est appliquée aux entrées d'adresse d'écriture du bloc de registres, et aux bits d'adresse de faible poids d'une MEM de retard 806. La MEM de retard 806 contient un ensemble d'adresses à 4 bits décalées par rapport à leurs po- sitions de mémoire d'une quantité égale au retard désiré, exprimé en cycles d'horloge. Par exemple, si on désire un re- tard de 5 cycles, le mot de données se trouvant à l'adresse "2" dans la MEM 806 contiendra la valeur "7", en hexadécimal. Les deux bits de fort poids des entrées d'adresse de la MEM de retard 806 sont connectés de façon à recevoir un signal "Sélection de Retard" provenant du registre pipeline 206, de façon à permettre la sélection de différents retards par la sélection de différentes zones d'adresse dans la MEM de re- tard 806. Les lignes de données de sortie provenant de la MEM de retard 806 sont connectées aux entrées d'adresse de lecture du bloc de registres. Les entrées de validation de lecture et de validation d'écriture du bloc de registres sont alternati- vement attaquées par le signal d'horloge et son inverse. Une adresse de MEM de commande, qui représente un ordre appliqué à l'unité arithmétique pipeline 212, est introduite dans le bloc de registres 802 à partir du registre pipeline 206. Le signal de sortie du bloc de registres reste non significatif jusqu'à ce que le nombre correct de cycles d'horloge se soient écou- lés, et à ce moment l'adresse de lecture du bloc de registres 802 aura la même valeur que l'adresse d'écriture au moment de l'enregistrement initial de l'adresse de la MEM de commande. L'information de sortie du bloc de registres 802 (c'est-à-dire l'adresse appropriée de la MEM de commande) est appliquée aux entrées d'adresse de la MEM de commande 612, qui fournit la combinaison spécifique de signaux de commande individuels qui est enregistrée à l'adresse appliquée en en- trée. L'information de sortie de la MEM de commande 612 est une combinaison de signaux de commande de lecture et d'écritu- re, de valeursde pondération, de signaux de sélection de mode pour l'UAL multifonction 604 et le circuit de transformation 606, et de signaux de sélection de fonction de compteur. Les signaux de validation d'écriture pour le bus Z sont retardés d'un nombre variable de cycles (toujours 5, 11 ou 14 cycles dans le mode de réalisation qui est représenté), en retardant les signaux dans trois ensembles de registres, d'une manière similaire à celle représentée sur la figure 8a. Les trois ensembles de sorties de registres de retard sont connectés à un multiplexeur (non représenté) qui est commandé par les bits "Sélection de Retard" de l'instruction de micro- programme courante, provenant du registre pipeline 206. Grâce à l'utilisation de la logique de retard, une seule instruction de microprogramme qui déclenche un calcul dans l'unité arithmétique pipeline peut également commander le cycle complet de cette unité. Au cours d'une opération arithmétique caractéristi- que, des données sont transmises à l'unité arithmétique pipe- line 212 à partir du bloc de registres de MLV 214 ou du bloc de registres de pile 216, dans l'ordre dans lequel elles ap- paraissent. Pendant le traitement, les données passent par l'unité arithmétique pipeline 212 sous la commande du micro- séquenceur 204 et du circuit logique de retard 210, grâce à quoi l'unité arithmétique pipeline complète peut fonctionner à la manière d'un module auto-commandé et peut effectuer un calcul combiné complet, sans intervention supplémentaire du micro-séquenceur 204. Pour commencer le traitement de données, le micro- séquenceur 204 du processeur géométrique provoque simultané- ment l'émission d'une instruction de micro-programme d'unité arithmétique pipeline vers le circuit logique de retard 210, et le transfert des données à traiter sur le bus X et/ou le bus Y, pour commencer un calcul. Dans le Cycle Long ou le Cycle Abregé, le circuit logique de retard 210 transmet des signaux de commande à l'accumulateur 602 après sept cycles d'horloge, de façon que des données soient présentes aux en- trées de l'accumulateur au moment o les signaux de commande * sont appliqués à l'accumulateur 602. Dans le Cycle Long ou le Cycle Court, le circuit logique de retard 210 transmet des signaux de commande à l'UAL multifonction 604, au circuit de transformation 606, au tampon de bus Z 608 et/ou au compteur A ou au compteur B après le nombre exigé de cycles d'horloge (qui varie selon les fonctions accomplies), de façon que les données à traiter soient présentes aux entrées de ces dispositifs au moment o les signaux de commande sont présents aux entrées des dispo- sitifs considérés. Dans tous ces cycles de traitement, les résultats que produit l'unité arithmétique pipeline 212 deviennent va- lides sur le bus Z après le nombre total final de cycles d'horloge nécessaires pour le cycle arithmétique complet. Le circuit logique de retard 210 émet une combinaison d'une adresse de destination de bloc de registres et d'un signal de validation d'écriture approprié au moment o les données traitées sont présentes sur le bus Z. Ainsi, une seule ins- truction de microprogramme peut commander la totalité du chemin des données dans l'unité arithmétique pipeline, spéci- fier la fonction arithmétique à mettre en oeuvre sur ces don- nées, et spécifier la destination des résultats du calcul. Le processus de parcours d'arbre Le processus de parcours d'arbre fait intervenir la séquence d'opérations qui prélève des données dans la struc- ture en arbre de la MLV, traite ces données et les visualise sur l'écran d'observation. Les deux sous-processus de base intervenant dans le parcours d'arbre qui sont accomplis par le processeur géométrique sont le processus d'élimination et le traitement de face. On entend par "élimination" un tri qui supprime des objets graphiques invisibles et enregistre des objets graphi- ques visibles dans une mémoire à structure de pile, dans le circuit de parcours d'arbre. On entend par "traitement de face" l'opération consistant à extraire les objets graphiques de la mémoire à structure de pile du processeur de parcours d'arbre, et à convertir les données pour chaque objet de la forme correspondant à des coordonnées tridimensionnelles à celle correspondant à des coordonnées bidimensionnelles pon- dérées, Ces processus sont décrits ci-après de façon plus dé- taillée. 1. Le Processus d'élimination Le processus d'élimination détermine si un objet est visible ou non dans une scène. En effectuant un test sim- ple sur le volume de limitation qui entoure un segment, le processeur géométrique peut déterminer si le volume de limi- tation est complètement extérieur au volume d'observation défini (auquel cas le segment est éliminé et ne fait pas l'objet d'un traitement ultérieur), ou complètement à l'inté- rieur du volume d'observation (aucune opération de coupure ne doit alors être effectuée), ou rencontre un ou plusieurs plans de coupure (auquel cas des opérations de coupure doi- vent être effectuées). On peut également effectuer l'élimination en tra- vaillant sur une taille minimale de la projection d'un volume de limitation. Si la taille correspondant à la projection sur l'écran d'un volume de limitation d'un segment est inférieure à un certain nombre défini de pixels, ce segment peut être éliminé. Lorsqu'un segment est éliminé, ce segment et tous ses segments enfants ne font plus l'objet d'aucun traitement. Ceci améliore considérablement l'efficacité du processeur géométrique dans des scènes dans lesquelles de grands nombres d'objets graphiques se trouvent à l'extérieur du volume d'observation. En résumé, le processus d'élimination commence par le segment racine dans la mémoire de liste de visualisation 116, qui est le segment de définition de fenêtre d'observa- tion (c'est-à-dire que le premier segment contient dans son tampon d'élimination un paquet qui définit les paramètres de fenêtre d'observation courants). L'information de fenêtre d'observation comprend des termes de projection (champ d'observation en perspective, taille de projection orthogona- le, plans de coupure proche et lointain, etc), des termes de définition d'échelle sur l'écran (qui fixent la taille de l'image finale sur l'écran de visualisation), et des bits d'indicateurs. Les termes de projection sont enregistrés dans une matrice de transformation standard de dimensions 4 x 3. Pour initialiser le traitement de parcours d'arbre et de face de la base de données qui est enregistrée dans la MLV 116, le processeur de terminal 112 émet vers le proces- seur de parcours d'arbre 132 une instruction "Démarrage de Parcours" qui spécifie l'adresse de départ du segment de dé- finition de fenêtre d'observation de l'arbre de liste de vi- sualisation. Le processeur de parcours d'arbre 132 parcourt la liste de visualisation dans la MLV 116, en adressant sé- quentiellement les segments enchainés, conformément à un algorithme de parcours préféré en ce qui concerne les seg- ments frères, et il coordonne l'émission des paquets de tam- pon d'élimination vers le processeur géométrique 136, par le bus de MLV 134. Le premier paquet du tampon d'élimination qui est émis vers le processeur géométrique contient les attributs de segment. Les attributs de segment qui ne sont pas définis localement dans le paquet d'attributs de segment peuvent étre"hérités", ce qui correspond à l'obtention des attributs de segment à partir des attributs du segment parent, qui ont été enregistrés précédemment dans le bloc de registres de pile 216. Le processeur géométrique 136 enregistre un ensem- ble d'attributs (définis localement ou hérités) dans le bloc de registres de sortie 220, en vue d'un transfert ultérieur vers le processeur de parcours d'arbre 132, par le bus de pile 138, si la détermination faite pendant le traitement d'élimination du segment indique que ce dernier est visible. En considérant la figure 2, on note que du fait que le seg- ment de définition de fenêtre d'observation A ne comporte pas de segment parent, tous les attributs enregistrés dans le bloc de registres de sortie 220 pour le segment A sont définis localement dans le paquet d'attributs du tampon d'élimination pour le segment A. Le tampon d'élimination de chaque segment contient également habituellement un paquet de matrice de transforma- tion. Le paquet de transformation contient une matrice de transformation locale qui transforme les données de segment pour les faire passer du système de coordonnées local au système de coordonnées du segment parent. Dans le cas du segment de définition de fenêtre d'observation, la matricede transformation locale transforme le système de coordonnées terrestres en système de coordonnées oculaires de la fenêtre d'observation définie. Le processeur géométrique 136 effectue une concaté- nation de matrices, qui multiplie la matrice de transforma- tion locale par la matrice de transformation du segment pa- rent qui a fait l'objet d'une concaténation antérieure. La matrice de transformation qui résulte de la concaténation est la "Matrice de Transformation Courante" qui transforme les données graphiques du segment de façon à les exprimer dans le système de coordonnées du segment de définition de fenêtre d'observation. La Matrice de Transformation Courante est en- registrée dans le bloc de registres de sortie 220, pour être transférée vers le processeur de parcours d'arbre 132 si le processus d'élimination détermine que la primitive graphique du segment est visible. Lorsque le processeur géométrique 136 reçoit le pa- quet de fenêtre d'observation provenant du segment de défini- tion de fenêtre d'observation, il enregistre la matrice de pondération de fenêtre d'observation dans le bloc de regis- tres de pile 216, et il enregistre les termes de définition d'échelle d'écran et les bits d'indicateurs dans le bloc de registres de MLV 214. En outre, le paquet de fenêtre d'obser- vation est émis vers le processeur de visualisation 140 par le bus de système 118. Il existe un paquet supplémentaire, appelé paquet de "source lumineuse", qui ne se trouve que dans le segment de fenêtre d'observation. Une source lumineuse, définie dans le système de coordonnées terrestres, est transformée pour être exprimée dans le système de coordonnées oculaires pondé- rées, par multiplication des coordonnées de la source lumi- neuse par la Matrice de Transformation Courante, qui est en- registrée dans le bloc de registres de sortie 220, et les résultats sont sauvegardés. Le dernier paquet de tampon d'élimination que le processeur de parcours d'arbre 32 émet vers le processeur géométrique 136 pour chaque segment est le paquet de volume de limitation. Lorsque le processeur géométrique 136 reçoit ce paquet, il commence à effectuer un test de visibilité pour déterminer si le volume de limitation du segment parent n'était pas totalement visible. Comme mentionné précédemment, le volume de limitation d'un segment englobe complètement la primitive graphique du segment et celles de tous les segments enfants du segment considéré. L'utilisation d'un tel volume de limitation simplifie considérablement le test de visibili- té. Pour effectuer le test de visibilité, le processeur géométrique fait passer par l'unité arithmétique pipeline 212 les coordonnées du volume de limitation des segments. L'UAL multifonction 604 compare les coordonnées du volume de limi- tation avec les coordonnées de fenêtre d'observation qui sont enregistrées dans les blocs de registres de travail 218 du processeur géométrique, et elle détermine si le segment est visible, invisible ou partiellement visible. Pour effectuer un test portant sur une taille mini- male d'un volume de limitation, on calcule une approximation de la taille du volume de limitation en déterminant le dia- metre du volume, défini comme étant la distance entre les deux premiers sommets, et en calculant la distance approxima- tive du volume de limitation par rapport au point oculaire défini, en faisant la moyenne des valeurs de profondeur des deux sommets. Pour une projection en perspective, on divise le diamètre par la distance de façon à obtenir une approxima- tion de la taille du volume de limitation. Pour une projec- tion orthogonale, on-considère que la taille du volume de li- mitation est simplement le diamètre calculé. Si on détermine que la taille du volume de limitation est inférieure à une valeur d'entrée spécifiee, on considère que le segment n'est pas visible. Si on détermine que le volume défini par le volume de limitation est à l'intérieur du champ de vision défini par le paquet de définition de fenêtre d'observation, et si on détermine que la taille du volume de limitation est comprise dans un intervalle défini par l'utilisateur (c'est-à-dire que l'objet n'est ni trop grand ni trop petit), le processeur géométrique 136 active une ligne de signal "Objet Visible", dirigée vers le processeur de parcours d'arbre 132, pour in- diquer que l'objet qui est contenu dans le volume de limita- tion est potentiellement visible. Du fait que le volume de limitation du segment englobe les primitives graphiques des segments enfants du segment courant, il n'est pas nécessaire de répéter le test de visibilité pour les segments enfants d'un segment pour lequel on a déterminé que le volume de li- mitation du segment était entièrement visible. Si au contrai- re le volume de limitation est entièrement à l'extérieur du champ de vision, ou si la taille du volume de limitation n'est pas comprise dans l'intervalle défini, la ligne de si- gnal "Objet Visible" est restaurée. Ce dernier segment "in- visible\' et tous ses segments enfants ne nécessitent pas un traitement ultérieur. Pendant que le processeur géométrique 136 traite les paquets d'élimination, le processeur de parcours d'arbre 132 enregistre le pointeur de segment enfant, le pointeur de tampon de données de primitive et un indicateur de "niveau d'arbre" du bloc de commande de segment, dans la mémoire in- terne à structure de pile du processeur de parcours d'arbre. On appelle niveau d'arbre le niveau du segment dans la struc- ture hiérarchisée. Ainsi, par exemple, des segments frères ont le même niveau d'arbre. Si le processeur géométrique 136 détermine que l'objet du segment est visible, le processeur de parcours d'arbre 132 copie le mot d'indicateur, la matrice de trans- formation soumise à concaténation, et les attributs de l'ob- jet, de façon à les transférer du bloc de registres de sortie 220 vers sa mémoire à structure de pile, par le bus de pile 138. Si l'objet du segment sur lequel porte le processus d'élimination est déterminé comme étant invisible, le proces- seur de parcours d'arbre 132 applique un signal "Mémoire Chargée" au processeur géométrique 136, sans transférer les données, pour éviter un transfert de données inutiles. Ainsi, les attributs relatifs à des objets invisibles ne sont pas enregistrés dans la mémoire à structure de pile du processeur de parcours d'arbre. Du fait que les attributs relatifs à des objets invisibles ne sont pas enregistrés dans la mémoire à structure de pile, les segments correspondants ne font pas l'objet d'un traitement ultérieur. Comme on l'expliquera ci- après de façon plus détaillée, les données qui sont enregis- trées dans la mémoire à structure de pile pour chaque segment reconnu comme comportant des objets visibles, seront ulté- rieurement retransférées vers le processeur géométrique 136 par le bus de pile 138, au moment du transfert des primitives graphiques associées de la MLV 116 vers le processeur géomé- trique 136. Une fois que le tampon d'élimination d'un segment a été traité, le processeur de parcours d'arbre 132 passe à un autre segment de la liste de visualisation. Dans le mode de réalisation qui est représenté, le processeur de parcours d'arbre 132 utilise un procédé avec priorité au frère, dans lequel ce processeur traite le frère d'un segment avant de traiter l'enfant du segment. Si un segment ne comporte pas de frère, le processeur de parcours d'arbre traite ensuite le premier enfant du segment. Par exemple, en se reportant à la figure 2, on note que le segment de définition de fenêtre d'observation A ne comporte aucun segment frère. Par consé- quent, une fois que les données de tampon d'élimination du segment A ont été traitées, le processeur de parcours d'ar- bre 132 passe au premier segment enfant, c'est-à-dire le segment B. Apres avoir transmis les paquets de tampon d'éli- mination du segment B au processeur géométrique 136 en vue de leur traitement, le processeur de parcours d'arbre 132 pas- se au segment frère, c'est-à-dire le segment C, et il commence à diriger les paquets de tampon d'élimination du segment C vers le processeur géométrique 136. Le segment C ne comporte pas de segments frères supplémentaires et, par conséquent, le processeur de parcours d'arbre 132 passe au premier segment enfant, c'est-à-dire le segment F, si la détermination qui a été faite indique que le volume de limitation du segment pa- rent C contenant le cube 152 est visible. Le processeur de parcours d'arbre 132 continue à parcourir l'arbre de cette ma- nière, en envcyant les paquets de tampon d'élimination des segments frères F-K, dans l'ordre, au processeur géométrique 136, en vue de leur traitement. Si un segment ne comporte aucun segment frère sup- plémentaire, et ne comporte pas un segment enfant (ou si le volume de limitation du segment est invisible), le processeur de parcours d'arbre 132 commence à parcourir en sens inverse les segments qui ont fait l'objet de la procédure d'élimina- tion, et il commence donc le mode de traitement de face. Par exemple, tous les segments frères du segment K ont été par- courus lorsque le processeur de parcours d'arbre 132 atteint le segment K. Du fait que le segment K ne comporte aucun segment enfant, le mode d'élimination se termine au segment K. S'il a été déterminé que la face 6 (la primitive graphique du segment K) était visible, le processeur de parcours d'arbre 132 transfère la Matrice de Transformation Courante et des données d'attributs pour la face 6, du bloc de registres de sortie 220 vers le bloc de registres de pile 216, et il com- mence en outre à transférer les paquets de primitive graphique du segment vers le processeur géométrique 136, par l'intermé- diaire du bus de MLV 134, pour le traitement de face. 2. Traitement de face Comme les paquets de tampon d'élimination, les pa- quets de données de primitive sont enchainés par des poin- teurs. Chaque paquet de données de primitive est copié dans la MLV 116 par le bus de MLV 134, pour être chargé dans le bloc de registres de MLV 214 du processeur géométrique 136. Le processeur de parcours d'arbre 132 utilise l'adresse de poin- teur de chaque paquet de données de primitive pour obtenir le paquet suivant dans le train de données. Un pointeur nul in- dique que le paquet de données de primitive présent est le dernier paquet dans le train de données. Le processeur géométrique 136 interprète le code opération de chaque paquet de données de primitive, et il sé- lectionne l'algorithme de traitement de face de paquet de pri- mitive associé (comme on le décrira ci-après de façon plus dé- taillée). Les algorithmes de traitement de face qui sont exé- cutés dans le processeur géométrique 136 du mode de réalisa- tion considéré transforment- des sommets (et des normales de sommets, en cas de représentation d'une grdation) en coordonnées d'écran, ils rejettent un polygone si la détermination qui est faite indique que ce polygone fait face à une direction oppo- see à l'observateur, et ils coupent chaque polygone visible de façon à le limiter aux frontières du champ de vision (plans de coupure), si nécessaire. De plus, le processeur géométrique 136 projette les sommets dans un plan d'image bidimensionnel, par un procédé de projection en perspective ou de projection parallèle, et il pondère les sommets en conformité avec la fe- nétre d'observation définie. Le processeur géométrique 136 accomplit le traitement de face en traitant un bord après l'autre, et lorsque les données relatives à chaque bord sont complètes, elles sont transférées vers le processeur de visua- lisation 140 par le bus de système 118, dans un format de pa- quet de bord. Lorsqu'un paquet a subi un traitement de face, le processeur géométrique 136 signale au processeur de par- cours d'arbre 132 qu'il est capable d'accepter le paquet de données-de primitive suivant, en activant une ligne de signal "Mémoire Disponible". Une fois que le processeur géométrique 136 a indiqué qu'il était prêt pour le traitement de face du segment suivant, le processeur de parcours d'arbre 132 extrait de la position supérieure de la mémoire à structure de pile les données d'at- tributs et les données de matrice de transformation pour le segment visible suivant J, et il transfère ces données vers le bloc de registres de pile 216 du processeur géométrique 136, par l'intermédiaire du bus de pile 138. Le processeur de par- cours d'arbre 132 utilise le pointeur de tampon de données de primitive enregistré, provenant de la mémoire à structure de pile, pour adresser dans la MLV 116 les paquets de données de primitive pour le segment J, et pour les transmettre par le bus de MLV 134 vers le processeur géométrique 136, en vue du traitement de face. Pendant le parcours en sens inverse de la liste de visualisation, le processeur de parcours d'arbre 132 continue à remonter dans la suite des segments "visibles", à extraire de la mémoire à structure de pile les pointeurs de tampon de données, les matrices de transformation et les attributs, et à émettre les paquets de données de primitive et les données de pile correspondants vers le processeur géométrique 136, pour le traitement de face, jusqu'à la rencontre d'un segment ayant un segment enfant "non parcouru". Comme mentionné pré- cédemment, dans l'algorithme de parcours d'arbre avec priorité au frère, le processeur de parcours d'arbre 132 n'examine pas un pointeur d'enfant d'un segment si ce segment comporte un pointeur de frère (et le segment enfant n'est donc pas parcou- ru). Par conséquent, si pendant le parcours en sens inverse, le segment suivant en ligne qui doit être parcouru comporte un segment enfant, et si le segment atteint dans le parcours in- verse au moment considéré est le segment frère du segment sui- vant à parcourir, le segment enfant n'a pas été parcouru au cours du parcours d'élimination antérieur. Lorsqu'un segment enfant non parcouru est rencontré, le processeur de parcours d'arbre 132 retourne au mode d'élimination, et il parcourt la liste de visualisation en partant du segment enfant non par- couru. Par exemole, sur la fiqure 2, après l'application du traitement d'élimination au segment B, le processeur de parcours d'arbre 132 passe au segment frère C au lieu de pas- ser au segment enfant D, pendant le parcours initial. Pendant le parcours en sens inverse, les segments qui ont fait l'objet du processus d'élimination sont soumis au traitement de face jusqu'à ce que le parcours en sens inverse ramène le proces- seur de parcours d'arbre au segment C. Le traitement de face est terminé après le segment C, du fait que le segment suivant en ligne dans le parcours en sens inverse, c'est-à-dire le segment B, comporte un segment enfant non parcouru, c'est-à- dire le segment D. Le processeur de parcours d'arbre 132 re- tourne alors au mode d'élimination, et le traitement de par- cours et d'élimination commence au segment D. La détection d'un segment enfant non parcouru s'ef- fectue par l'examen de l'indicateur de niveau d'arbre du seg- ment courant dans le parcours en sens inverse, et de l'indi- cateur de niveau d'arbre du segment suivant dans la pile (c'est-à-dire le segment suivant en ligne auquel conduit le parcours en sens inverse). Si les deux niveaux d'arbre sont identiques (c'est-à-dire si les segments sont frères), et si le segment suivant dans la pile comporte un pointeur d'enfant valide, ce segment enfant n'a pas été parcouru. Le processeur de parcours d'arbre 132 continue à parcourir la liste de visualisation en sens direct et en sens inverse jusqu'à ce que chaque segment ait été éliminé ou ait subi un traitement de face. Le dernier paquet de données de primitive du segment de définition de fenêtre d'observation contient une primitive de "Fin de Parcours". Le processeur de parcours d'arbre émet en dernier vers le processeur géométri- que les paquets de données de primitive relatifs au segment de fenêtre d'observation. Ainsi, la primitive de Fin de Par- cours sera le dernier paquet transféré vers le processeur géométrique 136. Le processeur géométrique 136 émet à son tour la primitive de Fin de Parcours inchangée vers le processeur de visualisation 140, par le bus de système 118. Le processeur de visualisation 140 commence alors le traitement d'écran et il émet une interruption vers le processeur de terminal 112. 3. Algorithmes de traitement de face Comme indiqué ci-dessus, le traitement de segments se poursuit pendant le processus d'élimination, jusqu'à ce que le processeur de parcours d'arbre 132 y mette fin. A cet ins- tant, le processeur de parcours d'arbre renvoie vers le pro- cesseur géométrique les segments qui n'ont pas été éliminés, en vue du traitement des données de primitive. Dans cette phase, le premier paquet qui est émis vers le processeur géo- métrique 136 pour chaque segment est le paquet d'Inversion de Matrice qui est enregistré dans le bloc de registres de MLV 214. Le processeur géométrique examine le paquet d'Inversion de Matrice pour déterminer si la base de données contient des polygones qui ont des côtés envers à rejeter, ou une source de lumière qui créera des gradations.SiLl'une ou l'autre de ces conditions est réalisée, une matrice de transformation inver- sée est calculée dans l'unité arithmétique pipeline 212 et elle est enregistrée dans le bloc de registres de travail 218. La réception du paquet'd'Inversion de Matrice indique égale- ment au processeur géométrique 136 que le traitement de face a commencé et que le processeur géométrique doit avoir dans son bloc de registres de pile 216 un nouveau paquet qui a subi le traitement d'élimination. En utilisant des signaux d'établissement de liaison sur le bus de pile 138, le proces- seur géométrique 136 détermine qu'il a reçu à partir du pro- cesseur de parcours d'arbre 132 le nouveau paquet qui a subi le traitement d'élimination. Une fois que le processeur géométrique a reçu un nouveau paquet ayant subi le traitement d'élimination, et que le paquet est chargé dans le bloc de registres de pile 216, le processeur géométrique émet le paquet de définition de seg- ment vers le processeur de visualisation 140. Ce paquet défi- nit les couleurs, les types de traits et les bits de valida- tion pour tous les éléments de données dans le segment. Le paquet d'Inversion de Matrice contient également deux bits d'indicateurs, à savoir le bit "Inversion" et le bit "Rotation de Lumière". Si le bit "Inversion" est instauré, le processeur géométrique calcule la matrice inverse transpo- sée pour des vecteurs de normales à des polygones. Si le bit "Rotation de Lumière" est instauré, le processeur géométrique fait tourner le vecteur de lumière pour le faire passer du système de coordonnées oculaires au système de coordonnées de modèle. On effectue ceci en calculant l'inverse de la Matrice de Transformation Courante. En d'autres termes, pour trans- former des coordonnées d'un point de façon à les faire passer d'un système de coordonnées de modèle au système de coordon- nées oculaires, on utilise une matrice de transformation ré- sultant d'une concaténation, et pour la transformation inver- se, on utilise l'inverse de la matrice de transformation ré- sultant de la concaténation. On utilise une simplification dans le mode de réali- sation considéré. La fonction d'Inversion de Matrice exige de calculer le déterminant de la Matrice de Transformation Cou- rante, et de diviser chaque terme par le déterminant. Dans le mode de réalisation qui est représenté, la pondération des points transformes n'est pas importante. Le calcul du détermi- nant et le processus de division ne sont pas nécessaires, puisqu'ils effectuent simplement une nouvelle pondération de la matrice de transformation inverse. Pour calculer l'inverse de la Matrice de Transforma- tion Courante, on utilise la partie supérieure de dimensions 3 x 3 de la matrice de transformation qui est présente dans le * bloc de registres de pile 216. On calcule ensuite d'une maniè- re mathématique classique les neuf cofacteurs de cette matri- ce. La matrice inverse modifiée "M" est la transposée des co- facteurs, de la manière suivante: - COO Cil C12 C01l C1l1 C21 C02 C12 C22 On peut ensuite utiliser cette matrice de transfor- mation inversée "M" pour multiplier le vecteur de source de lumière afin de calculer le vecteur de lumière dans le système de coordonnées de modèle. On peut sauvegarder en vue d'une utilisation ultérieure, pour calculer des normales de polygo- nes, la transposée "TM" de la matrice "M". Après le paquet d'Inversion de Matrice, viennent les données de primitive. Dans le mode de réalisation préféré, il y a deux types de polygones tridimensionnels, c'est-a-dire les polygones avec gradation d'intensité lumineuse et les po- lygones sans gradation. Il y a également deux types de primi- tives supplémentaires qui peuvent être associées au polygone, et qu'on appelle des primitives de "trou avec gradation" et de "trou sans gradation". Pour des polygones tridimensionnels, le premier pa- quet comprend trente-deux mots et contient trois ou quatre sommets dans le mode de réalisation considéré. Des polygones comportant plus de quatre sommets se continuent dans des pa- quets suivants de seize mots, contenant un ou deux sommets chacun. Pour des polygones sans gradation d'intensité, le premier paquet comprend seize mots et contient trois sommets. Des sommets supplémentaires se trouvent dans des paquets sui- vants. Le processeur géométrique enregistre la zone de compte de mots du mot d'indicateur de paquet dans le registre de compte de mots224, et il l'utilise pour déterminer le nombre de sommets dans un paquet. Le micro-séquenceur 204 introduit dans le registre de code opération 222 le code opération provenant de chaque paquet de données. Les codes opérations qui se trouvent dans le paquet de données identifient l'algorithme de traitement de face pour chaque type de primitive. Le processeur géomé- trique utilise ensuite l'unité arithmétique pipeline 212 pour calculer les coordonnées bidimensionnelles des points ou des sommets de chaque primitive, en plaçant les résultats finals de chaque calcul dans le bloc de registres de sortie 220. A l'exception d'un test d'Elimination de Face Ar- rière et d'un calcul de coefficients de plans de profondeur, qui sont effectués au début du traitement d'un polygone, le processeur géométrique 136 traite les polygones un sommet à la fois, sans enregistrer une liste intermédiaire de sommets de polygone. Le processeur géométrique accomplit entièrement le traitement relatif à un sommet et il émet des données de bord vers le processeur de visualisation 140 (si c'est possi- ble), avant de revenir en arrière pour traiter le sommet de polygone suivant. Un test d'Elimination de Face Arrière est effectué pour chaque paquet de données de primitive. Dans ce but, le premier sommet d'un polygone est transformé par la Matrice de Transformation Courante. Ensuite, le vecteur de normale au polygone est transformé par la matrice inversée transposée "TM" (qui a été calculée au moment de la réception du code opération d'Inversion de Matrice). Le résultat est normalisé, et le vecteur de normale polygone avant rotation est sauve- gardé pour une utilisation éventuelle ultérieure. Le produit scalaire du premier sommet transformé et du vecteur de norma- le transformé est ensuite calculé, et si le résultat est po- sitif, le sommet se trouve du côté "arrière" du polygone. Si l'indicateur d'Elimination de Face Arrière est instauré pour le segment, le traitement du polygone est immédiatement ar- rêté. Si le résultat est positif et si l'indicateur d'Elimi- nation de Face Arrière n'est pas instauré, un indicateur de Présence de Face Arrière est instauré, et la valeur changée de signe du produit scalaire est sauvegardée pour une utili- sation ultérieure dans le calcul de coefficients de plans de profondeur. Si le produit scalaire est négatif, le sommet se trouve à l'avant du polygone, et la valeur du produit scalai- re est sauvegardée pour une utilisation ultérieure dans le calcul des coefficients de plans de profondeur. Ensuite, on calculeles coefficients de plans de pro- fondeur qui expriment la profondeur d'un point quelconque d'un polygone sous la forme d'une fonction "f" des coordonnées d'écran X et Y du point. Si le gradient X calculé ou le gra- dient Y calculé est supérieur à un (ce qui indique que la face du polygone aura une largeur inférieure à un pixel), le poly- gone est rejeté et le traitement pour ce segment est terminé. L'étape suivante dans le mode de réalisation préféré consiste à transformer chaque sommet du polygone au moyen de la Matrice de Transformation Courante. On peut ensuite calcu- ler l'intensité de chaque sommet. Dans le mode de réalisation préféré, toutes les intensités sont normalisées dans la plage allant de zéro (intensité minimale) à un (intensité maximale). L'éclairage ambiant pour un objet graphique est enregistré dans le paquet de définition de fenêtre d'observation sous la forme d'un terme"Ia". Pour calculer l'intensité de chaque som- met en ce qui concerne l'éclairage produit par une source lu- mineuse "n", on calcule la relation suivante: Isommet = Ia + Irn* (1 + cos9)/2 dans laquelle: Irn = (1 - Ia)*Iln = l'intensité maximale réfléchie produite par la source lumineuse "n", Iln = l'intensité de la source lumineuse "n", et 9 est l'angle entre la source lumineuse et le som- met. La valeur de Isommet va de zéro à un, et elle est limitée à un si des sources lumineuses multiples produisent des intensités qui dépassent cette plage. Il y a trois cas de gradation d'intensité possibles, basés sur les options de gradation qui sont en fonction. Si aucune gradation n'est en fonction pour un segment, les va- leurs d'intensité pour chaque sommet sont fixées à zéro. Si la gradation plane, ou à facettes, est en fonction, les va- leurs d'intensité pour tous les sommets d'un polygone seront les mêmes. On utilise le modèle de gradation d'intensité dé- crit ci-dessus. On génère le terme "cos9" en calculant le produit scalaire du vecteur de normale au polygone et du vecteur de source lumineuse. On doit calculer ce produit sca- laire avec les deux vecteurs exprimés dans un système de coordonnées commun. Si on le calcule dans un système de coor- données de modèle, on doit sauvegarder la normale au polygone avant rotation (avant le test d'Elimination de Face Arrière). Si la gradation d'intensité progressive (encore appelée gradation de "Gouraud") est en fonction pour le seg- ment, les valeurs d'intensité de tous les sommets d'un poly- gone ne seront généralement pas les mêmes. On utilise à nou- veau le modèle de gradation décrit ci-dessus. On génère le terme "cos@" pour chaque sommet en calculant le produit sca- laire du vecteur de normale au sommet et du vecteur de source lumineuse. On effectue ceci dans le système de coordonnées de modèle, en utilisant la normale au sommet sans rotation et le vecteur de source lumineuse dans le modèle qui a été calculé au moment de la réception du code opération d'Inversion de Matrice. L'étape suivante qu'accomplit le processeur géomé- trique est l'opération de coupure, dans laquelle chaque point définissant un polygone est comparé avec des plans de coupure définis préalablement. Le fait de couper le polygone avec les plans de coupure droit, gauche, supérieur et/ou inférieur peut former des pseudo-bords, qui sont marqués avec un bit de "pseudo-bord". Ceci indiquera au processeur de visualisa- tion 140 de ne pas intensifier les pseudo-bords. Un sommet se propagera dans les algorihtmes de plans de coupure et pourra donner lieu ou non à la sortie d'un point coupé pour le plan de coupure final. Si les algo- rithmes-de coupure ne présentent aucun point en sortie, le sommet d'entrée suivant est prélevé. S'il existe un point de sortie de la procédure de plans de coupure, le processeur géométrique passe à l'étape suivante, qui est une projection. Si le type de projection est la projection en perspective, les valeurs de X et Y de chaque point sont divisées par la valeur Z pour ce point. A l'étape suivante du mode de réalisation préféré, les coordonnées X et Y sont pondérées et soumises à une trans- lation par les termes de définition d'échelle d'écran et de translation, conformément aux équations suivantes: Xecr = XinkXechecr + Xtransecr Yecr = Yin*Yechecr + Ytransecr "Xecr" désigne la valeur de X sur l'écran après que la valeur X d'origine ("Xin") a été multipliée par une valeur de pondération de définition d'échelle ("Xechecr") et addi- tionnée à une valeur de translation ("Xtransecr"). Le terme "Yecr" est défini de façon similaire. Les données transformées sont ensuite assemblées en un paquet de bord pour être transférées vers le processeur de visualisation 140. Dans ce processus de définition de format, on forme un bord pour chaque paire de sommets, et on détermine des points supérieur et inférieur. On peut instaurer des in- dicateurs pour indiquer si le bord est un bord droit, un bord gauche ou un bord horizontal. Chaque paquet de bord pour une paire de sommets comprend les coordonnées du pixel d'écran qui constitue la projection du sommet supérieur du bord, ainsi que la valeur exacte de la coordonnée X de la première ligne de la trame de balayage de l'écran de visualisation que rencontre le bord. Le paquet de données contient également la pente du bord, exprimée en pixels par ligne de trame, et la variation d'intensité le long du bord, exprimée en variation d'intensité par ligne de trame. Il contient également la valeur de grada- tion d'intensité, ou le modificateur d'intensité de la couleur du polygone, en fonction des sources lumineuses, au sommet su- périeur. Lorsque chaque paquet de bord a été calculé, il est émis vers le processeur de visualisation. On calcule un gradient d'intensité à partir de trois points non alignés dans le polygone. Si les trois premiers points sont alignés, on teste les points allant du second au quatrième, et ainsi de suite, jusqu'à ce qu'on trouve trois points non alignés. Si on ne peut pas trouver trois points non alignés, on rejette le polygone. Si on trouve trois points non alignés, on calcule le gradient d'intensité dans la direction X de la manière suivante: ds/dx = [(S2(Y3 - Y1) + S1(Y2 - Y3) + S3 (Y1 - Y2)1/[X2(Y3 - Y1) + X1(Y2 - Y3) + X3(Y1 - Y2)3 Si la face de polygone qui est traitée est une face arrière, l'indicateur de Présence de Face Arrière est instau- ré dans le paquet de visualisation, et un paquet de gradient d'intensité de polygone est émis vers le processeur de visua- lisation 140. REVENDICATIONS 1. Circuit électronique de processeur géométrique (136) prévu pour l'utilisation dans un système de visualisa- tion graphique (100), caractérisé en ce qu'il comprend: (a) des moyens d'élimination (136) connectés à une première mé- moire (116) qui enregistre des segments de données graphiques qui représentent des objets tridimensionnels, pour comparer avec des valeurs présélectionnées, dans une première phase de traitement, certaines au moins des données de chaque segment se trouvant dans la première mémoire (116), afin de détermi- ner si chaque segment contient des données graphiques qui se trouvent au moins partiellement à l'intérieur d'un volume d'observation défini; (b) des moyens de transfert connectés aux moyens d'élimination (136) pour transmettre les segments sélectionnés vers une seconde mémoire; et (c) des moyens de transformation (136) destinés à recevoir les segments sélec- tionnés retournant de la seconde mémoire, dans une seconde phase de traitement, à transformer les données graphiques contenues dans les segments sélectionnés, pour les faire pas- ser d'une représentation tridimensionnelle à une représenta- tion bidimensionnelle, et à transférer les données graphiques transformées vers un système de visualisation (140) pour la visualisation. 2. Processeur géométrique électronique programmable (136), prévu pour l'utilisation dans un système de visualisa- tion graphique (100) qui comprend une mémoire de base de don- nées (116) destinée à enregistrer des segments de données graphiques qui représentent des objets tridimensionnels à vi- sualiser, et qui contient des codes opérations concernant les objets, des premiers moyens de traitement (112) destinés à écrire des segments de données graphiques dans la mémoire (116), des seconds moyens de traitement (132) qui fonction- nent sous la dépendance des premiers moyens de traitement (112) en prélevant séquentiellement des données graphiques enregistrées dans la mémoire (116), et des troisièmes moyens de traitement (140) destinés à accepter des données graphiques traitées provenant du processeur géométrique (136), en vue de leur visualisation sur un dispositif de visualisation (126), caractérisé en ce qu'il comprend: (a) une structure de regis- tres d'entrée (214) connectée à la mémoire (116) par un bus de mémoire spécialisé (134), pour enregistrer temporairement des données graphiques prélevées dans la mémoire par les seconds moyens de traitement (132); (b) une structure de registres tampons (216) connectée aux seconds moyens de traitement (132)- par un bus de pile spécialisé (138), pour enregistrer en tam- pon des données transférées entre les seconds moyens de trai- tement (132) et le processeur géométrique (136); (c) un mo- dule arithmétique pipeline (212), connecté aux structures de registres d'entrée (214) et tampons (216), pour traiter de façon mathématique des données graphiques enregistrées tempo- rairement dans la structure de registres d'entrée (214) ou dans la structure de registres tampons (216); (d) une struc- ture de registres de sortie (220) connectée au module arithmé- tique pipeline (212) et à la structure de registres tampons (214), pour enregistrer temporairement l'information de sortie du module arithmétique pipeline (212); et (e) un micro-con- trôleur (204), connecté aux premiers et troisièmes moyens de traitement (112, 140) par un bus de système (118), aux regis- tres d'entrée, tampons et de sortie (214, 216, 220), et au module arithmétique pipeline (212), pour accepter une séquence d'instructions de traitement provenant des premiers moyens de traitement (112), pour enregistrer les instructions dans une mémoire d'instructions (202), et pour exécuter sélectivement les instructions sous la dépendance des codes opérations qui sont enregistrés dans chaque segment de données graphiques, pour: (1) sélectionner dans la structure de registres d'en- trée (214), et transférer temporairement vers les seconds moyens de traitement (132), par le bus de pile (138), pendant une première phase de traitement, les seuls segments qui con- tiennent des données qui se trouvent au moins partiellement à l'intérieur d'un volume d'observation défini, (2) accepter pendant une seconde phase de traitement les segments sélec- tionnés provenant des seconds moyens de traitement (132) par le bus de pile (138), et des données graphiques associées provenant de la mémoire, prélevées par les seconds moyens de traitement (132) par l'intermédiaire du bus de mémoire (134), et transformer les données graphiques d'une représentation tridimensionnelle en une représentation bidimensionnelle, et (3) transférer les données graphiques transformées vers les troisièmes moyens de traitement (140), par le bus de système (118), pour la visualisation. 3. Processeur géométrique selon la revendication 2, caractérisé en ce que les structures de registres sont des structures en tampons double. 4. Processeur géométrique selon la revendication 2, caractérisé en ce qu'il comprend en outre une structure de registres intermédiaires (218), connectée à l'entrée du mo- dule arithmétique pipeline (212) et à la structure de regis- tres de sortie (220), pour enregistrer temporairement des valeurs de calculs intermédiaires pendant le traitement de données graphiques, et pour transférer sélectivement des va- leurs de calculs intermédiaires vers le module arithmétique pipeline (212) pour un traitement ultérieur. 5. Processeur géométrique selon la revendication 2, caractérisé en ce que le module arithmétique pipeline (212) consiste en un pipeline de calcul dont la configuration peut être modifiée de façon dynamique, qui comprend: (a) un cir- cuit multiplicateur (600) connecté aux entrées du module arithmétique pipeline, pour multiplier deux nombres d'entrée; (b) un circuit accumulateur (602), connecté au circuit multi- plicateur (600), pour additionner une suite de produits pro- venant du circuit multiplicateur (600); (c) une unité arith- métique et logique multifonction (604), connectée aux entrées du module arithmétique pipeline (212) et à la sortie du cir- cuit accumulateur (602), pour travailler sélectivement sur des données d'entrée ou sur la somme de sortie du circuit accumulateur (602); (d) un circuit de transformation par approximation linéaire (606), connecté à la sortie du circuit accumulateur (602), pour travailler sélectivement sur la somme de sortie du circuit accumulateur (602); et (e) un circuit tampon de bus (608), connecté à la sortie du circuit accumulateur (602), pour appliquer sélectivement la somme de sortie du circuit accumulateur (602) à la structure de re- gistres de sortie (220). 6. Processeur géométrique selon la revendication 2, caractérisé en ce qu'il comprend en outre un circuit logique de retard (210) connecté au micro-contrôleur (204) et au mo- dule arithmétique pipeline (212), pour retarder sélectivement la transmission de parties d'instructions vers le module arithmétique pipeline (212), afin de la faire coïncider avec le traitement de données dans ce module. 7. Processeur géométrique électronique programmable (136) prévu pour l'utilisation dans un système de visualisa- tion graphique (100) qui comprend une mémoire de base de don- nées (116) destinée à enregistrer des segments de données graphiques qui représentent des objets tridimensionnels à vi- sualiser, et qui contiennent des codes opérations concernant les objets, des premiers moyens de traitement (112) destinés à écrire des segments de données graphiques dans la mémoire (116), des seconds moyens de traitement (132) qui fonction- nent sous la dépendance des premiers moyens de traitement (112) de façon à prélever séquentiellement des données gra- phiques enregistrées dans la mémoire (116), et des troisièmes moyens de traitement (140), destinés à accepter des données graphiques traitées provenant du processeur géométrique (136), pour la visualisation sur un dispositif de visualisation (126), caractérisé en ce qu'il comprend: (a) une structure de registres d'entrée du type en tampon double (214), connec- tée à la mémoire (116) par un bus de mémoire spécialisé (134), pour enregistrer temporairement des données graphiques préle- vées dans la mémoire par les seconds moyens de traitement (132); (b) une structure de registres tampons du type en tampon double (216) connectée aux seconds moyens de traite- ment (132) par un bus de pile spécialisé (138), pour enre- gistrer en tampon des données qui sont transférées entre les seconds moyens de traitement (132) et le processeur géomé- trique (136); (c) un module arithmétique pipeline (212), connecté aux structures de registres d'entrée et de regis- tres tampons (214, 216), pour traiter de façon mathématique des données graphiques qui sont enregistrées temporairement dans la structure de registres d'entrée (214) ou la structu- re de registres tampons (216); (d) une structure de regis- tres de sortie du type en tampon double (220), connectée au module arithmétique pipeline (212) et à la structure de re- gistres tampons (216), pour enregistrer temporairement l'in- formation de sortie du module arithmétique pipeline (212); (e) une structure de registres intermédiaires (218), connec- tée au module arithmétique pipeline (212) et à la structure de registres de sortie (220), pour enregistrer temporaire- ment des valeurs de calculs intermédiaires pendant le trai- tement de données graphiques; (f) un micro-contrôleur (204), connecté aux premiers et troisièmes moyens de traitement (112, 140) par un bus de système (118), aux registres d'en- trée, tampons et de sortie (214, 216, 220), et au module arithmétique pipeline (212), pour accepter une séquence d'instructions de traitement provenant des premiers moyens de traitement (112), enregistrer les instructions dans une mémoire d'instructions (202), et exécuter sélectivement les instructions sous la dépendance des codes opérations qui sont enregistrés dans chaque segment de données graphiques, pour: (1) sélectionner à partir de la structure de registres d'entrée (214) et transférer temporairement vers les seconds moyens de traitement (132), par le bus de pile (138), pendant une première phase de traitement, les seuls segments conte- nant des données qui se trouvent au moins partiellement à l'intérieur d'un volume d'observation défini, (2) accepter pendant une seconde phase de traitement les segments sélec- tionnés provenant des seconds moyens de traitement (132) par le bus de pile (138), et des données graphiques associées provenant de la mémoire (116), qui sont prélevées par les seconds moyens de traitement (132), par l'intermédiaire du bus de mémoire (134), et transformer les données graphiques d'une représentation tridimensionnelle en une représentation bidimensionnelle, et (3) transférer les données graphiques transformées vers les troisièmes moyens de traitement (140), par le bus de système (118), pour la visualisation. 8. Processeur géométrique selon la revendication 7, caractérisé en ce que le module arithmétique pipeline (212) consiste en un pipeline de calcul dont la configuration peut être modifiée de façon dynamique, qui comprend: (a) un cir- cuit multiplicateur (600) connecté aux entrées du module arithmétique pipeline, pour multiplier deux nombres d'entrée; (b) un circuit accumulateur (602), connecté au circuit multi- plicateur (600), pour additionner une suite de produits pro- venant du circuit multiplicateur (600); (c) une unité arith- métique et logique multifonction (604), connectée aux entrées du module arithmétique pipeline (212) et à la sortie du cir- cuit accumulateur (602), pour travailler sélectivement sur des données d'entrée ou sur la somme de sortie du circuit accumulateur (602); (d) un circuit de transformation par approximation linéaire (606), connecté à la sortie du circuit accumulateur (602), pour travailler sélectivement sur la somme de sortie du circuit accumulateur (602); et (e) un circuit tampon de bus (608), connecté à la sortie du circuit accumulateur (602), pour appliquer sélectivement la somme de sortie du circuit accumulateur (602) à la structure de regis- tres de sortie (220). 9. Processeur géométrique selon la revendication 7, caractérisé en ce qu'il comprend en outre un circuit logique de retard (210) connecté au micro-contrôleur (204) et au mo- dule arithmétique pipeline (212), pour retarder sélectivement la transmission de parties d'instructions vers le module arithmétique pipeline (212), afin de la faire coïncider avec le traitement de données dans ce module.