FR2735259A1 - Systeme de graphiques d'ordinateur a marquage de profondeur par pixel - Google Patents

Systeme de graphiques d'ordinateur a marquage de profondeur par pixel Download PDF

Info

Publication number
FR2735259A1
FR2735259A1 FR9603953A FR9603953A FR2735259A1 FR 2735259 A1 FR2735259 A1 FR 2735259A1 FR 9603953 A FR9603953 A FR 9603953A FR 9603953 A FR9603953 A FR 9603953A FR 2735259 A1 FR2735259 A1 FR 2735259A1
Authority
FR
France
Prior art keywords
triangle
depth
depth mark
pixel
circuit
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
FR9603953A
Other languages
English (en)
Other versions
FR2735259B1 (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 FR2735259A1 publication Critical patent/FR2735259A1/fr
Application granted granted Critical
Publication of FR2735259B1 publication Critical patent/FR2735259B1/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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading

Abstract

L'invention concerne un appareil de marquage de profondeur de couleurs, inclus dans un système de graphiques d'ordinateurs. Il comprend: un premier circuit (10), qui détermine pour chaque sommet d'un triangle une valeur de facteur d'échelle de marque de profondeur au sommet; un deuxième circuit (110) qui détermine des paramètres de traçage de marque de profondeur du triangle; un troisième circuit (112) qui détermine pour chaque pixel du triangle une valeur de facteur d'échelle de marque de profondeur par pixel; un quatrième circuit (112) qui détermine, pour chacun de ces pixels, des valeurs de couleurs par pixel; facultativement, un cinquième circuit (114), pour mélanger les valeurs de couleurs par pixel et les valeurs de couleurs à application de texture pour produire des valeurs de couleurs résultantes par pixel; et un circuit suivant, cinquième ou sixième, (116), qui détermine, pour chacun de ces pixels, des valeurs de couleurs à marquage de profondeur par pixel. L'invention concerne aussi un procédé correspondant.

Description

La présente invention concerne un traçage de couleurs dans des systèmes de
graphiques d'ordinateurs et, plus particulièrement des procédés et un appareil destinés à exécuter un marquage de profondeur sur une base par pixel. 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 typiques de graphiques d'ordinateurs, 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 oeuvre pour rendre, en d'autres termes tracer, 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 à tracer 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 traceur 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 texture à 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 bidimensionnelle. 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 utilisee.
Des systèmes graphiques de l'art antérieur à accélérateurs de géométrie sous forme de matériel utilisent typiquement un modèle regroupé pour calculer une marque de profondeur. Le marquage de profondeur est effectué jusqu'ici sur une base par sommet. Un facteur d'échelle de marque de profondeur est déterminé pour chaque sommet sur la base de la valeur de sa coordonnée Z. Puis, les valeurs de couleurs sont calculées pour chaque sommet en fonction d'équations d'éclairage et du facteur d'échelle de marque de profondeur. Les valeurs de couleurs sont envoyées sous la forme de paramètres de traçage à un convertisseur
de balayage, du type matériel.
L'apparition de l'application de texture, mise en oeuvre sous forme de matériel, a compliqué le processus de marquage de profondeur. Comme décrit plus haut, une application de texture est une technique destinée à colorer l'intérieur d'un polygone tridimensionnel au moyen du contenu d'une application de pixels bidimensionnelle (ou texture). Le matériel d'application de texture produit typiquement des couleurs de texture, ou texels, sur une base par pixel. Les texels sont combinés sur une base par pixel avec les valeurs de couleurs engendrées par le convertisseur de balayage de manière à produire des valeurs résultantes de couleurs de pixels pour l'affichage. Le marquage de profondeur peut être appliqué à des polygones nuancés tout autant qu'à des polygones à application de texture. Cependant, le modèle regroupé destiné au marquage de profondeur sur une base par sommet ne fonctionne pas dans des systèmes dans lesquels l'application de texture est mise en oeuvre par un moyen matériel. Les paramètres des sommets à marquage de profondeur sont interpolés dans le convertisseur de balayage pour produire des paramètres de pixels individuels. Les paramètres de pixels sont ensuite mélangés avec les texels correspondants qui proviennent du matériel d'application de texture pour produire des valeurs résultantes de couleurs de
pixels.
On peut cependant montrer qu'un marquage de profondeur appliqué aux valeurs de couleurs utilisées par le convertisseur de balayage n'influence pas de façon appropriée les valeurs à application de texture et produit des valeurs résultantes incorrectes de couleurs. C'est un but de la présente invention que de remédier à ces insuffisances de l'état antérieur en produisant un système de graphiques pour ordinateurs qui permette un marquage de profondeur sur une base
par pixel.
Pour atteindre ce but, la présente invention réalise, selon un premier aspect, un appareil destiné à un marquage de profondeur de couleurs, inclus dans un système de graphiques d'ordinateurs, caractérisé en ce qu'il comprend: un premier circuit, qui répond à une fonction de facteur d'échelle de marque de profondeur et à des paramètres de sommets d'un triangle à afficher sous la forme d'une série de pixels, pour déterminer pour chaque sommet du triangle une valeur de facteur d'échelle de marque de profondeur au sommet; un deuxième circuit, qui répond aux valeurs de facteur d'échelle de marque de profondeur au sommet et aux paramètres de sommets du triangle pour déterminer des paramètres de traçage de marque de profondeur du triangle; un troisième circuit, qui répond à la valeur de facteur d'échelle de marque de profondeur au sommet pour un sommet sélectionné du triangle et aux paramètre de traçage de marque de profondeur pour déterminer pour chacun des pixels du triangle une valeur de facteur d'échelle de marque de profondeur par pixel; un quatrième circuit, qui répond aux paramètres de sommets du triangle pour déterminer pour chacun des pixels du triangle des valeurs de couleurs par pixel; et un cinquième circuit, qui répond à la valeur de facteur d'échelle de marque de profondeur du pixel, aux valeurs de couleurs par pixel et à une couleur de marque de profondeur pour déterminer pour chacun des pixels du triangle, des valeurs de couleurs à marquage
de profondeur par pixel.
Le deuxième circuit peut inclure un moyen destiné à déterminer une première pente du facteur d'échelle de marque de profondeur le long d'un bord du triangle adjacent au sommet sélectionné et une deuxième pente du facteur d'échelle de marque de profondeur le long
d'une direction de rangée de pixels.
Ledit troisième circuit peut inclure un générateur de bord à progression pas à pas, que l'on appellera simplement générateur de bord dans la
présente description, sans répéter les mots à
progression pas-à-pas, pour déterminer une valeur de facteur d'échelle de marque de profondeur à chaque rangée de pixels le long dudit bord et un générateur de portée à progression pas à pas pour déterminer pour chaque rangée de pixels du triangle la valeur de
facteur d'échelle de marque de profondeur par pixel.
Le cinquième circuit peut inclure un moyen destiné à déterminer les valeurs de couleurs à marque de profondeur par pixel selon l'équation suivante couleur de pixel à marque de profondeur = couleur de pixel x facteur d'échelle de marque de profondeur + couleur de marque de profondeur x (1 - facteur
d'échelle de marque de profondeur).
Selon un deuxième aspect, l'invention réalise un appareil destiné à un marquage de profondeur de couleurs, inclus dans un système de graphiques d'ordinateurs, qui comporte un matériel d'application de texture pour engendrer des valeurs de couleurs à application de texture, caractérisé en ce qu'il comprend: un premier circuit, qui répond à une fonction de facteur d'échelle de marque de profondeur et à des paramètres de sommets d'un triangle à afficher sous la forme d'une série de pixels, pour déterminer pour chaque sommet du triangle une valeur de facteur d'échelle de marque de profondeur au sommet; un deuxième circuit, qui répond aux valeurs de facteur d'échelle de marque de profondeur au sommet et aux paramètres de sommets du triangle pour déterminer des paramètres de traçage de marque de profondeur du triangle; un troisième circuit, qui répond à la valeur de facteur d'échelle de marque de profondeur au sommet pour un sommet sélectionné du triangle et aux paramètre de traçage de marque de profondeur pour déterminer pour chacun des pixels du triangle une valeur de facteur d'échelle de marque de profondeur par pixel; un quatrième circuit, qui répond aux paramètres de sommets du triangle pour déterminer pour chacun des pixels du triangle des valeurs de couleurs par pixel; un cinquième circuit, pour mélanger les valeurs de couleurs par pixel et les valeurs de couleurs à application de texture pour produire des valeurs de couleurs résultantes par pixel; et un sixième circuit qui répond à la valeur de facteur d'échelle de marque de profondeur du pixel, aux valeurs de couleurs résultantes par pixel et à une couleur de marque de profondeur pour déterminer pour chacun des pixels du triangle, des valeurs de couleurs
à marquage de profondeur par pixel.
Comme pour l'appareil qui constitue le premier aspect de l'invention, le deuxième circuit peut inclure un moyen destiné à déterminer une première pente du facteur d'échelle de marque de profondeur le long d'un bord du triangle adjacent au sommet sélectionné et une deuxième pente du facteur d'échelle de marque de profondeur le long d'une direction de rangée de pixels; et/ou ledit troisième circuit peut inclure un générateur de bord à progression pas à pas pour déterminer une valeur de facteur d'échelle de marque de profondeur à chaque rangée de pixels le long dudit bord et un générateur de portée à progression pas à pas pour déterminer pour chaque rangée de pixels du triangle la valeur de facteur d'échelle de marque de profondeur par pixel; et/ou le cinquième circuit peut inclure un moyen destiné à déterminer les valeurs de couleurs à marque de profondeur par pixel selon l'équation suivante couleur de pixel à marque de profondeur = couleur de pixel x facteur d'échelle de marque de profondeur + couleur de marque de profondeur x (1 - facteur
d'échelle de marque de profondeur).
Selon un troisième aspect, l'invention fournit un procédé de marquage de profondeur de couleurs dans un affichage de graphiques, à mettre en oeuvre dans un système de graphiques d'ordinateurs qui comprend un matériel d'accélérateur de géométrie et un convertisseur de balayage pour engendrer un affichage graphique sur un écran d'affichage vidéo, caractérisé en ce qu'il comprend les étapes consistant à: déterminer dans un premier circuit, pour chaque sommet d'un triangle à afficher sous la forme d'une série de pixels, un facteur d'échelle de marque de profondeur au sommet en réponse à un facteur d'échelle de marque de profondeur et à des paramètres de sommets du triangle; déterminer, dans un deuxième circuit, des paramètres de traçage de marque de profondeur du triangle en réponse aux valeurs de facteurs d'échelle de marque de profondeur aux sommets et aux paramètres des sommets du triangle; déterminer dans un troisième circuit, pour chacun des pixels de triangle, une valeur de facteur d'échelle de marque de profondeur par pixel en réponse à la valeur de facteur d'échelle de marque de profondeur au sommet pour un sommet sélectionné du triangle et des paramètres de traçage de marque de profondeur; déterminer dans un quatrième circuit, pour chacun des pixels du triangle, des valeurs de couleurs par pixel en réponse aux paramètres des sommets du triangle; et déterminer dans un cinquième circuit, pour chacun des pixels du triangle, des valeurs de couleurs à marque de profondeur par pixel en réponse à la valeur de facteur d'échelle de marque de profondeur par pixel, aux valeurs de couleurs par pixel et à une
valeur de marque de profondeur.
En particulier, si ledit système de graphiques d'ordinateurs inclut un matériel d'application de texture pour engendrer des valeurs de couleurs à application de texture, le procédé peut comprendre en outre l'étape consistant à: mélanger les valeurs de couleur par pixel et les valeurs de couleurs à application de texture pour produire des valeurs de couleurs résultantes par pixel, l'étape de détermination des valeurs de couleurs à marquage de profondeur par pixel utilisant des valeurs de couleurs résultantes des pixels après l'étape de mélange des valeurs de couleurs par pixel
et des valeurs de couleurs à application de texture.
Selon un quatrième aspect, l'invention fournit un procédé de marquage de profondeur de couleurs dans un affichage de graphiques, à mettre en oeuvre dans un système de graphiques d'ordinateurs qui comprend un matériel d'accélérateur de géométrie, un matériel d'application de texture pour engendrer des valeurs de couleurs à application de texture et un convertisseur de balayage pour engendrer un affichage graphique sur un écran d'affichage vidéo, caractérisé en ce qu'il comprend les étapes consistant à: déterminer dans un premier circuit, pour chaque sommet d'un triangle à afficher sous la forme d'une série de pixels, un facteur d'échelle de marque de profondeur au sommet en réponse à un facteur d'échelle de marque de profondeur et à des paramètres de sommets du triangle; déterminer, dans un deuxième circuit, des paramètres de traçage de marque de profondeur du triangle en réponse aux valeurs de facteurs d'échelle de marque de profondeur aux sommets et aux paramètres des sommets du triangle; déterminer dans un troisième circuit, pour chacun des pixels de triangle, une valeur de facteur d'échelle de marque de profondeur par pixel en réponse à la valeur de facteur d'échelle de marque de profondeur au sommet pour un sommet sélectionné du triangle et des paramètres de traçage de marque de profondeur; déterminer dans un quatrième circuit, pour chacun des pixels du triangle, des valeurs de couleurs par pixel en réponse aux paramètres des sommets du triangle; mélanger dans un cinquième circuit, pour chacun des pixels du triangle, les valeurs de couleurs par pixel et les valeurs de couleur à application de texture pour produire des valeurs de couleurs résultantes par pixel, et déterminer dans un sixième circuit, pour chacun des pixels du triangle, des valeurs de couleurs à marque de profondeur par pixel en réponse à la valeur de facteur d'échelle de marque de profondeur par pixel, aux valeurs de couleurs résultantes par pixel
et à une couleur de marque de profondeur.
Les buts, particularités et avantages de la présente invention cités cidessus ainsi que d'autres
ressortiront mieux de la lecture de la description qui
suit de modes de réalisation préférés de l'invention en se référant aux dessins annexés dans lesquels: il la FIG. 1 est un schéma fonctionnel d'un premier mode de réalisation d'un système de graphiques d'ordinateurs qui incorpore la présente invention; la FIG. 2 est un schéma fonctionnel d'un deuxième mode de réalisation d'un système de graphiques d'ordinateurs qui incorpore la présente invention; la FIG. 3 est un schéma fonctionnel d'un convertisseur de balayage qui incorpore un marquage de profondeur par pixel selon la présente invention; la FIG. 4 est un schéma fonctionnel du générateur de pixels représenté à la FIG. 3; la FIG. 5 est un schéma fonctionnel représentatif de chaque interpolateur de paramètre représenté à la
FIG. 4;
la FIG. 6 est un graphe d'un facteur d'échelle de marque de profondeur en fonction de la profondeur le long de l'axe Z; et la FIG. 7 est une illustration du processus de
traçage du triangle.
On décrira d'abord, en se référant à la Fig. 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 à tracer. 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 Fig. 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 tridimensionnelle 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 opérations appropriées effectuées par chaque microplaquette accélératrice de géométrie tridimensionnelle sont décrites de façon plus détaillée ci- dessous. 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 bidimensionnelle 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 tracé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 à tracer 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.
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 à E 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. 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 traçage qui est envoyé par la carte 10 d'entrée de données en
passant par le bus 18.
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 60D à 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 tracé 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 Fig. 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 Fig. 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 Fig. 2 est semblable à celui du système de la Fig. 1 décrit ci-dessus. La réplique du matériel selon le mode de réalisation de la Fig. 2 permet une largeur de bande accrue du système parce que certaines opérations de tracé de primitive peuvent être exécutées en parallèle sur des
primitives multiples.
On va maintenant décrire en se référant à la Fig. 3, un marquage de profondeur par pixel selon la présente invention. Une partie gauche de la Fig. 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 Fig. 1. La partie droite de la Fig. 3 appelée "convertisseur de balayage" représente le circuit des microplaquettes A, 50B, 50C, 50D et 50E des dispositifs de commande de tampons de trame de la Fig. 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. L'unité 10 de calcul de bords reçoit également des paramètres de marquage de profondeur comme décrit ci-dessous. En général, l'unité de calcul de bords calcule tous les paramètres de traçage nécessaires au convertisseur de balayage pour le traçage du triangle. Ces paramètres incluent les valeurs de couleurs de début, ou initiales, R, G, B, et a. Les paramètres de traçage incluent également les dérivées partielles de chaque paramètre de couleur par rapport à X et par rapport à un bord E1, du triangle, la dimension la plus grande étant en Y. De plus, l'unité 110 de calcul de bord envoie des paramètres de traçage de marquage de profondeur au convertisseur de balayage, y compris une valeur de facteur d'échelle de marque de profondeur pour le sommet supérieur V0 du triangle et des dérivées partielles, par rapport à X et au bord El, du facteur
d'échelle de marque de profondeur.
Un générateur 112 de pixels inclus dans le convertisseur de balayage interpole indépendamment chacun des paramètres de traçage afin de calculer des coordonnées X et Y et des valeurs de couleurs pour chaque pixel du triangle. 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. 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.
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 Fig. 1. Les texels incluent, pour chaque pixel, des valeurs Rt, Gt, Bt et at de couleurs de texture. Les valeurs de couleurs par pixel qui viennent du générateur 112 de pixels et les texels qui viennent de la microplaquette d'application de texture sont combinés selon un algorithme de mélange sélectionné au préalable pour produire des valeurs résultantes de couleurs. Les valeurs résultantes de couleurs sont envoyées à l'unité 116 de mélange de marque de profondeur. Afin d'assurer que les données en pipe-line restent synchronisées, le facteur d'échelle de marque de profondeur de pixels, envoyé à l'unité 116 de mélange de marque de profondeur, traverse l'unité 114 de mélange de texture, mais il n'y est pas utilisé. L'unité 116 de mélange de marque de profondeur combine, avec les valeurs résultantes de couleurs pour chaque pixel, le facteur d'échelle de marque de profondeur par pixel et une couleur de marque de profondeur de manière à produire, pour chaque pixel, des valeurs à marque de profondeur. Un marquage de profondeur par pixel est plus exact qu'un marquage de profondeur par sommet, parce que les deux interpolations indépendantes de couleurs et de facteur d'échelle de marque de profondeur sont des approximations linéaires. Les interpolations indépendantes sont mélangées pour produire un résultat final. Le mélange implique une multiplication de deux équations du premier ordre, d'o résulte donc une équation du deuxième ordre. Les équations du deuxième ordre peuvent s'approcher plus précisément d'une courbe souhaitée que les équations du premier ordre. Les opérations effectuées par les unités représentées à la FIG. 3 sont maintenant décrites de façon plus détaillée. Comme indiqué ci-dessus, l'unité de calcul de bord détermine un facteur initial d'échelle de marque de profondeur et des dérivées partielles du facteur d'échelle par rapport au bord E1 et X. La valeur initiale du facteur d'échelle de marque de profondeur dépend, pour chaque sommet, de la valeur Z du sommet. Une région de marque de profondeur est établie dans l'espace Z, qui comprend une valeur minimale de Z et une valeur maximale de Z. Des facteurs d'échelle de marque de profondeur sont établis pour les sommets dont les valeurs de Z sont supérieures à la valeur Z maximale de marque de profondeur ou inférieures à la valeur Z minimale de la marque de profondeur. Le facteur d'échelle entre les deux limites de Z, est calculé sous la forme d'une fonction uniforme en rampe entre le facteur d'échelle Z min et le facteur d'échelle Z max. La fonction de facteur d'échelle de marque de profondeur est illustrée à la FIG. 6. L'unité de calcul de bords reçoit de l'ordinateur hôte les paramètres suivants en liaison avec la fonction de facteur d'échelle de marque de profondeur représentée à la FIG. 6: (1) marque de profondeur min Z, (2) marque de profondeur max Z, (3) facteur d'échelle min Z, (4) facteur d'échelle max Z, et
(5) pente de marque de profondeur.
Le facteur d'échelle de marque de profondeur de chaque sommet est déterminé de la manière suivante: Si Z du sommet est inférieure à Z min de la marque de profondeur, facteur d'échelle = facteur d'échelle min Z; Si Z du sommet est supérieure à max Z de la marque de profondeur, facteur d'échelle = facteur d'échelle max Z. Pour le reste, facteur d'échelle = facteur d'échelle min Z + (Z sommet - Z min marque de profondeur) x pente de marque de profondeur. Ceci fournit la valeur initiale du facteur d'échelle de
marque de profondeur au sommet 0 du triangle.
L'unité 110 de calcul de bords calcule aussi des pentes de marque de profondeur, dDC/dX et dDC/dE1 selon les équations suivantes dDC/dX = Y0DC1 - Y1DC0
X2Y1 - Y2X1
dDC/d E1 = (dDC/dX * int(E1Pente)) +dDC/dY o: Xi et Yi, i = 0, 1, 2 sont les coordonnées du sommet i; DCi, i = 0, 1, 2 est le facteur d'échelle de marque de profondeur du sommet i, int() est la valeur intégrale E1 Pente = X2 - X0
Y2 - YO
et dDC/dY = X0DC1 - XlDC0 X2Y1 - Y2x1 Ces valeurs sont utilisées par le générateur de pixels pour déterminer le facteur d'échelle de marque
de profondeur par pixel.
Un schéma fonctionnel du générateur 112 de pixels est représenté à la FIG. 4 Les paramètres de traçage de l'accélérateur de géométrie sont placés dans des registres 130 de paramètres de traçage. Les paramètres respectifs de traçage sont envoyés des registres 130 vers un interpolateur les paramètres suivants 131 de alpha, un interpolateur 132 de rouge 132, un interpolateur 133 de vert, un interpolateur 134 de bleu, un interpolateur 135 de facteur d'échelle de marque 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 qui fonctionnent indépendamment et simultanément sur des paramètres différents afin de
permettre un débit élevé.
En général, chaque paramètre est calculé pour chaque pixel du triangle. Un triangle dont les sommets
sont V0, V1 et V2 est représenté à la Fig. 7.
L'interpolateur 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 initiale du paramètre pour chaque rangée de pixels du triangle. Des rangées , 152, 154 etc. de pixels sont représentées à la Fig. 7. Les valeurs initiales du paramètre sont respectivement déterminées pour des rangées de pixels , 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 Fig. 7, la sécante de la rangée 154 de pixels
consiste en quatre pixels, du pixel 164 au pixel 168.
Les valeurs initiales des paramètres pour chaque rangée de pixels sont déterminées à partir de la valeur initiale du paramètre au sommet V0 et de la pente du paramètre le long du bord E1. Quand les valeurs initiales 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 initiale 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, représentée à la Figure 3.
Un schéma fonctionnel représentatif de chaque interpolateur du générateur 112 de pixels est représenté à la Fig. 5. Un générateur de bord calcule
les paramètres le long des bords de chaque triangle.
Comme représenté à la Figure 5, le générateur de bord inclut deux étages. Un premier générateur 180 de bord engendre des valeurs X et Y pour chaque pixel le long du bord E1 tandis qu'un deuxième générateur 182 de bord calcule les valeurs de couleurs et les valeurs de Z. On préfère utiliser deux 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. Un découpeur de dalles 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 Fig. 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 tracé 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 tracé 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 64 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. 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 traçage. Comme décrit ci-dessus en liaison avec la Fig. 4, le générateur 112 de pixels produit, pour chaque pixel, des valeurs interpolées de paramètres pour le rouge, le vert, le bleu, l'alpha, le facteur d'échelle de marque de profondeur, le rouge
spéculaire, le vert spéculaire et le bleu spéculaire.
Des circuits d'interpolation destinés à engendrer des valeurs paramétriques par pixel, à partir des paramètres de tracé 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 Fig. 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. 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 un tracé 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 tracé 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 alpha 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.
L'unité 116 de mélange de marque de profondeur réalise un marquage de profondeur de chaque valeur de pixel sur une base par pixel. L'unité 116 de mélange de marque par couleur met en oeuvre l'équation suivante: couleur de pixel à marque de profondeur = couleur de pixel x facteur d'échelle de marque de
profondeur + couleur de marque de profondeur x (1 -
facteur d'échelle de marque de profondeur).
La couleur de pixel utilisée dans l'équation ci-
dessus est la valeur résultante de couleur reçue de l'unité 114 de mélange de texture. Le facteur d'échelle de marque de profondeur est la valeur par pixel calculée par le générateur 112 de pixels. La couleur de marque de profondeur est spécifiée par l'ordinateur hôte et est fixe pour chaque triangle. La couleur de marque de profondeur est typiquement la couleur noire, mais sa valeur de couleur peut être autre. Le résultat est, pour chaque pixel du triangle, une valeur de couleur à marque de profondeur par pixel. L'approche par pixel produit, en ce qui concerne le marquage de profondeur, une représentation plus exacte du marquage de profondeur que l'approche par sommet. Ceci résulte de la forme de l'équation de la
valeur de couleur de pixel à marque de profondeur.
Dans le cas d'un marquage de profondeur au sommet qui est interpolé de façon linéaire dans le convertisseur de balayage, la couleur finale de pixels est représentée par une équation du premier ordre. Dans le cas d'un marquage de profondeur par pixel, tant les couleurs que le facteur d'échelle de marquage de profondeur font l'objet d'une interpolation linéaire et ils sont ensuite mélangés, de sorte que la couleur finale de pixel est représentée par une équation du deuxième degré, ce qui offre une meilleure exactitude. L'approche par pixel à la marque de profondeur permet l'application appropriée d'un marquage de
profondeur à des polygones à application de texture.
Un marquage de profondeur peut aussi être effectué quand l'application de texture a été appliquée. Dans le cas contraire, l'information de marque de profondeur est soumise à distorsion ou même perdue: par exemple dans le mode de mélange de texels à remplacement. Les circuits décrits ici 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 tracée de 0,6 micron, et qui fonctionnent à 3, 3 volts, ou tout 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.
Alors que ce qui est considéré comme les modes de réalisations actuellement préférés de la présente invention a été représenté et décrit, il est évident pour l'homme de l'art que de nombreuses variantes et modifications peuvent être apportées sans s'écarter du cadre de l'invention tel qu'il est défini par les
revendications annexées.

Claims (11)

REVENDICATIONS
1. Appareil destiné à un marquage de profondeur de couleurs, inclus dans un système de graphiques d'ordinateurs, caractérisé en ce qu'il comprend: un premier circuit (10), qui répond à une fonction de facteur d'échelle de marque de profondeur et à des paramètres de sommets d'un triangle à afficher sous la forme d'une série de pixels, pour déterminer pour chaque sommet du triangle une valeur de facteur d'échelle de marque de profondeur au sommet; un deuxième circuit (110), qui répond aux valeurs de facteur d'échelle de marque de profondeur au sommet et aux paramètres de sommets du triangle pour déterminer des paramètres de traçage de marque de profondeur du triangle; un troisième circuit (112), qui répond à la valeur de facteur d'échelle de marque de profondeur au sommet pour un sommet sélectionné du triangle et aux paramètre de traçage de marque de profondeur pour déterminer pour chacun des pixels du triangle une valeur de facteur d'échelle de marque de profondeur par pixel; un quatrième circuit (112), qui répond aux paramètres de sommets du triangle pour déterminer pour chacun des pixels du triangle des valeurs de couleurs par pixel; et un cinquième circuit (116), qui répond à la valeur de facteur d'échelle de marque de profondeur du pixel, aux valeurs de couleurs par pixel et à une couleur de marque de profondeur pour déterminer pour chacun des pixels du triangle, des valeurs de couleurs
à marquage de profondeur par pixel.
2. Appareil selon la revendication 1, caractérisé en ce que le deuxième circuit (110) inclut un moyen destiné à déterminer une première pente du facteur d'échelle de marque de profondeur le long d'un bord du triangle adjacent au sommet sélectionné et une deuxième pente du facteur d'échelle de marque de profondeur le long
d'une direction de rangée de pixels.
3. Appareil selon la revendication 1, caractérisé en ce que ledit troisième circuit (112) inclut un générateur de bord à progression pas à pas (180, 182) pour déterminer une valeur de facteur d'échelle de marque de profondeur à chaque rangée de pixels le long dudit bord et un générateur de portée à progression pas à pas (192) pour déterminer pour chaque rangée de pixels du triangle la valeur de facteur d'échelle de
marque de profondeur par pixel.
4. Appareil selon la revendication 1, caractérisé en ce que le cinquième circuit (116) inclut un moyen destiné à déterminer les valeurs de couleurs à marque de profondeur par pixel selon l'équation suivante couleur de pixel à marque de profondeur = couleur de pixel x facteur d'échelle de marque de profondeur + couleur de marque de profondeur x (1 - facteur
d'échelle de marque de profondeur).
5. Appareil destiné à un marquage de profondeur de couleurs, inclus dans un système de graphiques d'ordinateurs, qui comporte un matériel (12) d'application de texture pour engendrer des valeurs de couleurs à application de texture, caractérisé en ce qu'il comprend: un premier circuit (10), qui répond à une fonction de facteur d'échelle de marque de profondeur et à des paramètres de sommets d'un triangle à afficher sous la forme d'une série de pixels, pour déterminer pour chaque sommet du triangle une valeur de facteur d'échelle de marque de profondeur au sommet; un deuxième circuit (110), qui répond aux valeurs de facteur d'échelle de marque de profondeur au sommet et aux paramètres de sommets du triangle pour déterminer des paramètres de traçage de marque de profondeur du triangle; un troisième circuit (112), qui répond à la valeur de facteur d'échelle de marque de profondeur au sommet pour un sommet sélectionné du triangle et aux paramètre de traçage de marque de profondeur pour déterminer pour chacun des pixels du triangle une valeur de facteur d'échelle de marque de profondeur par pixel; un quatrième circuit (112), qui répond aux paramètres de sommets du triangle pour déterminer pour chacun des pixels du triangle des valeurs de couleurs par pixel; un cinquième circuit (114), pour mélanger les valeurs de couleurs par pixel et les valeurs de couleurs à application de texture pour produire des valeurs de couleurs résultantes par pixel; et un sixième circuit (116) qui répond à la valeur de facteur d'échelle de marque de profondeur du pixel, aux valeurs de couleurs résultantes par pixel et à une couleur de marque de profondeur pour déterminer pour chacun des pixels du triangle, des valeurs de couleurs
à marquage de profondeur par pixel.
6. Appareil selon la revendication 5, caractérisé en ce que le deuxième circuit (110) inclut un moyen destiné à déterminer une première pente du facteur d'échelle de marque de profondeur le long d'un bord du triangle adjacent au sommet sélectionné et une deuxième pente du facteur d'échelle de marque de profondeur le long
d'une direction de rangée de pixels.
7. Appareil selon la revendication 5, caractérisé en ce que ledit troisième circuit (112) inclut un générateur de bord à progression pas à pas (180, 182) pour déterminer une valeur de facteur d'échelle de marque de profondeur à chaque rangée de pixels le long dudit bord et un générateur de portée à progression pas à pas (192) pour déterminer pour chaque rangée de pixels du triangle la valeur de facteur d'échelle de
marque de profondeur par pixel.
8. Appareil selon la revendication 5, caractérisé en ce que le sixième circuit (116) inclut un moyen destiné à déterminer les valeurs de couleurs à marque de profondeur par pixel selon l'équation suivante couleur de pixel à marque de profondeur = couleur de pixel x facteur d'échelle de marque de profondeur + couleur de marque de profondeur x (1 - facteur
d'échelle de marque de profondeur).
9. Procédé de marquage de profondeur de couleurs dans un affichage de graphiques, à mettre en oeuvre dans un système de graphiques d'ordinateurs qui comprend un matériel d'accélérateur de géométrie et un convertisseur de balayage pour engendrer un affichage graphique sur un écran d'affichage vidéo, caractérisé en ce qu'il comprend les étapes consistant à: déterminer dans un premier circuit (10), pour chaque sommet d'un triangle à afficher sous la forme d'une série de pixels, un facteur d'échelle de marque de profondeur au sommet en réponse à un facteur d'échelle de marque de profondeur et à des paramètres de sommets du triangle; déterminer, dans un deuxième circuit (110), des paramètres de traçage de marque de profondeur du triangle en réponse aux valeurs de facteurs d'échelle de marque de profondeur aux sommets et aux paramètres des sommets du triangle; déterminer dans un troisième circuit (112), pour chacun des pixels de triangle, une valeur de facteur d'échelle de marque de profondeur par pixel en réponse à la valeur de facteur d'échelle de marque de profondeur au sommet pour un sommet sélectionné du triangle et des paramètres de traçage de marque de profondeur; déterminer dans un quatrième circuit (112), pour chacun des pixels du triangle, des valeurs de couleurs par pixel en réponse aux paramètres des sommets du triangle; et déterminer dans un cinquième circuit, pour chacun des pixels du triangle, des valeurs de couleurs à marque de profondeur par pixel en réponse à la valeur de facteur d'échelle de marque de profondeur par pixel, aux valeurs de couleurs par pixel et à une
valeur de marque de profondeur.
10. Procédé selon la revendication 9, à mettre en oeuvre dans ledit système de graphiques d'ordinateurs si celui-ci inclut un matériel d'application de texture pour engendrer des valeurs de couleurs à application de texture, caractérisé en ce qu'il comprend en outre l'étape consistant à: mélanger les valeurs de couleur par pixel et les valeurs de couleurs à application de texture pour produire des valeurs de couleurs résultantes par pixel, l'étape de détermination des valeurs de couleurs à marquage de profondeur par pixel utilisant des valeurs de couleurs résultantes des pixels après l'étape de mélange des valeurs de couleurs par pixel
et des valeurs de couleurs à application de texture.
11. Procédé de marquage de profondeur de couleurs dans un affichage de graphiques, à mettre en oeuvre dans un système de graphiques d'ordinateurs qui comprend un matériel d'accélérateur de géométrie, un matériel d'application de texture pour engendrer des valeurs de couleurs à application de texture et un convertisseur de balayage pour engendrer un affichage graphique sur un écran d'affichage vidéo, caractérisé en ce qu'il comprend les étapes consistant à: déterminer dans un premier circuit, pour chaque sommet d'un triangle à afficher sous la forme d'une série de pixels, un facteur d'échelle de marque de profondeur au sommet en réponse à un facteur d'échelle de marque de profondeur et à des paramètres de sommets du triangle; déterminer, dans un deuxième circuit (110), des paramètres de traçage de marque de profondeur du triangle en réponse aux valeurs de facteurs d'échelle de marque de profondeur aux sommets et aux paramètres des sommets du triangle; déterminer dans un troisième circuit (112), pour chacun des pixels de triangle, une valeur de facteur d'échelle de marque de profondeur par pixel en réponse à la valeur de facteur d'échelle de marque de profondeur au sommet pour un sommet sélectionné du triangle et des paramètres de traçage de marque de profondeur; déterminer dans un quatrième circuit (112), pour chacun des pixels du triangle, des valeurs de couleurs par pixel en réponse aux paramètres des sommets du triangle; mélanger dans un cinquième circuit, pour chacun des pixels du triangle, les valeurs de couleurs par pixel et les valeurs de couleur à application de texture pour produire des valeurs de couleurs résultantes par pixel, et déterminer dans un sixième circuit, pour chacun des pixels du triangle, des valeurs de couleurs à marque de profondeur par pixel en réponse à la valeur de facteur d'échelle de marque de profondeur par pixel, aux valeurs de couleurs résultantes par pixel
et à une couleur de marque de profondeur.
FR9603953A 1995-06-08 1996-03-29 Systeme de graphiques d'ordinateur a marquage de profondeur par pixel Expired - Lifetime FR2735259B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/488,641 US5704025A (en) 1995-06-08 1995-06-08 Computer graphics system having per pixel depth cueing

Publications (2)

Publication Number Publication Date
FR2735259A1 true FR2735259A1 (fr) 1996-12-13
FR2735259B1 FR2735259B1 (fr) 1999-09-03

Family

ID=23940513

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9603953A Expired - Lifetime FR2735259B1 (fr) 1995-06-08 1996-03-29 Systeme de graphiques d'ordinateur a marquage de profondeur par pixel

Country Status (5)

Country Link
US (1) US5704025A (fr)
JP (1) JP3821880B2 (fr)
DE (1) DE19620858B4 (fr)
FR (1) FR2735259B1 (fr)
GB (1) GB2302001B (fr)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3226153B2 (ja) * 1996-03-18 2001-11-05 シャープ株式会社 マルチメディアデータ表示装置
JP3763136B2 (ja) * 1996-12-27 2006-04-05 ソニー株式会社 描画方法および描画装置
US5914724A (en) * 1997-06-30 1999-06-22 Sun Microsystems, Inc Lighting unit for a three-dimensional graphics accelerator with improved handling of incoming color values
US7796132B1 (en) * 1999-11-18 2010-09-14 Namco Bandai Games Inc. Image generation system and program
JP2005521123A (ja) * 2001-10-22 2005-07-14 ライカ ミクロジュステムス ヴェツラー ゲーエムベーハー 光学顕微鏡検出3次元画像の生成方法及び生成装置
DE10331231B4 (de) * 2003-07-10 2005-12-15 Eads Deutschland Gmbh Verfahren zur Übertragung von Tiefeninformationen in den Tiefenspeicher einer Grafikkarte für die Darstellung von 3D-Panoramabildern
JP2005100176A (ja) * 2003-09-25 2005-04-14 Sony Corp 画像処理装置およびその方法
DE602004026291D1 (de) * 2004-07-30 2010-05-12 St Microelectronics Srl Farbinterpolation mit datenabhängiger Triangulation
US7312801B2 (en) * 2005-02-25 2007-12-25 Microsoft Corporation Hardware accelerated blend modes
US7545385B2 (en) * 2005-12-22 2009-06-09 Samsung Electronics Co., Ltd. Increased color depth, dynamic range and temporal response on electronic displays
DE102007008767B3 (de) * 2007-02-22 2008-07-24 Tomtec Imaging Systems Gmbh Verfahren und Vorrichtung zur Darstellung von 3D Bilddatensätzen auf 2D Bildern

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0329101A2 (fr) * 1988-02-16 1989-08-23 Kabushiki Kaisha Toshiba Appareil de traitement graphique tridimensionnel
US5237650A (en) * 1989-07-26 1993-08-17 Sun Microsystems, Inc. Method and apparatus for spatial anti-aliased depth cueing

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5063375A (en) * 1987-07-27 1991-11-05 Sun Microsystems, Inc. Method and apparatus for shading images
CA2038412C (fr) * 1990-04-26 2001-10-16 Glenn M. Courtright Machine de tri de polygones
US5179638A (en) * 1990-04-26 1993-01-12 Honeywell Inc. Method and apparatus for generating a texture mapped perspective view

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0329101A2 (fr) * 1988-02-16 1989-08-23 Kabushiki Kaisha Toshiba Appareil de traitement graphique tridimensionnel
US5237650A (en) * 1989-07-26 1993-08-17 Sun Microsystems, Inc. Method and apparatus for spatial anti-aliased depth cueing

Also Published As

Publication number Publication date
JPH096988A (ja) 1997-01-10
FR2735259B1 (fr) 1999-09-03
GB9611672D0 (en) 1996-08-07
JP3821880B2 (ja) 2006-09-13
US5704025A (en) 1997-12-30
GB2302001A (en) 1996-12-18
GB2302001B (en) 1999-09-22
DE19620858A1 (de) 1996-12-12
DE19620858B4 (de) 2004-11-18

Similar Documents

Publication Publication Date Title
CN111508052B (zh) 三维网格体的渲染方法和装置
US11024077B2 (en) Global illumination calculation method and apparatus
US8035641B1 (en) Fast depth of field simulation
US8610729B2 (en) Floating point computer system with fog
US7456846B1 (en) Graphical processing system, graphical pipeline and method for implementing subpixel shifting to anti-alias texture
FR2735267A1 (fr) Systeme et procede de convertisseur de balayage de triangles a tampons de trame entrelaces en deux dimensions
JP2007066064A (ja) 画像生成装置及びプログラム
US6806886B1 (en) System, method and article of manufacture for converting color data into floating point numbers in a computer graphics pipeline
EP1519317A1 (fr) Dispositif et procédé pour l'antialiasing à l'aide des informations du z buffer ou des vecteurs normaux
JP3888478B2 (ja) データ同期装置
FR2735259A1 (fr) Systeme de graphiques d'ordinateur a marquage de profondeur par pixel
US9007393B2 (en) Accurate transparency and local volume rendering
CN104517313B (zh) 基于屏幕空间的环境光遮蔽的方法
US6982719B2 (en) Switching sample buffer context in response to sample requests for real-time sample filtering and video generation
US7116333B1 (en) Data retrieval method and system
JP3253020B2 (ja) レンダリング方法及び装置、ゲーム装置、並びに立体モデルをレンダリングするプログラムを格納するコンピュータ読み取り可能な記録媒体
US7880743B2 (en) Systems and methods for elliptical filtering
JP2004054634A (ja) 画像処理装置およびその方法
Krüger et al. Efficient stipple rendering
CN114937117A (zh) 一种热力图渲染方法、系统、介质和设备
Sperlhofer Deferred rendering of planetary terrains with accurate atmospheres
Craft Improving the Performance of Image Based Flow Visualization
JP2004054621A (ja) 画像処理装置およびその方法
CLINE COMPUTER GRAPHICS HARDWARE
JP2004054612A (ja) 画像処理装置およびその方法

Legal Events

Date Code Title Description
TP Transmission of property
PLFP Fee payment

Year of fee payment: 20