FR2735253A1 - Synchronisation de donnees entre plusieurs dispositifs de restitution asynchrones de donnees - Google Patents

Synchronisation de donnees entre plusieurs dispositifs de restitution asynchrones de donnees Download PDF

Info

Publication number
FR2735253A1
FR2735253A1 FR9602741A FR9602741A FR2735253A1 FR 2735253 A1 FR2735253 A1 FR 2735253A1 FR 9602741 A FR9602741 A FR 9602741A FR 9602741 A FR9602741 A FR 9602741A FR 2735253 A1 FR2735253 A1 FR 2735253A1
Authority
FR
France
Prior art keywords
data
word
data word
pixel
words
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9602741A
Other languages
English (en)
Other versions
FR2735253B1 (fr
Inventor
Kyle R Berry
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of FR2735253A1 publication Critical patent/FR2735253A1/fr
Application granted granted Critical
Publication of FR2735253B1 publication Critical patent/FR2735253B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

L'invention concerne un synchroniseur (112, 200, 12-202, 203) de données qui synchronise, pour engendrer des ensembles synchronisés de mots de données des ensembles de mots de données dont chaque mot est restitué au synchroniseur de données par l'un des dispositifs de restitution (112, 12-202). Il comprend: une série de registres (203) de données qui reçoivent chacun des données d'un dispositif de restitution et mémorisent temporairement un mot de données inclus dans un premier ensemble de mots, et produisent chacun leur mot mémorisé sous la forme de l'un des mots d'un premier ensemble synchronisé de mots lors de la validation d'un signal de commande; et un dispositif de commande (200) qui empêche chaque dispositif de restitution de transférer à son registre un mot inclus dans un deuxième ensemble de mots lorsque le registre est en train de mémoriser son mot correspondant inclus dans le premier ensemble de mots, et qui valide le signal de commande lorsque chacun des registres (203) de données a reçu son mot inclus dans le premier ensemble de mots.

Description

La présente invention concerne de façon générale la restitution de données
en couleurs dans un système de graphiques pour ordinateurs et, plus particulièrement, un procédé et un appareil de synchronisation de données, sur une base par pixel, entre des dispositifs de restitution asynchrones de données. Des systèmes de graphiques d'ordinateurs sont utilisés communément pour afficher des représentations graphiques d'objet sur un écran d'affichage bidimensionnel. Les systèmes actuels de graphiques d'ordinateurs peuvent réaliser des représentations
hautement détaillées et sont utilisés dans diverses applications.
Dans des systèmes graphiques d'ordinateurs typiques, un objet à représenter sur l'écran d'affichage est divisé en une série de primitives de graphiques. Les primitives sont des composants de base d'une représentation de graphiques et elles peuvent inclure des points, des
lignes, des vecteurs et des polygones, par exemple des triangles.
Typiquement, un procédé de matériel/logiciel est mis en ceuvre pour restituer sur l'écran d'affichage bidimensionnel les primitives de graphiques qui représentent la vue d'un ou plusieurs objets qui sont
représentés sur l'écran.
Typiquement, les primitives qui définissent les objets tridimensionnels à restituer sont envoyées à partir d'un ordinateur
hôte qui définit chaque primitive en termes de données de primitives.
Par exemple, lorsque la primitive est un triangle, l'ordinateur hôte peut définir la primitive en termes des coordonnées x, y, z de ses
sommets ainsi que des valeurs de couleurs R, G, B, de chaque sommet.
Un équipement de restitution interpole les données de primitives afin de calculer les pixels de l'écran d'affichage qui sont mis en service pour
représenter chaque primitive, et les valeurs R, G, B de chaque pixel.
Les premiers systèmes de graphiques n'affichaient pas des images d'une manière suffisamment réaliste pour qu'elles puissent représenter ou modéliser des objets complexes à trois dimensions. Les images affichées par de tels systèmes présentent des surfaces extrêmement lisses sans aucune texture, surélévation, rayure, ombre et
autres détails superficiels qui sont présents dans l'objet modellisé.
Par conséquent, des procédés ont été développés pour afficher des images à détails superficiels améliorés. Une application de texture est l'un de ces procédés qui impliquent d'appliquer une image de source, que l'on appelle une texture, sur une surface d'un objet tridimensionnel, et à appliquer ensuite l'objet tridimensionnel texturé à l'écran bidimensionnel d'affichage de graphiques pour afficher l'image résultante. Des attributs de détails superficiels qui font communément l'objet d'une application de texture incluent une couleur, une réflexion spéculaire, une perturbation de vecteur, un aspect spéculaire, une transparence, des ombres, des irrégularités de
surface et des nuances.
Une application de texture implique d'appliquer un ou plusieurs éléments ponctuels, appelés des texels, d'une texture à chaque élément ponctuel, ou pixel, de la partie affichée de l'objet à laquelle la texture est en cours d'application. Le matériel d'application de texture reçoit classiquement des informations qui indiquent la manière dont les texels d'une application de texture correspondent aux pixels de l'écran d'affichage qui représentent l'objet. Chaque texel d'une application de texture est défini par des coordonnées S et T qui
identifient son emplacement dans l'application de texture bidimension-
nelle. Pour chaque pixel, l'application de texture accède au texel ou aux texels correspondants qui s'appliquent et ce texel ou ces texels sont incorporés dans les valeurs finales R, G, B engendrées pour le pixel
pour représenter l'objet texturé sur l'écran d'affichage.
Un marquage de profondeur est une autre technique qui permet de produire un affichage plus réaliste d'image. Pour un marquage de profondeur, la couleur d'un objet est mélangée progressivement avec la couleur d'arrière plan, qui est aussi appelée la couleur de marque de profondeur, en fonction de la distance entre l'objet affiché et le point d'observation représenté sur l'écran d'affichage. Un marquage de profondeur peut être utilisé, par exemple, pour simuler l'atténuation atmosphérique de l'intensité lumineuse. Ainsi, au fur et à mesure que des objets sont plus éloignés de l'observateur, ils apparaissent moins nets. Une couleur quelconque peut être utilisée comme couleur de marque de profondeur, mais c'est la couleur noire qui est la plus
fréquemment utilisée.
De même, un marquage de profondeur peut être appliqué à des polygones dont les couleurs sont interpolées, ou en d'autres termes nuancées, ainsi qu'à des polygones auxquels une texture est appliquée, en d'autres termes des polygones à application de texture. Pour un polygone à nuances et à application de texture appliquée, l'équipement de restitution interpole pour chaque pixel un facteur d'échelle de marquage de profondeur, en plus de l'interpolation qu'il exécute pour les valeurs de R, G, B pour chaque pixel. Les paramètres de couleurs des pixels sont ensuite mélangés avec les texels correspondants qui proviennent du matériel d'application de texture pour reproduire des valeurs intermédiaires de couleurs de pixels. En outre, la valeur de couleur intermédiaire, la valeur de couleur de marque de profondeur et le facteur d'échelle de marque de profondeur sont combinés sur une base de pixel par pixel pour produire les valeurs résultantes de
couleurs de pixels à afficher.
Mélanger des texels, les valeurs de couleurs engendrées par le matériel de restitution et des valeurs de couleurs de marquage de profondeur exige une correspondance biunivoque entre chaque valeur de couleur d'une manière telle que chacune des valeurs de couleurs et chacun des texels correspondent à un pixel commun. En d'autres termes, les valeurs sont appariées de façon appropriée avant que l'opération de mélange ne soit exécutée. Cependant, l'appareil d'application de texture, le convertisseur de balayage et le matériel de marquage de profondeur fonctionnent typiquement de façon indépendante et peuvent être tout à fait désynchronisés de plusieurs
dizaines ou même de plusieurs centaines de cycle d'horloge.
En outre, le problème de synchronisation est rendu plus critique parce que l'équipement d'application de texture ne restitue typiquement que des primitives de triangles alors que le matériel de restitution restitue des primitives de points, de vecteurs ou de polygones. Les primitives de vecteurs et de points peuvent être
intercalées entre des polygones restitués par le matériel de restitution.
Cependant, lorsque les primitives de vecteur et de points ne sont pas utilisées par le matériel de mélange, dans un exemple o une application de texture ou un marquage de profondeur de vecteurs et de points ne sont pas réalisables par le système de graphiques d'ordinateur, c'est un problème additionnel que de déterminer une correspondance biunivoque entre les texels, les valeurs de couleurs engendrées par le matériel de restitution et les valeurs de couleurs de
marquage de profondeur.
En outre aussi, le matériel de mélange doit pouvoir déterminer une correspondance biunivoque dans laquelle les texels, les valeurs de couleurs restituées par le matériel de restitution et les valeurs de marquage de profondeur peuvent arriver selon des séquences qui varient d'une primitive à l'autre ainsi qu'à l'intérieur d'une primitive. Par conséquent, pour les raisons précédentes, il faut synchroniser les données produites par les dispositifs de restitution asynchrones de données à l'intérieur du système de graphiques d'ordinateur. En particulier, il faut synchroniser les texels restitués par le matériel d'application de texture, les valeurs de couleurs restituées par le matériel de restitution et les valeurs de couleurs de marquage de
profondeur engendrées par le matériel de restituion.
C'est un but de la présente invention que de fournir un procédé et un appareil de synchronisation de mots de données produits par une
série de dispositfs de restitution asynchrones de données.
Selon un premier aspect de la présente invention, dont un mode de réalisation est exposé en détail à titre d'illustration, ce but est atteint par un synchroniseur de données qui synchronise des ensembles de mots de données pour engendrer des ensembles synchronisés de mots de données, chaque mot de données d'un ensemble de mots de données étant restitué au synchroniseur de données par un dispositif de restitution d'une série de dispositifs de restitution asynchrones de données, et qui est caractérisé en ce qu'il comprend: une série de registres de données, chaque registre de données recevant d'un dispositif de restitution correspondant d'une série de dispositifs de restitution asynchrones de données, et mémorisant temporairement, un mot de données inclus dans un premier ensemble de mots de données, chaque registre de données produisant son mot de données mémorisé sous la forme de l'un des mots d'un premier ensemble synchronisé de mots de données lors de l'affirmation d'un signal de commande; et un dispositif de commande qui empêche chaque dispositif de restitution asynchrone de données de transférer, à son registre correspondant de données, un mot de données inclus dans un deuxième ensemble de mots de données lorsque le registre de données est en train de mémoriser son mot correspondant de données inclus dans le premier ensemble de mots de données, et qui affirme le signal de commande lorsque chacun des registres de données a reçu son mot
de données inclus dans le premier ensemble de mots de données.
Selon cet agencement, plusieurs mots de données envoyés par plusieurs dispositifs de restitution asynchrones de données sont synchronisés en un ensemble synchronisé de mots de données. Le synchroniseur de données peut être utilisé dans un système de graphiques pour produire un ensemble synchronisé de mots de données, pour chaque pixel d'une primitive à afficher par le système de graphiques. En outre, si un mot de données, pour chaque pixel d'une primitive du système de graphiques, ne doit pas être mélangé, le mot de données est envoyé à un étage suivant dans un pipe-line de traitement du système de graphiques, sans vider le pipe-line de traitement. Le synchroniseur de données peut comprendre en outre une série de multiplexeurs, chacun des multiplexeurs de la série comportant une sortie couplée à une entrée d'un registre correspondant d'une série de registres de données, une première entrée couplée à une sortie d'un dispositif de restitution correspondant d'une série de dispositifs de restitution asynchrones de données et une deuxième entrée couplée à une sortie du registre correspondant de la
série de registres de données.
On peut alors prévoir que la première entrée d'un premier des multiplexeurs de la série et la première entrée d'un deuxième des multiplexeurs de la série sont couplées à la sortie d'un premier des dispositifs de restitution asynchrones de données de la série, un premier mot de données, envoyé par le premier des dispositifs de restitution de la série des asynchrones de données est reçu par le premier multiplexeur et mémorisé temporairement dans un premier registre de données en réponse à un premier cycle du signal d'horloge, et un deuxième mot de données, envoyé par le premier des dispositifs de restitution de la série des dispositifs de restitution asynchrones de données est reçu par le deuxième multiplexeur et mémorisé temporairement dans un deuxième registre de données en réponse à un deuxième cycle du signal d'horloge. Selon un deuxième aspect, l'invention réalise un système de graphiques qui comprend: une série de dispositifs de restitution asynchrones de données, chaque dispositif de restitution asynchrone de données envoyant un mot de données d'un ensemble de mots de données; un synchroniseur de données qui synchronise des ensembles de mots de données pour engendrer des ensembles synchronisés de mots de données, et qui est caractérisé en ce que le synchroniseur de données comprend: une série de registres de données, chaque registre de données recevant d'un dispositif de restitution correspondant de la série de dispositifs de restitution asynchrones de données, et mémorisant temporairement, un mot de données inclus dans un premier ensemble de mots de données, chaque registre de données envoyant son mot mémorisé de données en tant que l'un des mots d'un premier ensemble synchronisé de mots de données lors de l'affirmation d'un premier signal de commande; et un dispositif de commande qui empêche chaque dispositif de restitution asynchrone de données de transférer vers son registre correspondant de données un mot de données inclus dans un deuxième ensemble de mots de données lorsque le registre de données est en train de mémoriser son mot correspondant de données inclus dans le premier ensemble de mots de données, et qui affirme le signal de commande lorsque chacun des registres de données a reçu son mot de données inclus dans le premier ensemble de mots de données; et en ce que un premier dispositif de restitution de la série des dispositifs de restitution asynchrones est un générateur de pixels qui reçoit des paramètres de restitution, qui calcule des coordonnées x, y, z et des valeurs de couleurs à partir des paramètres de restitution pour chaque pixel d'une primitive, et qui envoie les coordonnées x, y, z et les valeurs de couleurs, en tant que son mot de données, à un registre
correspondant de la série des registres de données.
Dans ce système, un deuxième dispositif de restitution de la série des dispositifs de restitution asynchrones de données peut être un circuit d'application de texture qui reçoit les paramètres de restitution, qui calcule des valeurs de couleurs de texels à partir des paramètres de restitution pour chaque pixel d'une primitive de triangle, et qui envoie les valeurs de couleurs de texels, en tant que son mot de données, au
registre correspondant de la série des registres de données.
Dans ce cas, le générateur de pixels et le circuit d'application de texture peuvent inclure chacun un circuit identique de progression pas-àpas de bord qui calcule, à partir des paramètres de restitution, les valeurs de couleurs pour chaque pixel le long d'un bord de chaque primitive de triangle d'une manière telle que les valeurs de couleurs envoyées par le générateur de pixels et les valeurs de couleurs de texels produites par le circuit d'application de texture sont fournies dans le même ordre et/ou le générateur de pixels et le circuit d'application de texture peuvent inclure chacun un circuit identique de progression pas-à-pas de sécante qui calcule, à partir des paramètres de restitution, les valeurs de couleurs pour chaque pixel le long d'une sécante de chaque primitive de triangle d'une manière telle que les valeurs de couleurs envoyées par le générateur de pixels et les valeurs de couleurs de texels envoyées par le circuit d'application de texture sont envoyées dans un même ordre, et/ou le système peut comprendre en outre un circuit d'assemblage de texels, couplé entre le circuit d'application de texture et le synchroniseur de données, qui reçoit du circuit d'application de texture les valeurs de couleurs de texels, qui assemble en un mot unique de couleurs de texels les valeurs de couleurs de texels pour chacune des composantes suivantes: une composante rouge, une composante verte, une composante bleue et une composante alpha, et qui envoie en tant que son mot de données le mot unique de couleurs de texels au registre correspondant de la série des registres de données; une interface entre le circuit d'application de texture et le circuit d'assemblage de texels pouvant en particulier comprendre alors
onze lignes de signaux de données.
Selon un autre aspect, la présente invention fournit un procédé de synchronisation d'ensembles de mots de données pour engendrer des ensembles synchronisés de mots de données, chaque mot de données d'un ensemble de mots de données étant restitué par un dispositif de restitution d'une série de dispositifs de restitution asynchrones de données, caractérisé en ce que le procédé comprend les étapes consistant à: recevoir d'un premier dispositif de restitution asynchrone de données un premier mot de données, inclus dans un premier ensemble de mots de données; mémoriser temporairement le premier mot de données; attendre une réception d'un deuxième mot de données; recevoir le deuxième mot de données; et employer un ensemble synchronisé de mots de données qui
comprend le premier mot de données et le deuxième mot de données.
Selon ce procédé, plusieurs mots de données sont rassemblés en un ensemble synchronisé unique de mots de données. De plus, ce procédé peut être utilisé dans un système de graphiques pour produire un ensemble unique synchronisé de mots de données pour chaque pixel de chaque primitive à afficher par le système de graphiques. En outre, si un mot de données, pour chaque pixel d'une primitive du système de graphiques, ne doit pas être synchronisé, le mot de données est envoyé à un étage suivant dans un pipe-line de traitement du
système de graphiques, sans vider le pipe-line de traitement.
Le procédé peut comprendre en outre l'étape consistant à déterminer si le premier mot de données doit être mélangé avec le deuxième mot de données et, dans ce cas comprendre en outre l'étape consistant à fournir comme deuxième mot de données un mot de données par défaut lorsque le premier mot de données ne doit pas être mélangé avec le deuxième mot de données, et/ou l'étape consistant à empêcher le premier dispositif de restitution asynchrone de données d'envoyer un mot de données inclus dans un deuxième ensemble de mots de données jusqu'à ce que l'ensemble synchronisé
de mots de données ait été envoyé.
Le procédé selon la revendication peut comprendre en outre les étapes consistant à: mémoriser temporairement le deuxième mot de données; et
attendre une réception d'un troisième mot de données.
Selon un autre aspect, la présente invention fournit un procédé à mettre en oeuvre dans un système de graphiques qui inclut une série de dispositifs de restitution asynchrones de données, dans laquelle l'un des dispositifs de restitution de la série des dispositifs de restitution asynchrones de données est un générateur de pixels qui restitueun mot de données pour chaque pixel d'une primitive, et un autre dispositif de restitution de la série des dispositifs de restitution asynchrones de données est un circuit d'application de texture qui restitue un mot de données pour chaque pixel d'une primitive de triangle, le procédé étant destiné à synchroniser des ensembles de mots de données pour engendrer des ensembles synchronisés de mots de données, chaque mot de données d'un ensemble de mots de données étant restitué par un dispositif de la série des dispositifs de restitution asynchrones de données, et étant caractérisé en ce qu'il comprend les étapes consistant à: recevoir, soit du générateur de pixels, soit du circuit d'application de texture, un premier mot de données inclus dans un premier ensemble de mots de données; mémoriser temporairement le premier mot de données attendre la réception d'un deuxième mot de données recevoir le deuxième mot de données; et envoyer un ensemble synchronisé de mots de données qui
inclut le premier mot de données et le deuxième mot de données.
Le procédé comprend de préférence l'étape consistant à: déterminer si le premier mot de données doit être mélangé avec le deuxième mot de données dans un mode de mélange diffus seulement, un mode de mélange diffus et spéculaire, un mode de mélange diffus et à application de texture, et un mode de mélange
diffus, spéculaire et à application de texture.
Dans ce cas, l'étape d'attente du premier mot de données peut, lorsque le premier mot de données doit être mélangé avec le deuxième mot de données, inclure l'étape consistant à attendre la réception du deuxième mot de données à partir, soit du générateur de pixels, soit du circuit d'application de texture, et/ou Lorsque le procédé inclut l'étape préférée citée plus haut, il peut comprendre en outre l'étape consistant à: envoyer comme deuxième mot de données un mot de données par défaut lorsque le premier mot de données ne doit pas être mélangé avec le deuxième mot de données et, en outre il peut éventuellement comprendre en outre l'étape consistant à: empêcher soit le générateur de pixels, soit le circuit d'application de texture d'envoyer un mot de données inclus dans un deuxième ensemble de mots de données avant que l'ensemble
synchronisé de mots de données ait été envoyé.
Lorsque le procédé inclut l'étape préférée citée plus haut, l'étape consistant à déterminer si le premier mot de données doit être mélangé peut inclure l'étape consistant à: déterminer si le premier mot de données, restitué par le générateur de pixels, correspond à un pixel, soit d'une primitive de point, soit d'une primitive de vecteur, soit d'une primitive de triangle dans le mode de mélange diffus seulement et/ou, de façon avantageuse, l'étape consistant à: déterminer si le premier mot de données correspond à un pixel d'une primitive d'un triangle, soit dans un mode de mélange diffus et spéculaire, soit dans un mode de mélange diffus et à application de texture Dans ce dernier cas lorsque le premier mot de données est un mot de données de couleurs diffus restitué par le générateur de pixels dans le mode de mélange diffus et spéculaire: l'étape de mémorisation du premier mot de données peut inclure une mémorisation du mot de données de couleurs diffus; l'étape d'attente de deuxième mot de données incluant l'attente d'une réception d'un mot de données de couleurs spéculaire à partir du
générateur de pixels.
Dans le cas o le précédé offre la modalité avantageuse décrite plus haut, lorsque le premier mot de données est dans le mode de mélange diffus et à application de texture, on peut prévoir que l'étape de réception du premier mot de données peut inclure de recevoir soit d'un mot de données de couleurs de texels à partir du circuit d'application de texture, soit un mot de données de couleurs diffus à partir du générateur de pixels, et tant le mot de données de couleurs de texels que le mot de données de couleurs diffus, à l'intérieur d'un cycle unique de signal d'horloge, à partir du circuit d'application de texture et du générateur de pixels, respectivement; l'étape consistant à mémoriser le premier mot de données inclut de mémoriser, soit le mot de données de couleurs de texels, soit le mot de données de couleurs diffuses, soit tant le mot de données de couleurs de texels que le mot de données de couleurs diffuses; l'étape consistant à attendre une réception du deuxième mot de données inclut, lorsque, soit le mot de données de couleurs de texels, soit le mot de données de couleurs diffus est reçu, l'attente d'une réception soit du mot de données de couleurs diffus, soit du mot de données de couleurs de texels, respectivement; et l'étape d'envoi inclut l'envoi de l'ensemble synchronisé de mots de données qui inclut le mot de données de texels de couleurs et
le mot de données de couleurs diffuses.
Le procédé peut comprendre les étapes consistant à mémoriser le deuxième mot de données; et
attendre une réception d'un troisième mot de données.
Dans ce cas, l'étape consistant à déterminer si le premier mot de données doit être mélangé peut inclure l'étape consistant à: déterminer si le premier mot de données correspond à un pixel d'une primitive de triangle dans le mode de mélange diffus, spéculaire et à application de texture Selon un quatrième aspect, l'invention réalise un système de graphiques qui comprend une série de dispositifs de restitution asynchrones de données, chaque dispositif de restitution asynchrone de données envoyant un mot de données d'un ensemble de mots de données; un synchroniseur de données qui synchronise des ensembles de mots de données pour engendrer des ensembles synchronisés de mots de données, et qui est caractérisé en ce que le synchroniseur de données comprend: une série de registres de données, chaque registre de données recevant d'un dispositif de restitution correspondant de la série de dispositifs de restitution asynchrones de données, et mémorisant temporairement, un mot de données inclus dans un premier ensemble de mots de données, chaque registre de données envoyant son mot mémorisé de données en tant que l'un des mots d'un premier ensemble synchronisé de mots de données; et un moyen de commande pour empêcher chaque dispositif de restitution de la série des dispositifs de restitution asynchrones de données de transférer vers son registre correspondant de données un mot de données inclus dans un deuxième ensemble de mots de données lorsque le registre de données est en train de mémoriser son mot correspondant de données inclus dans le premier ensemble de mots de données, et pour envoyer le premier ensemble synchronisé de mots de données lorsque chacun des registres de la série de registres de données a reçu son mot de données inclus dans le premier ensemble
de mots de données.
Le moyen de commande comprend en outre de préférence un moyen destiné à déterminer si un premier mot de données d'un premier dispositif de restitution asynchrone de données doit être mélangé avec un deuxième mot de données provenant d'un deuxième dispositif de restitution asynchrone de données dans l'un des modes suivants: un mode de mélange diffus seulement, un mode de mélange diffus et spéculaire, un mode de mélange diffus et à application de texture et un mode de mélange diffus, spéculaire et à
application de texture.
Dans ce cas, le moyen de commande peut comprendre en outre un moyen destiné à fournir comme deuxième mot de données un mot de données par défaut à un registre de données correspondant lorsque le moyen de détermination détermine que le premier mot de données ne doit pas être mélangé avec le deuxième mot de données, et/ou le moyen de détermination peut inclure en outre un moyen destiné à déterminer si le premier mot de données correspond à un pixel, soit d'une primitive de point, soit d'une primitive de vecteur, soit d'une primitive de triangle dans le mode de mélange diffus seulement, et/ou un moyen destiné à déterminer si le premier mot de données correspond à un pixel d'une primitive de triangle, soit dans le mode de mélange diffus et spéculaire, soit ou le mode de mélange diffus et à application de texture, et/ou un moyen destiné à déterminer si le premier mot de données correspond à un pixel d'une primitive de triangle dans le mode de
mélange diffus, spéculaire et à application de texture.
Dans le système, un premier dispositif de restitution asynchrone de données de la série des dispositifs de restitution asynchrones de données peut comprendre un moyen générateur de pixels pour recevoir des paramètres de restitution, pour calculer des coordonnées x, y, z et des valeurs de couleurs, pour chaque pixel d'une primitive à partir des paramètres de restitution, et pour envoyer en tant que le mot de données les coordonnées x, y, z et les valeurs de couleurs au registre correspondant de données dela série des registres de données et, dans ce cas, un deuxième dispositif de restitution asynchrone de données de la série de dispositifs de restitution asynchrones de données peut comprendre un moyen générateur de texels pour recevoir les paramètres de restitution, pour calculer des valeurs de couleurs de texels pour chaque pixel d'une primitive de triangle à partir des paramètres de restitution, et pour envoyer en tant que le mot de données les valeurs de couleurs de texels au registre correspondant de
données de la série de registres de données.
Lorsque tel est le cas, tant le moyen générateur de pixels que le moyen générateur de texels peuvent inclure un moyen identique de progression pas-à-pas de bord pour calculer les valeurs de couleurs pour chaque pixel le long d'un bord d'une primitive de triangle, et pour produire les valeurs de couleurs dans un même ordre, et/ou tant le moyen générateur de pixels que le moyen générateur de texels incluent un moyen identique de progression pas-à-pas de sécante pour calculer les valeurs de couleurs pour chaque pixel le long d'une sécante de la primitive du triangle et pour envoyer les valeurs de couleurs dans un même ordre, et/ou le système peut comprendre un moyen d'assemblage de texels, disposé entre le moyen générateur de texels et le registre correspondant de données, pour recevoir les valeurs de couleurs de texels, pour assembler en un mot unique de données de couleurs de texels les valeurs de couleurs de texels pour chacune des composantes suivantes: une composante rouge, une composante verte, une composante bleu et une composante a, et pour envoyer au registre correspondant de données le mot de données unique de couleurs de texels. Les buts, particularités et avantages de la présente invention,
ainsi que d'autres, seront mieux compris à la lecture de la description
qui suit d'un mode de réalisation préféré et en se référant aux dessins annexés dans lesquels: la Figure 1 est un schéma fonctionnel d'un premier mode de réalisation du système d'ensemble de graphiques d'ordinateurs selon la présente invention; la Figure 2 est un schéma fonctionnel d'un autre mode de réalisation du système d'ensemble de graphiques d'ordinateurs selon la présente invention; la Figure 3 est un schéma fonctionnel d'un convertisseur de balayage qui incorpore une synchronisation de données par pixel selon la présente invention; la Figure 4 est un schéma fonctionnel d'un générateur de pixels qui fait partie du convertisseur de balayage représenté à la Figure 3; la Figure 5 est un schéma fonctionnel représentatif de chaque interpolateur de paramètres représenté à la Figure 4; la Figure 6 est une illustration du processus de restitution d'un triangle selon l'invention; la Figure 7 est un schéma fonctionnel d'une interface entre un synchroniseur de données, une carte d'application de texture et un générateur de pixels, selon la présente invention; la Figure 8 est un schéma fonctionnel du synchroniseur de données de la Figure 7; et les Figures 9a à 9e illustrent un procédé, conforme à la présente invention, de commande du synchroniseur de données représenté à la Figure 7. On décrira d'abord, en se référant à la Figure 1 qui en est un schéma fonctionnel, un premier mode de réalisation d'un système de graphiques selon la présente invention qui inclut un équipement d'application de texture pourvu d'une mémoire de cache pour mémoriser localement des données de texture. Il faut comprendre que l'implantation représentée à titre d'illustration ne constitue qu'un exemple en ce qui concerne le nombre de cartes et de microplaquettes, la manière dont elles sont réparties, les largeurs de bus et les vitesses de transférer de données. De nombreuses autres implantations peuvent
être employées.
Comme représenté, le système inclut une carte 10 d'entrée de données, une carte 12 d'application de texture et une carte 14 de
tampon de trame.
La carte d'entrée de données communique avec un ordinateur hôte 15 par l'intermédiaire d'un bus 16 à 52 bits. La carte d'entrée de données reçoit de l'ordinateur hôte, par le bus 16, des primitives à restituer. Les primitives sont spécifiées par des données de coordonnées vectorielles x, y, z, des données de couleurs R, G, B et des coordonnées de texture S, T, qui concernent toutes des parties des primitives, par exemple les sommets lorsque la primitive est un triangle. Des données qui représentent des primitives en trois dimensions sont ensuite envoyées par la carte 10 d'entrée de données à la carte 12 d'application de texture et à la carte 14 de tampon de trame
par l'intermédiaire d'un bus 18 à 85 bits.
La carte 12 d'application de texture interpole les données de primitives reçues afin de calculer les pixels d'affichage sur l'écran qui représenteront la primitive et elle détermine des données résultantes de texture correspondantes pour chaque pixel de primitive. Les données résultantes de texture sont envoyées à la carte de tampon de trame par l'intermédiaire de cinq bus 28 à 55 bis, qui sont représentés à
la Figure 2 sous la forme d'un bus unique pour la clarté de la figure.
La carte 14 de tampon de trame interpole aussi les données de primitives reçues de la carte 10 d'entrée de données afin de calculer les pixels de l'écran d'affichage qui représenteront chaque primitive, et de déterminer des valeurs de couleurs d'objet pour chaque pixel. La carte de tampon de trame combine ensuite, sur une base de pixel par pixel, les valeurs de couleurs d'objet avec les données résultantes de texture fournies par la carte d'application de texture pour engendrer, pour chaque pixel, des valeurs résultantes R, G, B d'image. Les signaux de commande de couleur R;, G, B de chaque pixel sont respectivement envoyés par des lignes R, G, B désignées par 29 pour commander les pixels de l'écran d'affichage, qui n'est pas représenté à la figure, de manière à afficher sur l'écran d'affichage une image résultante qui
représente la primitive à application de texture.
La carte 10 d'entrée de données, la carte 12 d'application de texture et la carte 14 de tampon de trame sont chacune structurées en pipe-line et chacune fonctionne simultanément sur les primitives multiples. Tandis que les cartes d'application de texture et de tampon de trame fonctionnent sur des primitives envoyées précédemment par la carte d'entrée de données, la carte d'entrée de données continue à traiter et envoyer de nouvelles primitives jusqu'à ce que les pipe-lines
des cartes 12 et 14 soient remplis.
La carte 10 d'entrée de données inclut une microplaquette distributrice 30, trois microplaquettes accélératrices 32A, 32B et 32C de géométrie tridimensionnelle ou 3-D, une microplaquette accélératrice 34 de géométrie bidimensionnelle, ou 2-D, et une microplaquette de concentrateur 36. La microplaquette distributrice 30 reçoit de l'ordinateur hôte par le bus 16 les coordonnées X, Y, Z et les données de primitives de couleurs et elle distribue de façon uniforme des données de primitives tridimensionnelles parmi les microplaquettes accélératrices 32A, 32B et 32C de géométrie tridimensionnelle. De cette manière, la largeur de bande du système est accrue, parce que trois groupes de primitives sont traités simultanément. Des données sont envoyées, par le bus 38A à 40 bits, vers les microplaquettes accélératrices 32A et 32B à géométrie tridimensionnelle et, par le bus 38B à 40 bits, vers la microplaquette 32C. Les deux bus 38A et 38B transfèrent des données à une fréquence de 60 MHz et offrent une largeur de bande suffisante pour supporter deux microplaquettes accélératrices de géométrie tridimensionnelle. Des données de primitives bidimensionnelles sont envoyées par un bus 40 à 44 bits à une fréquence de 40 MHz vers la microplaquette accélératrice 34 de géométrie bidimensionnelle.
Chaque microplaquette accélératrice de géométrie tri-
dimensionnelle transforme en coordonnées correspondantes d'espace d'écran les coordonnées x, y, z qui définissent les primitives reçues, détermine des valeurs R; G, B d'objet et des valeurs S, T de texture pour les coordonnées de l'espace d'écran, décompose des quadrilatères primitifs en triangles, et calcule une équation de plane de triangle pour définir chaque triangle. Chaque microplaquette accélératrice de géométrie tridimensionnelle exécute aussi des opérations de coupe de vue pour assurer sur l'écran un affichage exact de l'image résultante lorsque des fenêtre multiples sont affichées, ou lorsqu'une partie d'une primitive s'étend au-delà du volume visuel représenté sur l'écran d'affichage. Des données de sortie des trois microplaquettes accélératrices 32A et 32B, et 32C de géométrie tridimensionnelle sont respectivement envoyées par les bus 42A et 42B à 44 bits vers la
microplaquette de concentrateur 36 à une fréquence de 60 MHz.
La microplaquette accélératrice 34 de géométrie bi-
dimensionnelle envoie aussi des données de sortie à la microplaquette
de concentrateur 36 par un bus 44 à 46 bits à une fréquence de 45 MHz.
La microplaquette de concentrateur 36 combine les données de sorties de primitives tridimensionnelles reçues des microplaquettes accélératrices 32A à 32C de géométrie tridimensionnelle, réordonne les primitives dans leur ordre d'origine, c'est-à-dire celui qu'elles avaient avant la distribution par la microplaquette distributrice 30, et envoie les données combinées de sortie de primitives par le bus 16 vers les
cartes d'application de texture et de tampon de trame.
La carte 12 d'application de texture inclut une microplaquette 46 d'application de texture et une mémoire locale 48 qui est de préférence agencée sous la forme d'une mémoire de cache. Selon un mode de réalisation préféré de la présente invention, la mémoire locale est formée, pour des raisons exposées plus loin, d'une série de microplaquettes de mémoires dynamiques synchrones à accès direct, ou SDRAM. Comme décrit de façon plus détaillée dans ce qui suit, la mémoire de cache 48 mémorise des données d'application MIP de texture associées aux primitives qui sont restituées dans la carte de tampon de trame. Les données d'application MIP de texture sont téléchargées depuis une mémoire principale 17 de l'ordinateur hôte 15, par le bus 40, à travers la microplaquette accélératrice 34 de géométrie
bidimensionnelle et par le bus 24 à 24 bits.
La microplaquette 46 d'application de texture reçoit successivement, par le bus 18, des données de primitives qui représentent les primitives à restituer sur l'écran d'affichage. Comme décrit ci-dessus, les primitives envoyées par les microplaquettes accélératrices 32A à 32C de géométrie tridimensionnelle incluent des points, des lignes et des triangles. La carte d'application de texture n'effectue aucune application de texture de point ni de ligne et elle ne traite que des primitives de triangle. Les données qui représentent les primitives de triangles incluent les coordonnées de pixels d'objet x, y, z pour au moins un sommet, les valeurs de couleurs R, G, B d'objet d'au moins un sommet, les coordonnés S, T des parties de l'application de texture qui correspondent à ce sommet au moins unique, et l'équation du plan du triangle. La microplaquette 46 d'application de texture ignore la coordonnée z de pixel d'objet et les valeurs de couleurs R, G, B d'objet. La microplaquette 46 interpole les coordonnées des pixels x, y et interpole des coordonnées S et T qui correspondent sur l'écran à chaque pixel d'affichage x, y qui représente la primitive. Pour chaque pixel, la microplaquette d'application de texture accède à partir de la mémoire de cache à la partie de l'application MIP de texture qui y correspond et calcule pour le pixel les données résultantes de texture
qui peuvent inclure une moyenne pondérée de multiples texels.
Selon un premier mode de réalisation à titre d'exemple, la
mémoire de cache mémorise soixante-quatre blocs de 256 x 256 texels.
À la différence de la mémoire locale employée dans le matériel d'application de texture des systèmes de l'art antérieur, la mémoire de cache selon la présente invention ne peut pas mémoriser la série entière des applications MIP de la texture qui applique à la primitive
qui est en train d'être restituée, par exemple pour de grandes textures.
Bien plutôt, la mémoire de cache ne mémorise à un instant quelconque que les parties particulières de la série des applications MIP effectivement utilisées pour la restitution actuel de la primitive. Par conséquent, pour la majeure partie des applications, seule une partie des données complètes de texture de l'image qui est en train d'être restituée est mémorisée dans la mémoire de cache à un instant quelconque. La série complète des application MIP pour chaque texture est agencée et mémorisée dans la mémoire principale 17 de l'ordinateur hôte 15. Pour chaque pixel de la primitive qui est en train d'être restituée, la microplaquette 46 d'application de texture accède à un répertoire de la mémoire de cache 48 pour déterminer si le texel ou les texels correspondants des applications MIP de texture sont actuellement présents dans le cache. Si les texels correspondants sont mémorisés dans la mémoire de cache à l'instant de l'accès, il s'agit de ce que l'on appelle une réussite de cache, c'est-à-dire que l'accès est réussi, et les texels sont lus dans le cache et traités par la microplaquette 46 d'application de texture pour calculer les données résultantes de
texture qui sont envoyées à la carte de tampon de trame.
En revanche, si les texels correspondants pour le texel de primitive ne sont pas mémorisés dans la mémoire de cache lors d'un accès par la microplaquette 46 d'application de texture, il se produit un
échec de cache, c'est-à-dire que la tentative d'accès est un échec.
Lorsqu'un échec de cache se produit, la partie des données d'application MIP de texture nécessaire pour la restitution de la primitive est téléchargée de la mémoire principale 17 de l'ordinateur hôte 15 vers la mémoire de cache 48, en remplaçant éventuellement
certaines données qui y étaient précédemment mémorisées.
Cependant, à la différence des systèmes classiques d'application de texture qui téléchargent la série entière des applications MIP pour une primitive quelconque qui est en cours de restitution, la présente invention ne télécharge que la partie de la série des applications MIP réellement nécessaires pour la restitution actuel de la primitive ou pour la partie actuellement en cours de restitution de celle-ci. Lors d'un échec de cache, un signal de commande d'interruption est engendré par la microplaquette 46 d'application de texture pour lancer un gestionnaire d'interruption de texture dans l'ordinateur hôte 15. Le signal de commande d'interruption est envoyé par une ligne 94 vers la microplaquette distributrice 30, qui envoie elle-même à l'ordinateur
hôte un signal d'interruption par la ligne 95.
Les données demandées de texture sont restituées par l'ordinateur hôte à partir de sa mémoire principale et sont téléchargées dans la carte 48 d'application de texture par le bus 24, en contournant le pipe- line de restitution de primitive à trois dimensions par la carte
d'entrée de données et la microplaquette d'application de texture.
Ainsi, lors d'une interruption due à un échec de cache, la carte d'entrée de données peut continuer à fonctionner sur des primitives à trois dimensions et envoyer des données de primitives de sortie par le bus 18 à la microplaquette d'application de texture et à la carte de tampon de trame, tandis que les données de texture associées à une primitive qui ont provoqué l'échec de cache sont en cours de téléchargement depuis la mémoire principale 17. À la différence des systèmes classiques d'application de texture, télécharger des textures de données vers le matériel d'application de texture n'exige pas de vider le pipe-line de primitives à trois dimensions, ce qui augmente la largeur
de bande et la performance du système.
Les données résultantes de texture de chaque pixel sont envoyées par chaque microplaquette 46 d'application de texture à la carte de tampon de trame par cinq bus 28. Les cinq bus 28 sont respectivement couplés aux cinq microplaquettes 50A, 50B, 50C, 50D et E de dispositif de commande de tampon de trame disposées sur la carte de tampon de trame, et ils amènent en parallèle les données résultantes de texture aux microplaquettes des dispositifs de commande du tampon de trame. Les microplaquettes 50A à 50E du dispositif de commande de tampon de trame sont respectivement couplées à des groupes de microplaquettes 51A à 51E de mémoires vives vidéo, ou VRAM. Comme décrit ci-dessus, le bus 28 à 55 bits est divisé en 11 bits pour chaque microplaquette 50A à 5E de dispositif de commande de tampon de trame. Par conséquent, selon la présente invention, il suffit de onze lignes de signaux pour transférer des données de texels entre la carte 12 d'application de texture et chaque microplaquette de tampon de trame. En outre, selon la présente invention, aucune étiquette ou information d'identification n'est envoyée entre la carte 12 d'application de texture et la microplaquette respective de tampon de trame pour identifier le pixel auquel la
donnée de texture correspond.
La carte de tampon de trame inclut en outre quatre microplaquettes 52A, 52B, 52C, 52D de format vidéo, et un convertisseur numérique à analogique de mémoire vive, ou RAMDAC, 54. Les microplaquettes respectives de dispositif de commande de tampon de trame contrôlent des segments différents de l'écran d'affichage qui ne se recouvrent pas. Chaque microplaquette de dispositif de commande de tampon de trame reçoit des données de primitives à partir de la carte d'entrée de données par le bus 18, et des données résultantes d'application de texture à partir de la carte d'application de texture par le bus 28. Les microplaquettes de dispositif de commande de tampon de trame interpolent les données des primitives pour calculer dans leurs segments respectifs les coordonnées de pixels d'affichage de l'écran qui représentent la primitive, et les valeurs de couleurs correspondantes R, G, B d'objet pour chaque coordonnée de pixel. Pour les primitives pour lesquelles des données de texture résultantes sont envoyées par la carte d'application de texture, c'est-à-dire pour les primitives de triangles, les microplaquettes de dispositif de commande de tampon de trame combinent, sur une base de pixel par pixel, les valeurs de couleurs d'objet et les données résultantes de texture pour engendrer des valeurs finales R, G, B pour chaque pixel à afficher sur l'écran d'affichage. Un mode de mélange qui définit la manière dont les valeurs d'objets et de couleurs de texture sont combinées est commandé par un mot de commande de mode de restitution qui est
envoyé par la carte 10 d'entrée de données en passant par le bus 18.
La manière dont les valeurs de couleurs d'objet de texture sont
combinées peut être commandée de nombreuses manières différentes.
Par exemple, dans un mode de remplacement, les valeurs de couleurs d'objet peuvent être simplement remplacées par des valeurs de couleurs de texture, de sorte que les valeurs de couleurs de texture sont seules utilisées pour restituer le pixel. En variante, dans un mode de modulation, les valeurs de couleurs d'objet et de texture peuvent être multipliées l'une par l'autre pour engendrer les valeurs finales R, G, B pour le pixel. En outre, il est possible de mémoriser pour chaque texel, un mot de commande de couleur qui spécifie un rapport définissant la manière dont les valeurs correspondantes de couleurs de texture doivent être combinées avec les valeurs de couleur d'objet. Un mot de commande résultant de couleur peut être déterminé pour les données résultantes de texels correspondant à chaque pixel et être envoyé par le bus 28 aux microplaquettes de dispositif de commande de tampon de trame de façon que les microplaquette de dispositif de commande puissent utiliser le rapport spécifié par le mot résultant de commande correspondant pour déterminer, pour chaque pixel, des valeurs finales
R, G, B.
Les données vidéo résultantes d'image engendrées par les microplaquettes 50A à 50E du dispositif de commande de tampon de trame, y compris les valeurs R, G, B pour chaque pixel, sont mémorisées dans les microplaquettes correspondantes 51A à 51E de mémoires vives vidéo. Chaque groupe de microplaquettes 51A à 51E de mémoire vive vidéo inclut huit microplaquettes de mémoire vive vidéo de sorte que quarante microplaquettes de mémoire vive vidéo se trouvent sur la carte de tampon de trame. Chacune des microplaquettes 52A à 52D de format vidéo est connectée à un ensemble différent de dix microplaquettes de mémoires vives vidéo, et reçoit des données de cet ensemble. Les données vidéo sont décalées sériellement hors des microplaquettes de mémoires vives vidéo et sont respectivement amenées par des bus 58A, 58B, 58C et 58D à 64 bits aux quatre microplaquettes 52A, 52B, 52C et 52D de format vidéo à une fréquence de 27 MHz. Les microplaquettes de format vidéo formatent les données vidéo de façon qu'elles puissent être traitées par le RAMDAC et envoient au RAMDAC 54 par des bus 60A, 60B, 60C et D à 32 bits les données formatées à une fréquence de 33 MHz. Le RAMDAC 54 convertit lui-même les données numériques de couleurs en signaux analogiques de commande de couleurs R, G, B et envoie les signaux de commande R, G, B de chaque pixel par les lignes 29 R, G, B à
un écran d'affichage non représenté à la Figure.
Selon un mode de réalisation de l'invention, une réplique du matériel de la carte 12 d'application de texture et de la carte 14 de tampon de trame est agencée de sorte que certaines tâches de restitution de primitives peuvent être exécutées sur des primitives
multiples en parallèle, ce qui augmente la largeur de bande du système.
Un exemple d'un tel mode de réalisation en alternance de la présente invention est représenté à la Figure 4, qui est un schéma fonctionnel du système de graphiques d'ordinateurs selon la présente invention qui inclut des répliques de certains matériels. Le système de la Figure 2 inclut quatre microplaquettes accélératrices 32A, 32B, 32C, 32D de géométrie tridimensionnelle, deux microplaquettes 46A et 46B d'application de texture associées respectivement à des mémoires de cache 48A et 48B et dix microplaquettes 50A à 50J de tampons de trame à chacune desquelles est associé un groupe de microplaquettes de mémoires vives vidéo. Le fonctionnement du système de la Figure 2 est semblable à celui du système de la Figure 1 décrit ci-dessus. La réplique du matériel selon le mode de réalisation de la Figure 2 permet une largeur de bande accrue du système parce que certaines opérations de restitution de primitive peuvent être exécutées en parallèle sur des
primitives multiples.
Dans le système de graphiques de la présente invention est également agencé un marquage de profondeur par pixel qui sera décrit ici en se référant à la Figure 3. Une partie gauche de la Figure 3, appelée "accélérateur de géométrie", représente un circuit des microplaquettes accélératrices 32A, 32B et 32C de géométrie à trois dimensions de la Figure 1. La partie droite de la Figure 3 appelée "convertisseur de balayage" représente le circuit des microplaquettes 50A, 50B, 50C, 50D et
50E des dispositifs de commande de tampons de trame de la Figure 1.
Bien que le système de graphiques, en particulier le convertisseur de balayage, décompose des objets à afficher en triangles, vecteurs et
points, un marquage de profondeur n'est appliqué qu'à des triangles.
Une unité 10 de calcul de bord incluse dans l'accélérateur de géométrie reçoit des paramètres de sommets, envoyés par l'ordinateur hôte. Pour chaque sommet, les paramètres du sommet peuvent inclure des coordonnées spatiales x, y et z, des coordonnées normales Nx, Ny et Nz qui indiquent un vecteur unitaire perpendiculaire à la surface au sommet, des valeurs de couleurs, R, G, B et a et des coordonnées S et T d'application de texture. La valeur de couleur a représente une opacité de l'objet; lorsqu'un mélange d'arrière plan est utilisé et validé, la valeur a détermine la quantité de l'arrière plan qui est utilisée et la quantité de la couleur de primitive qui est utilisée. L'unité de calcul
de bord reçoit aussi des paramètres de marque de profondeur.
En général, l'unité de calcul de bord calcule tous les paramètres exigés par le convertisseur de balayage. Par exemple, pour des primitives de triangles, certains des paramètres calculés incluent les valeurs de couleurs de début R, G, B et a et des dérivées partielles de chaque paramètre de couleur par rapport à X et par rapport à un bord El, du triangle, comme représenté à la Figure 6, une dimension la plus grande étant en Y. Cet ensemble de paramètres calculés est souvent appelé les équations du plan du triangle. De plus, pour la primitive du triangle, l'unité 70 de calcul de bord envoie des paramètres de restitution de marquage de profondeur au convertisseur de balayage, y compris une valeur de facteur d'échelle de marque de profondeur pour un sommet supérieur V0, selon la représentation de la Figure 6, du triangle et des dérivées partielles, par rapport à X et au bord El, du
facteur d'échelle de marque de profondeur.
Le convertisseur de balayage inclut un générateur 112 de pixels qui interpole indépendamment chacun des paramètres de restitution afin de calculer les coordonnées x, y et z et des valeurs de couleurs pour chaque pixel de la primitive. Les couleurs par pixel incluent des valeurs de couleurs diffuses R, G, B et a et peuvent inclure des valeurs de couleurs spéculaires Rs, Gs, et Bs. De plus, le générateur 112 de pixels calcule un facteur d'échelle de marque de profondeur sur une base par pixel, pour chaque primitive de triangle. Les valeurs par pixel calculées par le générateur 112 de pixels sont envoyées à une unité 114 de mélange de texture. Comme décrit plus haut, l'unité 114 de mélange de texture reçoit aussi des texels de la microplaquette 46 d'application de texture, comme représenté à la Figure 1, par le bus 28 à 11 bits qui correspond à la microplaquette respective 50A à 50E de tampon de trame. Les texels incluent, pour chaque pixel, des valeurs Rt, Gt, Bt et at
de couleurs de texture.
Comme décrit plus haut, des valeurs de couleurs de texture par pixel, des valeurs de couleurs diffuses et des valeurs de couleurs spéculaires doivent être combinées par l'unité 114 de mélange de texture pour chaque pixel, inclus dans l'écran d'affichage, qui représente la primitive. Cependant, comme décrit ci-dessus, un problème est posé par le fait que la carte 112 d'application de texture et le convertisseur de balayage fonctionnent indépendamment des primitives restituées par la carte 10 d'entrée de données. Ainsi, les données restituées par la carte d'application de texture et par le convertisseur de balayage ne sont pas synchronisées puisque ces parties du système de graphiques fonctionnent de façon asynchrone. De plus, la carte 12 d'application de texture ne restitue des valeurs de couleurs de texture que pour des primitives de triangle. En revanche, le convertisseur de balayage restitue des valeurs diffuses de couleurs et peut restituer des valeurs spéculaires de couleurs pour des primitives de triangles. Ainsi, les données restituées par leconvertisseur de balayage incluent des données de vecteurs et de points intercalées avec
des données de triangles. Puisqu'il faut une correspondance bi-
univoque pour chaque pixel entre les valeurs de couleurs de texels, les valeurs de couleurs diffuses et les valeurs de couleurs spéculaires, l'unité de mélange 114 de texture synchronise ces valeurs pour chaque pixel d'une primitive de triangle. Comme décrit de façon détaillée cidessous, l'unité 114 de mélange de texture inclut un dispositif de commande 200 de synchronisation de données pour synchroniser, sur une base de pixel par pixel, les valeurs de couleurs de texels, les valeurs de couleurs diffuses et les valeurs de couleurs spéculaires pour des
primitives de triangle.
Dès lors que les valeurs de couleurs diffuses et spéculaires par pixels et les texels sont synchronisés, ils sont combinés en fonction d'un algorithme de mélange sélectionné au préalable de manière à produire des valeurs de couleurs résultantes. Les valeurs de couleurs résultantes sont envoyées à une unité 116 de mélange de marque de profondeur. Le facteur d'échelle de marque de profondeur du pixel, engendré par le générateur 112 de pixels, n'est pas utilisé par l'unité 114 de mélange de texture mais est envoyé à travers l'unité 114 de mélange de texture vers l'unité 116 de mélange de marque de profondeur, pour assurer que les données en pipe-line restent synchronisées. L'unité 116 de mélange de marque de profondeur combine, pour chaque pixel, le facteur d'échelle de marque de profondeur et les valeurs de couleurs de marque de profondeur, reçues d'un registre de données de couleurs de marques de profondeur, dans lequel l'ordinateur hôte a écrit, avec les valeurs de couleurs résultantes pour produire, pour chaque pixel, des couleurs à marques de profondeur. Un schéma fonctionnel du générateur 112 de pixels est représenté à la Figure 4. Les paramètres de restitution envoyés par l'accélérateur de géométrie sont placés dans des registres 130 de paramètres de restitution. Les paramètres respectifs de restitution sont envoyés des registres 130 à un interpolateur 131 de cc, un interpolateur 132 de rouge, un interpolateur 133 de vert, un interpolateur 134 de bleu, un interpolateur 135 de facteur d'échelle de marques de profondeur, un interpolateur 136 de rouge spéculaire, un interpolateur 137 de vert spéculaire et un interpolateur 138 de bleu spéculaire. Les interpolateurs 131 à 138 contiennent des circuits identiques et fonctionnent indépendamment et simultanément sur des paramètres
différents en vue d'un débit élevé.
En général, chaque paramètre est calculé pour chaque pixel d'une primitive. Un triangle dont les sommets sont V0, V1 et V2 est représenté à la Figure 6. Chacun des interpolateurs 131 à 138 progresse d'abord pas-à-pas le long du bord E1 du triangle à partir du sommet V0 jusqu'au sommet V2 et détermine la valeur de début du paramètre pour chaque rangée de pixels du triangle. Des rangées 150, 152, 154 etc. de pixels sont représentées à la Figure 6. Les valeurs de début du paramètre sont respectivement déterminées pour des rangées de pixels 150, 152, 154 à des pixels 160, 162 et 164. La longueur de chaque rangée de pixels du triangle est appelée sa sécante. Ainsi, par exemple, en se référant à la Figure 6, la sécante de la rangée 154 de pixels est de quatre pixels, du pixel 164 au pixel 168. Les valeurs des paramètres au début pour chaque rangée de pixels sont déterminées à partir de la valeur de début du paramètre au sommet V0 et de la pente du paramètre le long du bord El. Quand les valeurs de début ont été déterminées pour chaque rangée de pixels, l'interpolateur progresse pas-à-pas le long de chaque rangée de pixels dans la direction X et détermine la valeur du paramètre à chaque pixel, en utilisant la valeur de début pour la rangée de pixels et la pente de la valeur du paramètre en fonction de X. Les valeurs de paramètres pour chaque pixel du triangle sont envoyées à
l'unité 114 de mélange de texture.
Un schéma fonctionnel représentatif de chaque interpolateur du générateur 112 de pixels est représenté à la Figure 5. Chaque interpolateur inclut un générateur de bord qui est un générateur progressant pas-à-pas: ce type de générateurs sera appelé générateur dans ce qui suit, sans répéter les mots: progressant pas-à-pas. Le générateur de bord calcule les paramètres le long des bords de chaque triangle. Un premier étage 180 de générateur de bord engendre des valeurs x et y pour chaque pixel le long du bord E1 tandis qu'un deuxième étage 182 de générateur de bord calcule des valeurs de couleurs et des valeurs de z. On préfère utiliser deux étages de générateurs de bord pour améliorer la performance parce que les résultats des calculs de x et y sont utilisés pendant les calculs de valeurs de couleurs et de valeurs z. Selon un mode de réalisation préféré de la présente invention, les étages 180 et 182 du générateur de bord sont utilisés tant dans la carte d'application de texture que dans le convertisseur de balayage pour assurer que la donnée de primitive est émise dans le même ordre par la carte d'application de texture
représentée à la Figure 1 et par le convertisseur de balayage.
Un découpeur de dalle qui inclut un premier découpeur 184 de dalles et un deuxième découpeur 186 de dalles limite des pixels et des sécantes à l'intérieur de la plage de la microplaquette de mémoire vive vidéo entrelacées, représentée à la Figure 1, qui correspond à chaque
convertisseur de balayage qui contient le générateur respectif de pixels.
Comme indiqué précédemment, le convertisseur de balayage est divisé en microplaquettes séparées de dispositifs de commande de tampons de trame qui fonctionnent en parallèle avec des microplaquettes de mémoires vives vidéo en vue d'un débit élevé. Chaque microplaquette de mémoire vive vidéo traite de préférence une dalle de l'écran qui comprend 16 pixels en x par deux pixels en y. Le découpeur de dalles limite les pixels traités par l'interpolateur à ceux qui se trouvent à l'intérieur de la plage de seize pixels par deux pixels de la mémoire vive vidéo correspondante. Ceci améliore la performance en éliminant des cycles inutiles pour des pixels qui sont à l'extérieur de la plage de la microplaquette de mémoire vive vidéo correspondante. Le découpeur de dalles divise chaque sécante du triangle qui est en train d'être restitué en sous-sécantes de seize pixels ou moins qui sont à l'intérieur de la plage de la microplaquette de mémoire vive vidéo correspondante. En empêchant la génération de pixels inutiles dans le générateur de sécante, la performance de
restitution est améliorée de façon significative.
La sortie du découpeur de dalles est envoyée à un générateur de sécante 192 par une mémoire premier entré premier sorti 190 de sécante de pixels. Selon un mode de réalisation préféré, la profondeur du FIFO sécante/pixel est de soixante-quatre entrées. Le générateur 192 de sécante engendre des paramètres de pixels sur la base de l'information de bord pour chaque sécante du triangle. La valeur y des sécantes est constante et la progression pas-à-pas correspondante peut être effectuée dans la direction positive ou la direction négative en x selon le type de triangle. En particulier, la progression pas-à-pas s'effectue dans une direction positive en x dans un premier type de triangle et dans une direction négative en x dans un deuxième type de triangle. Selon un mode de réalisation préféré de la présente invention, le générateur 192 de sécante est utilisé tant dans la carte d'application de texture de la Figure 1 que dans le convertisseur de sécante pour assurer que les valeurs de paramètres sont envoyées, pour chaque pixel du triangle qui est en cours de restitution, dans le même ordre à partir de la carte d'application de texture et à partir du convertisseur de sécante vers l'unité 11 de mélange de texture. La sortie du générateur 192 de sécante est un ensemble de valeurs de
paramètres pour chaque pixel dans le triangle en cours de restitution.
Comme décrit ci-dessus en liaison avec la Figure 3, le générateur produit, pour chaque pixel, des valeurs interpolées de paramètres pour le rouge, le vert, le bleu, l'c, le facteur d'échelle de marque de
profondeur, le rouge spéculaire, le vert spéculaire et le bleu spéculaire.
Les circuits d'interpolation destinés à engendrer des valeurs paramétriques par pixel, à partir des paramètres de restitution par progression pas-à-pas de bord et progression pas-à-pas de sécante, sont
connus de l'homme de l'art.
Comme indiqué précédemment, l'unité 114 de mélange de texture représentée à la Figure 3 mélange les valeurs de couleurs diffuses, engendrées dans le générateur 112 de pixels, avec des valeurs de couleurs de texels reçues de l'unité d'application de texture, afin de produire des valeurs intermédiaires de couleurs. Les valeurs de couleurs spéculaires, engendrées dans le générateur 112 de pixels, sont ajoutées facultativement aux valeurs intermédiaires de couleurs pour produire les valeurs résultantes de couleurs. Comme décrit ci-dessus, une correspondance biunivoque devrait être établie entre les valeurs de couleurs de texels, les valeurs de couleurs diffuses et, si une option de couleurs spéculaires est en service, les valeurs de couleurs spéculaires. Cependant, comme décrit plus haut, la carte d'application de texture envoie, à l'unité 114 de mélange de texture, des valeurs de couleurs de texture sans aucune identification ou information de coordonnées alors que le générateur 112 de pixels produit des valeurs de couleurs diffuses pour toutes les primitives, y compris des points, des vecteurs et des triangles. Si l'option de couleurs spéculaires est validée, le générateur 112 de pixels produit aussi des valeurs de couleurs spéculaires pour des primitives de triangles. Comme décrit aussi plus haut, la donnée est envoyée de façon asynchrone à l'unité 114 de mélange de texture à partir de la carte d'application de texture et du convertisseur de balayage. De plus, l'ordre d'arrivée des valeurs de couleurs de texels, des valeurs de couleurs diffuses et des valeurs de couleurs spéculaires peut varier d'une primitive à l'autre, ainsi que
d'un pixel à l'autre, à l'intérieur d'une primitive.
En plus de ce qui précède, il existe plusieurs modes de synchronisation de données pour les valeurs de couleurs de texels, diffuses et spéculaires. Selon un mode de réalisation préféré, en raison des contraintes de travail en pipe-line à l'intérieur du système de graphiques d'ordinateurs représenté à la Figure 1, les valeurs de couleurs spéculaires sont toujours amenées après les valeurs de couleurs diffuses. Ainsi, des valeurs de couleurs diffuses et des valeurs de couleurs spéculaires ne peuvent pas arriver pendant le même cycle de signal d'horloge à l'unité 114 de mélange de texture. Cependant, cette contrainte permet encore plusieurs modes éventuels de restitution pour des primitives de triangle. En particulier, des modes possibles de synchronisation de données incluent (1) diffus seulement; (2) diffus puis spéculaire; (3) diffus puis texel; (4) texel, puis diffus; (5) diffus et texel pendant un même cycle de signal d'horloge; (6) diffus, puis spéculaire, puis texel; (7) diffus, puis spéculaire et texel sur le même cycle de signal d'horloge; (8) diffus, puis texel, puis spéculaire; (9) texel et diffus pendant le même cycle de signal d'horloge, puis spéculaire; et (10) texel, puis diffus, puis spéculaire. Ainsi, la synchronisation des valeurs de couleurs sur une base par pixel est encore rendue plus complexe par le grand nombre des modes de
restitution de synchronisation de données.
Comme décrit précédemment, selon un mode de réalisation préféré de la présente invention, la carte d'application de texture et le convertisseur de balayage utilisent des unités génératrices identiques de progression pas-à-pas de bord et de sécante, ce qui assure que les valeurs de couleurs de texels, les valeurs de couleurs diffuses et les valeurs de couleurs spéculaires sont engendrées dans le même ordre pour chaque pixel, sans toutefois être nécessairement engendrées en même temps. Cependant, bien que les valeurs de couleurs de texels, les valeurs de couleurs diffuses et les valeurs de couleurs spéculaires soient restituées dans le même ordre, les données qui représentent la valeur de couleur sont synchronisées avant que l'unité 114 de mélange de texture ne puisse opérer sur ces valeurs, puisque les interpolateurs opèrent sur des primitives de points et de vecteurs et puisque les
données ne sont pas envoyées de façon synchrone.
En se référant maintenant à la Figure 7, il y est illustré un schéma fonctionnel d'une interface entre un dispositif de commande 200 de synchroniseur de données selon la présente invention, la carte 12 d'application de texture représentée à la Figure 1, et le générateur 112 de pixels représenté à la Figure 3. L'interface inclut une unité 202 d'assembleur de pixels pour recevoir des données qui viennent de la carte 12 d'application de texture, pour assembler en un texel unique à 32 bits les données de couleurs de texture et pour envoyer les données assemblées de couleurs de texture à une série de registres 203 de données. Les données sont transférées entre la carte 12 d'application de texture et l'unité 202 d'assembleur de texels en n'utilisant que 11 lignes de signaux. Huit de ces lignes de signaux sont des lignes de données d'entrées t_data, c'est-à-dire littéralement t_données, qui reçoivent des données à huit bits sérialisées en quatre composantes cz, rouge, vert et bleu. La procédure de colloque est établie séparément pour chaque composante des données sérialisées, de sorte que quatre cycle de signaux d'horloge sont utilisés pour transférer à l'unité 202 d'assembleur de texels la totalité des quatre composantes des données de texels. Un signal t_trans est utilisé pour indiquer si les données actuelles de texels sont transparentes. Lorsqu'il est affirmé, le signal t_trans indique que la valeur de texel doit être ignorée parce qu'elle ne s'applique pas à ce pixel. Un signal de commande d'entrée t_valid_N
indique si les données de texels et t_trans sont ou non valides.
Finalement, un signal de commande de sortie t_ack_N accuse réception du transfert d'une composante des données de texels, ack
étant l'abrégé de acknowlegement, c'est-à-dire accusé de réception.
Comme on le comprend de ce qui précède, chaque composante a, rouge, verte et bleue des valeurs de couleurs de texture est envoyée par les huit lignes de signaux t_data du bus 28 à partir de la carte 12 d'application de texture vers l'unité 202 d'assembleur de texels. L'unité 202 d'assembleur de texels assemble ensuite de nouveau ces composantes en un mot de texels de couleurs à 32 bits tm_color qui est envoyé au registre 203 de données. Un transfert complet d'un texel unique à 32 bits utilise quatre cycles de signaux d'horloge. De plus, seules des valeurs de couleurs de texels sont transférées entre la carte
12 d'application de texture et l'unité 202 d'assembleur de texels.
Aucune information de coordonnées spatiales x, y ou z, et aucune
autre information d'application n'est transférée.
L'interface entre l'unité 202 d'assembleur de texels et l'unité du dispositif de commande de synchronisation de données inclut tm_trans, qui est un signal qui indique si le texel est ou non transparent; tm_color_valid qui est un signal destiné à indiquer si la valeur tm_color de couleurs de texels à 32 bits qui est en cours de transfert à partir de l'unité 202 d'assembleur de texels vers les registres 203 de données est valide; et ldtcolor_ack qui est un signal qui provient du dispositif de commande 200 de synchronisation de données et qui accuse réception de ce que le registre 203 de données peut accepter un transfert de la valeur assemblée de couleurs de texels
de tm_color à 32 bits.
Le générateur 112 de pixels représenté à la Figure 3 inclut le générateur de sécante 192, représenté à la Figure 5, qui est aussi en interface avec le dispositif de commande 200 de l'unité de synchronisation de données et les registres 203 de données. Les registres 203 de données reçoivent, du générateur 192 de sécante, une valeur spx de coordonnée x de 13 bits, une valeur spy de coordonnée y à 13 bits et une valeur spz de coordonnée z à 23 bits. De plus, les registres de données reçoivent du générateur 192 de sécante, par un bus spcolor à 32 bits une valeur de couleur spéculaire à 32 bits et une
valeur de couleur diffuse à 32 bits en deux cycles de signaux d'horloge.
L'interface entre le générateur 192 de sécante et le dispositif de commande 200 de synchronisation de données inclut un mot sp_status, littéralement sp-état, qui consiste en une série de drapeaux qui indiquent, par exemple, le type de primitive, c'est-à-dire un point,
un vecteur ou un triangle, auquel les données de pixels correspondent.
En particulier, il existe un drapeau qui indique si la donnée de pixel est un point; un drapeau qui indique si la donnée de pixel est un vecteur; un drapeau indiquant si la donnée concerne un pixel de triangle à couleurs diffuses; et un drapeau qui indique si la donnée concerne ou non un pixel de triangle à couleurs spéculaires. En outre, le mot spstatus inclut un drapeau qui indique si les données de couleurs à 32 bits présentes sur le bus spcolor sont valides. L'interface inclut encore un signal ld_stall, littéralement ld_blocage, qui est un signal de blocage qui est envoyé par le dispositif de commande 200 de synchronisation de données au générateur 192 de sécante et qui indique que les registres 203 de données sont actuellement en train de mémoriser les données et ne peuvent pas accepter actuellement d'autres données en
provenance du générateur 192 de sécante.
De plus, l'unité de dispositif de commande 200 de synchronisation maintient un signal de mode de synchronisation de données qui indique les composantes de données, c'est-à-dire diffuse, spéculaire, texel, qui sont exigées par l'unité 114 de mélange de texture, représentée à la Figure 3, pour compléter un mot synchronisé de données. En particulier, le signal de mode de synchronisation de données indique que l'unité 114 de mélange de texture représenté à la Figure 3 exige une couleur diffuse seulement, une couleur diffuse et une couleur spéculaire, une couleur diffuse et une couleur à application de texture, ou une couleur diffuse, spéculaire et à application de texture. Le signal de mode comporte aussi un bit qui indique si l'unité 116 de mélange de marques de couleurs représentée à la Figure 3 est validée ou invalidée. Une interface entre le dispositif de commande 200 de synchronisation de données et les registres 203 de données inclut un signal load_pixel, littéralement charger pixels, qui charge des données de coordonnées x, y et z, et des données de couleurs diffuses en provenance du générateur de sécante dans les registres respectifs de données x, y, z et de couleurs diffuses, comme décrit de façon plus détaillée ci-dessous en liaison avec la Figure 8. De même un signal loadspecular, c'est-à-dire littéralement charger spéculaire, charge dans un registre de données de couleurs spéculaires représenté à la Figure 8, les données de couleurs spéculaires qui proviennent du générateur 192 de sécante dans un registre de données de couleurs spéculaires représenté à la Figure 8. En outre, un signal load_texel, littéralement charger texel, charge dans un registre de données de couleurs de texels représenté à la Figure 8, les données tm_color de couleurs de texels à 32 bits qui proviennent de l'unité 202 d'assembleur de texels. En outre encore, un signal tri_xfer efface à zéro les registres des trajets de
données de couleur spéculaire de texture représentés à la Figure 8.
L'unité 200 du dispositif de commande de synchronisation de données envoie aussi un mot d'état ldstatus à un étage suivant du pipe-line de traitement. Le mot ld_status inclut un bit qui indique si le mot synchronisé de données de couleurs et de coordonnées qui sort est ou non valide; un bit qui indique si les mots synchronisés de données de couleurs et de coordonnées sortant correspondent à un pixel d'une primitive de vecteur; un bit qui indique si le mot synchronisé de données de couleurs et de coordonnées sortant correspond à un pixel d'une primitive de point et un bit indiquant si le mot synchronisé de données de couleurs et de coordonnées sortant correspond à un pixel d'une primitive d'un triangle. De plus, le dispositif 200 de commande de synchronisation de données reçoit un signal bc_stall qui est envoyé par l'unité 114 de mélange et qui indique si l'unité de mélange peut ou non accepter un autre mot synchronisé 201 de données en provenance
des registres 203 de données.
En se référant maintenant à la Figure 8, il y est illustré de façon plus détaillée un schéma fonctionnel des registres 203 de données. Les registres 203 de données consistent en une série de multiplexeurs 204 à 214 et une série de registres 216 à 226. L'unité 200 de dispositif de commande de synchronisation de données, représentée à la Figure 7, détermine les registres qui doivent être chargés et les valeurs à y charger. Dès lors que la totalité des valeurs de couleurs diffuses, des valeurs de couleurs spéculaires, des valeur de couleurs de texels ainsi que des valeurs de coordonnée x, de coordonnée y et de coordonnée z ont été chargées dans les registres appropriés 216 à 226, le mot synchronisé 201 de données représenté à la Figure 7 est transféré à l'unité 114 de mélange de texture pour constituer des données
composites de couleurs.
En particulier, l'unité de couleurs 200 de synchronisation de données attend pour chaque pixel les valeurs de couleurs de texels, les valeurs de couleurs diffuses et les valeurs de couleurs spéculaires. On suppose que chacune de ces valeurs correspond à ce pixel. Cette supposition résulte de l'utilisation d'unités identiques pour le générateur de sécante et l'unité de calcul de bord, d'une part dans la carte 12 d'application de texture de la Figure 1 et le générateur 112 de pixels de la Figure 3. Cependant, comme décrit plus haut, le générateur 112 de pixels produit, pour des primitives de vecteurs et des primitives de points, des valeurs de couleurs diffuses et spéculaires qui ne doivent pas être mélangées dans l'unité 114 de mélange de texture. Ainsi, le dispositif de commande 200 de synchronisation de données permet aux valeurs de couleurs diffuses et spéculaires qui concernent des pixels de vecteurs et de points de traverser le dispositif de commande 200 de synchronisation de données. Le dispositif de commande de synchronisation de données détermine si les valeurs de couleurs diffuses et spéculaires correspondent à des pixels d'une primitive d'un vecteur ou d'un point en examinant les bits de drapeaux du mot spstatus qui se déplace avec les données à travers le pipe-line du
convertisseur de balayage.
En se référant à titre d'exemple à la Figure 8 dans laquelle une valeur de couleur de texel tm_color arrive avant les valeurs de couleurs spéculaires ou diffuses spcolor, la valeur de couleur de texel est sauvegardée dans le registre 226 et le signal ld_tcolor_ack est envoyé à l'unité 202 d'assembleur de texels pour indiquer que le registre 226 de données n'est pas près à une poursuite de transfert de données de texels. Comme décrit plus haut, les données de couleurs diffuses et spéculaires sont transférées à des registres de données 222 et 224, respectivement, sur la même ligne de données spcolor à 32 bits et elles exigent deux cycles de signaux d'horloge pour transférer du générateur 122 de sécante vers les registres 222 et 224 de données les valeurs de données de couleurs tant diffuses que spéculaires. Comme décrit aussi plus haut, les données de couleurs spéculaires suivent toujours les données de couleurs diffuses. Cependant, lorsque l'option de couleur spéculaire n'est pas validée, le registre 224 n'est chargé que de zéros de sorte que l'unité de synchronisation de données peut
produire le mot synchronisé 201 de données.
On va maintenant décrire le fonctionnement des multiplexeurs 204 à 214 est des registres de données 216 à 226. Pour chaque cycle de signal d'horloge, le multiplexeur choisit entre des données présentes sur des lignes de données d'entrée, par exemple des lignes de données 228 et 240 pour le multiplexeur 204, et il envoie les données choisies au registre correspondant 216 à 226 de données. Le signal load_pixel, envoyé par l'unité 200 du dispositif de commande de synchronisation de données représenté à la Figure 7, donne, au multiplexeur respectif, des instructions concernant les lignes de données d'entrée à sélectionner comme données à envoyer au registre respectif de données. En particulier, lorsque le signal loadpixel n'est pas affirmé, la ligne de données d'entrée liée à la sortie du registre respectif 228 à 238 de données est sélectionnée de façon que les données mémorisées dans le registre respectif de données soient sélectionnées et envoyées au registre de données. Lorsque le signal loadpixel est affirmé, les données des lignes respectives 240 à 248 d'entrée sont
choisies et chargées dans les registres respectifs de données.
En se référant maintenant aux multiplexeurs 212 et 214, si l'unité 114 de mélange de texture représentée à la Figure 3 est dans un mode de mélange d'une manière telle que les unes et/ou les autres des valeurs de couleurs spéculaires et des valeurs de couleurs de texels ne doivent pas être utilisées par l'unité de mélange pour le pixel correspondant, le signal trixfer est affirmé et 32 zéros sont sélectionnés à partir de l'une et/ou de l'autre des lignes de signaux 245
et 247 et sont envoyés aux registres respectifs 224 et 226 de données.
* Ainsi, les multiplexeurs 204 à 214 et les registres 216 à 226 de données agissent en coordination de façon à mémoriser constamment les valeurs de données simultanément dans le registre respectif de données jusqu'à ce que le signal load_pixel soit affirmé pour le registre respectif de données et, lorsque le signal loadpixel est affirmé, les données de la ligne correspondante de données sont ensuite rythmées
vers le registre respectif de données.
Bien que les données de couleurs de texels soient arrivées les premières dans l'exemple décrit ci-dessus à l'unité de synchronisation de données avant les données de coordonnées x, y et z et les valeurs de couleurs diffuses et spéculaires, il faut comprendre que les données peuvent arriver dans un ordre quelconque à la série des registres 203 de données et que l'unité 200 du dispositif de commande de synchronisation de données synchronise les données pour former le
mot synchronisé 201 de données.
En se référant maintenant aux Figures 9a à 9e, il y est illustré un procédé de commande de la synchronisation de données selon la présente invention qui est mis en oeuvre par l'unité 200 de dispositif de commande de synchronisation. Selon un mode de réalisation préféré de l'invention, le dispositif de commande de synchronisation est une machine d'état mise en oeuvre dans un réseau de portes. Il faut cependant comprendre que le dispositif de commande peut être mis en oeuvre selon un autre format enlogiciel, en matériel et similaire, et que de tels modes de réalisation sont couverts par la présente invention. La Figure 9a illustre un procédé de synchronisation de données de pixels lorsque le signal de mode indique que le système de graphique est dans un mode diffus seulement. Le dispositif de commande 200 de synchronisation de données est initialement dans un état inactif 250. Lorsque le signal de mode indique par la réponse oui le mode diffus seulement 250, le procédé passe vers l'un des trois états suivants: l'état 252 lorsque la donnée correspond à un pixel de vecteur 252, réponse oui, l'état 254 lorsque la donnée correspond à un pixel de point 254, réponse oui, et un état 256 lorsque la donnée correspond à un pixel de triangle dans le mode diffus seulement 256, réponse oui. Puisqu'aucune donnée additionnelle n'est nécessaire, les données 258 de vecteurs, les données 260 de points et les données 262 de triangle diffus seulement sont chargées dans les registres respectifs de données, représentés à la Figure 8. Les données 264 de vecteurs, les données 266 de points et les données 268 de triangle diffus seulement, sont ensuite transférées vers l'étage suivant dans le pipe-line de traitement. En se référant maintenant à la Figure 9b, il y est illustré un procédé, conforme à la présente invention, de synchronisation des données de pixels lorsque le système de graphiques est dans le mode de couleurs diffuses et spéculaires. Lorsque le signal de mode indique, par un oui à 270, le mode de couleurs diffuses et spéculaires, le dispositif de commande 200 attend à l'état 272 que les données de couleurs diffuses arrivent à l'interface du générateur de sécante. À la réception des données de couleurs diffuses, le procédé passe à l'état 274 dans lequel les données de couleurs diffuses sont chargées en 274 dans leur registre respectif comme représenté à la Figure 8. Le dispositif de commande de synchronisation de données attend ensuite à l'état 276 que les données
de couleurs spéculaires arrivent à l'interface de générateur de sécante.
À la réception des données de couleurs spéculaires, le procédé passe à l'état 278 o les données de couleurs spéculaires sont chargées en 278 dans leur registre approprié comme représenté à la Figure 8. Les données synchronisées 201 sont ensuite transférées en 280 à l'étage suivant du pipe-line de traitement et le dispositif de commande est
ramené à l'état inactif 250.
En se référant maintenant à la Figure 9c, il y est illustré un procédé, conforme à la présente invention, de synchronisation de données de pixels lorsque le système de graphiques est dans le mode de couleurs diffuses et à application de texture. Lorsque le signal de mode indique, par un oui à 282, que les données de pixels sont dans le mode de couleurs diffuses et à application de texture, les données peuvent arriver aux registres 203 de données dans l'un quelconque de trois ordres différents, à savoir: l'état 284 o les données de texels sont les premières, l'état 286 o les données diffuses sont les premières, ou l'état 288 dans lequel les données de texels et les données diffuses arrivent pendant le même cycle de signal d'horloge. Lorsqu'il est déterminé à l'étape 284 que les données de texels arrivent en premier, le procédé passe à l'état 290 dans lequel les données de texels sont chargées dans leur registre respectif de données comme représenté à la Figure 8. Le dispositif de commande attend ensuite à l'état 292 que les données de pixels diffuses arrivent et il passe alors à l'état 294 dans lequel les données diffuses sont chargées dans leur registre respectif de données. Le mot synchronisé 201 de données de couleurs diffuses et de texels est ensuite transféré à l'étage suivante vers l'étage 96 du pipe-line de traitement et le dispositif de commande revient à son état
inactif 250.
En revanche, lorsqu'il est déterminé à l'étage 286 que ce sont les données de pixels de couleurs diffuses qui arrivent en premier, le dispositif de commande 200 passe à l'étage 298 dans lequel les données diffuses sont chargées dans leur registre de données. Le dispositif de commande attend ensuite, à l'étage 300, que les données correspondantes de texels arrivent et le dispositif de commande passe, lorsqu'elles arrivent, à l'état 302 dans lequel les données de texels sont chargées dans leur registre respectif de données comme représenté à la Figure 8. Le mot synchronisé 201 de données de couleurs diffuses et de texels est ensuite transféré en 304 vers l'étage suivant du pipe- line de
traitement, et le dispositif de commande 200 revient à l'état inactif 250.
En variante encore, lorsqu'il est déterminé à l'étape 288 que les données de texels et les données diffuses arrivent ensemble, les données sont chargées à l'étape 306 dans leurs registres respectifs de données, comme représenté à la Figure 8. Le mot synchronisé de données de couleurs diffuses et de texels est ensuite transféré, à l'état 308, vers l'étage suivant du pipe-line de traitement et le dispositif de
commande revient à l'état inactif 250.
En se référant maintenant à la Figure 9d, il y est illustré un procédé, conforme à la présente invention, de synchronisation des données lorsque le système de graphiques d'ordinateurs est dans le mode de couleurs diffuses, de couleurs spéculaires et d'application de texture. Lorsque l'unité 114 de mélange est dans le mode de couleurs diffuses, spéculaires et d'application de texture, puisque les données peuvent arriver dans l'un quelconque de trois ordres, le dispositif de commande peut entrer dans l'un des trois modes: données de texels en premier lieu 312; données diffuses en premier lieu 314; et données
diffuses et données de texels pendant le même signal d'horloge 318.
Dans un premier mode, lorsqu'il est déterminé à l'état 312 que les données de texels arrivent en premier lieu, les données de texels sont chargées dans leur registre de données correspondant représenté à la Figure 8 à l'état 320. Le dispositif de commande attend ensuite à l'état 322 l'arrivée des données diffuses et passe alors à l'état 324 dans lequel les données diffuses sont chargées dans leur registre de données correspondant représenté à la Figure 8. Le dispositif de commande attend ensuite que les données spéculaires arrivent à l'état 326 et passe alors à l'état 328 dans lequel les données spéculaires sont chargées dans leur registre respectif de données représenté à la Figure 8. Le mot synchronisé 201 de données de couleurs spéculaires, diffuses et de texels est ensuite transféré en 330 vers l'étage suivant du pipe- line de
traitement et le dispositif de commande revient à l'état inactif 250.
Dans un deuxième mode, lorsqu'il est déterminé à l'état 314 que les données de pixels de couleurs diffuses arrivent en premier lieu, les données diffuses sont chargées dans leur registre respectif de données à l'état 332. En se référant maintenant à la Figure 9e, le dispositif de commande peut entrer ensuite dans l'un des trois sous-modes suivants: arrivée des données de texels et spéculaires sur le même cycle de signal d'horloge, état 334; données de texels en premier lieu, état 336, et données spéculaires en deuxième lieu, état 338. Dans un premier sousmode, lorsqu'il est déterminé à l'état 334 que les données de couleurs de texels et spéculaires arrivent ensemble, les données spéculaires et de texels sont chargées dans leurs registres respectifs de données représentés à la Figure 8 à l'état 340. Le mot synchronisé 201 de données de couleurs spéculaires, diffuses et de texels est ensuite transféré à l'état 342 vers l'étage suivant du pipe-line
de traitement et le dispositif de commande revient à l'état inactif 250.
Dans un deuxième sous-mode, lorsqu'il est déterminé à l'état 336 que les données de texels arrivent en deuxième lieu, les données de texels sont chargées à l'état 334 dans le registre respectif de données. Le dispositif de commande attend ensuite à l'état 346 la réception des données spéculaires et les données spéculaires sont chargées, lorsqu'elles sont reçues, à l'état 348 dans le registre respectif de données représenté à la Figure 8. Le mot synchronisé de données de couleurs spéculaires, diffuses et de texels est ensuite transféré à l'état 350 vers l'étage suivant du pipe-line de traitement et le dispositif de commande revient à l'état inactif 250. Dans un troisième sous-mode, lorsqu'il est déterminé à l'état 338 que les données arrivent en deuxième lieu, les données spéculaires sont chargées à l'état 352 dans le registre respectif de données représenté à la Figure 8. Le dispositif de commande attend ensuite les données de texels à l'état 354 et les données sont chargées à la réception, à l'état 356 dans le registre respectif de données représenté à la Figure 8. Le mot synchronisé de données de couleurs spéculaires, diffuses et de texels est ensuite transféré à l'état 358 vers l'étage suivant du pipe- line de traitement et le dispositif de commande revient à l'état
inactif 250.
En se référant maintenant à la Figure 9d, dans un troisième mode o il est déterminé à l'état 318 que les données diffuses et les données de texels arrivent ensemble, les données diffuses et les données de texels sont chargées à l'état 360 dans leurs registres respectifs de données représentés à la Figure 8. Le dispositif de commande attend ensuite à l'état 362 l'arrivée des données spéculaires, et les données spéculaires sont chargées, à leur réception, à l'état 364 dans le registre respectif de données représenté à la Figure 8. Le mot synchronisé 201 de données de couleurs spéculaires, diffuses et de texels est ensuite transféré à l'état 366 vers l'étage suivant du pipe- line
de traitement et le dispositif de commande revient à l'état inactif 250.
Par conséquent, c'est un avantage de la présente invention que l'unité 200 de dispositif de commande de synchronisation de données n'exige pas un temps particulier pour récupérer après un transfert de données. En particulier, l'unité 200 de dispositif de commande est immédiatement ramenée à l'état inactif 250 dans lequel elle peut immédiatement traiter de nouvelles données à ses entrées et éventuellement transférer les nouvelles données vers l'étage suivant
au cours d'un cycle unique de signaux d'horloge.
C'est un autre avantage de la présente invention que le pipe-line, en particulier le nombre de lignes de signaux, nécessaire pour transférer des données entre la microplaquette 12 d'application de texture représentée à la Figure 1 et les microplaquettes 14 de tampons de trame est faible. En outre, il n'est pas nécessaire de transférer une identification ou une information de coordonnées quelconques entre la carte d'application de texture et les microplaquettes des tampons de trame. En outre, la présente invention permet à d'autres données de primitives, par exemple des vecteurs et des points, d'être intercalées avec des données de primitives de triangle, sans qu'il soit nécessaire de vider le pipe-line dès lors que l'option d'application de texture de l'unité de mélange est validée. Ainsi, la présente invention réalise une
performance accrue des systèmes de graphiques pour ordinateurs.
Dès lors que l'unité 200 du dispositif de commande de synchronisation de données a assemblé en un mot synchronisé unique 201 pour un pixel donné les valeurs de couleurs de texels, les valeurs de couleurs diffuses et les valeurs de couleurs spéculaires, l'information synchronisée de couleurs est utilisée par l'unité 114 de mélange de texture pour mélanger entre elles ces informations de manière à former des données résultantes de couleurs. Selon un mode de réalisation préféré, l'unité 114 de mélange de texture peut fonctionner dans plusieurs modes de mélange de texture, dont l'un est
sélectionné pour être utilisé pour une restitution de chaque triangle.
Dans un mode "non change", c'est-à-dire sans variation, des valeurs de couleurs diffuses sont utilisées sans modification par les couleurs de texture. Ceci peut être approprié lorsque le triangle en cours de restitution n'exige pas de texture, ou lorsque le système de graphiques n'inclut pas d'application de texture. Dans ce cas, les valeurs de couleurs diffuses ne sont pas modifiées. Dans le mode "replace", c'est-àdire remplacer, les valeurs diffuses qui viennent du générateur de pixels sont remplacées par les valeurs de couleurs d'application de texture. Dans le mode "modulate", c'est-à-dire moduler, les valeurs de couleurs diffuses sont multipliées par les valeurs de couleurs d'application de texture. Dans un mode "decal", c'est-à-dire décalquer, les valeurs de couleurs diffuses qui viennent du générateur de pixels sont mélangées avec les valeurs de couleurs d'application de texture en fonction d'un pourcentage de mélange sur la base de la valeur a des texels. Après mélange de texture, les valeurs de couleurs spéculaires sont ajoutées facultativement aux valeurs de couleurs intermédiaires afin de produire les valeurs résultantes de couleurs. Les valeurs résultantes de couleurs produites par l'unité 114 de mélange de texture sont ensuite envoyées à l'unité 116 de mélange de marque de profondeur. Les circuits représentés et décrits ici ne sont donnés qu'à titre d'exemples. Les circuits sont de préférence implantés dans un circuit intégré spécialisé à grande échelle en utilisant un logiciel de synthèse de logique commercialisé, par exemple, par Synopsys. Le logiciel de synthèse de logique optimise et traduit, en termes de portes logiques,
des descriptions de circuits écrites dans des langages de très haut
niveau, comme Veralog. Les circuits peuvent être implantés en utilisant un processus CMOS qui produit des transistors à effet de champ ou FET de 1 micron qui fonctionnent à 5 volts, ou un processus CMOS qui produit des dispositifs d'une longueur de grille restituée de 0,6 micron, et qui fonctionnent à 3,3 volts, ou un quelconque autre
processus approprié pour l'implantation de circuits numériques.
Puisque l'entrée au logiciel de synthèse logique est fonctionnelle et non structurelle, les circuits réels engendrés par le logiciel de synthèse
logique peuvent différer de ceux qui sont décrits ici.
A la lecture de la description d'au moins un mode de
réalisation de la présente invention donné à titre d'illustration, diverses variantes, modifications et perfectionnements apparaîtront directement à l'homme de l'art. Il faut comprendre que de tels perfectionnements, variantes et modifications se trouvent dans l'esprit et le cadre de la présente invention. Par conséquent, la présente
description n'est donnée qu'à titre d'exemple et ne doit pas être
considérée comme limitative. L'invention n'est limitée que par les
revendications qui suivent et leurs équivalents.

Claims (36)

REVENDICATIONS
1. Synchroniseur (112, 200, 12 - 202, 203) de données qui synchronise des ensembles de mots de données pour engendrer des ensembles synchronisés de mots de données, chaque mot de données d'un ensemble de mots de données étant restitué au synchroniseur de données par un dispositif de restitution d'une série de dispositifs de restitution asynchrones (112, 12 - 202) de données, le synchroniseur de données (112, 200, 12 - 202, 203) étant caractérisé en ce qu'il comprend: une série de registres (203) de données, chaque registre de données recevant d'un dispositif de restitution correspondant d'une série de dispositifs de restitution asynchrones (112, 12 - 202) de données, et mémorisant temporairement, un mot de données inclus dans un premier ensemble de mots de données, chaque registre (203) de données produisant son mot de données mémorisé sous la forme de l'un des mots d'un premier ensemble synchronisé de mots de données lors de la validation d'un signal de commande; et un dispositif de commande (200) qui empêche chaque dispositif de restitution asynchrone (112, 12 - 202) de données de transférer, à son registre correspondant (203) de données, un mot de données inclus dans un deuxième ensemble de mots de données lorsque le registre (203) de données est en train de mémoriser son mot correspondant de données inclus dans le premier ensemble de mots de données, et qui valide le signal de commande lorsque chacun des registres (203) de données a reçu son mot de données inclus dans le premier ensemble
de mots de données.
2. Synchroniseur de données selon la revendication 1, caractérisé en ce qu'il comprend en outre une série de multiplexeurs (204 à 214), chacun des multiplexeurs de la série comportant une sortie couplée à une entrée d'un registre correspondant d'une série de registres (216 à 226) de données, une première entrée (240 à 248) couplée à une sortie d'un dispositif de restitution correspondant d'une série de dispositifs de restitution asynchrones (112, 12 - 202) de données et une deuxième entrée (228 à 238) couplée à une sortie du registre correspondant de la
série (216 à 226) de registres de données.
3. Synchroniseur selon la revendication 2, caractérisé en ce que la première entrée (246) d'un premier des multiplexeurs de la série et la première entrée (246) d'un deuxième des multiplexeurs de la série sont couplées à la sortie d'un premier des dispositifs de restitution asynchrones (112, 12 - 202) de données de la série, un premier mot de données, envoyé par le premier des dispositifs de restitution de la série des dispositifs de restitution asynchrones (112, 12 - 202) de données est reçu par le premier multiplexeur et mémorisé temporairement dans un premier registre de données (222) en réponse à un premier cycle du signal d'horloge, et un deuxième mot de données, envoyé par le premier des dispositifs de restitution de la série des dispositifs de restitution asynchrones (112, 12 - 202) de données est reçu par le deuxième multiplexeur et mémorisé temporairement dans un deuxième registre
(224) de données en réponse à un deuxième cycle du signal d'horloge.
4. Système graphique qui comprend: une série de dispositifs de restitution asynchrones (112, 12 - 202) de données, chaque dispositif de restitution asynchrone de données envoyant un mot de données d'un ensemble de mots de données; un synchroniseur (112, 200, 12 - 202, 203) de données qui synchronise des ensembles de mots de données pour engendrer des ensembles synchronisés de mots de données, caractérisé en ce que le synchroniseur (112, 200, 12 - 202, 203) de données comprend: une série de registres (203) de données, chaque registre de données recevant d'un dispositif de restitution correspondant de la série de dispositifs de restitution asynchrones (112, 12 - 202) de données, et mémorisant temporairement, un mot de données inclus dans un premier ensemble de mots de données, chaque registre (203) de données envoyant son mot mémorisé de données en tant que l'un des mots d'un premier ensemble synchronisé de mots de données lors de la validation d'un premier signal de commande; et un dispositif de commande (200) qui empêche chaque dispositif de restitution asynchrone (112, 12 - 202) de données de transférer vers son registre correspondant (203) de données un mot de données inclus dans un deuxième ensemble de mots de données lorsque le registre (203) de données est en train de mémoriser son mot correspondant de données inclus dans le premier ensemble de mots de données, et qui valide le signal de commande lorsque chacun des registres (203) de données a reçu son mot de données inclus dans le premier ensemble de mots de données; et en ce que un premier dispositif de restitution (112) de la série des dispositifs de restitution asynchrones (112, 12 - 202) est un générateur (112) de pixels qui reçoit des paramètres de restitution, qui calcule des coordonnées x, y, z et des valeurs de couleurs à partir des paramètres de restitution pour chaque pixel d'une primitive, et qui envoie les coordonnées x, y, z et les valeurs de couleurs, en tant que son mot de données, à un registre correspondant (203) de la série des registres de données.
5. Système selon la revendication 4, caractérisé en ce que un deuxième dispositif de restitution (12 - 202) de la série des dispositifs de restitution asynchrones (112, 12 - 202) de données est un circuit d'application (12) de texture qui reçoit les paramètres de restitution, qui calcule des valeurs de couleurs de texels à partir des paramètres de restitution pour chaque pixel d'une primitive de triangle, et qui envoie les valeurs de couleurs de texels, en tant que son mot de données, au registre correspondant (203) de la série des registres
de données.
6. Système selon la revendication 5, caractérisé en ce que le générateur (112) de pixels et le circuit d'application (12) de texture incluent chacun un circuit identique (180, 182) de progression pas-à-pas de bord qui calcule, à partir des paramètres de restitution, les valeurs de couleurs pour chaque pixel le long d'un bord de chaque primitive de triangle d'une manière telle que les valeurs de couleurs envoyées par le générateur (112) de pixels et les valeurs de couleurs de texels produites par le circuit d'application (12) de texture sont fournies
dans le même ordre.
7. Système selon la revendication 5, caractérisé en ce que le générateur (112) de pixels et le circuit d'application (12) de texture incluent chacun un circuit identique de progression pas-à-pas (192) de sécante qui calcule, à partir des paramètres de restitution, les valeurs de couleurs pour chaque pixel le long d'une sécante de chaque primitive de triangle d'une manière telle que les valeurs de couleurs envoyées par le générateur (112) de pixels et les valeurs de couleurs de texels envoyées par le circuit d'application (12) de texture sont
envoyées dans un même ordre.
8. Système selon la revendication 5, caractérisé en ce qu'il comprend en outre un circuit d'assemblage de texels (202) couplé entre le circuit d'application (12) de texture et le synchroniseur (200) de données, qui reçoit du circuit d'application (12) de texture les valeurs de couleurs de texels, qui assemble (202) en un mot unique de couleurs de texels les valeurs de couleurs de texels pour chacune des composantes suivantes: une composante rouge, une composante verte, une composante bleue et une composante a, et qui envoie en tant que son mot de données le mot unique de couleurs de texels au registre
correspondant (203) de la série des registres de données.
9. Système selon la revendication 8, caractérisé en ce qu'une interface entre le circuit d'application (12) de texture et le circuit d'assemblage (202) de texels comprend onze lignes de signaux de données.
10. Procédé de synchronisation d'ensembles de mots de données pour engendrer des ensembles synchronisés de mots de données, chaque mot de données d'un ensemble de mots de données étant restitué par un dispositif de restitution d'une série de dispositifs de restitution asynchrones de données, caractérisé en ce que le procédé comprend les étapes consistant à: recevoir d'un premier dispositif de restitution asynchrone de données un premier mot de données, inclus dans un premier ensemble de mots de données; mémoriser temporairement le premier mot de données attendre une réception d'un deuxième mot de données; recevoir le deuxième mot de données; et délivrer un ensemble synchronisé de mots de données qui
comprend le premier mot de données et le deuxième mot de données.
11. Procédé selon la revendication 10, caractérisé en ce qu'il comprend en outre l'étape consistant à: déterminer si le premier mot de données doit être mélangé
avec le deuxième mot de données.
12. Procédé selon la revendication 11, caractérisé en ce qu'il comprend en outre l'étape consistant à fournir comme deuxième mot de données un mot de données par défaut lorsque le premier mot de données ne doit pas être mélangé
avec le deuxième mot de données.
13. Procédé selon la revendication 11, caractérisé en ce qu'il comprend en outre l'étape consistant à empêcher le premier dispositif de restitution asynchrone de données d'envoyer un mot de données inclus dans un deuxième ensemble de mots de données jusqu'à ce que l'ensemble synchronisé
de mots de données ait été envoyé.
14. Procédé selon la revendication 10, caractérisé en ce qu'il comprend en outre les étapes consistant à: mémoriser temporairement le deuxième mot de données; et
attendre une réception d'un troisième mot de données.
15. Procédé à mettre en oeuvre dans un système de graphiques qui inclut une série de dispositifs de restitution asynchrones de données, dans laquelle l'un des dispositifs de restitution de la série des dispositifs de restitution asynchrones de données est un générateur de pixels qui restitue un mot de données pour chaque pixel d'une primitive, et un autre dispositif de restitution de la série des dispositifs de restitution asynchrones de données est un circuit d'application de texture qui restitue un mot de données pour chaque pixel d'une primitive de triangle, le procédé étant destiné à synchroniser des ensembles de mots de données pour engendrer des ensembles synchronisés de mots de données, chaque mot de données d'un ensemble de mots de données étant restitué par un dispositif de la série des dispositifs de restitution asynchrones de données, caractérisé en ce qu'il comprend les étapes consistant à: recevoir, soit du générateur de pixels, soit du circuit d'application de texture, un premier mot de données inclus dans un premier ensemble de mots de données; mémoriser temporairement le premier mot de données attendre la réception d'un deuxième mot de données; recevoir le deuxième mot de données; et envoyer un ensemble synchronisé de mots de données qui
inclut le premier mot de données et le deuxième mot de données.
16. Procédé selon la revendication 15, caractérisé en ce qu'il comprend en outre l'étape consistant à: déterminer si le premier mot de données doit être mélangé avec le deuxième mot de données dans un mode de mélange diffus seulement, un mode de mélange diffus et spéculaire, un mode de mélange diffus et à application de texture, et un mode de mélange
diffus, spéculaire et à application de texture.
17. Procédé selon la revendication 16, dans lequel l'étape d'attente de réception du deuxième mot de données lorsque le premier mot de données doit être mélangé avec le deuxième mot de données inclut l'étape consistant à: attendre la réception du deuxième mot de données à partir, soit
du générateur de pixels, soit du circuit d'application de texture.
18. Procédé selon la revendication 16, caractérisé en ce qu'il comprend en outre l'étape consistant à: envoyer comme deuxième mot de données un mot de données par défaut lorsque le premier mot de données ne doit pas être mélangé
avec le deuxième mot de données.
19. Procédé selon la revendication 17, caractérisé en ce qu'il comprend en outre l'étape consistant à: empêcher soit le générateur de pixels, soit le circuit d'application de texture d'envoyer un mot de données inclus dans un deuxième ensemble de mots de données avant que l'ensemble
synchronisé de mots de données ait été envoyé.
20. Procédé selon la revendication 16, caractérisé en ce que l'étape consistant à déterminer si le premier mot de données doit être mélangé inclut l'étape consistant à: déterminer si le premier mot de données, restitué par le générateur de pixels, correspond à un pixel, soit d'une primitive de point, soit d'une primitive de vecteur, soit d'une primitive de triangle
dans le mode de mélange diffus seulement.
21. Procédé selon la revendication 16, caractérisé en ce que l'étape consistant à déterminer si le premier mot de données doit être mélangé inclut l'étape consistant à: déterminer si le premier mot de données correspond à un pixel d'une primitive d'un triangle, soit dans un mode de mélange diffus et spéculaire, soit dans un mode de mélange diffus et à application de texture.
22. Procédé selon la revendication 21, caractérisé en ce que lorsque le premier mot de données est un mot de données de couleurs diffus restitué par le générateur de pixels dans le mode de mélange diffus et spéculaire: l'étape de mémorisation du premier mot de données inclut une mémorisation du mot de données de couleurs diffus; et l'étape d'attente de deuxième mot de données inclut l'attente d'une réception d'un mot de données de couleurs spéculaire à partir
du générateur de pixels.
23. Procédé selon la revendication 21, caractérisé en ce que lorsque le premier mot de données est dans le mode de mélange diffus et à application de texture, l'étape de réception du premier mot de données inclut de recevoir soit d'un mot de données de couleurs de texels à partir du circuit d'application de texture, soit un mot de données de couleurs diffus à partir du générateur de pixels, et tant le mot de données de couleurs de texels que le mot de données de couleurs diffus, à l'intérieur d'un cycle unique de signal d'horloge, à partir du circuit d'application de texture et du générateur de pixels, respectivement; l'étape consistant à mémoriser le premier mot de données inclut de mémoriser, soit le mot de données de couleurs de texels, soit le mot de données de couleurs diffuses, soit tant le mot de données de couleurs de texels que le mot de données de couleurs diffuses; l'étape consistant à attendre une réception du deuxième mot de données inclut, lorsque, soit le mot de données de couleurs de texels, soit le mot de données de couleurs diffus est reçu, l'attente d'une réception soit du mot de données de couleurs diffus, soit du mot de données de couleurs de texels, respectivement; et l'étape d'envoi inclut l'envoi de l'ensemble synchronisé de mots de données qui inclut le mot de données de texels de couleurs et
le mot de données de couleurs diffuses.
24. Procédé selon la revendication 15, caractérisé en ce qu'il comprend les étapes consistant à: mémoriser le deuxième mot de données; et
attendre une réception d'un troisième mot de données.
25. Procédé selon la revendication 24, caractérisé en ce que l'étape consistant à déterminer si le premier mot de données doit être mélangé inclut l'étape consistant à: déterminer si le premier mot de données correspond à un pixel d'une primitive de triangle dans le mode de mélange diffus, spéculaire
et à application de texture.
26. Système de graphiques qui comprend une série de dispositifs de restitution asynchrones (112, 12 - 202) de données, chaque dispositif de restitution asynchrone de données envoyant un mot de données d'un ensemble de mots de données; un synchroniseur (112, 200, 12 - 202, 203) de données qui synchronise des ensembles de mots de données pour engendrer des ensembles synchronisés de mots de données, caractérisé en ce que le synchroniseur (112, 200, 12 - 202, 203) de données comprend: une série de registres (203) de données, chaque registre de données recevant d'un dispositif de restitution correspondant de la série de dispositifs de restitution asynchrones (112, 12 - 202) de données, et mémorisant temporairement, un mot de données inclus dans un premier ensemble de mots de données, chaque registre (203) de données envoyant son mot mémorisé de données en tant que l'un des mots d'un premier ensemble synchronisé de mots de données; et un moyen de commande (200) pour empêcher chaque dispositif de restitution de la série des dispositifs de restitution asynchrones (112, 12 - 202) de données de transférer vers son registre correspondant (203) de données un mot de données inclus dans un deuxième ensemble de mots de données lorsque le registre (203) de données est en train de mémoriser son mot correspondant de données inclus dans le premier ensemble de mots de données, et pour envoyer le premier ensemble synchronisé de mots de données lorsque chacun des registres (203) de la série de registres de données a reçu son mot de données inclus dans le
premier ensemble de mots de données.
27. Système de graphiques selon la revendication 26, caractérisé en ce que le moyen de commande (200) comprend en outre un moyen destiné à déterminer si un premier mot de données d'un premier dispositif de restitution asynchrone (112, 12 - 202) de données doit être mélangé avec un deuxième mot de données provenant d'un deuxième dispositif de restitution asynchrone (112, 12 - 202) de données dans l'un des modes suivants: un mode de mélange diffus seulement, un mode de mélange diffus et spéculaire, un mode de mélange diffus et à application de texture et un mode de mélange diffus, spéculaire et à
application de texture.
28. Système selon la revendication 27, caractérisé en ce que le moyen de commande (200) comprend en outre un moyen destiné à fournir comme deuxième mot de données un mot de données par défaut à un registre (203) de données correspondant lorsque le moyen de détermination détermine que le premier mot de
données ne doit pas être mélangé avec le deuxième mot de données.
29. Système selon la revendication 27, caractérisé en ce que le moyen de détermination inclut en outre un moyen destiné à déterminer si le premier mot de données correspond à un pixel, soit d'une primitive de point, soit d'une primitive de vecteur, soit d'une
primitive de triangle dans le mode de mélange diffus seulement.
30. Système selon la revendication 27, caractérisé en ce que le moyen de détermination inclut un moyen destiné à déterminer si le premier mot de données correspond à un pixel d'une primitive de triangle, soit dans le mode de mélange diffus et spéculaire, soit ou le mode de mélange diffus et à application de texture.
31. Système selon la revendication 27, caractérisé en ce que le moyen de détermination inclut un moyen destiné à déterminer si le premier mot de données correspond à un pixel d'une primitive de triangle dans le mode de mélange diffus, spéculaire et à
application de texture.
32. Système selon la revendication 26, caractérisé en ce que un premier dispositif de restitution asynchrone de données de la série des dispositifs de restitution asynchrones (112, 12 - 202) de données, comprend un moyen générateur (112) de pixels pour recevoir des paramètres de restitution, pour calculer des coordonnées x, y, z et des valeurs de couleurs, pour chaque pixel d'une primitive à partir des paramètres de restitution, et pour envoyer en tant que le mot de données les coordonnées x, y, z et les valeurs de couleurs au registre
correspondant de données de la série des registres de données.
33. Système selon la revendication 32, caractérisé en ce que un deuxième dispositif de restitution asynchrone de données de la série de dispositifs de restitution asynchrones (112, 12 - 202) de données comprend un moyen générateur (12) de texels pour recevoir les paramètres de restitution, pour calculer des valeurs de couleurs de texels pour chaque pixel d'une primitive de triangle à partir des paramètres de restitution, et pour envoyer en tant que le mot de données les valeurs de couleurs de texels au registre correspondant de
données de la série de registres de données.
34. Système selon la revendication 33, caractérisé en ce que tant le moyen générateur (112) de pixels que le moyen générateur (12) de texels incluent un moyen identique de progression pas-à-pas (180, 182) de bord pour calculer les valeurs de couleurs pour chaque pixel le long d'un bord d'une primitive de triangle, et pour
produire les valeurs de couleurs dans un même ordre.
35. Système selon la revendication 33, caractérisé en ce que tant le moyen générateur (112) de pixels que le moyen générateur (12) de texels incluent un moyen identique de progression pas-à-pas (192) de sécante pour calculer les valeurs de couleurs pour chaque pixel le long d'une sécante de la primitive du triangle et pour
envoyer les valeurs de couleurs dans un même ordre.
36. Système selon la revendication 33, caractérisé en ce qu'il comprend un moyen d'assemblage (202) de texels, disposé entre le moyen générateur (12) de texels et le registre (23) correspondant de données, pour recevoir les valeurs de couleurs de texels, pour assembler en un mot unique de données de couleurs de texels les valeurs de couleurs de texels pour chacune des composantes suivantes: une composante rouge, une composante verte, une composante bleu et une composante ax, et pour envoyer au registre correspondant (203) de données le mot
de données unique de couleurs de texels.
FR9602741A 1995-06-08 1996-03-05 Synchronisation de donnees entre plusieurs dispositifs de restitution asynchrones de donnees Expired - Lifetime FR2735253B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US48864395A 1995-06-08 1995-06-08

Publications (2)

Publication Number Publication Date
FR2735253A1 true FR2735253A1 (fr) 1996-12-13
FR2735253B1 FR2735253B1 (fr) 1999-10-22

Family

ID=23940526

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9602741A Expired - Lifetime FR2735253B1 (fr) 1995-06-08 1996-03-05 Synchronisation de donnees entre plusieurs dispositifs de restitution asynchrones de donnees

Country Status (5)

Country Link
US (1) US5847717A (fr)
JP (1) JP3888478B2 (fr)
DE (1) DE19620263B4 (fr)
FR (1) FR2735253B1 (fr)
GB (1) GB2301998B (fr)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6738058B1 (en) * 1997-04-30 2004-05-18 Ati Technologies, Inc. Method and apparatus for three dimensional graphics processing
US6259455B1 (en) * 1998-06-30 2001-07-10 Cirrus Logic, Inc. Method and apparatus for applying specular highlighting with specular components included with texture maps
US7982740B2 (en) 1998-11-09 2011-07-19 Broadcom Corporation Low resolution graphics mode support using window descriptors
US6608630B1 (en) 1998-11-09 2003-08-19 Broadcom Corporation Graphics display system with line buffer control scheme
US6768774B1 (en) 1998-11-09 2004-07-27 Broadcom Corporation Video and graphics system with video scaling
US20030158786A1 (en) * 1999-02-26 2003-08-21 Skyline Software Systems, Inc. Sending three-dimensional images over a network
US6181352B1 (en) 1999-03-22 2001-01-30 Nvidia Corporation Graphics pipeline selectively providing multiple pixels or multiple textures
EP1364298B1 (fr) * 2000-11-12 2013-08-28 Advanced Micro Devices, Inc. Moteur de rendu tridimensionnel a memoire incorporee
US7301971B2 (en) * 2003-08-11 2007-11-27 Eastman Kodak Company Method and apparatus for continuous synchronization of a plurality of asynchronous data sources
US8063916B2 (en) 2003-10-22 2011-11-22 Broadcom Corporation Graphics layer reduction for video composition
US8144156B1 (en) 2003-12-31 2012-03-27 Zii Labs Inc. Ltd. Sequencer with async SIMD array
US7312801B2 (en) * 2005-02-25 2007-12-25 Microsoft Corporation Hardware accelerated blend modes
JP4218840B2 (ja) * 2005-05-27 2009-02-04 株式会社ソニー・コンピュータエンタテインメント 描画処理装置および描画処理方法
US8207972B2 (en) * 2006-12-22 2012-06-26 Qualcomm Incorporated Quick pixel rendering processing
US8497608B2 (en) * 2011-01-28 2013-07-30 Remy Technologies, Llc Electric machine cooling system and method
GB2518019B (en) * 2013-12-13 2015-07-22 Aveva Solutions Ltd Image rendering of laser scan data
US10235784B2 (en) * 2016-12-22 2019-03-19 Sap Se Color synchronization across a story
CN112767523A (zh) * 2021-01-20 2021-05-07 四川湖山电器股份有限公司 一种图像渲染及漫游方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5029225A (en) * 1986-09-24 1991-07-02 Daikin Industries, Ltd. Texture mapping apparatus
EP0475422A2 (fr) * 1990-09-14 1992-03-18 Hughes Aircraft Company Processeur de rendu graphique multifonction à haute performance
US5388206A (en) * 1992-11-13 1995-02-07 The University Of North Carolina Architecture and apparatus for image generation

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2177526B (en) * 1985-06-24 1990-02-14 Pixar Selective operation of processing elements in a single instruction, multiple data stream (simd)computer system
US5412611A (en) * 1992-03-17 1995-05-02 Fujitsu, Limited FIFO memory device capable of writing contiguous data into rows
US5394524A (en) * 1992-08-07 1995-02-28 International Business Machines Corporation Method and apparatus for processing two graphics data streams in parallel
US5392393A (en) * 1993-06-04 1995-02-21 Sun Microsystems, Inc. Architecture for a high performance three dimensional graphics accelerator
US5444845A (en) * 1993-06-29 1995-08-22 Samsung Electronics Co., Ltd. Raster graphics system having mask control logic

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5029225A (en) * 1986-09-24 1991-07-02 Daikin Industries, Ltd. Texture mapping apparatus
EP0475422A2 (fr) * 1990-09-14 1992-03-18 Hughes Aircraft Company Processeur de rendu graphique multifonction à haute performance
US5388206A (en) * 1992-11-13 1995-02-07 The University Of North Carolina Architecture and apparatus for image generation

Also Published As

Publication number Publication date
GB2301998A (en) 1996-12-18
FR2735253B1 (fr) 1999-10-22
GB2301998B (en) 2000-01-19
JP3888478B2 (ja) 2007-03-07
DE19620263B4 (de) 2006-07-27
GB9611749D0 (en) 1996-08-07
JPH096973A (ja) 1997-01-10
DE19620263A1 (de) 1996-12-12
US5847717A (en) 1998-12-08

Similar Documents

Publication Publication Date Title
FR2735253A1 (fr) Synchronisation de donnees entre plusieurs dispositifs de restitution asynchrones de donnees
Merritt et al. [26] Raster3D: Photorealistic molecular graphics
US7142709B2 (en) Generating image data
US8115767B2 (en) Computer graphics shadow volumes using hierarchical occlusion culling
EP1527599B1 (fr) Procede et systeme permettant a un utilisateur de melanger en temps reel des images de synthese avec des images video
US6532013B1 (en) System, method and article of manufacture for pixel shaders for programmable shading
US6342884B1 (en) Method and apparatus for using a general three-dimensional (3D) graphics pipeline for cost effective digital image and video editing, transformation, and representation
EP1182618A2 (fr) Mélangeur de nuances arborescentes récirculantes pour un système graphique
FR2586838A1 (fr) Processeur d'elimination de faces cachees pour la synthese d'images a trois dimensions
FR2735267A1 (fr) Systeme et procede de convertisseur de balayage de triangles a tampons de trame entrelaces en deux dimensions
US20120256906A1 (en) System and method to render 3d images from a 2d source
US6806886B1 (en) System, method and article of manufacture for converting color data into floating point numbers in a computer graphics pipeline
US20040179262A1 (en) Open GL
US7064755B2 (en) System and method for implementing shadows using pre-computed textures
US6597357B1 (en) Method and system for efficiently implementing two sided vertex lighting in hardware
CN111161392A (zh) 一种视频的生成方法、装置及计算机系统
EP1214689B1 (fr) Procede et dispositif permettant de rendre une image avec refraction
US20080150943A1 (en) Accurate transparency and local volume rendering
EP1026636B1 (fr) Traitement d'images
US6590574B1 (en) Method, system, and computer program product for simulating camera depth-of-field effects in a digital image
US5793372A (en) Methods and apparatus for rapidly rendering photo-realistic surfaces on 3-dimensional wire frames automatically using user defined points
TWI272549B (en) Method and apparatus for producing animation
FR2735259A1 (fr) Systeme de graphiques d'ordinateur a marquage de profondeur par pixel
US6559844B1 (en) Method and apparatus for generating multiple views using a graphics engine
Stephenson Essential RenderMan®

Legal Events

Date Code Title Description
TP Transmission of property
PLFP Fee payment

Year of fee payment: 20