FR2622030A1 - Procede et dispositif pour restituer des courbes, surfaces courbes, vecteurs et autres objets sur un organe afficheur - Google Patents

Procede et dispositif pour restituer des courbes, surfaces courbes, vecteurs et autres objets sur un organe afficheur Download PDF

Info

Publication number
FR2622030A1
FR2622030A1 FR8810000A FR8810000A FR2622030A1 FR 2622030 A1 FR2622030 A1 FR 2622030A1 FR 8810000 A FR8810000 A FR 8810000A FR 8810000 A FR8810000 A FR 8810000A FR 2622030 A1 FR2622030 A1 FR 2622030A1
Authority
FR
France
Prior art keywords
function
representing
expression
developing
color
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
FR8810000A
Other languages
English (en)
Other versions
FR2622030B1 (fr
Inventor
Sheue-Ling Lien
Michael J Shantz
Susan E Carrie
Jim Van Loo
David Elrod
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of FR2622030A1 publication Critical patent/FR2622030A1/fr
Application granted granted Critical
Publication of FR2622030B1 publication Critical patent/FR2622030B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • G06T15/83Phong shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • G06T15/87Gouraud shading

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

On obtient et on évalue des fonctions bicubiques qui permettent l'approximation des paramètres d'ombrage au moyen de circuits d'avance différentielle adaptative 10 qui fournissent une couleur ombrée pour chaque pixel sur une courbe paramétrique. Pour ombrer des vecteurs et des courbes, on détermine l'expression : Tc (PB1) + (1-Tc) [Be (PB2) + (1-Be) [Z(Cd) + (1-Z) (PM)]] Tc étant un facteur de transparence, PB1 étant égal à une première donnée de pixel envoyée en retour depuis un tampon de trame 20, Be étant une fonction modifiée d'erreur de Bresenham, PB2 étant une seconde donnée de pixels envoyée en retour depuis le tampon de trame, Z représentant la distance de l'objet par rapport à l'observateur, Cd représentant la couleur estompée ou du fond, et PM représentant la couleur intrinsèque de la courbe provenant d'une mémoire de motif. On peut également ombrer de la même manière des polygones et des surfaces courbes, à une vitesse très élevée et sans perte notable de qualité.

Description

La présente invention concerne les procédés et les dispositifs pour
produire des images sur un tube cathodique ou autre dispositif afficheur. Elle concerne plus particulièrement les procédés et les dispositifs pour la restitution picturale de courbes, surfaces courbes, vecteurs, polygones ou d'objets
ur un tube cathodique ou autre dispositif afficheur.
Dans de nombreux systèmes informatiques, il est très courant de présenter et de transmettre des informations à un utilisateur par l'intermédiaire d'images numériques. Ces images peuvent prendre des formes très variées, par exemple des caractères alphanumériques, des courbes cartésiennes ou d'autres représentations sous forme d'images. Dans de nombreuses applications, les images numériques sont transmises à l'utilisateur sur un organe d'affichage tel qu'un moniteur vidéo à balayage de trame, une imprimante ou un périphérique analogue. Typiquement, les images à afficher sont mémorisées
sous forme numérique, manipulées puis affichées.
Dans la restitution d'un image sur un tube cathodique, les coordonnées de chaque pixel d'une image à restituer doivent être calculées, de même que certaines valeurs telles que la couleur, la transparence, l'effet de profondeur, l'estompage et les facteurs de réflexion et de diffusion pour chacun de ces pixels. L'opération consistant à restituer un pixel de manière qu'il illustre une caractéristique d'un objet à restituer (c'està-dire un objet tridimensionnel) afin de donner une impression de la profondeur, de la proximité de vision, de la réflexion des sources lumineuses, etc. est connue sous le terme
d"'ombrage" du pixel.
On utilise diverses techniques d'ombrage pour produire des images régulièrement ombrées de surfaces que l'on approxime par des parcelles paramétriques tridimensionnelles ou par des polygones. L'une de ces techniques bien connue est l'ombrage de Phong, qui est une technique d'ombrage intéressante car elle donne une restitution extrêmement réaliste de l'image souhaitée, avec une ampleur de calculs limitée. La plupart des applications de conception assistée par ordinateur tridimensionnelles donnent la priorité la plus élevée à une exécution interactive, et donc utilisent souvent le réalisme permis par l'ombrage de Phong. Une autre technique d'ombrage bien connue est appelée "ombrage de Gouraud", technique qui exécute une interpolation linéaire de la couleur pour les polygones individuels à restituer, et qui est moins précise que l'ombrage de Phong. On utilise les approximations des surfaces courbes par des polygones en raison de leurs possibilités, car la plupart des matériels graphiques à grande vitesse de l'art antérieur sont construits pour permettre une restitution rapide des polygones. Une parcelle bicubique typique, par exemple, peut nécessiter cent polygones ou plus pour donner une approximation raisonnablement précise de la parcelle voulue. La plupart des applications de conception seraient grandement facilitées si l'on pouvait disposer d'une restitution régulière
et à grande vitesse de surfaces courbes.
C'est pourquoi l'un des buts principaux de la présente invention est de proposer un procédé et un dispositif de restitution de parcelles paramétriques, qui utilisent un matériel relativement simple pour exécuter directement un ombrage de Phong, sans ralentir la vitesse de restitution des
pixels.
Un autre but de la présente invention est de disposer d'un procédé et d'un dispositif pour la restitution d'images possédant des parcelles de surface uniforme à deux variables aussi bien que des surfaces non uniformes rationnelles à arêtes
binaires.
A cet effet, dans la présente invention, on obtient et on évalue des fonctions bicubiques qui permettent l'approximation des paramètres d'ombrage au moyen de circuits d'avance différentielle adaptative qui fournissent une couleur ombrée pour chaque pixel sur une courbe paramétrique (les circuits d'avance différentielle adaptative seront expliqués par la suite). La présente invention propose un dispositif permettant d'ombrer rapidement et avec précision des vecteurs et des polygones à une vitesse très supérieure et sans perte notable de qualité par rapport à ce qu'il était possible d'obtenir avec les procédes de l'art antérieur. Pour une étude plus approfondie de l'ombrage de Phong et de l'ombrage des polygones, des vecteurs, des courbes et d'autres objets, on se référera à l'étude de Bui Truong-Phong intitulée Illumination for Computer-Generated Images, référencé UTEC-CS c-73-129, de juillet 1973, l'article de Tom Duff intitulé Smoothly Shaded Renderings of Polyedral Objects on Raster Displays de Computer Graphics, vol. 13, n 2, d'août 1979, l'étude de Steven A. Coon intitulée Surfaces for Computer-Aided Design of Space Forms, dans Project MAC, publié par le Massachusetts Institute of Technology sous la référence MAC-TR-41 en juin 1967, l'article de G. Bishop et D. Weimer intitulé Fast Phong Shading dans Computer Graphics, vol. 20, n 4, d'août 1986, l'article de M.Shantz et SL Lien intitulé Shading Bicubic Patches dans Computer Graphics, vol. 21, n 4, de juillet 1987 et l'article de Michael Shantz et Vaughan Pratt intitulé Adaptative Forward Differencing for Rendering Curves and Surfaces dans Computer Graphics, vol. 21, n 4, de juillet 1987 Les buts précités sont obtenus grâce à un procédé et un dispositif pour ombrer des vecteurs et des courbes sur un
organe afficheur.
Le dispositif comprend des moyens pour élaborer une première fonction, cette première fonction comprenant l'expression: Tc [PB1]l + (1-Tc) X Tc étant un facteur de transparence, PB1 étant égal à une première donnée de pixel envoyée en retour depuis des moyens formant tampon de trame, et X représentant une seconde fonction; le dispositif pour ombrer des vecteurs et des courbes comprend également des moyens pour élaborer la seconde fonction, cette seconde fonction comprenant l'expression: Be [PB2] + (1Be) Y Be étant une fonction modifiée d'erreur de Bresenham qui est calculée par le dispositif de la présente invention, PB2 étant une seconde donnée de pixels envoyée en retour depuis le tampon de trame, et Y représentant une troisième fonction. Le dispositif que l'on vient de décrire comprend également des moyens pour élaborer une troisième fonction, cette troisième fonction comprenant l'expression: Z [Cd] + (1-Z) [PM] Z représentant un volume en profondeur ou une distance de l'objet par rapport à l'observateur, Cd représentant la couleur estompée ou couleur de fond, et PM représentant la couleur intrinsèque de la courbe provenant d'une mémoire de motif, Enfin, le dispositif pour ombrer des vecteurs et des courbes comprend des moyens pour combiner ensemble cette première, cette seconde et cette troisième fonctions ci-dessus élaborées, de manière à pouvoir élaborer l'expression: Tc (PB1) + (1-Tc) [Be (PB2) + (1-Be) [Z(Cd) + (1-Z) (PM)]] de manière à pouvoir ainsi ombrer la courbe et le vecteur à restituer. La présente invention comprend également des moyens pour ombrer des polygones, comportant des moyens pour élaborer une première fonction, cette première fonction comprenant l'expression: Tc [PB + (1-Tc)] X Tc étant un facteur de transparence, PB étant une donnée tampon de pixel envoyée en retour depuis le tampon de trame, et X représentant une seconde fonction. Le dispositif pour ombrer des polygones comprend également des moyens pour élaborer la seconde fonction, cette seconde fonction comprenant l'expression: Z [Cd] + (1-Z) [diff [PM] + réfl [Lc]] Cd représentant la couleur d'effet de profondeur ou la couleur estompée, Z représentant la profondeur, et "diff" et "réfl" représentent une troisième et une quatrième fonction, La présente invention comprend également des moyens pour élaborer la troisième fonction (diff) précitée, cette troisième fonction comprenant l'expression: Ka + (1/'NJN) [a NLrt + (1-e) NLlt] N représentant le vecteur normal à la surface, NoN étant le produit scalaire de N par lui- même, NLrt étant le produit scalaire de la normale à la surface au bord droit du polygone par un vecteur unitaire L dirigé vers une source lumineuse, NLlt étant le produit scalaire de N par L au bord gauche du polygone, Ka représentant le coefficient de réflexion ambiante, et Lc représentant une couleur de source lumineuse. ALPHA (a)
croît de 0 à 1 du bord gauche au bord droit du polygone.
Le dispositif pour ombrer des polygones comprend également des moyens pour élaborer la quatrième fonction (réfl) précitée, cette quatrième fonction comprenant l'expression: (1/NiNi) [aNHrt + (1-a) NHlt]Oe NHrt étant le produit scalaire de la normale N à la surface au bord droit du polygone par le vecteur unitaire H dirigé dans la direction de l'éclairement maximal, NHlt étant le produit scalaire de la normale N à la surface au bord gauche du polygone par L, Oe étant une puissance à laquelle est élevée l'expression entre crochets, et a croissant de 0 à 1 du bord
gauche au bord droit du polygone.
Enfin, l'appareil de la présente invention pour ombrer des polygones comprend des moyens pour combiner ensemble cette première, cette seconde, cette troisième et cette quatrième fonctions ainsi élaborées, de manière à obtenir l'expression: Tc[PB] + (1-Tc) [z[Cd] + (1-z) [diff [IM] + réfl [Lc]1]] IM étant la couleur de l'objet provenant d'une valeur constante de couleur ou d'une valeur de couleur provenant d'un réseau de valeurs de couleurs adressant l'image, et Lc étant la
couleur de la source lumineuse.
La présente invention comporte également des moyens pour ombrer des parcelles paramétriques par ombrage d'une séquence de courbes de la surface, étroitement rappprochées les unes des autres. Les calculs de ces intervalles sont décrits ci-dessous, et comprennent des moyens pour élaborer une première fonction, cette première fonction comprenant l'expression: Tc [PB + (1-Tc)] X Le dispositif pour ombrer des parcelles comprend également des moyens pour élaborer la seconde fonction X, cette seconde fonction comprenant l'expression: Z [Cd] + (1-Z) [diff [PM] + réfl [Lc]] Cd représentant la couleur d'effet de profondeur, Z représentant la profondeur et "diff" et "réfl" représentant une
cinquième et une sixième fonctions.
Le dispositif comprend également des moyens pour élaborer une cinquième (diff) et une sixième (réfl) fonctions cette seconde fonction. La cinquième fonction comprend l'expression: Ka + NeL/NeN N représentant le vecteur normal à la surface, qui varie le long d'une courbe de la surface sous forme d'une fonction paramétrique. La sixième fonction (réfl) comprend l'expression: Oe (NAH/))Oe Enfin, le dispositif pour ombrer des parcelles paramétriques comprend des moyens pour combiner ensemble cette première, cette seconde, cette cinquième et cette sixième fonctions ainsi élaborées, de manière à obtenir l'expression: Tc[PB]+(1-Tc) [Z[Cd]+(1-Z) [Ka+NeL/NeN [IM]+(NeH/1JN)Oe[Lc]]] permettant ainsi d'ombrer la courbe de la surface de la
parcelle paramétrique à restituer.
D'autres caractéristiques de l'invention apparaîtront à la
lecture de la description ci-dessous, faite en référence aux
figures annexées sur lesquelles: - la figure 1 est un schéma par blocs des circuits permettant d'ombrer les pixels selon la présente invention, et par lequel on met en oeuvre cette invention, - la figure 2 est une vue éclatée du schéma par blocs de la figure 1, - la figure 3 est une autre vue éclatée d'une partie des circuits illustrés figure 2, et - la figure 4 est une variante de réalisation des circuits
de la figure 2.
La présente invention décrit des procédés et des dispositifs pouvant en particulier être utilisés dans un système de
traitement de données servant à l'affichage graphique d'images.
Bien que la présente invention soit décrite en référence à des circuits, des schémas par blocs, des signaux, des algorithmes, etc. spécifiques, l'homme du métier comprendra que de tels détails ne sont indiqués que pour permettre une meilleure compréhension de la présente invention. Il sera donc clair, pour l'homme de l'art, que la présente invention peut être mise en oeuvre sans ces détails spécifiques. Inversement, on a représenté sous forme de schémas par blocs des circuits bien
connus de manière à ne pas alourdir inutilement la description
de la présente invention.
Sur la figure 1, on a représenté un schéma général par blocs de la présente invention. Pour définir des images sur un afficheur à tube cathodique ou sur un autre organe d'affichage, il est nécessaire de manipuler des données à grande vitesse afin de sélectionner les pixels d'un afficheur à tube cathodique qui définissent la courbe, la surface courbe, le vecteur ou l'image que l'on souhaite afficher. Il est bien connu dans la technique que la position de chaque point à afficher sur un tube cathodique est souvent représentée par des valeurs numériques mémorisées dans une mémoire et correspondant
à des coordonnées homogènes x, y, z et w.
Le bloc géométrique 7 comprend les circuits 14 d'avance différentielle adaptative X, Y, Z et W illustrés et décrits aux figures 1 de la demande française 88-06127 intitulée Procédé et dispositif d'avance différentielle adaptative pour la restitution de courbes et de surfaces sur un organe afficheur (priorité de la demande de brevet US déposée sous le numéro 07/047.696) et de la demande française 88- 06126 intitulée Procédé et dispositif pour reproduire
des vecteurs en utilisant des para-
mètres de Bresenham (pr io ri té de l a demande de brevet US déposée sous le numéro 07/047.693), toutes deux au nom de la Demanderesse. Ce bloc géométrique 7 calcule les coordonnées homogènes x, y, w et z d'un objet dont on doit afficher l'image. Le bloc géométrique 7 comprend également un pipeline d'adressage 16 qui comprend le circuit de filtrage des pixels 30 des figures 1 et 7 des deux demandes françaises précitées, et qui délivre en sortie un terme d'erreur d'algorithme de Bresenham qui est utilisé comme fonction de
pondération pour la suppression de l'effet d'échantillonnage.
La version modifiée précitée de l'algorithme de Bresenham est largement utilisée pour avancer pas à pas de façon incrémentale le long du côté d'un polygone en suivant l'ordre du balayage, et dans les techniques vectorielles de suppression des effets d'échantillonnage (voir à cet effet l'étude de Akira Fujimoto et Ko Iwata intitulée Jag-Free Images on a raster CRT, dans Computer Graphic Theory and Applications, sous la direction de Tosiyasu Kunii, publié chez Springer Verlag en 1983). La fonction de pondération est délivrée en sortie sur un pipeline d'ombrage 12 d'un bloc de restitution picturale 150. Le bloc de restitution picturale 150 est utilisé pour colorier les pixels sur un tube cathodique 22, comme on l'expliquera plus loin. Les circuits d'avance différentielle adaptative 14 délivrent en sortie les coordonnées instantanées x, y, w et z au pipeline d'adressage 16. Le circuit de filtrage des pixels 30 délivre en sortie l'abcisse curviligne et une fonction Ce de pondération destinée à éliminer l'effet d'échantillonnage, et délivre également en sortie la coordonnée z, l'abcisse curviligne et la fonction de pondération pour l'élimination de l'effet d'échantillonnage à un pipeline d'adressage 12 du bloc de
restitution picturale 150, comme cela sera décrit plus loin.
Le pipeline d'adressage 16 délivre en sortie les coordonnées x, y, w et z à un tampon de trame 20 permettant de définir un pixel donné sur un tube cathodique. La coordonnée instantanée z, qui est appliquée en entrée au pipeline d'ombrage 12, y est utilisée pour donner un effet de profondeur, technique bien connue permettant d'estomper les objets à restituer de manière qu'ils semblent se trouver très loin (dans la direction z, qui est la direction de la profondeur) par rapport à celui qui regarde l'image (voir à cet effet l'ouvrage de J. D. Fowler et A. Van Dam intitulé Fundamentals of Interactive Computer Graphics, publié chez Addison Wesley en 1982). L'abcisse curviligne délivrée en sortie au pipeline d'ombrage 12 est utilisé pour indexer de façon incrémentale une mémoire de motif afin de cartographier un motif sur une courbe, tandis que l'on utilise le facteur de pondération pour l'élimination des effets d'échantillonnage afin de mélanger avec le fond les pixels sur le bord ou sur la silhouette d'un objet à restituer, afin de réduire l'aspect déchiqueté des images sur un système
d'affichage de trame.
Le bloc de restitution picturale 150 comporte une pluralité de circuits d'avance différentielle adaptative supplémentaires , ainsi que le pipeline d'ombrage 12 précité. Le bloc de restitution picturale 150 restitue et délivre en sortie les représentations du rouge, du vert et du bleu de la couleur à afficher pour chaque pixel et effectue l'ombrage des vecteurs, l'ombrage des courbes, l'ombrage des polygones ainsi que l'ombrage des parcelles (c'est-à-dire l'ombrage de parcelles bicubiques). Le fonctionnement et les possibilités de chacune
de ces fonctions seront exposés plus en détail par la suite.
Les circuits d'avance différentielle adaptative 10 servent de générateurs de fonction pour fournir des entrées paramétriques au pipeline d'ombrage 12. Plus précisément, les circuits d'avance différentielle adaptative 10 servent à exécuter le calcul d'approximation paramétrique cubique des produits scalaires des vecteurs normaux dans l'équation d'ombrage de Phong bien connue, ainsi que le calcul de fonctions d'interpolation linéaire et d'adressage de la mémoire d'image pour cartographier des images sur des parcelles. Le pipeline d'ombrage 12 comporte trois voies, respectivement pour le traitement du rouge, du vert et du bleu. Chaque voie comporte une série d'unités arithmétiques en cascade qui exécutent les opérations arthmétiques vectorielles pour la couleur. Chaque unité arithmétique du pipeline d'ombrage 12 exécute l'une de plusieurs fonctions arithmétiques, que l'on décrira plus loin, en fonction de l'ordre reçu de l'unité
centrale de traitement 9.
Le pipeline d'ombrage 12 calcule et délivre en sortie au tampon de trame 20 les couleurs pour lesquelles interviennent la diffusion et la réflexion et, en outre, ajoute un effet de profondeur sur la couleur, une élimination de l'effet d'échantillonnage, un flou de mouvement éventuel et une transparence à chaque couleur de pixel. Les valeurs de couleur des pixels sont délivrées en sortie par le pipeline d'ombrage 12 au tampon de trame 20 pour être affichées sur le tube cathodique 22 (c'est-à-dire telles que définies par les
coordonnées x, y, z et w).
Le pipeline d'ombrage 12 peut également avoir sa sortie dirigée vers des tampons de pixels du pipeline d'ombrage 12, de manière à assurer une possibilité de calcul récursif. Les valeurs calculées à chaque adresse de pixel sont inscrites séquentiellement dans une mémoire tampon de pixels. Comme on l'expliquera plus loin, la même courbe peut être à nouveau traitée par les circuits d'avance différentielle adaptative 14 et 10 et combinée aux valeurs de pixels précédemment calculées mémorisés dans le tampon de pixels, afin de permettre des
calculs d'ombrage supplémentaires.
Le pipeline d'adressage 16 peut également fonctionner en mode de lecture de tampon de trame, de sorte que les adresses produites par le pipeline d'adressage 16 soient utilisées pour lire des valeurs de pixels dans le tampon de trame 20 et délivrer en sortie ces valeurs en des emplacements séquentiels du pipeline d'ombrage 12, de telle manière que ces valeurs pourront être utilisées dans des opérations ultérieures de restitution telles que les calculs de suppression de l'effet
d'échantillonnage, de transparence et de flou de mouvement.
Ombrage des vecteurs En ce qui concerne la restitution des vecteurs, les attributs du vecteur comprennent la largeur du trait, la suppression de l'effet d'échantillonnage, l'effet de profondeur sur la couleur et la transparence. La largeur de trait et la suppression de l'effet d'échantillonnage sont obtenus à partir du bloc géométrique 7 comme décrit ci-dessus, et comme on l'expliquera plus en détail par la suite. L'effet de profondeur sur la couleur et la transparence sont obtenus en mettant en oeuvre les coefficients suivants, calculés par la relation (1) ci-dessous, dans laquelle: Tc = coefficient de transparence, variant de 0 (opaque) à 1 (invisible), typiquement fractionné sur 12 bits. Tc est constant pour un objet donné; PB = mémoire tampon de pixels, adressée par les valeurs produites par les circuits d'avance différentielle adaptative 10. <R,B,V> varie de 0 à 1, typiquement fractionné sur douze bits; De = erreur modifiée de Bresenham (utilisée comme fonction de pondération pour la suppression de l'effet d'échantillonnage), variant de 0 à 1, typiquement fractionnée sur 12 bits. Be est produite par les circuits d'avance différentielle adaptative 14 pour chaque pixel le long du vecteur; IM = mémoire d'image IM; PM = mémoire de motif PM; Z = valeur de profondeur à partir de l'avance différentielle adaptative Z, variant de 0 à 1, typiquement fractionnée sur 12 bits; Ca = constante de couleur pour la suppression de l'effet d'échantillonnage par rapport au fond, <R,B,V> sur 8 bits. Rouge PBr1 PBr Cdr IMr Vert = TC PBv +(l-Tc) Be PBv +(l-Be) Z Cdv + (1-Z) IMv (1) Bleu PBb FBb Cdb IMb L'équation +<l-Tc) LBeFBv ±B LZ j[ ijjj L'équation ci-dessus peut être simplifiée en posant Tc = 0 pour les objets opaques, en remplaçant PB par une couleur constante Ca dans le terme de suppression des effets d'échantillonnage, en posant Be = 0 pour l'absence de suppression de l'effet d'échantillonnage, en remplaçant IM par une couleur constante Oc, ou en posant Z = 0 lorsque l'on ne souhaite aucun effet de profondeur (remarque: en ce qui concerne un vecteur pour lequel on n'a pas supprimé l'effet d'échantillonnage, on notera que ses deux côtés peuvent être dessinés indépendamment sous forme de deux vecteurs séparés placés côte à côte). La élaboration de l'équation (1) sera
décrite plus loin en référence aux circuits de la figure 2.
Ombrage des courbes Les courbes sont très similaires aux vecteurs en ce qui concerne leurs attributs d'ombrages (on se référera à l'ouvrage de J. D. Fowler et A. Van Dam intitulé Fundamentals of Interactive Computer Graphics, publié chez Addison Wesley en 1982). La différence principale est qu'un coefficient Ce de suppression de l'effet d'échantillonnage remplace Be dans l'équation (1) ci-dessus. De la sorte, l'équation permettant de restituer une courbe est obtenue en résolvant l'équation (2) ci-dessous: 1 - PB PBr1 Cdr IMr _ V= Tc PBv +(1-Tc)Ce PBv +(1-Ce) Z Cdv + (1-Z) IMv (2) B cPBb [PBbJ Cdb IMb L'équation (2) autorise les mêmes simplifications que dans le cas des vecteurs. Le coefficient Ce est calculé, pour chaque pixel situé le long de la courbe, par le circuit de filtrage des pixels 30 du pipeline d'adressage. Ce circuit fait partie du circuit de filtrage des pixels 30 et sera décrit plus en
détail par la suite.
Ombrage des polygones Les attributs d'ombrage qui s'appliquent aux polygones comprennent l'aspect creux, l'aspect massif, l'ombrage de Gouraud ou l'ombrage de Phong, la cartographie d'une image, la suppression de l'effet d'échantillonnage, l'effet de profondeur et la transparence. Les équations ci-dessous donnent l'équation d'ombrage pour une ligne située entre deux points (c'est-à-dire, une ligne de balayage) d'un polygone. L'ombrage du polygone est réalisée en mettant en oeuvre les coefficients suivants dans les équations (3) et (4) ci-dessous: NL = produit scalaire NUL non normalisé au bord gauche ou droit d'une ligne de balayage d'un polygone à ombrer, les normales aux sommets étant normalisés, de sorte que l'interpolation linéaire fait en sorte que NL varie toujours entre 0 et 1 et ne dépasse jamais 1. Dans le mode de réalisation préféré, NL est fractionné sur douze bits, bien que l'on pourrait utiliser un nombre
supérieur ou inférieur de bits.
NH = produit scalaire non normalisé NOH au bord gauche ou droit de la ligne de balayage du polygone (variant typiquement sur le même intervalle que NL et avec le
même nombre de bits).
NN = carré de la longueur du vecteur normal à la surface, c'est-à-dire le produit scalaire de N et N. Dans le mode de réalisation préféré, cette valeur varie typiquement de 0,5 à 1 et doit être fractionnée sur 12 bits. a = une valeur produite par un circuit d'avance différentielle adaptative, qui augmente linéairement de 0 à 1 du bord gauche au bord droit d'une ligne de balayage d'un polygone à ombrer, et qui est typiquement fractionnée sur 12 bits. (Remarque: le circuit d'avance différentielle adaptative est constitué de la même manière que le circuit d'avance différentielle adaptative X représenté sur la figure 3 des deux demandes françaises précitées au nom de la Demanderesse) diffK_ NLrt NLlt Lif0 (l) r k Hlt R PBr1 Cdr FLcr IMr 1 V= Tc PBv + (1-Tc) Z Cdv + (1-Z) réfloe Lcv + diff IMv (4) BJ [PBb L CdbJ Lcb IMbJJ Les équations (3) et (4) cidessus peuvent être largement simplifiées par la technique, lourde en matériel, qui consiste à utiliser le circuit d'avance différentielle adaptative W pour produire une approximation de la fonction "réfl" et un circuit d'avance différentielle adaptative (qui sera décrit plus loin en référence à la figure 2) pour obtenir une approximation de la fonction "diff". "Réfl" et "diff" varient entre O et 1 et leur somme avec Ka doit faire 1, chacune de ces valeurs étant typiquement fractionnée sur 12 bits dans le mode de réalisation préféré. Pour un ombrage de Gouraud (c'est-àdire une interpolation de la couleur le long d'une ligne de balayage sur un tube cathodique) l'équation d'ombrage ci-dessus peut être simplifiée en éliminant la multiplication par le facteur 1/4N*N (Remarque: l'ombrage de Gouraud est bien connu de la technique, et il est expliqué, par exemple dans l'article de Henri Gouraud intitulé Computer Display of Curved Surfaces de 1971; on se reportera également à l'article de Tom Duff intitulé Smoothly Shaded Renderings of Polyedral Objects on Raster Displays de Computer Graphics, vol. 13, n 2, d'août
1979).
Comme cela est bien connu dans la technique, dans l'ombrage de polygones, il faut souvent tracer des frontières autour des polygones pour restituer l'attribut de contour. Lorsque ces frontières ont une largeur supérieure à un pixel, il se pose un problème pour obtenir des valeurs correctes de dz/dx sur la frontière à restituer, afin que la valeur ne minimise pas les
pixels de la frontière de valeur x.
La Demanderesse a trouvé une solution à ce problème de la restitution de frontières ayant une largeur supérieure à un pixel. On restitue deux polygones, un polygone de contour définissant une frontière extérieure, et un polygone intérieur définissant un vide intérieur. Les sommets du polygone intérieur sont également ceux de l'intérieur du polygone, ce qui élimine le problème de l'enfermement des pixels de la frontière. En variante, si la frontière a une largeur d'un seul pixel, ou si l'on souhaite une suppression de l'effet d'échantillonnage sur le contour du polygone à restituer, il est préférable de restituer un vecteur (la moitié d'un vecteur pour lequel on a éliminé l'effet d'échantillonnage) entourant le polygone. Le décalage x ou y du procédé utilisant le vecteur pour lequel on a éliminé l'effet d'échantillonnage permet d'être sûr que le vecteur qui entoure le polygone ne contient aucun pixel s'étendant à l'intérieur de la frontière exacte du polygone. L'équation d'ombrage pourun contour avec suppression de l'effet d'échantillonnage autour d'un polygone ayant subi un ombrage de Phong est donnée par: diffKa [NLpl NLpo réfl = 0 +(1) NHpl +(1-a) NHpol [R PBr_ PBrl Cdr Lcr IMr V = Tc PBv+(-Tc) eBv (1-Be) Z Cdv +(1-Z) réfleLcv + dif IMv B PBb PBb Cdb Lcb IMb On a trouvé que l'on peut restituer des sources lumineuses multiples au moyen du dispositif de la figure 2 en commençant par mémoriser diff[IM] dans les tampons de pixels 116, 216 et 316 de la figure 2, puis en ajoutant de façon répétée aux tampons de pixels, pour chaque source lumineuse, la composante
de réflexion réfl e[Lc].
Ombrage de parcelles paramétriques L'équation suivante donne l'équation d'ombrage pour une surface courbe sur une parcelle paramétrique à deux variables: FPBr Cdr Lcr IMrI_ V = Tc PBv + (1-Tc) z Cdv + (1-z)réfloe Lcv + diff IMv (4) LBJ LPBbj Cdb Lcb IMb J Comme décrit dans les deux demandes françaises précitées au nom de la Demanderesse, on peut utiliser des circuits d'avance différentielle adaptative pour élaborer une fonction paramétrique cubique (ou d'ordre supérieur) de la variable v (appelée paramètre). Ces circuits d'avance différentielle adaptative utilisés comme générateur de fonctions cubiques sont utilisés pour produire x(v), y(v), z(v) et w(v) de manière à fournir les adresses des pixels le long d'une courbe cubique afin de produire des pas de pratiquement un pixel. Les circuits d'avance différentielle adaptative peuvent être également utilisés pour produire des approximations de fonctions cubiques pour réfl(v), diff(v), N*L(v), N*H(v) ou N*N(v), tous contrôlés par le circuit de filtrage des pixels 30 afin de produire des
valeurs d'ombrage pour les adresses de pixels correspondantes.
Pour l'ombrage d'une parcelle de surface à deux variables f(u,v), le dispositif de la figure 2 produit une séquence de courbes g(v) suffisamment proches les unes des autres par rapport au paramètre u, de sorte que la surface résultante ne contiennne aucun trou ou intervalle entre pixels. La parcelle est alors restituée dans l'espace des paramètres u,v, ce qui facilite grandement les opérations d'ombrage telles que la cartographie d'une image et le cadrage des parcelles, opérations bien connues dans la technique. On peut produire une séquence de courbes très proches les unes des autres permettant d'ombrer une parcelle à deux variables par mise en oeuvre de la technique d'avance différentielle adaptative qui a déjà été décrite dans les deux demandes de brevet précitées au nom de la Demanderesse.
La description qui va suivre va expliquer à l'homme de l'art
le procédé de la présente invention permettant d'ombrer les parcelles par restitution de plusieurs courbes très proches les
unes des autres.
Dans l'avance différentielle adaptative d'une première courbe à la courbe suivante, la fonction de base de la première courbe est f(u,v), tandis que la fonction de base de la seconde courbe est f(u+du,v). La matrice bien connue donnant la base d'avance différentielle adaptative permettant de représenter une courbe suivant u,v est donnée par: Aoo Aci A02 A03 A:c All A12 A13 f(u,v) = Bv Bo
A20 A21 A22 A23
A30 A31 A32 A33
Bv et Bo étant les matrices de la base d'avance différentielle (pour une explication plus complète des matrices de la base d'avance différentielle, on se réfèrera à l'ouvrage de Foley et Van Damm intitulé Interactive Computer Graphics,
publié chez Addison Wesley en 1982).
La jième colonne de la matrice A est désignée par Axj. De la
même façon la ième ligne de la matrice A est désignée par Aix.
Un pas d'avance différentielle adaptative d'une courbe à la suivante sur une parcelle paramétrique à deux variables est obtenu en additionnant Axl à Axo, Ax2 à Axl et Ax3 à Ax2. La courbe suivante est alors définie par les quatre valeurs se trouvant dans la colonne Axo. On contrôle la courbe suivante restituée pour voir si elle n'est pas trop éloignée (c'est-àdire laissant des intervalles entre pixels) de la
courbe courante de la manière suivante.
La colonne "différence" Axi est convertie dans la base bien connue dite de "Bézier". On examine alors l'enveloppe convexe de Bézier bien connue pour obtenir la distance maximale entre les deux courbes suivant les coordonnées de pixels x et y. Si cette distance est supérieure à une valeur de seuil prédéterminée, on ajuste vers le bas la courbe pour chaque ligne de la matrice A. Si la distance suivant x et celle suivant y sont inférieures à une valeur minimale de seuil, on ajuste vers le haut chaque ligne de la matrice (pour une explication plus détaillée de la base de Bézier et de la manière dont elle inter-réagit avec l'avance différentielle, on se référera à l'ouvrage de Foley et Van Damm intitulé Fundamentals of Interactive Computer Graphics, publié chez
Addison Wesley en 1982).
On va maintenant décrire, en référence à la figure 2, l'élaboration des équations énoncées plus haut permettant l'ombrage des vecteurs, des courbes, des polygones et des
parcelles bicubiques.
Si l'on considère la figure 2, on a représenté un diagramme général par blocs des circuits de matériel permettant l'ombrage selon la présente invention. La figure 2 illustre un processeur à trois voies pour produire des signaux normalisés de rouge, de vert et de bleu pour un tube cathodique couleur. En général, en ce qui concerne les composants ayant des références numériques, les valeurs 100 à 199 correspondent à la voie rouge, les valeurs 200 à 299 à la voie verte, et 300 à 399 à la voie bleue. Quatre circuits d'avance différentielle adaptative 50, 60, et 90 correspondent au circuit d'avance différentielle adaptative 10 de la figure 1 et délivrent des valeurs d'ombrage de pixels correspondant aux adresses de pixels délivrées en sortie par le circuit d'avance différentielle adaptative 14. Les circuits d'avance différentielle adaptative sont des analyseurs différentiels numériques du troisième ordre qui appliquent une solution par avance différentielle adaptative à une fonction cubique paramétrique du paramètre t, comme décrit dans les deux demandes françaises précitées de la Demanderesse, de sorte que, lorsque t varie de 0 à 1 sur une courbe cubique, la dimension du pas dt de t est ajustée de manière adaptative de telle manière que la courbe avance pas à
pas avec des pas d'environ un pixel.
Les unités arithmétiques 76, 78, 86, 88, 104, 114, 122, 124, 128, 204, 214, 222, 224, 228, 304, 314, 322, 324 et 328 sont tous des blocs identiques, qui peuvent être réalisés sous forme de réseaux de portes ou construits en composants discrets tels que des multiplieurs "TRW" et des unités arithmétiques et logiques.
Pour la clarté de la description, le mode de réalisation que
l'on décrit ici concerne une structure en pipeline pour laquelle on affecte à une unité arithmétique et logique qui lui est désignée chaque étape du calcul. On notera que les mêmes résultats peuvent être obtenus en utilisant un traitement récursif, dans lequel une unité arithmétique et logique unique exécute pour chaque canal, au cours de cycles de fonctionnement successifs, les opérations de calcul que l'on va décrire ci-dessous. Pour pouvoir mettre en oeuvre un tel traitement récursif, on a besoin de circuits de rétroaction et de multiplexage. Un exemple d'un tel mode de réalisation récursif
sera décrit plus loin en référence à la figure 4.
Chacune des unités arithmétiques reçoit en entrée les signaux A, B et ALPHA, et délivre en sortie un résultat désigné RES. Chacune des unités arithmétiques calcule l'une des expressions suivantes qu'elle délivre sur la sortie RES: (ALPHA) A + (1-ALPHA) B (6a) (ALPHA) B + (1-ALPHA) A (6b) (ALPHA) A + B (7a) (ALPHA) B + A (7b) A * B (7c) A + B (7d) La sortie du circuit 50 d'avance différentielle adaptative AA est appliqué au module de fonction AA 52, qui est une table de correspondance contenant une fonction qui convertit la distance par rapport à une ligne de balayage pour donner Be de l'équation (1). Le signal de sortie du module de fonction AA 52 est appliqué en entrée au multiplexeur 96. Le multiplexeur 96 reçoit également sur une entrée un facteur de pondération pour la suppression de l'effet d'échantillonnage (Ce de l'équation (2)) provenant d'un circuit de filtrage des pixels 30 (illustré sur la figure 3 qui représente le bloc géométique 7). La figure 3 montre plusieurs des registres (102, 103, 104, 120, 121 et 122) représentés à la figure 7 (qui montre le circuit de filtrage des pixels 30 indiqué plus haut) des deux demandes de brevet précités de la Demanderesse. Le soustracteur 170 de la figure 3 reçoit des signaux d'entrée des registres x 103 et 104 et produit la sortie tx = Xn+l - Xn+2 (tx étant la composante suivant x du vecteur tangent instantané). Le soustracteur 171 reçoit ces entrées des registres y 121 et 122 pour délivrer en sortie ty = yn+l - yn+2 (ty étant la composante suivant y du vecteur tangent instantané). La table de correspondance 176 de la figure 3 reçoit en entrée le vecteur tangent instantané <tx,ty> provenant des soustracteurs 170 et 171, son entrée 182 provenant de l'unité centrale de traitement 9, et la partie fractionnaire des adresses fx et fy provenant des registres 103
et 121.
La table de correspondance 176 produit trois signaux de sortie: sur la sortie 178 le facteur de pondération x pour la suppression de l'effet d'échantillonnage, dirigé vers le bloc de restitution picturale 150, sur la sortie 179 le décalage x, dirigé vers l'additionneur 183 et sur la sortie 180 le décalage y, dirigé vers l'additionneur 184, qui est reçu ultérieurement par le tampon de trame. La table de correspondance 176 est chargée par des valeurs précalculées correspondant aux deux tableaux cidessous. Un signal d'entrée 182, appliqué à la table 176 et ayant une largeur d'un bit, est positionné à "0" par l'unité centrale de traitement 9 afin de donner l'ordre aux circuits de la figure 1 qu'il faut restituer une première passe d'une courbe pour laquelle on a effectuer la suppression de l'effet d'échantillonnage. Le signal sur un bit est positionné à "1" pour restituer une seconde passe. Pour la première passe, le pixel <x,y> produit par les circuits d'avance différentielle adaptative est ombré par le facteur d'ombrage 1-lal, avec a = ax si la courbe à restituer est une courbe principale en x, et a = ay si elle est principale en y. Le facteur de pondération pour la suppression de l'effet d'échantillonnage est calculé par l'expression suivante: ax = (fy-0,5) + (ty/tx)(fx-0,5), ou ay = (fx-0,5) + (tx/ty)(fy-0,5) La valeur de sortie de la table de correspondance 176 pour une passe pour des courbes principales en x et principales en y est indiquée ci-dessous sur le tableau I.
TABLEAU I
- ire passe -
axe principal décalage x décalage y facteur de pondération a ItxlltyI ax> 0 O O 1-laxl ax<0 0 0 1-l[xl Itxl<ltyI ay>0 0 0 1- Iyl ay<O O O 1-IayI Pour la seconde passe, le pixel a les coordonnées < x+décalage x, y+ décalage y > par lai, avec décalage x =
signe(a) a x principal et décalage y = signe(a) * y principal.
La valeur de sortie de la table de correspondance 176 pour la seconde passe pour des courbes principales en x et
principales en y est indiquée ci-dessous sur le tableau II.
TABLEAU II
- 2e passe -
axe principal décalage x décalage y facteur de pondération a ItxlkltyI ax> O 0 1 laxl ax<0 O0 -1 laxl ItxI<ityI ay>O 1 0 layl ay<O -1 0 Iay 1 Comme indiqué sur les tableaux I et II, le signal 182
appliqué à la table de correspondance 176 est positionné à '0'.
La valeur de sortie 179 de la table de correspondance 176 est: décalage x = 0. Lorsque le signal 182 est positionné à '1', la valeur de sortie 179 de la table de correspondance 176 est comme suit: (i) '0' si l'entrée 174 indique que la courbe à restituer est un vecteur tangent principal en x; (ii) '1' si l'entrée 174 indique un vecteur tangent principal en y et si a est positif; (iii) '-1' si l'entrée 174 indique un vecteur
tangent principal en y et si a est négatif.
La valeur de sortie 180 de la table de correspondance 176 est comme suit: (i) '0' si l'entrée 174 indique un vecteur tangent principal en y; (ii) '1' si l'entrée 174 indique un vecteur tangent principal en x et si a est positif; (iii) '-1' si l'entrée 174 indique un vecteur tangent principal en x et si a est négatif. L'additionneur 183 ajoute le décalage x 179 provenant de la table 176 au contenu du registre 102 et délivre en sortie la coordonnée x du pixel courant. L'additionneur 184 ajoute le décalage y 180 provenant de la table 176 au contenu du registre 120 et délivre en sortie la coordonnée y du pixel courant. Si l'on revient maintenant à la figure 2, la sortie du multiplexeur 96 de la figure 2 est reçue aux entrées ALPHA des
unités arithmétiques 124, 224 et 324.
La sortie du circuit d'avance différentielle adaptative NON est reçue par la table de correspondance 62, qui exécute une approximation de la racine carrée inverse de NoN. La sortie de la table de correspondance 62 est appliquée à l'entrée ALPHA des unités arithmétiques 78 et 88. L'unité arithmétique 78 reçoit le signal à son entrée A de la sortie RES de l'unité arithmétique 76. La sortie du circuit 70 d'avance différentielle adaptative INTERP est appliquée à l'entrée ALPHA des unités arithmétiques 76 et 86. Les registres 72 et 74 fournissent les entrées A et B respectives à l'unité arithmétique 76. La sortie de l'unité arithmétique 78 est appliquée au module de fonction xOe 79. La sortie du module de fonction xOe 79 est appliquée aux entrées ALPHA des unités
arithmétiques 114, 214 et 314.
Les sorties des registres 82 et 84 sont appliquées aux entrées respectives A et B de l'unité arithmétique 86. La sortie RES de l'unité arithmétique 86 est appliquée à l'entrée A de l'unité arithmétique 88. L'entrée B de l'unité arithmétique 88 est fournie par le registre 87. La sortie RES de l'unité arithmétique 88 est appliquée à l'entrée ALPHA des
unités arithmétiques 104, 204 et 304.
La sortie du circuit d'avance différentielle adaptative de motif 90 est appliquée au module de fonction MOTIF 92. La sortie du module 92 est une adresse de mémoire de motif, qui
est appliquée en entrée aux mémoires de motif 102, 202 et 302.
Les contenus des emplacements adressés des mémoires de motif 102, 202 et 302 sont appliqués aux entrées A des unités arithmétiques 104, 204 et 304, respectivement. Les sorties RES des unités arithmétiques 104, 204 et 304 sont appliquées aux multiplexeurs 110, 210 et 310, respectivement. Les multiplexeurs 110, 210 et 310 reçoivent également sur leurs entrées les sorties des registres 106, 206 et 306, respectivement. Les sorties des multiplexeurs 110, 210, et 310 sont appliqués aux entrées A des unités arithmétiques 114, 214
et 314, respectivement.
Les sorties RES des unités arithmétiques 114, 214 et 314 sont appliquées aux entrées A des unités arithmétiques 122, 222 et 322, respectivement. Ces mêmes sorties RES sont appliquées comme entrées séquentielles aux mémoires tampons de pixels 116 et 118, 216 et 218 et 316 et 318, respectivement. Les sorties séquentielles de ces mémoires tampons de pixels sont appliquées aux multiplexeurs 112, 212 et 312, respectivement, qui reçoivent également en entrée les sorties des registres 108, 208 et 308, respectivement. Les sorties des multiplexeurs 112, 212 et 312 sont appliquées aux entrées B des unités arithmétiques 114, 214 et 314, respectivement. En utilisant les circuits de la présente invention qui sont illustrés sur la figure 2, on peut calculer une nouvelle fonction d'ombrage de la même courbe et la combiner arithmétiquement, dans les unités arithmétiques, avec la valeur d'ombrage du pixel correspondante précédemment calculée et mémorisée dans la matrice du tampon de pixels. Les tampons de pixels sont contrôlés de manière séquentielle par un compteur (non représenté) qui doit être initialisé au début du traitement d'une courbe par l'unité centrale de traitement 9. L'unité centrale de traitement 9 peut
accéder à tous les registres.
Les unités arithmétiques 122, 222 et 322 reçoivent sur leurs entrées B les signaux de sortie des registres 120, 220 et 320, respectivement. Les sorties RES des unités arithmétiques 122, 222 et 322 sont appliquées sur les entrées A des unités arithmétiques 124, 224 et 324, respectivement. Les données de rétroaction du rouge, du vert et du bleu provenant du tampon de trame 20 (non représenté) sont appliquées en entrée à des mémoires tampons de pixels adressées séquentiellement 126, 130, 226, 230, 326 et 330. Les signaux de sortie des tampons de pixels 126, 226 et 326 sont appliqués aux entrées B des unités arithmétiques 124, 224 et 324, respectivement. Les signaux de sortie des tampons de pixels 130, 230 et 330 sont appliqués aux entrées B des unités arithmétiques 128, 228 et 328, respectivement. Les signaux de sortie RES des unités arithmétiques 124, 224 et 324 sont appliqués aux entrées A des unités arithmétiques 128, 228 et 328, respectivement. L'entrée ALPHA des unités arithmétiques 128, 228 et 328 est donnée par le signal de sortie du registre de transparence 98. Les sorties RES des unités arithmétiques 128, 228 et 328 donnent les représentations numériques de l'ombrage des pixels pour les voies rouge, verte et bleue, respectivement, du tube cathodique. Maintenant que l'on a décrit les interconnexions des éléments de circuit illustrés figure 2, on va décrire les possibilités fonctionnelles des circuits, en considérant les équations d'ombrage indiquées plus haut, qui sont mises en
oeuvre par les circuits de la figure 2. Dans la description qui
va suivre, on ne se référera, de façon générale, qu'à la voie rouge. Cependant, il y a lieu de comprendre, sauf indication contraire, qu'un traitement identique est effectué de la même
façon pour la voie verte et la voie bleue.
1 Ombrage des vecteurs et des courbes Comme indiqué, l'ombrage des vecteurs et des courbes est réalisé en mettant en oeuvre l'équation (8) ci-dessous: (8) couleur du pixel = Tc (PB4) + (l-Tc) [Be(PB3) + (1-Be) [z(Cd) + (1-z) (PM)]] Tc étant le facteur de transparence, PB3 et PB4 étant les données de rétroaction du tampon de pixels provenant du tampon de trame, Be étant la fonction d'erreur modifiée de Bresenham, z étant le facteur de pondération de profondeur, Cd étant l'estompage ou l'effet de profondeur sur la couleur, et PM étant la couleur intrinsèque de la courbe provenant
des mémoires de motifs de la figure 2.
Le circuit d'avance différentielle adaptative de motif 90 délivre en sortie la valeur courante d'une fonction paramétrique à une fonction de traduction d'adresse de motif 92 qui, quant à elle, exécute une traduction d'adresse de motif de la valeur qui lui est appliquée en entrée. L'adresse de motif délivrée en sortie par la fonction de traduction d'adresse 92 est appliquée à la mémoire de motif 102 de manière à y adresser une position de mémoire. Le contenu adressé de la mémoire de motif 90 représente la couleur intrinsèque de la courbe (et comprend également un bit d'autorisation d'écriture pour le pixel courant du vecteur ou de la courbe que l'on restitue), désignée PM dans l'équation (8) ci-dessus. Dans ce cas, PM traverse les unités arithmétiques 104 et 114 sans changement, et est appliqué à l'entrée A de l'unité arithmétique 122. La couleur estompée Cd de l'équation (8) ci- dessus est délivrée
par le registre 120 à l'entrée B de l'unité arithmétique 122.
Une valeur de coordonnée z provenant du bloc géométrique 7 est appliquée en entrée au module de fonction z 94. Le module 94 exécute une fonction de table de correspondance pour donner une pondération d'interpolation sur l'entrée ALPHA de l'unité arithmétique 122 en fonction de la valeur de la coordonnée z. L'unité arithmétique 122 exécute l'équation (6) (b) ci-dessus avec: l'entrée ALPHA de l'unité arithmétique 122 égale à z, l'entrée A de l'unité arithmétique 122 égale à PM, l'entrée B de l'unité arithmétique 122 égale à Cd, La sortie RES de l'unité arithmétique 122 est alors exprimée par l'expression (9) ci-dessous: (9) z(Cd) + (l-z) (PM) Cette quantité représente la couleur intrinsèque ajustée en fonction de la profondeur (c'est-à-dire mélangée avec une valeur de densité ou une couleur d'estompe qui dépend de la valeur de la coordonnée z), que l'on appelle également la couleur avec effet de profondeur. Cette valeur est alors
appliquée sur l'entrée A de l'unité arithmétique 124.
Le circuit d'avance différentielle adaptative 50 AA, en liaison avec le module de fonction AA 52, développe la fonction d'erreur modifiée de Bresenham Be précitée. Cette fonction est délivrée par le multiplexeur 96 à l'entrée ALPHA de l'unité arithmétique 124. La rétroaction des données de pixels provenant du tampon de trame 20 de la figure 1 est conservée par la mémoire tampon de pixel 126 et appliquée à l'entrée B de l'unité arithmétique 124. L'unité arithmétique 124 calcule l'équation (6)(b) cidessus avec: l'entrée ALPHA de l'unité arithmétique 124 égale à Be l'entrée A de l'unité arithmétique 124 recevant la couleur
27 2622030
résultante avec effet de profondeur indiquée plus haut, qui est délivrée en sortie sur la sortie RES de l'unité arithmétique 122, et l'entrée B de l'unité arithmétique 124 égale à PB3 de l'équation (1) ci-dessus. La sortie RES de l'unité arithmétique 124 est alors donnée par l'expression: (10) Be(PB3) + (1-Be) (couleur avec effet de profondeur) Cette quantité est appelée couleur après suppression de l'effet d'échantillonnage, et elle est appliquée à l'entrée A de l'unité arithmétique 128. Le facteur de transparence Tc est fourni par le registre de transparence 98 à l'entrée ALPHA de l'unité arithmétique 128. La rétroaction des données de pixels est conservée dans la mémoire tampon de pixels 130 et appliquée à l'entrée de l'unité arithmétique 128. L'unité arithmétique 128 calcule également l'équation (6) (b) ci-dessus avec: l'entrée ALPHA de l'unité arithmétique 128 égale à Tc, l'entrée A égale à la couleur après suppression de l'effet d'échantillonnage, et
l'entrée B de l'unité arithmétique 128 égale à PB4.
La sortie RES de l'unité arithmétique 128 est alors exprimée par l'expression (11) ci-dessous: (11) Tc (PB4) + (1-Tc)(couleur après suppression de l'effet d'échantillonnage) Si l'on considère les équations (9) et (10) ci-dessus et les circuits de la figure 2, on peut voir que la quantité (11), qui est la couleur du pixel telle que définie par l'équation (8), est restituée de façon univoque par les circuits de la présente invention. 2 Ombrage des polygones et des parcelles Si l'on applique l'approximation de Phong bien connue, la couleur en tout point de la surface d'un polygone éclairé par une source lumineuse unique située à l'infini est représentée par la somme d'un coefficient de diffusion multiplié par la couleur de l'objet avec un coefficient de réflexion élevé à la puissance d'un exposant de réflexion de l'objet multiplié par la couleur de la source lumineuse (remarque: les approximations de Phong sont bien connues dans la technique et sont par exemple décrites de façon complète dans l'article de Tom Duff intitulé Smoothly Shaded Renderings of Polyedral Objects on Raster Displays de Computer Graphics, vol. 13, n 2, d'août 1979). Comme cela a été décrit, les coefficients de réflexion et de diffusion sont calculés pour une ligne de balayage d'un polygone d'après les équations (12) et (13) ci- dessous: (12) diffusion = Ka + (1/NViN) [a NLRT + (1-a) NLLT] (13) réflexion = (1/Ni--N) [aNHRT + (1-") NHLT] N étant le vecteur normal à la surface, L étant un vecteur unitaire dirigé vers la source lumineuse, H étant un vecteur unitaire dirigé vers la direction d'éclairement maximal (c'est-à-dire le vecteur dans la direction équidistante de l'observateur et de la source lunimeuse), Ka étant le coefficient de réflexion ambiante, a étant un coefficient d'interpolation, dont la valeur varie linéairement entre 0 et 1 le long d'un segment de ligne de balayage d'un polygone à restituer, et RT et LT représentant la valeur du produit scalaire NeL aux extrémités droite et gauche, respectivement, d'un
segment de ligne de balayage d'un polygone.
L'unité centrale de traitement 9 convertit le polygone en balayages et délivre un segment de ligne de balayage traversant le polygone à restituer. Les coefficients de diffusion et de réflexion à chaque extrémité de la ligne de balayage sont calculés, c'est-à-dire NLRT, NLLT, NHRT et NHLT. Ces coefficients sont chargés dans des registres 82, 84, 72 et 74, respectivement. Le circuit d'avance différentielle adaptative NoN génère une fonction quadratique de NeN (c'est-à-dire le produit scalaire du vecteur normal le long de la ligne de balayage, produit qui est bien connu dans la technique, et pour lequel on pourra se référer à l'article de l'article de Tom Duff intitulé Smoothly Shaded Renderings of Polyedral Objects
on Raster Displays de Computer Graphics, vol. 13, de 1979).
Le circuit d'avance différentielle adaptative d'interpolation 70 produit une interpolation linéaire de x entre 0 et 1 le long du segment de ligne de balayage du polygone à restituer. Ce facteur est appliqué aux entrées ALPHA de l'unité arithmétique 76 et 86. La résolution de l'équation (6)(a) ci-dessus par les unités arithmétiques 76 et 86 donne les résultats suivants: (14) RES de l'unité arithmétique 76 = "NHRT + (1-a) NHLT (15) RES de l'unité arithmétique 86 = a NLRT + (1-a) NLLT les équations 14 et 15 ci-dessus représentent des
interpolations linéaires lissées de NOH et NeL, respectivement.
Ces valeurs ne sont pas normalisées, du fait qu'elles ne représentent plus des vecteurs unitaires en raison du traitement d'interpolation linéaire. On exécute une renormalisation pour chaque pixel par la fonction quadratique de NON exécutée dans le circuit d'avance différentielle
adaptative NON 60.
La fonction quadratique pour NON est produite dans le circuit d'avance différentielle adaptative NON 60 et appliquée en entrée à une table de correspondance 62 qui délivre une approximation de l'inverse de la racine carrée. La valeur de sortie de la table de correspondance 62 est appliquée aux entrées ALPHA des unités arithmétiques 78 et 88. Les unités
arithmétiques 78 et 88 résolvent l'équation (7) (a) ci-dessus.
Comme l'entrée B de l'unité arithmétique 78 est en circuit ouvert, la sortie RES délivre la valeur (<)A qui est égale à (1/N) (RES de l'unité arithmétique 76), c'est-à-dire le coefficient de réflexion de l'équation (13) ci-dessus. Cette valeur en sortie est ensuite transmise au générateur de fonction xoe 79, o l'on applique l'exposant de réflexion de
l'objet (le pouvoir réfléchissant).
Le coefficient de reflexion ambiante Ka est conservé dans le registre 87 et appliqué & l'entrée B de l'unité arithmétique 88. La sortie RES de l'unité arithmétique 88 est donc égale au
coefficient de diffusion de l'équation (12) ci-dessus.
Le circuit d'avance différentielle adaptative de motif 90 et la fonction de traduction d'adresse de motif 92 produisent une adresse de mémoire de motif. Comme décrit précédemment à propos de l'ombrage des vecteurs, la mémoire de motif de rouge 102 donne la couleur de l'objet pour chaque pixel. La couleur de l'objet (la composante rouge de celle-ci) est appliquée à l'entrée A de l'unité arithmétique 104. L'unité arithmétique104 calcule l'équation (7)(a) ci-dessus et, comme l'entrée B est en circuit ouvert, la sortie RES représente le produit du coefficient de diffusion (entrée ALPHA) par la couleur de l'objet (entrée A). Ce signal est sélectionné par le multiplexeur 110 pour être appliqué en entrée sur l'entrée A de l'unité arithmétique 114. La couleur de la source lumineuse dans le registre 108 est sélectionnée par le multiplexeur 112 pour être appliquée en entrée sur l'entrée B de l'unité arithmétique 114. Le coefficient de réflexion, élevé à l'exposant de réflexion de l'objet provenant du module de fonction 79, est appliqué à l'entrée ALPHA de l'unité arithmétique 114. L'unité arithmétique 114 résout l'équation (7) (b) ci-dessus, délivrant ainsi sur sa sortie RES une expression donnant la couleur complète du pixel. Le traitement en aval de l'unité arithmétique 114 a déjà été décrite à propos
de l'ombrage des courbes et des vecteurs.
Comme indiqué plus haut, la discussion qui précède a été faite en considérant l'approximation de Duff de l'ombrage de Phong, comme décrit dans l'article de Tom Duff intitulé Smoothly Shaded Renderings of Polyedral Objects on Raster Displays de Computer Graphics, vol. 13, de 1979. Les mêmes circuits peuvent également mettre en oeuvre un ombrage de Gouraud. L'ombrage de Gouraud est fréquemment utilisé en raison de sa simplicité et de sa vitesse de calcul. Il est particulièrement utile pour un ombrage grossier. L'ombrage de Gouraud est mis en oeuvre par une interpolation linéaire simple de la couleur d'un point à l'autre de la ligne de balayage du polygone. Ainsi, on ne calcule pas les coefficients de diffusion et de réflexion, et la couleur est donnée pour les pixels intermédiaires sur la ligne de balayage par l'expression: a(couleur à droite) + (1-a) (couleur à gauche) L'ombrage de Gouraud n'est pas normalisé, et il n'est donc pas nécessaire d'introduire l'inverse de la racine carrée de N-N dans les unités arithmétiques 78 et 88. Au lieu de cela, on maintient les entrées ALPHA des unités arithmétiques 78 et 88 à la valeur unité. Le registre 74 est chargé à '0' et le registre 72 est chargé à '1', de sorte que le facteur d'interpolation linéaire donné par le circuit d'avance différentielle adaptative d'interpolation 70 est transmis sans changement jusqu'à l'entrée A de l'unité arithmétique 78. L'unité arithmétique 78 résoud l'équation (7)(d) ci-dessus, transférant ainsi sans changement l'entrée A jusqu'à RES, puis contournant la fonction xOe jusqu'à l'entrée ALPHA de l'unité arithmétique 114. Une valeur à droite de la couleur de l'objet est chargée dans le registre 108, et une valeur à gauche de la couleur de l'objet est chargée dans le registre 106. Les coefficients d'interpolation sont donnés par le circuit d'avance différentielle adaptative d'interpolation 70 sur l'entrée ALPHA de l'unité arithmétique 114. Le multiplexeur 110 sélectionne le registre 106 et le multiplexeur 112 sélectionne le registre 108. L'unité arithmétique 114 résoud l'équation (6) (a) ci-dessus, donnant ainsi l'ombrage de Gouraud sur sa sortie
RES, qui est transmis à l'entrée A de l'unité arithmétique 122.
Le traitement des parcelles dans les circuits d'ombrage est semblable à celui des polygones, à la seule différence que les paramètres d'ombrage NOL et NeH sont approximés par des fonctions bicubiques données par les circuits d'avance différentielle adaptative 60 et 70 au lieu de l'être par une
interpolation linéaire le long de la ligne de balayage.
Diverses techniques mathématiques permettant d'obtenir ces fonctions bicubiques d'approximation sont données dans l'article de Michael Shantz et Sheue-Ling Lien intitulé Shading Bi-cubic Patches dans Computer Graphics, vol. 21, n 4, de juillet 1987. Pour l'ombrage des parcelles, le circuit d'avance différentielle adaptative 60 produit une approximation du coefficient spéculaire et le circuit d'avance différentielle adaptative d'interpolation 70 produit une approximation du coefficient de diffusion. Les sorties du circuit d'avance différentielle adaptative NoN 60 et du circuit d'avance différentielle adaptative d'interpolation 70 sont appliquées aux entrées ALPHA des unités arithmétiques 78 et 86, respectivement, le coefficient de réflexion traversant la table
de correspondance 62 sans changement.
L'entrée A de l'unité arithmétique 78 est maintenue à la valeur unitaire, ce qui permet de faire passer le coefficient de réflexion jusqu'à la sortie RES sans changement. De la même façon, le coefficient de diffusion traverse l'unité arithmétique 86 et 88 sans changement. Ensuite, le traitement est exécuté de la même manière que décrit plus haut à propos
des polygones.
L'ombrage des parcelles et des polygones est donné, en ce qui concerne l'effet de profondeur et la transparence, par la sortie RES de l'unité arithmétique 114 de la façon indiquée plus haut pour l'ombrage des courbes et des vecteurs. Les résultats intermédiaires traversent sans changement l'unité arithmétique 124 du fait que, pour des parcelles ou des polygones, on n'exécute pas de suppression de l'effet d'échantillonnage. Sur la figure 4, on a représenté un autre mode de réalisation possible des circuits illustrés figure 2. De la droite vers la gauche des circuits de la figure 4, le circuit d'avance différentielle adaptative P correspond au circuit d'avance différentielle adaptative de motif 90 et au circuit
33 2622030
d'avance différentielle adaptative NoN 60 de la figure 2, et exécute la même fonction que celle indiquée précédemment à propos de ces éléments. De la même façon, le circuit d'avance différentielle adaptative Q 402 remplace et exécute les mêmes fonctions que le circuit d'avance différentielle adaptative AA et le circuit d'avance différentielle adaptative d'interpolation 70 de la figure 2. Les circuits de modification d'adresse 402 et 406 remplacent le circuit de traduction de motif 92 et exécutent les mêmes fonctions. Les mémoires d'image 0, 1 et 2 correspondent aux mémoires d'adresses de motif 102, 202 et 302 et exécutent les mêmes fonctions, tout comme la fonction d'inversion de la racine carrée 62 et les mémoires tampons de pixels (c'est-à-dire les mémoires 116, 118, 216,etc). Le multiplexeur 414 sélectionne comme entrée une constante de couleur souhaitée Co qui peut être NLlt, Ca, Cd ou Oe des équations ci-dessus, ou bien la sortie de la mémoire d'image 0. Le multiplexeur 406 sélectionne comme entrée BE (le facteur d'erreur de Bresenham modifiée) ou la sortie de la mémoire d'image 1 ou z, ou tc, selon la fonction particulière à restituer. Le multiplexeur 418 sélectionne la sortie de la mémoire d'image 1, ou la sortie de la mémoire d'image 2, ou Cl, une constante de couleur souhaitée qui peut être NLlt, Ca, Cd ou Oe, ou tout autre valeur de couleur constante. La sortie sélectionnée des multiplexeurs 414, 416 et 418 est appliquée aux unités arithmétiques 420, 422 et 424 qui, respectivement, remplacent les unités arithmétiques pour le rouge, le vert et le bleu de la figure 2, ainsi que les unités arithmétiques 76, 78, 86 et 88 de la figure 2. L'unité centrale de traitement 9 contrôle les circuits de la figure 4 de sorte que chaque élément exécute dans l'ordre une fonction appropriée permettant d'élaborer les fonctions indiquées plus haut, dont l'exécution
a été décrite plus en détail à propos de la figure 2.
On notera que l'invention que l'on vient de décrire peut être mise en oeuvre sous d'autres formes particulières, en restant dans le cadre de ses caractéristiques essentielles. En particulier, les circuits d'avance différentielle adaptative pourraient facilement être perfectionnés pour élaborer des fonctions d'un ordre plus élevé que des cubiques. De la sorte, les modes de réalisation actuels ne doivent être considérés à tous égards qu'à titre d'illustration et sans caractère limitatif, l'invention couvrant toutes les modifications qui
peuvent en être considérées comme des équivalents.

Claims (33)

REVENDICATIONS
1. Un dispositif (10,12) pour ombrer des vecteurs et des courbes sur un organe afficheur (22), caractérisé en ce qu'il comprend: - des moyens pour élaborer une première fonction, cette première fonction comprenant l'expression: Tc [PB1] + (1-Tc) X Tc étant un facteur de transparence, PB1 étant égal à une première donnée de pixel envoyée en retour depuis des moyens formant tampon de trame (20), et X représentant une seconde fonction, - des moyens pour élaborer cette seconde fonction, cette seconde fonction comprenant l'expression: Be [PB2] + (1-Be) Y Be étant une fonction modifiée d'erreur de Bresenham et PB2 étant une seconde donnée de pixels envoyée en retour depuis le tampon de trame, et Y représentant une troisième fonction, - des moyens pour élaborer cette troisième fonction, cette troisième fonction comprenant l'expression: Z [Cd] + (1-Z) [PM] Z représentant une valeur de pondération de profondeur, Cd représentant la couleur estompée, et PM représentant la couleur intrinsèque de la courbe, - des moyens pour combiner ensemble cette première, cette seconde et cette troisième fonctions ainsi élaborées, de manière à pouvoir élaborer l'expression: Tc (PB1) + (1-Tc) [Be (PB2) + (1- Be) [Z(Cd) + (1-Z) (PM)]] de manière à pouvoir ainsi ombrer la courbe et le vecteur et
y représenter un motif.
2. Un dispositif (10,12) pour ombrer des polygones, caractérisé en ce qu'il comprend: - des moyens pour élaborer une première fonction, cette première fonction comprenant l'expression: Tc [PB + (1-Tc)] X Tc étant un facteur de transparence, PB étant égal à une première donnée de pixel envoyée en retour depuis des moyens formant tampon de trame (20), et X représentant une seconde fonction, - des moyens pour élaborer cette seconde fonction, cette seconde fonction comprenant l'expression: Z [Cd] + (1-Z) [diff [PM] + réfl [Lc]] Z représentant la profondeur, Cd représentant l'effet de profondeur ou estompage de la couleur, Lc représentant une couleur de source lumineuse, PM représentant une valeur de couleur mémorisée, et diff et réfl représentent une troisième et une quatrième fonction, - des moyens pour élaborer cette troisième fonction, cette troisième fonction comprenant, dans le cas de l'ombrage d'un polygone, l'expression: Ka + (1/N-N) [a NLrt + (1-a) NLlt] - des moyens pour élaborer cette quatrième fonction, cette quatrième fonction comprenant l'expression: (1/NJN) [aNHrt + (1-a) NHlt]Oe N représentant le vecteur normal à la surface, L représentant un vecteur unitaire dirigé vers la source lumineuse, H étant un vecteur unitaire dirigé dans la direction d'éclairement maximal, Ka représentant le coefficient de réflexion ambiante, rt désignant une valeur à une extrémité droite d'une ligne de balayage, lt désignant une valeur à l'extrémité gauche de cette ligne de balayage, î représentant un coefficient d'interpolation linéaire, et Oe représentant un exposant de réflexion de l'objet, - des moyens pour combiner ensemble cette première, cette seconde, cette troisième et cette quatrième fonctions ainsi élaborées, de manière à obtenir l'expression: Tc[PB] + (1-Tc) [z[Cd] + (1-z) [diff [PM] + réfl [Lc]]]
3. Un dispositif (10,12) pour ombrer des arêtes binaires uniformes et non uniformes, rationnelles et non rationnelles ou parcelles analogues, comprenant: - des moyens pour élaborer une première fonction, cette première fonction comprenant l'expression: Tc [PB + (1-Tc)] X Tc représentant un facteur de transparence, PB représentant une donnée de pixel envoyée en retour depuis des moyens formant tampon de trame (20), et X représentant une seconde fonction, - des moyens pour élaborer cette seconde fonction, cette seconde fonction comprenant l'expression: Z [Cd] + (1-Z) [diff [PM] + réfl [Lc]] Z représentant la profondeur, Cd représentant l'effet de profondeur ou estompage de la couleur, Lc représentant une couleur de source lumineuse, PM représentant une valeur de couleur mémorisée, et diff et réfl représentent une troisième et une quatrième fonction, - des moyens pour élaborer cette troisième fonction, cette troisième fonction comprenant l'expression: Ka + NIL/ NiN - des moyens pour élaborer cette quatrième fonction, cette quatrième fonction comprenant l'expression: [(1/NN) (N.H) j]Oe N représentant le vecteur normal à la surface, L représentant un vecteur unitaire dirigé vers la source lumineuse, H étant un vecteur unitaire dirigé dans la direction d'éclairement maximal, Ka représentant le coefficient de réflexion ambiante, et Oe représentant un exposant de réflexion de l'objet, - des moyens pour combiner ensemble cette première, cette seconde, cette troisième et cette quatrième fonctions ainsi élaborées, de manière à obtenir l'expression: Tc[PB] + (1-Tc) [z[Cd] + (1-z) [diff [PM] + réfl [Lc]]]
4. Le dispositif de la revendication 1, dans lequel la première, la seconde et la troisième fonctions sont élaborées par des unités arithmétiques et logiques (76, 78, 86, 88, 104,
114, 122, 124, 128, 204, 214, 222, 224, 228, 304, 314, 322, 324
et 328).
5. Le dispositif de la revendication 1, comprenant en outre des moyens formant mémoire de motif (102,202,302) reliés aux moyens pour élaborer la troisième fonction, de manière à mémoriser et restituer sélectivement la couleur intrinsèque de
la courbe (PM).
6. Le dispositif de la revendication 5, comprenant en outre des moyens générateurs de fonction (90,92) reliés aux moyens formant mémoire de motif, de manière à adresser sélectivement ces moyens formant mémoire de motif en fonction d'une position
de pixel.
7. Le dispositif de la revendication 6, dans lequel les moyens générateurs de fonction comprennent un circuit d'avance
différentielle adaptative (90).
8. Le dispositif de la revendication 2, dans lequel la première, la seconde, la troisième et la quatrième fonctions sont élaborées par des unités arithmétiques et logiques (76,
78, 86, 88, 104, 114, 122, 124, 128, 204, 214, 222, 224, 228,
304, 314, 322, 324 et 328).
9. Le dispositif de la revendication 2, comprenant en outre des moyens formant mémoire de motif (102,202,302) reliés aux moyens pour élaborer la seconde fonction, de manière à mémoriser et restituer sélectivement la couleur intrinsèque de
la courbe (PM).
10. Le dispositif de la revendication 9, comprenant en outre des premiers moyens générateurs de fonction (90,92) reliés aux moyens formant mémoire de motif, de manière à adresser sélectivement ces moyens formant mémoire de motif en fonction
d'une position de pixel.
11. Le dispositif de la revendication 10, dans lequel les premiers moyens générateurs de fonction comprennent un circuit
d'avance différentielle adaptative (90).
12. Le dispositif de la revendication 2, comprenant en outre des seconds moyens générateurs de fonctions (70) reliés aux moyens pour élaborer la troisième et la quatrième fonctions, de manière à exécuter une interpolation linéaire de position sur
un segment de ligne de balayage desdits polygones.
13. Le dispositif de la revendication 12, dans lequel les seconds moyens générateurs de fonction comprennent un circuit
d'avance différentielle adaptative (70).
14. Le dispositif de la revendication 2, comprenant en outre des troisièmes moyens générateurs de fonction (60,62) reliés aux moyens pour élaborer la troisième et la quatrième
fonctions, de manière à délivrer le terme en 1/Nl-N.
15. Le dispositif de la revendication 14, dans lequel les troisièmes moyens générateurs de fonction comprennent un circuit d'avance différentielle adaptative (60) et une table de correspondance.(62) donnant les inverses des racines carrées.
16. Le dispositif de la revendication 2, dans lequel les moyens pour élaborer la quatrième fonction comprennent un
générateur de fonction exponentielle (79).
17. Le dispositif de la revendication 3, dans lequel la première, la seconde, la troisième et la quatrième fonctions sont élaborées par des unités arithmétiques et logiques (76,
78, 86, 88, 104, 114, 122, 124, 128, 204, 214, 222, 224, 228,
304, 314, 322, 324 et 328).
18. Le dispositif de la revendication 3, comprenant en outre des moyens formant mémoire de motif (102,202,302) reliés aux moyens pour élaborer la seconde fonction, de manière à mémoriser et restituer sélectivement la couleur intrinsèque de
la courbe (PM).
19. Le dispositif de la revendication 10, comprenant en outre des premiers moyens générateurs de fonction (90,92) reliés aux moyens formant mémoire de motif, de manière à adresser sélectivement ces moyens formant mémoire de motif en
fonction d'une position de pixel.
20. Le dispositif de la revendication 19, dans lequel les premiers moyens générateurs de fonction comprennent un circuit
d'avance différentielle adaptative (90).
21. Le dispositif de la revendication 3, comprenant en outre des seconds moyens générateurs de fonction (60,62) reliés aux moyens pour élaborer la troisième fonction, de manière à
délivrer le terme en N.L/ -ï.
22. Le dispositif de la revendication 21, dans lequel les seconds moyens générateurs de fonction comprennent un circuit
d'avance différentielle adaptative (60).
23. Le dispositif de la revendication 3, comprenant en outre des troisièmes moyens générateurs de fonction (60,62) reliés aux moyens pour élaborer la quatrième fonction, de manière à
délivrer le terme en N.H/N-N.
24. Le dispositif de la revendication 23, dans lequel les premiers moyens générateurs de fonction comprennent un circuit
d'avance différentielle adaptative (60).
25. Le dispositif de la revendication 4, dans lequel les unités arithmétiques et logiques sont configurées de manière à
permettre un traitement pipeline.
26. Le dispositif de la revendication 4, dans lequel les unités arithmétiques et logiques sont configurées de manière à
permettre un traitement récursif.
27. Le dispositif de la revendication 8, dans lequel les unités arithmétiques et logiques sont configurées de manière à
permettre un traitement pipeline.
28. Le dispositif de la revendication 8, dans lequel les unités arithmétiques et logiques sont configurées de manière à
permettre un traitement récursif.
29. Le dispositif de la revendication 17, dans lequel les unités arithmétiques et logiques sont configurées de manière à
permettre un traitement pipeline.
30. Le dispositif de la revendication 17, dans lequel les unités arithmétiques et logiques sont configurées de manière à
permettre un traitement récursif.
31. Un procédé pour ombrer des vecteurs et des courbes sur un organe afficheur, caractérisé en ce qu'il comprend les étapes consistant à: (a) élaborer une première fonction, cette première fonction comprenant l'expression: Tc [PB1] + (1-Tc) X Tc étant un facteur de transparence, PB1 étant égal à une première donnée de pixel envoyée en retour depuis des moyens formant tampon de trame, et X représentant une seconde fonction, (b) élaborer cette seconde fonction, cette seconde fonction comprenant l'expression: Be [PB2] + (1-Be) Y Be étant une fonction modifiée d'erreur de Bresenham et PB2 étant une seconde donnée de pixels envoyée en retour depuis le tampon de trame, et Y représentant une troisième fonction, (c) élaborer cette troisième fonction, cette troisième fonction comprenant l'expression: Z [Cd] + (1-Z) [PM] représentant une valeur de pondération de profondeur, Cd représentant la couleur estompée, et PM représentant la couleur intrinsèque de la courbe, (d) combiner ensemble les résultats obtenus par élaboration de cette première, de cette seconde et de cette troisième fonctions, de manière à pouvoir élaborer l'expression: Tc (PB1) + (1-Tc) [Be (PB2) + (1-Be) [Z(Cd) + (1-Z) (PM)]] de manière à pouvoir ainsi ombrer la courbe et le vecteur et
y représenter un motif.
32. Un procédé pour ombrer des polygones, caractérisé en ce qu'il comprend les étapes consistant à: (a) élaborer une première fonction, cette première fonction comprenant l'expression: Tc [PB + (1-Tc)] X Tc étant un facteur de transparence, PB étant égal à une première donnée de pixel envoyée en retour depuis des moyens formant tampon de trame, et X représentant une seconde fonction, (b) élaborer cette seconde fonction, cette seconde fonction comprenant l'expression: Z [Cd] + (1-Z) [diff [PM] + réfl [Lc]] z représentant la profondeur, Cd représentant l'effet de profondeur ou estompage de la couleur, Lc représentant une couleur de source lumineuse, PM représentant une valeur de couleur mémorisée, et diff et réfl représentent une troisième et une quatrième fonction, (c) élaborer cette troisième fonction, cette troisième fonction comprenant, dans le cas de l'ombrage d'un polygone, l'expression: Ka + (1/iNàN) [a NLrt + (1-e) NLlt] (d) élaborer cette quatrième fonction, cette quatrième fonction comprenant l'expression: (1/iN- N) [aNHrt + (1-a) NHlt]Oe N représentant le vecteur normal à la surface, L représentant un vecteur unitaire dirigé vers la source lumineuse, H étant un vecteur unitaire dirigé dans la direction d'éclairement maximal, Ka représentant le coefficient de réflexion ambiante, rt désignant une valeur à une extrémité droite d'une ligne de balayage, lt désignant une valeur à l'extrémité gauche de cette ligne de balayage, a représentant un coefficient d'interpolation linéaire, et Oe représentant un exposant de réflexion de l'objet, (e) combiner ensemble les résultats obtenus par élaboration de cette première, de cette seconde, de cette troisième et de cette quatrième fonctions, de manière à obtenir l'expression: Tc[PB] + (1- Tc) [z[Cd] + (l-z) [diff [PM] + réfl [Lc]]]
33. Un procédé pour ombrer des arêtes binaires uniformes et non uniformes, rationnelles et non rationnelles ou parcelles analogues, comprenant les étapes consistant à: (a) élaborer une première fonction, cette première fonction comprenant l'expression: Tc [PB + (l-Tc)] X Tc représentant un facteur de transparence, PB représentant une donnée de pixel envoyée en retour depuis des moyens formant tampon de trame, et X représentant une seconde fonction, (b) élaborer cette seconde fonction, cette seconde fonction comprenant l'expression: Z [Cd] + (1-Z) [diff [PM] + réfl [Lc]] Z représentant la profondeur, Cd représentant l'effet de profondeur ou estompage de la couleur, Lc représentant une couleur de source lumineuse, PM représentant une valeur de couleur mémorisée, et diff et réfl représentent une troisième et une quatrième fonction, (c) élaborer cette troisième fonction, cette troisième fonction comprenant l'expression: Ka + NL/NN (d) élaborer cette quatrième fonction, cette quatrième fonction comprenant l'expression: N représentant le vecteur normal à la surface, L représentant un vecteur unitaire dirigé vers la source lumineuse, H étant un vecteur unitaire dirigé dans la direction d'éclairement maximal, Ka représentant le coefficient de réflexion ambiante, et Oe représentant un exposant de réflexion de l'objet, (e) combiner ensemble les -résultats obtenus par élaboration de cette première, de cette seconde, de cette troisième et de cette quatrième fonctions, de manière à obtenir l'expression: Tc[PB] + (1-Tc) [z[Cd] + (1-z) [diff [PM] + réfl [Lc]]
FR8810000A 1987-07-27 1988-07-25 Procede et dispositif pour restituer des courbes, surfaces courbes, vecteurs et autres objets sur un organe afficheur Expired - Fee Related FR2622030B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US7779787A 1987-07-27 1987-07-27

Publications (2)

Publication Number Publication Date
FR2622030A1 true FR2622030A1 (fr) 1989-04-21
FR2622030B1 FR2622030B1 (fr) 1994-03-04

Family

ID=22140108

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8810000A Expired - Fee Related FR2622030B1 (fr) 1987-07-27 1988-07-25 Procede et dispositif pour restituer des courbes, surfaces courbes, vecteurs et autres objets sur un organe afficheur

Country Status (7)

Country Link
JP (1) JP2777577B2 (fr)
CA (1) CA1305802C (fr)
DE (1) DE3825539C2 (fr)
FR (1) FR2622030B1 (fr)
GB (1) GB2207585B (fr)
HK (1) HK60992A (fr)
SG (1) SG52792G (fr)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179638A (en) * 1990-04-26 1993-01-12 Honeywell Inc. Method and apparatus for generating a texture mapped perspective view
US5253339A (en) * 1990-07-26 1993-10-12 Sun Microsystems, Inc. Method and apparatus for adaptive Phong shading
GB2271259A (en) * 1992-10-02 1994-04-06 Canon Res Ct Europe Ltd Processing image data
US6184891B1 (en) * 1998-03-25 2001-02-06 Microsoft Corporation Fog simulation for partially transparent objects
JP2014056371A (ja) * 2012-09-12 2014-03-27 Fujitsu Semiconductor Ltd 画像処理装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0144924A2 (fr) * 1983-12-12 1985-06-19 General Electric Company Processeur pour texturer/ombrer en vraie perspective

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60126771A (ja) * 1983-12-14 1985-07-06 Hitachi Ltd 自由曲面表示方式
JPS61103277A (ja) * 1984-10-26 1986-05-21 Hitachi Ltd 図形シエ−デイング装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0144924A2 (fr) * 1983-12-12 1985-06-19 General Electric Company Processeur pour texturer/ombrer en vraie perspective

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
COMPUTERS AND GRAPHICS. vol. 8, no. 2, 1984, OXFORD GB pages 149 - 161; JANSEN AND VAN WIJK: 'PREVIEWING TECHNIQUES IN RASTER GRAPHICS' *

Also Published As

Publication number Publication date
JP2777577B2 (ja) 1998-07-16
FR2622030B1 (fr) 1994-03-04
HK60992A (en) 1992-08-21
DE3825539C2 (de) 1997-06-12
DE3825539A1 (de) 1989-02-09
GB2207585B (en) 1992-02-12
GB2207585A (en) 1989-02-01
SG52792G (en) 1992-12-04
CA1305802C (fr) 1992-07-28
JPH01120685A (ja) 1989-05-12
GB8811392D0 (en) 1988-06-15

Similar Documents

Publication Publication Date Title
EP0215510B1 (fr) Processeur d&#39;élimination de faces cachées pour la synthèse d&#39;images à trois dimensions
US5063375A (en) Method and apparatus for shading images
US5659671A (en) Method and apparatus for shading graphical images in a data processing system
Lum et al. High-quality lighting and efficient pre-integration for volume rendering
KR100261076B1 (ko) 범프 맵핑과 퐁 쉐이딩을 동시에 수행하는 렌더링방법 및 장치
Deering et al. The triangle processor and normal vector shader: a VLSI system for high performance graphics
US5880736A (en) Method system and computer program product for shading
FR2690770A1 (fr) Système et procédé de visualisation pour jeux vidéo.
US5949424A (en) Method, system, and computer program product for bump mapping in tangent space
US6677946B1 (en) Method of, an apparatus for, and a recording medium comprising a program for, processing an image
EP0667595B1 (fr) Procédé de génération d&#39;images texturées et d&#39;effets spéciaux en vidéo
EP1292921A1 (fr) Raffinement d&#39;un maillage triangulaire en trois dimensions
US20120256942A1 (en) Floating point computer system with blending
WO2009003143A2 (fr) Rendu en temps reel de milieu de diffusion de lumiere
US6806886B1 (en) System, method and article of manufacture for converting color data into floating point numbers in a computer graphics pipeline
JPH1097648A (ja) 3dオブジェクトディスプレイの更新方法、3dオブジェクトの視覚特性を修正するためのコンピュータ実施システム、ディスプレイ上に3dオブジェクトを再びレンダリングする方法、及び製品
FR2615020A1 (fr) Procede et dispositif pour reproduire des vecteurs en utilisant des parametres de bresenham
JP3888478B2 (ja) データ同期装置
Breslav et al. Dynamic 2D patterns for shading 3D scenes
Wang et al. Fully analytic shading model with specular reflections for polygon-based hologram
FR2622030A1 (fr) Procede et dispositif pour restituer des courbes, surfaces courbes, vecteurs et autres objets sur un organe afficheur
Koster et al. Real-time rendering of human hair using programmable graphics hardware
EP0125989B1 (fr) Procédé pour générer une image vidéo comportant une figure géométrique, et générateur de formes mettant en oeuvre ce procédé
FR2615981A1 (fr) Procede et dispositif pour obtenir des valeurs inverses instantanees de coordonnees homogenes w pour utilisation dans la restitution d&#39;images sur un organe afficheur
Bastos et al. Efficient radiosity rendering using textures and bicubic reconstruction

Legal Events

Date Code Title Description
ST Notification of lapse