Brevet FR2690770A1 — publié le 19931105

i L'invention concerne d'une manière générale les jeux vidéo et plus particulièrement un système perfectionné de visualisation à projection de texture tridimensionnelle pour afficher des polygones projetés tridimensionnels avec5 des représentations de texture sur un écran de visualisation à trame bidimensionnelle En particulier, le système de visualisation est conçu pour une utilisation avec des jeux vidéo afin de permettre une animation en temps réel de scènes de jeu vidéo avec des surfaces planes texturées en une période de temps sensiblement inférieure à celle demandée dans des systèmes classiques de visualisation de ce type général. Dans des systèmes de visualisation de l'art antérieur destinées à visualiser des représentations tri- dimensionnelles d'images sur un écran de visualisation à trame bidimensionnelle d'un tube à rayon cathodique (TRC), on souhaite généralement mettre en oeuvre un dispositif pour générer des surfaces texturées de façon réaliste dans l'image afin de produire un effet général de représentation dimen- sionnelle Dans de tels systèmes d'affichage classiques de visualisation conçus pour produire un tel effet, ceci est réalisé par un certain type de générateur de surface à texture impliquant l'exécution d'algorithmes arithmétiques ou de calculs mathématiques relativement longs et complexes, tels que des calculs par multiplication, division, addition, soustraction et/ou fonctions trigonométriques. Par conséquent, ces systèmes de l'art antérieur ont pour inconvénient principal de demander à un utilisateur d'attendre beaucoup de temps avant que l'image puisse être visualisée sur l'écran Non seulement les systèmes de visualisation de l'art antérieur sont très longs, mais les circuits matériels nécessaires pour l'exécution des divers calculs mathématiques sont très coûteux. Il est donc souhaitable de disposer d'un système perfectionné de visualisation tridimensionnel à représen- tation de texture pour visualiser des polygones projetés tridimensionnels avec des représentations de texture sur un écran de visualisation à trame bidimensionnelle qui utilise des algorithmes simplifiés ne faisant appel qu'à des opéra- tions d'addition et de soustraction et offrant donc une vitesse de travail élevée. Un objet général de l'invention est donc de procurer un système de visualisation perfectionné pour visualiser des polygones projetés tridimensionnels avec des10 représentations de texture en une période de temps sen- siblement inférieure à celle demandée dans des systèmes de visualisation classiques. Un objet de l'invention est de procurer un système de visualisation tridimensionnel à représentation de texture qui utilise des algorithmes arithmétiques simplifiés. Un autre objet de l'invention est de procurer un système de visualisation tridimensionnel à représentation de texture qui comprend un processeur de visualisation graphique qui peut être mis en oeuvre avec des circuits de matériels moins coûteux. Un autre objet encore de l'invention est de procurer un système de visualisation tridimensionnel à représentation de texture destiné à visualiser des polygones projetés tridimensionnels avec des représentations de texture sur un écran de visualisation à trame bidimensionnelle, qui comprend un processeur graphique destiné à déterminer des adresses de destination pour chaque pixel dans l'espace de l'écran d'un moniteur de visualisation et à déterminer des adresses de source correspondantes fournissant une texture de surface à une image pour chaque adresse de destination. Un autre objet encore de l'invention est de procurer un système de visualisation qui comprend un proces- seur graphique ayant des tables à consultation pour stocker des valeurs approximatives concernant les rapports de coordonnées en profondeur dans l'espace d'un écran, qui sont utilisées dans le calcul des adresses de source dans une mémoire de texture. Conformément à ces buts et objectifs, l'invention a pour objet de procurer un système de visualisation destiné à visualiser des polygones projetés tridimensionnels ayant des représentations de texture sur un écran de visualisation à trame bidimensionnelle qui comprend un processeur central et un processeur graphique Le processeur central réagit à des données d'entrée provenant d'une mémoire centrale10 définissant les sommets d'une image de polygone devant être affichée sous une forme à trois dimensions sur un moyen de visualisation à trame pour générer des signaux d'ordre, des coordonnées d'écran sur le moyen de visualisation à trame et des coordonnées d'espace de texture correspondantes sur une mémoire de texture Le processeur graphique réagit aux signaux d'ordre, aux coordonnées d'écran et aux coordonnées correspondantes d'espace de texture en déterminant des adresses de destination pour chaque pixel sur l'espace d'écran du moyen de visualisation à trame et en déterminant des adresses de source correspondantes fournissant une texture de surface à l'image pour chaque adresse de destination. Le processeur graphique comprend en outre un moyen à table à consultation destiné à stocker des valeurs approximatives liées à des rapports de coordonnées en profondeur dans l'espace d'écran qui sont utilisées pour déterminer des valeurs de pente et d'accélération dans l'espace à texture En conséquence, les adresses de source pour la mémoire de texture peuvent être aisément déterminées avec des algorithmes arithmétiques simplifiés en n'utilisant que des opérations d'addition. L'invention sera décrite plus en détail en regard des dessins annexés à titre d'exemple nullement limitatif et sur lesquels: la figure 1 est un schéma fonctionnel simplifié d'ensemble d'un système de visualisation tridimensionnel à représentation de texture, réalisé conformément aux principes de l'invention; 5 la figure 2 est un schéma fonctionnel détaillé du coprocesseur graphique à utiliser dans le système de visuali- sation de la figure 1; la figure 3 est un organigramme à utiliser dans le système de visualisation selon l'invention, pour la génération d'adresses de destination pour chaque pixel sur l'espace d'écran; la figure 4 est un organigramme à utiliser dans le système de visualisation selon l'invention, pour produire des adresses de source correspondantes dans la mémoire de texture pour chaque pixel de destination correspondant; et la figure 5 est une représentation schématique d'un exemple de polygone sur une matrice de points, rempli de données provenant d'une représentation de texture, formé conformément aux processus des figures 3 et 4. En référence à présent en détail aux dessins, la figure 1 montre un schéma fonctionnel simplifié d'ensemble d'un système perfectionné 10 de visualisation tridimensionnel à représentation de texture construit conformément aux principes de l'invention Le système de visualisation est utilisé pour visualiser des polygones projetés tri- dimensionnels avec des représentations de texture sur un dispositif de visualisation à trame bidimensionnelle Le système de visualisation 10 est particulièrement adapté à une utilisation dans des jeux vidéo pour permettre une animation en temps réel de scènes de jeux vidéo avec des surfaces planes texturées, à une vitesse élevée de fonctionnement Le système de visualisation est constitué d'un calculateur central 12 qui est avantageusement un processeur de signaux numériques, d'un coprocesseur graphique 14, d'une mémoire 16 de texture, d'une mémoire tampon 18 d'images vidéo, d'une table 20 à consultation de couleurs, et d'un dispositif de visualisation à tube à rayon cathodique ou autre 22. Le calculateur central 12 reçoit des données d'objet telles que des données provenant d'une mémoire centrale convenable 24, qui définissent les sommets de l'image polygonale devant être visualisée sous la forme d'une image tridimensionnelle formée sur l'écran du dispositif de visualisation 22 La mémoire centrale contient aussi les adresses de la représentation de texture correspondante dans une mémoire de texture pour chaque polygone. On désigne ici par polygone un groupe de points contenus dans le même plan et décrivant les sommets de la zone délimitée d'un espace bidimensionnel convexe Une représentation de texture ou représentation texturée désigne une image bidimensionnelle qui est représentée par des pixels Une matrice de points est définie comme étant un espace bidimensionnel de mémoire vive qui représente chaque pixel (point de couleur) qui est visualisé sur l'écran du dispositif de visualisation De plus, on désigne par adresse20 de destination une position en mémoire dans la matrice de points, et on désigne par adresse de source une position en mémoire dans la représentation texturée alors active. Le calculateur central 12 reçoit de la mémoire 24 un ensemble de points qui sont représentés par (X, Y, Z) dans un système de coordonnées rectangulaire (universel) de référence dans un espace tridimensionnel afin de décrire les sommets d'un polygone X représente la coordonnée horizontale (gauche-droite), Y représente la coordonnée verticale (haut- bas) et Z représente la coordonnée en profondeur (avant- arrière), respectivement En outre, le calculateur central reçoit en entrée un ensemble de points représentés chacun par (Xt, Yt) dans un système de coordonnées rectangulaire dans un espace bidimensionnel afin de décrire la position des sommets d'une représentation de texture Etant donné que le polygone à visualiser sur l'écran du dispositif de visualisation à TRC doit être représenté par rapport au point d'observation d'un utilisateur, le calculateur central doit effectuer initiale- ment une transformation de perspective pour convertir les coordonnées de référence X, Y, Z pour l'ensemble de points5 représentant les sommets du polygone en coordonnées d'écran Xs, Ys, Zs comme cela est bien connu dans la technique. Conformément à l'invention, le coprocesseur graphique 14 utilise les coordonnées d'écran pour projeter la représentation de texture sur la matrice de points telle que10 représentée par la mémoire tampon 18 d'image vidéo afin que la représentation de texture apparaisse comme si elle était en perspective Cependant, étant donné que le polygone doit être représenté dans un espace à deux dimensions sur l'écran du dispositif de visualisation à TRC, les coordonnées d'écran Xs, Ys, Zs décrivant les sommets du polygone doivent d'abord être modifiées ou projetées sur un système de coordonnées bidimensionnel X, Y, afin qu'elles puissent être tracées sur la matrice de points Les coordonnées projetées X et Y des sommets du polygone sont alors utilisées pour déterminer les points de commencement et de fin de traçage pour chaque ligne de balayage affichée sur la matrice de points La relation entre les coordonnées Z aux points de commencement et de fin est utilisée pour déterminer la fonction de projection de la représentation de texture vers la matrice de points. Comme on peut le voir, la figure 2 est un schéma fonctionnel détaillé du coprocesseur graphique 14 selon l'invention destiné à traiter les données d'entrée en réponse à des signaux d'ordre provenant du calculateur central 12 afin de générer sur la matrice de points un polygone rempli de données à partir de la mémoire de texture sous une forme qui est synchronisée avec les valeurs de coordonnées Z associées à chaque sommet Le processeur graphique 14 comprend une unité arithmétique et logique (ALU) 25, une table à consultation 26 destinée à fournir des valeurs ZTABLED et ZTABLEDD, un générateur 28 d'adresse d'écran, un générateur 30 d'adresse de représentation de texture et une unité 32 de données. L'unité arithmétique et logique 25, en réponse aux données d'entrée provenant du calculateur central et aux données provenant de la table 26 à consultation, génère les adresses de destination par l'intermédiaire du générateur 28 d'adresse d'écran pour la mémoire tampon 18 d'image vidéo. Chaque adresse de destination détermine un emplacement particulier sur l'écran, auquel une donnée de texture doit10 être placée L'unité ALU génère aussi des adresses de source par l'intermédiaire du générateur 28 d'adresse de représen- tation texturée pour la mémoire 16 de texture Chaque adresse de source détermine la donnée de texture spécifiée devant être placée sur l'écran à l'emplacement particulier déterminé par l'adresse de destination correspondante La donnée de texture est envoyée depuis la mémoire 16 de texture à l'unité 32 de données et elle est alors envoyée à l'écran de l'unité 22 de visualisation par l'intermédiaire de la mémoire tampon 18 d'image vidéo et de la table 20 à consultation de couleurs. Dans la forme particulière de réalisation représentée, le traitement des informations par le co- processeur graphique 14 en réponse aux signaux d'ordre provenant du calculateur central 12 est également conçu de façon à produire des données d'indice de couleurs concernant la couleur et l'intensité de chaque point de l'image pour un stockage dans la mémoire tampon 18 d'image vidéo La donnée d'indice de couleurs agit à la manière d'un "pointeur" pour sélectionner la couleur et l'intensité demandées à partir de la table 20 à consultation qui fournit alors les données de couleurs vidéo convenables (rouge-vert-bleu) à afficher par le dispositif 22 de visualisation à TRC En variante, un réseau de données de couleurs/intensité d'image pour chaque point d'image peut être stocké directement dans la mémoire tampon 20 d'image vidéo et ces données de couleurs/intensité peuvent être appliquées directement au dispositif de visuali- sation à TRC à partir de la mémoire tampon d'image vidéo. Pour afficher le polygone rempli de données à partir de la mémoire 16 de texture, il faut initialement que le coprocesseur graphique 14 génère les adresses de des- tination correspondant à des emplacements de chaque point (pixel) du polygone sur l'espace d'écran conformément à l'organigramme simplifié montré sur la figure 3 Dans un bloc , on positionne initialement le sommet du polygone ayant la coordonnée d'écran Y minimale Puis les coordonnées de sommets sur l'écran des points de début et de fin pour chacun des contours du polygone, appelés ci-après "bord Xmin" et "bord Xmax", sont positionnées, bloc 112 On calcule ensuite, dans un bloc 114, les deltas d'écran (delta X par rapport à une variation de 1 dans Y) et les rapports Z pour chaque "bord Xmin" et "bord Xmax"l Le rapport Z est le rapport de la coordonnée Z de fin à la coordonnée Z de début On calcule également dans le bloc 114 la pente X entre chaque ligne de balayage dans l'espace d'écran sur chaque "bord Xmin" et "bord Xmax". Puis on établit les coordonnées d'écran X, Y, dans le bloc 118, aux coordonnées initiales de départ Xsmin, Ysmin Il convient de noter qu'il s'agit des coordonnées de départ à la fois pour "bord Xmin" et "bord Xmax" Puis, dans le bloc 122, on augmente de façon répétée, de 1, la coor- donnée d'écran X pour tracer les données provenant de la mémoire de texture 30 pour chaque coordonnée d'écran X jusqu'à ce que le "bord Xmax" soit atteint En fait, ceci trace des données de texture du bord de gauche vers le bord de droite de la ligne de balayage en cours du polygone. Dans un bloc 124, on détermine si le sommet suivant sur le "bord Xmin" ou sur le "bord Xmax" a été atteint. Dans un bloc 126, on augmente de 1 la coordonnée d'écran Y en préparation à la ligne de balayage suivante De plus, on ajoute la pente Xmin et la pente Xmax, respec- tivement, à Xmin et Xmax Ensuite, on détermine au bloc 128 si la coordonnée d'écran Y a dépassé une valeur de sommet Y maximal S'il en est ainsi, aucun autre calcul n'est effec-5 tué S'il n'en est pas ainsi, le calcul effectué dans le bloc 118 est répété pour la ligne de balayage suivante Par conséquent, le bloc 122 fournit de nouveau l'adresse de destination pour la ligne de balayage suivante On notera d'après le bloc 124 que si le sommet suivant a été atteint, une nouvelle pente X doit alors être recalculée dans le bloc 114. Pour déterminer le pixel de source à tracer, le coprocesseur graphique 14 doit déterminer en même temps les adresses correspondantes dans la représentation texturée 16 et fournir les données de texture de surface appropriée comme expliqué en regard de la figure 4 Dans un bloc 210, le sommet de représentation de texture correspondant au sommet du polygone est positionné initialement Ensuite, dans un bloc 212, les coordonnées d'espace texturé de sommet cor- respondant pour des points de début et de fin pour chacun de "bord Xmin" et "bord Xmax" sont positionnées Les valeurs delta d'espace texturé et delta de texture pour les "bord Xmin" et "Xmax" respectifs sont calculées à partir des blocs 213 et 214, respectivement Ensuite, dans un bloc 216, on calcule les accélérations de texture pour les "bord Xmin et Xmax" respectifs. Dans les blocs 217 et 218, on calcule Xtî, Yt, Zminr Zmax qui sont les valeurs delta de texture et les accélérations, pour la ligne de balayage correcte. Dans un bloc 219, on additionne la valeur delta de texture à la position de texture pour obtenir Xt(m), Yt(m), qui sont les adresses de texture pour des points le long de la ligne de balayage en cours Dans un bloc 220, on calcule les valeurs de texture Xt, Yt, Zmin et Zmax pour la ligne de balayage suivante En additionnant la valeur delta de texture à la position précédente et en additionnant la texture, on obtient les valeurs de texture Xt(m), Yt(m) pour des points le long de la ligne de balayage Par conséquent, le bloc 224 fournit les adresses de source pour chaque pixel dans la représentation de texture En 222, on détermine si un sommet ou un bord a été atteint Si tel n'est pas le cas, on revient par un branchement à 217 pour la ligne de balayage suivante S'il en est ainsi, une vérification est effectuée en 224 pour déterminer si la coordonnée d'écran Y a dépassé la valeur de sommet maximale S'il en est ainsi, le sousprogramme s'achève; autrement, il revient par un branchement en 213 pour d'autres points sur la ligne de balayage en cours. Un exemple d'utilisation du processus décrit ci- dessus en référence aux organigrammes des figures 3 et 4 pour le traitement des données d'entrée afin de visualiser un polygone rempli de données à partir de la représentation de texture dans son espace bidimensionnel sur la matrice de points, comme illustré sur la figure 5, sera à présent expliqué Initialement, on a noté que les sommets (points 1-4) sur l'espace d'écran sont stockés dans le sens des aiguilles d'une montre Le sommet (point 1) possède la coordonnée d'écran Y minimale et est appelé "apex" Par conséquent, le sommet de coordonnées X plus grandes (point 2) est le sommet suivant en progressant dans le sens des aiguilles d'une montre à partir de l'apex, et la coordonnée X plus petite est le sommet (point 4) trouvé en se déplaçant dans le sens inverse de celui des aiguilles d'une montre à partir de l'apex Par conséquent, la ligne 34 entre l'apex (point 1) et le sommet (point 4) ayant la coordonnée X minimale est définie comme étant le "bord Xmin" La ligne 36 entre l'apex et le sommet (point 2) ayant la coordonnée X maximale est défini comme étant le "bord Xmax". Pour chaque "bord Xmin"l (ligne 34 ou 38), les coordonnées de sommets sur écran des points de départ et de il fin 1-4 et 4-3 sont données par (Xsmin, Ysmin, Zsmin) et (Xemin, Yemin, Zemin), respectivement Pour chaque "bord Xmax" (ligne 36 ou 40), les coordonnées de sommets sur écran des points de départ et de fin ( 1-2 et 2-3) sont données par (Xsmax, Ysmax, Zsmax) et (Xemax, Yemax, Zemax), respec- tivement On notera que l'on a, pour le point 1, les valeurs: Xsmin = Xsmax, Ysmin = Ysmax et Zsmin = Zsmax. On définit donc: Xsmin = valeur X de départ de sommet sur écran du bord min ( 1) Ysmin = valeur Y de départ de sommet sur écran du bord min ( 2) Zsmin = valeur Z de départ pour le bord min dans l'espace d'écran ( 3) Xemin = valeur X de fin de sommet sur écran du bord min ( 4) Yemin = valeur Y de fin de sommet sur écran du bord min ( 5) Zemin = valeur Z de fin du bord min dans l'espace d'écran ( 6) Xsmax = valeur X de départ de sommet sur écran du bord max ( 7) Ysmax = valeur Y de départ de sommet sur écran du bord max ( 8) Zsmax = valeur Z de départ pour le bord max dans l'espace d'écran ( 9) Xemax = valeur X de fin de sommet sur écran du bord max ( 10) Xemax = valeur Y de fin de sommet sur écran du bord max ( 11) Zemax = valeur Z de fin du bord max dans l'espace d'écran ( 12) Les équations ( 1) à ( 12) ci- dessus sont traitées dans le bloc 112 de la figure 3 On notera en outre que les sommets correspondants (points 1-4) dans l'espace de texture (figure 5) sont également stockés dans le sens des aiguilles d'une montre afin d'apparier chaque sommet d'espace d'écran avec un sommet d'espace de texture correspondant Ainsi, pour chaque "bord Xmin" (ligne 42 ou 44), les coordonnées de sommet sur l'espace de texture des points de début et de fin (points 1-4 ou 4-3) sont données, respectivement, par (Xtsmin, Ytsmin) et (Xtemin, Ytemin) Pour chaque "bord Xmax" (ligne 46 ou 48), les coordonnées de sommet dans l'espace de texture des points de départ et de fin ( 1-2 ou 2-3) sont données, respectivement, par (Xtsmax, Ytsmax) et (Xtemax, Ytemax). On définit donc: Xtsmin = la coordonnée X de départ dans l'espace de texture pour le bord min ( 13) Ytsmin = la coordonnée Y de départ dans l'espace de texture pour le bord min ( 14) Xtsmax = la coordonnée X de départ dans l'espace de texture pour le bord max ( 15) Ytsmax = la coordonnée Y de départ dans l'espace de texture pour le bord max ( 16) Xtemin = la coordonnée X de fin dans l'espace de texture pour le bord min ( 17) Ytemin = la coordonnée Y de fin dans l'espace de texture pour le bord min ( 18) Xtemax = la coordonnée X de fin dans l'espace de texture pour le bord max ( 19) Ytemax = la coordonnée Y de fin dans l'espace de texture pour le bord max ( 20) Les équations ( 13) à ( 20) ci-dessus sont traitées simultanément avec le traitement de la figure 3 dans le bloc 212 de la figure 4. Pour chaque "bord Xmin" de l'espace d'écran, on calcule les valeurs delta d'écran qui sont données par: D Xmin = Xemin Xsmin (delta écran x pour bord min) ( 21) D Ymin = Yemin Ysmin (delta écran Y pour bord min) ( 22) D Zmin = Zemin Zsmin (delta écran Z pour bord min) ( 23) Similairement, pour chaque "bord Xmin" de l'espace de texture, on calcule les valeurs delta d'espace de texture qui sont données par: D Xtmin=Xtemin-Xtsmin (delta X dans espace de texture pour bord Xinin) ( 24) D Ytmin=Ytemin-Ytsmin (delta Y dans espace de texture pour bord Xmin) ( 25) On calcule aussi pour chaque "bord Xmin"l un rapport Z dont la valeur est égale à: Z Rmin = Zemin/Zsmin ( 26) Pour chaque "bord Xmin" de l'espace de texture, on calcule en outre Z et les valeurs delta de texture associées, et Z et les accélérations de texture associées qui sont données par: Xtmin = Xtsmin ( 27) Xtmin D = D Xtmin * (ZTABLED(Z Rmin,D Ymin)) ( 28) Xtmin DD = D Xtmin * (ZTABLEDD(Z Rmin,D Ymin)) ( 29) Ytmin = Ytsmin ( 30) Ytmin D = D Ytmin * (ZTABLED(Z Rmin,D Ymin)) ( 31) Ytmin DD = D Ytmin * (ZTABLEDD(Z Rmin,D Ymin)) ( 32) Zmin = Zsmin ( 33) Zmin D = D Zmin * (ZTABLED(Z Rmin,D Ymin)) ( 34) Zmin DD = D Zmin * (ZTABLEDD(Z Rmin, D Ymin)) ( 35) On notera que la valeur delta de texture Xtmin D dans l'équation ( 28) ci-dessus est égale à la valeur delta d'espace de texture D Xtmin provenant de l'équation ( 24) multipliée par la valeur ZTABLED On notera en outre que l'accélération de texture Xtmin DD dans l'équation ( 29) est égale à la même valeur delta d'espace de texture correspon- dant D Xtmin multipliée par une valeur ZTABLEDD On peut voir que les valeurs ZTABLED et ZTABLEDD sont des fonctions de Z Rmin et D Ymin Similairement, les valeurs delta de texture Ytmin D et Zmin D et les accélérations de texture Ytmin DD et Zmin DD montrées dans les équations respectives ( 31), ( 32), ( 34) et ( 35) sont liées de façon similaire Les valeurs ZTABLED et ZTABLEDD sont stockées en tant que fonctions de représentation Z dans la table à consultation 26 de la figure 2 Ces valeurs sont des approximations mémorisées qui simplifient notablement les algorithmes arithmétiques devant être effectués par le coprocesseur graphique 14. Plus particulièrement, un algorithme rapide et peu coûteux a été recherché pour obtenir une approximation de la fonction hyperbolique de la représentation de texture par5 transformation inverse comme décrit plus complètement dans le brevet des Etats-Unis d'Amérique N O 4 615 013 et No 4 343 037 Une approche itérative qui utilise uniquement les additions en se déplaçant entre des pixels de représen- tation de texture sur une ligne de balayage est très avanta-10 geuse car elle est peu coûteuse et très rapide du point de vue du calcul. On a constaté que la fonction de représentation hyperbolique réelle peut être obtenue de façon approximative avec une courbe parabolique générée par des additions15 successives (vitesse et accélération) Ceci donne une représentation raisonnablement précise pour des rapports Z entre 1/3 et 3 Hormis le cas de plans extrêmement rapprochés ou d'objets immenses, pratiquement tous les polygones dans des systèmes réels sont compris dans cette plage. Les formules suivantes se sont avérées donner des résultats particulièrement bons pour les valeurs de delta (D) et d'accélération (DD): DD = ( 4 ( 8/(ZR+ 1)))/(DL*DL) D = ( 1,0/DL) ((DL-1)*DD/2) o ZR est le rapport des coordonnées Z de fin et de début de la ligne de destination et DL est le nombre d'échantillons dans la ligne de destination. Dans le cas de lignes de bord (Xmin, Xmax), DL est le nombre de lignes de balayage couvert par le bord (D Ymin, D Ymax) Dans le cas d'une ligne de balayage indi- viduelle, DL est la valeur X delta de la ligne de balayage (DX) qui est égale au nombre de pixels dans la ligne de balayage. Dans la forme préférée de réalisation de 1 1 inven- tion, les valeurs DD et D sont stockées dans des tables de consultation ZTABLED et ZTABLEDD, respectivement, pour une plage finie de valeurs de ZR et de DL Ceci réduit les calculs effectués pour chaque ligne et il en résulte, dans la plupart des cas, une approximation raisonnablement précise. Par exemple, pour calculer Xtmin D et Xtmin DD dans les équations 28 et 29, on utilise ZR=Z Rmin et DL=D Ymin Même sans la simplification de consultation de la table, on doit noter que le temps système de calcul par ligne est très inférieur même au temps système par pixel d'algorithmes antérieurs La complexité du calcul par pixel de 4 additions est infinitésimale par rapport à celle des algorithmes de l'art antérieur. Pour chaque "bord Xmin" de l'espace d'écran, on calcule une pente X qui est donnée par: Xminpente = D Xmin/D Ymin (pente X entre chaque ligne de balayage dans l'espace d'écran sur le bord Xmin) ( 36) De la même manière, pour chaque "bord Xmax" de l'espace d'écran, on calcule des valeurs delta d'écran qui sont données par: D Xmax = Xemax-Xsmax (delta d'écran X pour bord max) ( 37) D Ymax = Yemax-Ysmax (delta d'écran Y pour bord max) ( 38) D Zmax = Zemax- Zsmax (delta d'écran Z pour bord max) ( 39) Similairement, pour chaque "bord Xmax" de l'espace de texture, on calcule des valeursdelta d'espace de texture qui sont données par: D Xtmax=Xtemax-Xtsmax (delta X dans espace de texture pour bord Xmax) ( 41) D Ytmax=YtemaxYtsmax (delta Y dans espace de texture pour bord Xmax) ( 42) On calcule aussi pour chaque "bord Xmax" un rapport Z dont la valeur est égale à: Z Rmax = Zemax/Zsmax ( 43) Pour chaque "bord Xmax" d'espace de texture, on calcule en outre Z, des valeurs deltas de texture et des valeurs d'accélération de texture sont données par: Xtmax = Xtsmax ( 44 Xtmax D = D Xtmax * (ZTABLED(Z Rmax,Dymax)) Xtmax DD = D Xtmax * (ZTABLEDD(Z Rmax,D Ymax)) ( 46) Ytmax = Ytsmax ( 47) Ytmax D = D Ytmax * (ZTABLED(Z Rmax,D Ymax)) ( 48) Ytmax DD = D Ytmax * (ZTABLEDD(Z Rmax,D Ymax)) ( 49) Zmax = Zsmax ( 50) Zmax D = D Zmax * (ZTABLED(Z Rmax,D Ymax)) ( 51) Zmax DD = D Zmax * (ZTABLEDD(Z Rmax,D Ymax)) ( 52) Enfin, pour chaque "bord Xmax" de l'espace d'écran, on calcule une pente X qui est donnée par: Xmaxpente = D Xmax/D Ymax (pente X entre chaque ligne de balayage dans l'espace d'écran sur un bord Xmax) ( 53) On génère à partir des équations ci- dessus ce qui est parfois appelé des "paramètres de bords" pour le polygone à dessiner En d'autres termes, on a défini les coordonnées de sommet sur écran des points de début et de fin le long de chaque "bord Xmin" et de chaque "bord Xmax" En outre, on a défini les coordonnées des points de début et de fin pour les sommets dans l'espace de texture pour chaque "bord Xmin" et chaque "bord Xmax" Le polygone est ensuite balayé rangée par rangée en coordonnées d'écran, en commençant avec la rangée ayant la valeur de coordonnée Y la plus petite jusqu'à la rangée ayant la valeur de coordonnée Y maximale Pour chaque rangée, la valeur de coordonnée X est accrue de façon continue à chaque fois d'une unité le long de la rangée particulière Simultanément, la représentation de texture est balayée d'une façon similaire et synchronisée en coordonnées d'espace de texture Pour effectuer un tel processus de balayage, on doit calculer, pour chaque ligne de balayage (n), les valeurs suivantes: Yscrn(n)=Yscrn(n-l)+l Xmin(n)=Xmin(n-l)+ Xminpente Xmax(n)=Xmax(n-1) +Xmaxpente Zmin(n)=Zmin(n-l)+Zmin D Zmin D(n)=Zmin D(n-l)+Zmin DD Xtmin(n)=Xtmin(n-l)+Xtmin D Xtmin D(n)=Xtmin D(n-l)+Xtmin DD Ytmin(n)=Ytmin(n-l)+Ytmin D Ytmin D(n)=Ytmin D(n-l)+ Ytmin DD Zmax(n)=Zmax(n-1)+Zmax D Zmax D(n)=Zmax D(n-1)+Zmax DD Xtmax(n)=Xtmax(n-1)+Xtmax D Xtmax D(n)=Xtmax D(n-1)+Xtmax DD Ytmax(n)=Ytmax(n-l)+Ytmax D Ytmax D(n)=Ytmax D(n-l)+Ytmax DD mise à jour coordonnée Y d'écran valeur X d'écran pour début ligne de valeur X d'écran pour-fin ligne de Etape Etape Etape Etape Etape Etape Etape Etape Etape Etape Etape Etape début Z sur ligne de balayage Zmin D représentation texture bord min X Xtmin D représentation texture bord min Y Ytmin D fin Z sur ligne de balayage Zmax D représentation texture bord max X Xtmax D représentation texture bord max Y Ytmax D ZR(n) = Zmax(n)/Zmin(n) D Xt(n)=Xtsmax(n)-Xtsmin(n) D Yt(n)=Ytsmax(n)-Ytsmin(n) ( 54) balayage ( 55) balayage ( 56) ( 58)' ( 59) ) 61 > ( 62) ( 63) ( 64) ( 65) ( 66) ( 67) ( 68) ( 69) ( 70) Delta X ligne de balayage dans espace de texture ( 71) Delta Y ligne de balayage dans espace de texture ( 72) xt( 0) = -Xt D(n) = Xt DD(n)= Yt(O) = Yt D(n) = Yt DD(n)= xtmin(n) D Xt(n)*ZTABLED(ZR(n),DX(n))) D Xt(n)*(ZTABLEDD(ZR(n),DX(n))) Ytmin(n) D Yt(n)*(TABLED(ZR(n),DX(n))) D Yt(n)*ZTABLEDD(Zr(n),DX(ln)) ( 73) ( 74) ( 75) ( 76) ( 77) ( 78) D'après ce qui précède, on génère les adresses de destination et de source pour le début et la fin de chaque ligne de balayage (n) Pour chaque pixel sur une ligne de balayage particulière (n), on calcule: xscrn(m) = Xscrn(m-l)+l Xt(m) = Xt(m-l)+Xt D(m-1) Xt D(m) = Xt D(m 1)+Xt DD Yt(m) = Yt(m-1)+Yt D(m-1) Yt D(m) = Yt D(m-1)+Yt DD coordonnée X dtécran pour pixel m représentation de texture X représentation de texture Y ( 79) ( 80) ( 81) ( 82) ( 83) On notera que la coordonnée d'écran Y (Yscrn) reste la même pour une ligne de balayage particulière et la coordonnée d'écran X (Xscrn) telle que définie à l'équation ( 79) est augmentée de 1 à chaque fois pour le pixel suivant. Les données de texture de surface auxquelles on accède par les adresses de source Xt(m) à partir des équations respec- tives ( 80) et ( 82) et Yt(m) dans la mémoire de texture 16 sont alors utilisées pour remplir l'emplacement dans l'écran auquel on accède par les adresses de destination Xscrn(m) et Yscrn(n) pour chaque pixel dans la ligne de balayage (n). Comme on peut le voir d'après les équations ( 80) à ( 83), il faut simplement quatre additions pour calculer l'adresse de source pour chaque pixel m sur la ligne de balayage n Pour la ligne de balayage suivante et chacune des autres lignes de balayage, les équations ci- dessus ( 54) à ( 78) doivent être recalculées Lorsque le sommet suivant à la fin de la ligne "bord Xmin" ou de la ligne "bord Xmax" est atteint, des paramètres de bords correspondants doivent être recalculés avant l'exécution des calculs de traitement de la ligne de balayage. Ainsi qu'on peut le voir d'après la figure 5, une partie de la surface du polygone est définie par des points t le long de lignes de balayage successives 51, 52, 53, 54 et ainsi de suite à partir de la ligne 34 du bord Xmin jusqu'à la ligne 36 du bord Xmax sur l'espace d'écran Similairement, la partie de la surface dans l'espace de texture est définie par des points S le long de lignes courbes excessives 55, 56, 57, 58 et ainsi de suite à partir du bord Xmin 42 jusqu'à la ligne 46 du bord Xmax Comme on peut le voir, les exemples de points tl-t 6 sur la ligne de balayage 54 sont linéaires alors que les points correspondants sl-56 sur la ligne de balayage 58 dans l'espace de texture ne sont pas linéaires, mais incurvés La raison en est que la variation de Z (coordonnée de profondeur) d'un point à l'autre dans l'espace de texture n'est pas linéaire La donnée pour le point sl dans l'espace de texture est utilisée pour remplir le point tl dans l'espace d'écran Similairement, la donnée de texture de surface au point S 2 dans l'espace de texture est utilisée pour remplir l'emplacement t 2 dans l'espace d'écran, et ainsi de suite. On peut donc voir d'après la description détaillée qui précède que l'invention procure un système perfectionné de visualisation tridimensionnel à représen- tation de texture pour visualiser des polygones projetés tridimensionnels avec une représentation de texture sur un écran de visualisation à trame bidimensionnelle Le système de visualisation est constitué d'un calculateur central et d'un coprocesseur graphique Le coprocesseur graphique doit exécuter seulement des algorithmes arithmétiques ou des calculs mathématiques simples pour fournir des données de texture de surface à chaque pixel de destination sur l'espace d'écran d'un TRC ou autre dispositif de visualisation Un coprocesseur graphique comprend une table à consultation pour le stockage de fonctions de représentation Z qui sont utilisées pour simplifier les calculs des valeurs delta et d'accélération dans l'espace de texture pour la détermination des adresses de source dans une mémoire de texture Les avantages de la présente invention résultent de l'utilisation de tels moyens. Il va de soi que de nombreuses modifications peuvent être apportées au système décrit et représenté sans sortir du cadre de l'invention. REVENDICATIONS 1 Système de visualisation destiné à être utilisé avec des jeux vidéo pour permettre une animation en temps réel de scènes de jeux vidéo avec des surfaces tex-5 turées, ledit système de visualisation, qui visualise des polygones projetés tridimensionnels à représentation de texture sur un dispositif ( 22) de visualisation bidimension- nelle ayant un écran composé d'éléments d'image ou pixels, étant caractérisé en ce qu'il comporte un moyen central ( 12) de traitement qui, en réponse à des données d'entrée prove- nant d'une mémoire centrale ( 24), définit une image globale devant être visualisée sous une forme tridimensionnelle sur un dispositif de visualisation ( 22), un moyen de co- traitement graphique ( 14) qui, en réponse au moyen central de15 traitement, détermine des adresses de destination pour chaque pixel sur l'écran du dispositif de visualisation et une adresse de source correspondante à partir de laquelle une donnée de texture de surface est fournie pour chaque pixel, le moyen de cotraitement graphique comprenant un moyen20 destiné à déterminer des valeurs de fonctions de représen- tation Z à partir desquelles des valeurs de delta et d'accé- lération peuvent être calculées pour déterminer lesdites adresses de source afin qu'une visualisation en perspective raisonnablement précise d'un polygone à représentation de texture sur une visualisation bidimensionnelle soit réalisée avec un calcul minimal. 2 Système de visualisation selon la reven- dication 1, caractérisé en ce que les valeurs de fonction de représentation Z sont des fonctions de deltas d'écran et un30 rapport Z. 3 Dispositif selon la revendication 1, carac- térisé en ce que les valeurs de delta et d'accélération sont déterminées d'après les formules: DD = ( 4 ( 8/(ZR+l)))/(DL 2) D = ( 1/DL) ((DL-1) DD/2) o ZR est le rapport des coordonnées Z de début et de fin de la ligne de destination et DL est le nombre d'échantillons dans la ligne de destination. 4 Système de visualisation selon la reven- dication 1, caractérisé en ce qu'il comporte en outre un moyen ( 20) à mémoire tampon d'image vidéo destiné à stocker lesdites adresses de destination et de source provenant du coprocesseur graphique pour les appliquer directement audit dispositif de visualisation à trame.10 5 Système de visualisation selon la reven- dication 1, caractérisé en ce qu'il comporte en outre un moyen ( 20) à mémoire tampon d'image vidéo destiné à stocker lesdites adresses de destination et de source pour ledit coprocesseur graphique et à générer des données d'indice de couleur, et comprenant en outre un moyen ( 20) à table de consultation de couleur destiné à stocker des valeurs de couleur et d'intensité et qui, en réponse auxdites données d'indice de couleur, fournit des valeurs de couleur et d'intensité audit dispositif de visualisation à trame. 6 Procédé destiné à être utilisé avec des jeux vidéo pour permettre une animation en temps réel de scènes de jeux vidéo avec des surfaces texturées pour la visualisation de polygones projetés tridimensionnels, à représentation de texture, sur un dispositif de visualisation bidimensionnelle25 ( 22) ayant un écran constitué d'éléments d'image ou pixels, le procédé étant caractérisé en ce qu'il consiste à traiter des données d'entrée provenant d'une mémoire centrale ( 24) et définissant une image globale afin qu'elle soit visualisée sous une forme tridimensionnelle sur le dispositif de visualisation bidimensionnelle, à déterminer des adresses de destination pour chaque pixel sur l'espace d'écran du dispositif de visualisation et à déterminer une adresse de source correspondante fournissant des données de texture de surface pour ladite image pour chaque adresse de destination, et à stocker des valeurs de fonctions de représentation Z dans une table à consultation ( 20) afin de produire des valeurs de delta et d'accélération dans un espace texturé qui peuvent être utilisées pour déterminer lesdites adresses de source, afin qu'une visualisation en perspective raison- nablement précise d'un polygone à représentation de texture sur un dispositif de visualisation bidimensionnelle soit réalisée avec un calcul minimal. 7 Procédé selon la revendication 6, caractérisé en ce que les valeurs de delta et d'accélération sont déterminées d'après les formules: DD = ( 4 ( 8/(ZR+ 1)))/(DL 2) D = ( 1/DL) ((DL-1) DD/2) o ZR est le rapport de coordonnées de fin et de début de la ligne de destination et DL est le nombre d'échantillons dans la ligne de destination.