DE3825539A1 - Einrichtung zum schattieren von bildern auf einem display - Google Patents

Einrichtung zum schattieren von bildern auf einem display

Info

Publication number
DE3825539A1
DE3825539A1 DE19883825539 DE3825539A DE3825539A1 DE 3825539 A1 DE3825539 A1 DE 3825539A1 DE 19883825539 DE19883825539 DE 19883825539 DE 3825539 A DE3825539 A DE 3825539A DE 3825539 A1 DE3825539 A1 DE 3825539A1
Authority
DE
Germany
Prior art keywords
function
implementing
color
shading
reflection
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
DE19883825539
Other languages
English (en)
Other versions
DE3825539C2 (de
Inventor
Sheue-Ling Lien
Michael J Shantz
Susan E Carrie
Loo Jim Van
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 DE3825539A1 publication Critical patent/DE3825539A1/de
Application granted granted Critical
Publication of DE3825539C2 publication Critical patent/DE3825539C2/de
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)

Description

Bezuggenommen wird auf die deutschen Patentanmeldungen P 38 15 390.4, betreffend Anordnung und Verfahren zur adaptiven Vorwärtsdifferenzbildung bei der Erzeugung von Kurven und Flächen, und P 38 15 361.0, betreffend Einrichtung und Verfahren zum Erzeugen von Vektoren auf einem Displaygerät. Die Inhalte der vorgenannten rangälteren deutschen Patentanmeldungen werden durch Bezugnahme in die vorliegende Offenbarung einbezogen.
Die vorliegende Erfindung bezieht sich auf ein Verfahren und eine Einrichtung zur Erzeugung von Bildern auf einer Kathodenstrahlröhre ("CRT") oder einem anderen Displaygerät. Insbesondere befaßt sich die Erfindung mit einem Verfahren und einer Einrichtung zur Farbwiedergabe (painting) von Kurven, gekrümmten Oberflächen, Vektoren, Polygonen oder Objekten auf einer Kathodenstrahlröhre oder einem anderen Bildschirm.
Bei vielen Computersystemen ist es üblich, einem Benutzer Informationen durch digitale Bilder darzustellen und zu übertragen. Diese Bilder können viele Formen annehmen, beispielsweise alphanumerische Zeichen, kartesische Graphiken und andere Bilddarstellungen, Bei vielen Anwendungen werden die digitalen Bilder auf einem Display, z. B. einem Rasterabtast-Videomonitor, einem Drucker o.dgl. an den Benutzer übermittelt. Typischerweise werden die wiederzugebenden Bilder in digitaler Form gespeichert, verarbeitet und danach zur Anzeige gebracht.
Bei der Wiedergabe eines Bildes auf einer Kathodenstrahlröhre müssen die Koordinaten für jedes Pixel eines anzuzeigenden Bildes ebenso berechnet werden wie die Werte beispielsweise für die Farbe, Transparenz, Bildtiefensimulation, Schleier- und Spiegelungs- (specular) und Diffusionsfaktoren für jedes derartige Pixel. Die Wiedergabe eines Pixels derart, daß es eine Charakteristik eines wiederzugebenden Objekts (d. h. eines dreidimensionalen Objekts) unter Berücksichtigung der Tiefe, Nähe zum Betrachter, Lichtreflexion usw. darstellt, wird "Schattierung" ("shading") des Pixels genannt.
Einige Schattierungsmethoden werden zur Erzeugung glatt bzw. weich schattierter Bilder von Flächen verwendet, die durch dreidimensionale parametrische Flecken oder Polygone angenähert sind. Eine bekannte Methode ist die Phong-Schattierung, die sich als günstige Schattierungsmethode erwiesen hat, da sie eine ausreichend realistische Wiedergabe des gewünschten Bildes bei mäßigen Rechenkosten ermöglicht. Die meisten dreidimensionalen, computergestützten Konstruktionsmethoden geben der interaktiven Darstellung höchste Priorität und machen daher häufig von dem durch die Phong-Schattierung zur Verfügung gestellten Realismus Gebrauch. Eine andere bekannte Schattierungstechnik wird als Gouraud-Schattierung bezeichnet und führt eine lineare Interpolation der Farbe über die wiederzugebenden individuellen Polygone durch. Diese Methode ist jedoch weniger genau als die Phong-Schattierungs-Methode. Polygonapproximationen von gekrümmten Flächen werden aus Darstellungsgründen benutzt, da die Hochgeschwindigkeits-Graphikhardware zum überwiegenden Teil für die rasche Wiedergabe von Polygonen gebaut wurde. Ein typischer Fleck (patch) kann beispielsweise 100 oder mehr Polygone zur Erzielung einer vernünftig genauen Approximation des gewünschten Flecks erforderlich machen. Viele konstruktive Anwendungen würden beträchtlich erleichtert, wenn eine übergangslose, glatte Hochgeschwindigkeitswiedergabe gekrümmter Flächen ohne großen Aufwand realisiert werden könnte.
Es ist daher Aufgabe der vorliegenden Erfindung, ein Verfahren und eine Einrichtung zur parametrischen Fleckwiedergabe zur Verfügung zu stellen, die mit relativ einfacher Hardware zur direkten Phong-Schattierung ohne Verlangsamung der Pixel-Wiedergabefrequenz auskommen. Wiedergegeben werden sollen auch Bilder mit gleichmäßigen, doppelt veränderlichen (bivariate) Flächenflecken sowie ungleichmäßige rationale B-Splineflächen.
Zu diesem Zweck werden bei der Erfindung bi-kubische Funktionen, welche die Schattierungsparameter annähern, abgeleitet und ausgewertet durch adaptive Vorwärtsdifferenzbildungsschaltungen (AFDU), um eine Farbschattierung (shaded color) an jedem Pixel entlang einer parametrischen Kurve zu erzeugen. (Adaptive Vorwärtsdifferenzbildungsschaltungen (AFDU) werden weiter unten erläutert.) Die Erfindung schafft eine Einrichtung zum genauen und raschen Schattieren von Vektoren und Polygonen bei einer wesentlich höheren Geschwindigkeit bzw. Frequenz und ohne beachtlichen Qualitätsverlust, als dies mit herkömmlichen Verfahren möglich war. (Zur Erleichterung des Verständnisses der Phong-Schattierung und Schattierung von Polygonen, Vektoren, Kurven und anderen Objekten wird verwiesen auf: Bui Tuong Phong, Illumination For Computer-Generated Images, UTEC-CS c-73-129, Juli 1973; Tom Duff, "Smoothly Shaded Renderings Of Polyhedral Objects On Raster Displays", Computer Graphics, Band 13, Nr. 2, August 1979; Steven A. Coon, "Surfaces For Computer-Aided Design of Space Forms", Project MAC, Massachusetts Institute Of Technology, MAC-TR-41, Juni 1967; Bishop und Weimer, "Fast Phong Shading", Computer Graphics, Band 20, Nr, 4, August 1986; M. Shantz und S-L Lien, "Shading Bicubic Patches", Computer Graphics, Band 21, Nr. 4, Juli 1987; Sheue-Ling Lien, Michael Shantz und Vaughan Pratt, "Adaptive Forward Differencing For Rendering Curves And Surfaces", Computer Graphics, Band 21, July 1987.)
Die erfindungsgemäße Einrichtung zum Schattieren (shading) von Vektoren und Kurven auf einem Displaygerät enthält Mittel zum Implementieren einer ersten Funktion, wobei die erste Funktion durch den folgenden Ausdruck beschrieben ist:
Tc [PB₁] + (1 - T c) X,
wobei Tc gleich einem Transparenzfaktor ist; PB₁ gleich einem ersten Pixelpuffer von Daten ist, die aus einem Rahmenpuffer von jeder Pixeladresse entlang eines Objekts, beispielsweise einer Kurve zurückgeführt sind, und wobei X eine zweite Funktion darstellt. Die Einrichtung zur Schattierung von Vektoren und Kurven weist außerdem ein Mittel zum Implementieren der zweiten Funktion auf, wobei die zweite Funktion dargestellt ist durch
Be [PB₂] + (1 - Be) Y,
wobei Be = ein modifizierter Bresenham-Fehlerfaktor, der von der erfindungsgemäßen Einrichtung berechnet wird, PB₂ = ein zweiter Pixelpuffer mit Daten, die aus dem Rahmenpuffer zurückgeführt sind, und Y eine dritte Funktion darstellt. Die angegebene Einrichtung weist auch ein Mittel zum Implementieren einer dritten Funktion auf, wobei die dritte Funktion dargestellt ist durch
Z [Cd] + (1 - Z) [PM],
wobei Z den Tiefenbereich oder die Distanz des Objekts vom Betrachter, Cd einen "Schleier" oder eine Hintergrundfarbe und PM die intrinsische Kurvenfarbe aus einem Musterspeicher darstellen. Schließlich weist die Einrichtung zum Schattieren von Vektoren und Kurven ein Mittel zum Kombinieren der o. g. Implementierung der ersten, zweiten und dritten Funktionen zur Gewinnung der Implementierung von
Tc(PB₁) + (1 - Tc) [Be (PB₂) + (1 - Be) [Z(Cd) + 1 - Z (PM)]]
wodurch die Schattierung der Kurve und des Vektors erzeugt wird.
Die Erfindung stellt ferner eine Einrichtung zum Schattieren von Polygonen zur Verfügung, die ein Mittel zum Implementieren einer ersten Funktion aufweist, letztere dargestellt durch
Tc [Pb] + (1 - Tc) X,
wobei Tc = ein Transparentfaktor, PB = Pixelpuffer von aus dem Rahmenpuffer zurückgeführten Daten und X eine zweite Funktion darstellt. Die Einrichtung zum Schattieren von Polygonen weist außerdem ein Mittel zum Implementieren der zweiten Funktion auf, dargestellt durch
Z [Cd] + (1 - Z) [Diffusion (IM) + Reflexion (Le)],
wobei Cd die Bildtiefenfarbe oder die Hintergrundfarbe, Z die Tiefe und "Diffusion" und "Reflexion" dritte und vierte Funktionen darstellen.
Ferner ist erfindungsgemäß ein Mittel zum Implementieren der o. g. dritten (Diffusions-)Funktion vorgesehen, wobei die dritte Funktion dargestellt ist durch
Ka + 1/√ [α NL rt + (1 - α ) NL lt],
wobei N · N den Oberflächen-Normalvektor darstellt; N · N ist das Punktprodukt von N mit sich selbst, NL rt ist das Punktprodukt des Oberflächennormals am rechten Rand des Polygons und des Einheitsvektors L auf eine Lichtquelle; NL lt ist das Punktprodukt von N und L am linken Rand des Polygons; Ka stellt den Umgebungsreflexionskoeffizienten dar, und Lc ist eine Lichtquellenfarbe. Alpha ( ) nimmt von 0 bis 1 zwischen den linken und rechten Rändern des Polygons zu.
Die Einrichtung zum Schattieren von Polygonen weist außerdem ein Mittel zum Implementieren der o. g. vierten Reflexions- bzw. (Spiegel)-Funktion (specular function) auf. Diese vierte Funktion ist dargestellt durch
1/ √ [α NH rt + (1 - α ) NH lt] Oe ,
wobei NH rt das Punktprodukt des Oberflächennormals N am rechten Rand des Polygons mal dem Einheitsvektor H in Richtung des maximal Schlaglichts (highlight), NH lt das Punktprodukt des Normalvektors N am linken Rand des Polygons mal H und Oe eine Potenz ist, zu der der Klammerausdruck erhoben wird, und wobei α zwischen den linken und rechten Rändern des Polygons von 0 bis 1 zunimmt.
Schließlich weist die erfindungsgemäße Einrichtung zum Schattieren von Polygonen ein Mittel zum Kombinieren der implementierten ersten, zweiten, dritten und vierten Funktionen in der folgenden Form auf:
Tc [PB] + (1 - Tc) [z(Cd) + (1 - z) [Diffusion (IM) + Reflexion (Lc)]],
wobei IM die Objektfarbe von einem konstanten Farbwert oder ein Farbwert von einem adressierten Bildspeicherfeld aus Farbwerten und Lc die Farbe der Lichtquelle ist.
Die Erfindung weist ein Mittel zum Schattieren parametrischer Flecken (patches) durch Schattieren einer Folge von eng benachbarten Oberflächenkurven auf. Die Abstandsberechnung wird unten beschrieben. Vorgesehen ist ein Mittel zum Implementieren der ersten Funktion, die dargestellt ist durch
Tc [PB] + (1 - Tc) X.
Die Einrichtung zum Schattieren von Flecken weist auch ein Mittel zum Implementieren der zweiten Funktion X auf, die enthält:
Z [Cd] + (1 - Z) Y,
wobei Cd die Bildtiefenfarbe, Z die Tiefe und "Diffusion" und "Reflexion" ("specular") die fünften und sechsten Funktionen sind.
Die Einrichtung weist ein Mittel zum Implementieren einer fünften (Diffusions-) und sechsten (Reflexions-)Funktion auf. Die fünfte Funktion enthält:
Ka + N · L/√,
wobei N der Oberflächennormalvektor ist, der entlang einer Oberflächenkurve als parametrische Funktion variiert. Die sechste Funktion (Reflexion) ist dargestellt durch:
(N · H/ √) Oe .
Schließlich weist die Einrichtung zum Schattieren parametrischer Flecken ein Mittel zum Kombinieren der implementierten ersten, zweiten, fünften und sechsten Funktionen zu dem folgenden Ausdruck auf:
Tc [PB] + (1 - Tc) [Z (Cd) + (1 - Z) [(Ka + N · L/ √) (IM) + (N · H/ √) Oe (Lc)]]
wodurch die Oberflächenkurve des wiederzugebenden parametrischen Flecken schattiert wird.
Im folgenden wird die Erfindung anhand von in der Zeichnung schematisch dargestellten Ausführungsbeispielen näher erläutert. In der Zeichnung zeigen:
Fig. 1 ein Blockschaltbild der Anordnung zum Schattieren von Pixeln gemäß einem Ausführungsbeispiel der Erfindung;
Fig. 2 ein detaillierteres Blockdiagramm der Anordnung gemäß Fig. 1;
Fig. 3 eine Einzelheit der in Fig. 2 gezeigten Schaltung; und
Fig. 4 ein alternatives Ausführungsbeispiel der Schaltung gemäß Fig. 2.
Erfindungsgemäß werden eine Einrichtung und ein Verfahren zur bevorzugten Verwendung in einem Computersystem für die graphische Bildwiedergabe angegeben. Obwohl die Erfindung unter Bezugnahme auf spezielle Schaltungen, Blockschaltbilder, Signale, Algorithmen usw. beschrieben wird, ist es für den Fachmann klar, daß derartige Einzelheiten nur zur Erleichterung des Verständnisses für die vorliegende Erfindung beschrieben werden. Es ist klar, daß die Erfindung auch ohne diese besonderen Einzelheiten realisiert werden kann. In anderen Fällen sind bekannte Schaltungen nur als Blockschaltbilder dargestellt, um die Erfindung nicht mit überflüssigen Einzelheiten zu belasten.
In Fig. 1 ist ein funktionelles Gesamtblockdiagramm der Erfindung gezeigt. Um Bilder auf einem CRT-Display oder einer anderen Bildwiedergabeeinrichtung zu definieren, müssen Daten mit hoher Geschwindigkeit bearbeitet werden, um den Pixelort und die -farbe auf einem CRT-Display auszuwählen, welche die Kurve, gekrümmte Fläche, den Vektor oder das wiederzugebende Bild definieren. Es ist im Stande der Technik bekannt, daß der Ort jedes auf einer CRT wiederzugebenden Punktes häufig durch Digitalwerte dargestellt ist, die in einem Speicher gespeichert sind und x, y, z und w homogenen Koordinaten entsprechen.
Ein Geometrieabschnitt 7 enthält die X-, Y-, Z- und W-AFDU-Einheiten 14, die in Fig. 1 der o. g. älteren Anmeldungen gezeigt und beschrieben sind. Der Geometrieabschnitt 7 berechnet homogene x-, y-, w- und z-Koordinaten eines Objektes, dessen Bild wiederzugeben ist. Der Geometrieabschnitt 7 enthält auch eine Adressenpipeline 16 mit der Pixel-Filterschaltung 30, gezeigt in den Fig. 1 und 7 der zugehörigen o. g. älteren Anmeldungen, die einen modifizierten Bresenham-Algorithmus-Fehlerausdruck als Anti-Aliasierung-Wichtungsfunktion ausgibt. (Die oben erwähnte modifizierte Version des Bresenham-Algorithmus findet verbreitete Verwendung zum schrittweisen Vorrücken entlang des Randes eines Polygons in Abtastzeilenreihenfolge und in Anti-Aliasierung-Vektortechniken (siehe Akira Fujimoto und Ko Iwata, "Jag Free Images on a Raster CRT", Computer Graphics Theory and Applications, herausgegeben von Tosiyasu Kunii, Springer Verlag, 1983). Die Wichtungsfunktion wird zu einer Schattierungspipeline 12 eines Farbgebungsabschnitts 150 ausgegeben. Der Farbgebungsabschnitt 150 dient der Farbgebung von Pixeln auf einer CRT 22, wie weiter unten beschrieben werden wird. Die AFDU's 14 geben momentan x-, y-, w- und z-Koordinaten an die Adreßpipeline 16 aus. Der Pixelfilter 30 gibt die Bogenlänge und eine Anti-Aliasierung-Wichtungsfunktion Ce und außerdem die z-Koordinate, die Bogenlänge und die Anti- Aliasierung-Wichtungsfunktion an eine Adreßpipeline 12 des Farbgebungsabschnitts 150 aus, wie weiter unten beschrieben werden wird.
Die Adreßpipeline 16 gibt die x-, y-, w- und z-Koordinaten an einen Rahmenpuffer 20 aus, um ein spezielles Pixel auf einer CRT zu definieren. Die Momentankoordinate z, welche in die Schattierungspipeline 12 eingegeben wird, dient dort zur Bildtiefensimulation. Hierbei handelt es sich um eine bekannte Technik zum Ausblenden von wiederzugebenden Objekten derart, daß sie weiter entfernt (in der z-(Tiefen-)Richtung) vom Betrachter des Bildes erscheinen. (Foley & Van Damm, Interactive Computer Graphics, Addison Wesley, 1982.) Die an die Schattierungspipeline 12 ausgegebene Bogenlänge dient zum inkrementellen Weiterschalten eines Musterspeichers zum Zwecke der Abbildung eines Musters entlang einer Kurve, während der Anti-Aliasierung- Wichtungsfaktor zum Mischen von Pixeln entlang des Randes oder der Silhouette eines wiederzugebenden Objektes mit dem Hintergrund zwecks Verringerung von Bildzacken auf einer Rasteranzeige verwendet wird.
Der Farbgebungsabschnitt 150 enthält mehrere zusätzliche AFDU- Schaltungen 10 und die oben bereits erwähnte Schattierungspipeline 12. Farbgebungsabschnitt 150 erzeugt und gibt rote, grüne und blaue Darstellungen der an jedem Pixel wiederzugebenden Farbe aus und führt Vektorschattierung, Kurvenschattierung, Polygonschattierung sowie Fleckschattierung (d. h. Schattierung von bi-kubischen Flecken) aus. Die Operation und Darstellung jeder dieser Funktionen werden weiter unten genauer beschrieben.
Die AFDU-Schaltungen 10 dienen als Funktionsgeneratoren zur Erzeugung parametrischer Eingangssignale für die Schattierungspipeline 12. Insbesondere dienen die AFDU's 10 dem Zweck der Berechnung parametrischer kubischer Approximationen für die Normalvektor-Punktprodukte in der bekannten Phong-Schattierungsgleichung sowie der Berechnung linearer Interpolationsfunktionen und Adressen in den Bildspeicher zur Abbildung von Bildern auf Flecken. Die Schattierungspipeline 12 weist drei Kanäle auf, jeweils einer für Rot-, Grün- und Blauverarbeitung. Jeder Kanal enthält eine Folge von in Serie geschalteten arithmetischen Einheiten, welche Farbvektor-Arithmetikoperationen ausführen. Jede arithmetische Einheit in der Schattierungspipeline 12 führt eine von mehreren arithmetischen Funktionen aus, welche weiter unten beschrieben werden und von dem aus der CPU 9 empfangenen Befehl abhängig sind.
Die Schattierungspipeline 12 berechnet und gibt an den Rahmenpuffer 20 Farben aus, welche sowohl Diffusions- als auch Spiegelungs- bzw. Reflexionsbeiträge haben, und außerdem addiert sie Farbbildtiefensimulation, Anti-Aliasierung, optionelle Bewegungsunschärfe und Transparenz zu jedem Farbpixel. Die Pixel-Farbwerte werden aus der Schattierungspipeline 12 zum Rahmenpuffer 20 zur Anzeige an der CRT 22 ausgegeben (d. h. entsprechend der Definition durch x-, y-, z- und w-Koordinaten).
Die Schattierungspipeline 12 kann auch ausgangsseitig auf Pixelpuffer in der Schattierungspipeline 12 gerichtet sein, so daß sich eine rekursive Rechenfähigkeit ergibt. Die an jeder Pixeladresse berechneten Werte werden sequentiell in einen Pixelpufferspeicher geschrieben. Wie weiter unten erläutert werden wird, kann die gleiche Kurve wieder durch AFDU's 14 und 10 ausgeführt und mit den zuvor berechneten und im Pixelpuffer für zusätzliche Schattierungsberechnungen gespeicherten Werten kombiniert werden.
Die Adreßpipeline 16 kann auch in einem Rahmenpuffer-Lesemodus wirksam sein, wodurch die von der Adreßpipeline 16 erzeugten Adressen zum Lesen von Pixelwerten aus dem Rahmenpuffer 20 und zum Ausgeben dieser Werte an sequentielle Stellen in der Schattierungspipeline 12 verwendet werden, so daß diese Werte in nachfolgenden Operationen, z. B. zur Anti-Aliasierung, zur Transparenz- und zu Bewegungsunschärfeberechnungen herangezogen werden können.
Vektorschattierung
Bei der Wiedergabe von Vektoren enthalten Vektorattribute Zeilenbreite, Anti-Aliasierung, Farbtiefensimulation und Transparenz. Zeilenbreite und Anti-Aliasierung werden aus dem Geometrieabschnitt 7 abgeleitet, wie zuvor beschrieben und nachfolgend noch genauer erläutert werden wird. Die Farbtiefensimulation (color depth cueing) und Transparenz werden durch Implementierung der unten angegebenen Koeffizienten entsprechend der Berechnung gemäß Formel (1) unten abgeleitet.
Tc = Transparenzkoeffizient reicht von 0 (undurchsichtig) bis 1 (klar) und enthält typischerweise 12 fraktionelle Bits. Tc ist konstant für ein vorgegebenes Objekt.
PB = Pixelpufferspeicher, adressiert durch von den AFDU's 10 erzeugte Werte. < R, G, B <, Bereich 0 bis 1, 12 fraktionelle Bits (typische Ausführung).
Be = modifizierter Bresenham-Fehler (verwendet als Anti-Aliasierung- Wichtungsfunktion), Bereich von 0 bis 1, typischerweise mit 12 fraktionellen Bits. B wird von den AFDU's 14 für jedes Pixel entlang des Vektors erzeugt.
IM = Bildspeicher, IM
PM = Musterspeicher, PM
Z = Tiefenwert aus ZAFD, Bereich 0 bis 1, typischerweise 12 fraktionelle Bits.
Ca = Farbkonstante für Anti-Aliasierung-Hintergrund, <R, G, B<, 8 Bits
Die obige Gleichung kann dadurch vereinfacht werden, daß man Tc = 0 für undurchsichtige Objekte setzt, daß man eine konstante Farbe Ca für PB im Anti-Aliasierung-Ausdruck substituiert, daß man Be = 0 für Arbeiten ohne Anti-Aliasierung einstellt, daß man eine konstante Farbe Oc für IM substituiert oder daß man Z = 0 einstellt, wenn keine Bildtiefensimulation vorgesehen ist. (Zu beachten ist bezüglich eines Anti- Aliased-Vektor, daß dessen beiden Seiten unabhängig als zwei separate Vektoren Seite mal Seite gezeichnet werden können.) Die Implementierung von Gleichung (1) wird weiter unten unter Bezugnahme auf die Schaltung gemäß Fig. 2 beschrieben.
Kurvenschattierung
Die Kurven sind Vektoren sehr ähnlich in ihren Schattierungsattributen. (Fundstelle Foley und Van Damm, Fundamentals of Interactive Computer Graphics, Addison, Wesley, 1982.) Der Hauptunterschied besteht darin, daß ein Anti-Aliasierung-Koeffizient Ce das Be der Gleichung (1) ersetzt. Demgemäß wird die Gleichung zum Wiedergeben einer Kurve erfüllt durch Implementierung der nachfolgenden Gleichung (2).
Gleichung (2) bietet die gleichen Vereinfachungen wie für Vektoren. Der Koeffizient Ce wird von dem Pixelfilter 30 in der Adreßpipeline 16 für jedes Pixel entlang der Kurve berechnet. Diese Schaltung ist Teil eines Pixelfilters 30 und wird weiter unten genauer beschrieben.
Ploygonschattierung
Die Schattierungsattribute, die sich auf Polygone anwenden lassen, umfassen Hohl- und Volldarstellung, Gouraud- oder Phong-Schattierungsstil, Bildeinteilung, Anti-Aliasierung, Bildtiefensimulation und Transparenz. Die folgende Gleichung gibt die Schattierungsgleichung für eine Linie zwischen zwei Punkten (d. h. einer Abtastzeile) eines Polygons. Die Polygonschattierung wird durch Implementierung der unten in Gleichung (3) und (4) aufgeführten Koeffizienten durchgeführt.
NL = nicht-normalisiertes Punktprodukt N · L am linken oder rechten Rand einer Abtastlinie bzw. -zeile eines zu schattierenden Polygons, wobei die Normalen an den Scheiteln derart normalisiert werden, daß eine lineare Interpolation NL stets in den Bereich von 0 bis 1, niemals oberhalb von 1, fallenläßt. NL hat bei dem bevorzugten Ausführungsbeispiel 12 fraktionelle Bits, obwohl mehr oder weniger Bits verwendet werden können.
NH = nicht-normalisiertes Punktprodukt N · H am linken oder rechten Rand der Abtastzeile oder -linie des Polygons (typischerweise in demselben Bereich und mit derselben Bit-Anzahl wie NL).
NN = die quadrierte Länge des Oberflächennormalvektors, d. h. das Punktprodukt von N und N. Dieser Wert liegt bei dem beschriebenen Ausführungsbeispiel im Bereich von 0,5 bis 1 und erfordert 12 fraktionelle Bits.
α = ein von einer AFDU-Schaltung erzeugter Wert, der von 0 bis 1 zwischen den linken und rechten Rändern der Abtastlinie bzw. -zeile eines zu schattierenden Polygons linear zunimmt und typischerweise 12 fraktionelle Bits enthält. (Zu beachten: die AFDU- Schaltung ist schaltungsmäßig identisch mit der X-AFDU-Schaltung in Fig. 3 der eingangs genannten älteren Anmeldungen aufgebaut.)
Im folgenden wird der Diffusionswert als "diff" und der Spiegel- bzw. Reflexionswert mit "spec" bezeichnet.
Die obigen Gleichen (3) und (4) können unter Verwendung der W-AFDU zur Erzeugung einer Annäherung für spec und einer AFDU- Schaltung (weiter unten beschrieben unter Bezugnahme auf Fig. 2) zur Approximation von diff wesentlich vereinfacht werden. spec und diff liegen im Bereich von 0 bis 1 und müssen sich zusammen mit Ka zu 1 summieren; jeder dieser Werte besteht bei dem beschriebenen Ausführungsbeispiel aus 12 fraktionellen Bits.
Bei der Gouraud-Schattierung (d. h. Interpolation von Farbe entlang einer Abtastzeile einer CRT) kann die obige Schattierungsgleichung durch Eliminierung des Multiplikators 1/ √ vereinfacht werden. (Gouraud-Schattierung ist im Stande der Technik bekannt und erläutert, beispielsweise in Henri Gouraud, Computer Display of Curved Surfaces, Department 1971; Tom Duff, "Smoothly Shaded Renderings of Polyhedral Objects on Raster Displays", Computer Graphics, Band 13, 1979.)
Bekanntlich müssen beim Schattieren von Polygonen häufig Grenzen um Polygone gezogen werden, um das Randverlaufsattribut (edge-style attribute) wiederzugeben. Wenn derartige Grenzen breiter als ein Pixel sind, wächst das Problem, richtige Werte für dz/dx an der wiederzugebenden Grenze so zu erhalten, daß der Wert die x-Wert-Grenzpixel nicht minimiert. Zu der Erfindung gehört eine Lösung des o. g. Problems der Erzeugung bzw. Wiedergabe von Grenzen, deren Breite größer ist als eine Pixelbreite. Zwei Polygone werden erzeugt, wobei ein Randpolygon eine äußere Grenze und ein inneres Polygon ein inneres Loch definieren. Die Scheitel des inneren Polygons sind auch diejenigen des Polygon-Innenraums, wodurch auch das Problem der ausgeschlossenen Grenzpixel eliminiert wird. Wenn die Grenze nur eine Breite von einem Pixel hat oder wenn Anti-Aliasierung am Rande des zu erzeugenden Polygons erwünscht ist, ist es alternativ vorzuziehen, einen Vektor zu erzeugen (die Hälfte eines anti-aliasierten Vektors), der das Polygon umhüllt. Das x- oder y-Offset der anti-aliasierten Vektormethode stellt sicher, daß der Umhüllungsvektor keine Pixel enthält, welche innerhalb der genauen Grenze des Polygons liegen. Die Schattierungsgleichung für einen anti-aliasierten Rand um ein Phong-schattiertes Polygon ist
Es wurde festgestellt, daß Mehrfachlichtquellen von der Einrichtung gemäß Fig. 2 wiedergegeben werden können, indem zunächst diff (IM) in den Pixelpuffern 116, 216 und 316 der Fig. 2 gespeichert und danach wiederholt die Reflexionskomponente spec oe (Lc) für jede Lichtquelle zum Pixelpuffer addiert wird.
Parametrische Fleckschattierung
Die folgende Gleichung stellt die Schattierungsgleichung für eine Oberflächenkurve über einem bivarianten parametrischen Fleck (bivariate parametric patch) dar.
Wie in den zugehörigen älteren Anmeldungen P 38 15 361 und P 38 15 390 beschrieben ist, können AFDU-Schaltungen zum implementieren einer kubischen (oder höherer Ordnung) parametrischen Funktion der Variablen (genannt der Parameter) v verwendet werden. Diese AFDU-Schaltungen, die als kubische Funktionsgeneratoren dienen, werden zur Erzeugung von x (v), y(v), z (v) und w(v) verwendet, um die Pixeladressen entlang einer kubischen Kurve derart zu liefern, daß im wesentlichen ein-Pixel- Schritte erzeugt werden. AFDU-Schaltungen können außerdem zur Erzeugung kubischer Funktionsapproximationen von spec(v), diff(v), N · L(v), N · H(v) oder N · N(v) verwendet werden, die alle vom Pixelfilter 30 zur Erzeugung von Schattierungswerten für die entsprechenden Pixeladressen gesteuert werden.
Zum Schattieren eines bivarianten Oberflächenflecks f(u, v) erzeugt die Einrichtung gemäß Fig. 2 eine Folge von Kurven g(v) die genügend eng im u-Parameter beabstandet sind, damit die resultierende Oberfläche keine Löcher oder Pixelspalten enthält. Daher wird der Fleck im u,v-Parameterraum erzeugt bzw. wiedergegeben, wodurch Schattierungsoperationen, wie die Bildeinteilung und die Flecktrimmung, die im Stande der Technik bekannt sind, wesentlich erleichtert werden. Das Erzeugen einer Folge von eng benachbarten Kurven zum Schattieren eines bivarianten bzw. aus zwei Größen bestehenden Flecks kann unter Verwendung der o. g. adaptiven Vorwärtsdifferenzmethode gemäß eingangs angegebenen rangälteren Anmeldungen implementiert werden.
Die folgende Beschreibung erläutert dem Fachmann das erfindungsgemäße Verfahren zum Schattieren von Flecken (patches) durch Erzeugung einiger eng beabstandeter bzw. benachbarter Kurven.
Bei der adaptiven Vorwärtsdifferenzbildung von einer ersten Kurve zur nächsten Kurve ist die Basisfunktion für die erste Kurve f(u,v), während die Basisfunktion für die zweite Kurve f(u + du,v) ist. Die bekannte Matrix bei der Vorwärtsdifferenzbildungsbasis zur Darstellung einer Kurve in u,v ist:
wobei Bv und Bo die Vorwärtsdifferenz-Basismatrizen sind. (Zum besseren Verständnis der Vorwärtsdifferenz-Basismatrizen wird verwiesen auf Foley & Van Damm, Interactive Computer Graphics, Addison Wesley, 1982.)
Die j-te Spalte der A-Matrix wird mit Axj bezeichnet. In ähnlicher Weise wird die i-te Zeile der A-Matrix bezeichnet mit Aix. Ein Vorwärtsdifferenzbildungsschritt von einer Kurve zur nächsten Kurve auf einem bivarianten parametrischen Fleck wird erreicht durch Addition von Spalte A x1 zu A x0, A x2 zu A x1 und A x3 zu A x2. Die nächste Kurve wird danach durch die vier Werte in Spalte A x0 definiert. Die nächste Kurve wird geprüft, um festzustellen, ob sie zu weit (Bildung von Pixelspalten) entfernt von der aktuellen Kurve liegt.
Die "Differenz"-Spalte A x1 wird in die bekannte "Bezier"-Basis umgesetzt. Die bekannte konvexe Bezier-Schale wird dann getestet, um den Maximalabstand der Pixelkoordinate x und y zwischen zwei Kurven zu erhalten. Wenn dieser Abstand größer als ein vorgegebener Schwellenwert ist, wird die Kurve jede Zeile der A-Matrix herunter angepaßt. Wenn der Abstand in der x-Koordinate und derjenigen der y-Koordinate kleiner als ein vorgegebener Mindestwert ist, wird jede Zeile der Matrix hochgesetzt. (Zum besseren Verständnis der "Bezier"-Basis und deren Wechselwirkung mit der Vorwärtsdifferenzbildung wird auf Foley & Van Damm, Fundamentals of Interactive Computer Graphics, Addison Wesley, 1982 verwiesen.)
Die Implementierung der oben angegebenen Gleichungen für Vektor-, Kurven-, Polygon- und bi-kubische Fleck-Schattierung wird im folgenden unter Bezugnahme auf Fig. 2 erläutert.
In Fig. 2 ist ein Gesamtblockschaltbild der Schattierungs- Hardware gemäß vorliegender Erfindung gezeigt. Fig. 2 stellt einen drei-Kanal-Prozessor zur Entwicklung der Standard-rot-, -grün- und -blau-Signale für eine Farbbildröhre (CRT) dar. Generell gehören die Komponenten mit den Bezugszeichen 100 bis 199 zum Rotkanal, 200-299 zum Grünkanal und 300-399 zum Blaukanal.
Vier adaptive Vorwärtsdifferenzbildungsschaltungen (AFDU's) 50, 60, 70 und 90 entsprechen den AFDU's 10 der Fig. 1 und liefern Pixel-Schattierungswerte entsprechend den Pixeladressen, die von AFDU's 14 ausgegeben werden. Die AFDU's sind digitale Differenzialanalysierer dritter Ordnung, welche eine adaptive Vorwärtsdifferenzbildungslösung für eine parametrische kubische Funktion des Parameters t implementieren, wie in den eingangs genannten Patentanmeldungen beschrieben ist, wobei sich t von 0 bis 1 entlang einer kubischen Kurve ändert und die dt-Schrittgröße für t adaptiv derart eingestellt wird, daß auf der Kurve mit Schrittlängen von angenähert einem Pixel vorgerückt wird. Die arithmetischen Einheiten ("Au's") 76, 78, 86, 88, 104, 114, 122, 124, 128, 204, 214, 222, 224, 228, 304, 314, 322, 324 und 328 sind alle identische Einheiten, die als Gatteranordnungen oder aus diskreten Komponenten, wie "TRW"- Multiplizierer und ALU's implementiert werden können.
Aus Gründen der Verdeutlichung bezieht sich das hier beschriebene Ausführungsbeispiel auf eine Pipeline-Struktur, bei der jeder Rechenschritt einer bezeichneten ALU zugeordnet ist. Es ist für den Fachmann klar, daß gleiche Ergebnisse durch Verwendung einer rekursiven Verarbeitung erreicht werden können, wobei eine einzige ALU für jeden Kanal jede der Rechenoperationen während aufeinanderfolgender Operationszyklen ausführt. Rückkopplungs- und Multiplexerschaltungen sind für derartige rekursive Verarbeitungen erforderlich. Ein Beispiel für eine solche rekursive Ausführungsform wird weiter unten in Verbindung mit Fig. 4 beschrieben.
Jede der Au's erhält Eingangssignale A, B und ALPHA und liefert ein mit RES bezeichnetes Ergebnis. Jede der AU's berechnet einen der folgenden Ausdrücke am RES-Ausgang:
(ALPHA) A + (1-ALPHA) B (6 a)
(ALPHA) B + (1-ALPHA) A (6 b)
(ALPHA) A + B (7 a)
(ALPHA) B + A (7 b)
A * B (7 c)
A + B (7 d)
Das Ausgangssignal von AA-AFDU 50 wird an einen AA-Funktionsmodul 52 geliefert, der eine Nachschlagetabelle ist, die eine den Abstand von einer Abtastlinie bzw. -zeile zu Be in Gleichung (1) umsetzende Funktion enthält. Das Ausgangssignal des AA-Funktionsmoduls 52 wird einem Multiplexer 96 eingegeben. Letzterer erhält als Eingangssignal außerdem einen Anti-Aliasierung- Wichtungsfaktor (Ce in Gleichung (2)) aus einer Pixel- Filterschaltung 30 (gezeigt in Fig. 3 des Geometrieabschnitts 7. Fig. 3 zeigt einige der Register (102, 103, 104, 120, 121, 122) gemäß Fig. 7 der oben angezogenen älteren Anmeldungen. Subtraktionsschaltung 170 der Fig. 3 erhält Eingangssignale von x-Registern 103 und 104 und erzeugt das Ausgangssignal t x = x n+1 - n n+2 (tx ist die x-Komponente des momentanen Tangensvektors). Die Subtraktionsschaltung 171 nimmt Eingangssignale aus y-Registern 121 und 122 auf und erzeugt das Ausgangssignal t y = Y n+1 - Y n+2 (t y ist die y-Komponente des momentanen Tangensvektors). Nachschlagetabelle 176 der Fig. 3 nimmt den momentanen Tangensvektor <t x, t y< Eingangssignale von den Subtraktionsschaltungen 170 und 171, Eingang 182 von der CPU 9 sowie den Bruchbestandteil der Adresse f x und f y aus den Registern 103 und 121 auf.
Die Nachschlagetabelle 176 erzeugt drei Ausgangssignale: ein Ausgangssignal 178, den Anti-Aliasierungs-Gewichtsfaktor x zum Farbgebungsabschnitt 150, ein weiteres Ausgangssignal am Ausgang 179 (das x-Offset) zum Addierer 183 und ein Ausgangssignal 180 (das y-Offset) zum Addierer 184, das zum Rahmenpuffer weitergeleitet wird. Die Nachschlagetabelle 176 wird mit vorberechneten Werten entsprechend den beiden unten angegebenen Tabellen geladen. Ein ein-Bit-Eingangssignal 182 an der Nachschlagetabelle 176 wird von der CPU 9 auf "Null" gesetzt, um die Schaltung gemäß Fig. 1 zu veranlassen, einen ersten Durchlauf einer anti-aliasierten Kurve zu entwickeln. Das ein-Bit- Signal wird auf "Eins" gesetzt, um einen zweiten Durchlauf zu erzeugen. Für den ersten Durchlauf wird das von den AFDU's erzeugte Pixel <x, y< mit dem Schattierungsfaktor 1 - |α| mit α = α x schattiert, wenn die zu erzeugende Kurve eine x-Hauptkurve ist, und α = α y , wenn sie eine y-Hauptkurve ist. Der Anti-Aliasierungs-Gewichtsfaktor wird berechnet durch:
Der Ausgang der Nachschlagetabelle 176 für einen Durchlauf für x- und y-Hauptkurven (major curves) ist unten in Tabelle I gezeigt.
Bei dem zweiten Durchlauf wird das Pixel mit den Koordinaten <x + x offset, y + y offset< schattiert mit dem Schattierungsfaktor |α|, wobei x offset = Vorzeichen ( α) · x-Hauptkurve und y offset = Vorzeichen ( α) · y-Hauptkurve. Der Ausgang der Nachschlagetabelle 176 für den zweiten Durchlauf der x- und y-Hauptkurven ist unten in Tabelle II angegeben.
Wie in den Tabellen I und II gezeigt ist, ist das Signal 182 zur Nachschlagetabelle 176 auf "Null" eingestellt. Ausgang 179 der Nachschlagetabelle 176 ist x offset = 0. Wenn das Signal 182 auf "Eins" eingestellt ist, so ist der Ausgang 179 der Nachschlagetabelle 176 wie folgt: (i) 0, wenn Eingang 174 angibt, daß die entwickelte Kurve ein x-Haupt-Tangensvektor ist; (ii) 1, wenn Eingang 174 einen y-Haupt-Tangensvektor angibt und α positiv ist; (iii) -1, wenn Eingang 174 einen y-Haupt-Tangensvektor angibt und α negativ ist. Ausgang 180 von Tabelle 176 ist wie folgt: (i) 0, wenn Eingang 174 einen y-Haupt-Tangensvektor anzeigt; (ii) 1, wenn Eingang 174 einen x-Haupt-Tangensvektor anzeigt und α positiv ist; (iii) -1, wenn Eingang 174 einen x-Haupt-Tangensvektor anzeigt und α negativ ist. Addierer 183 addiert das x-Offset 179 aus Tabelle 176 zum Inhalt des Registers 102 und gibt die x-Koordinate des aktuellen Pixels aus. Addierer 184 addiert das y-Offset 180 aus Tabelle 176 zum Inhalt des Registers 120 und gibt die y-Koordinate des aktuellen Pixels aus.
Im folgenden wird auf Fig. 2 Bezug genommen. Der Ausgang des Multiplexers 96 gemäß Fig. 2 wird von den ALPHA-Eingängen der Au 124, 224 und 324 aufgenommen.
Der Ausgang von N · N-AFDU 60 wird von der Nachschlagetabelle 62 aufgenommen, die eine Annäherung der Umkehr der Quadratwurzel N · N durchgeführt. Der Ausgang der Nachschlagetabelle 62 wird an den ALPHA-Eingang von AU's 78 und 88 angelegt. AU 78 erhält seinen A-Eingang vom RES-Ausgang von AU 76. Der Ausgang von INTERP-AFDU 70 wird an den ALPHA-Eingang von AU 76 und AU 86 angelegt. Die Register 72 und 74 liefern A- bzw. B-Eingänge an die AU 76. Der Ausgang der AU 78 wird an den x oe-Funktionsmodul 79 angelegt. Der Ausgang des x oe-Funktionsmoduls 79 wird den ALPHA-Eingängen von AU's 114, 214 und 314 zugeführt.
Die Ausgänge von Registern 82 und 84 bilden Eingänge A bzw. B der AU 86. Der RES-Ausgang von AU 86 wird an den A-Eingang von AU 88 angelegt. Der B-Eingang von AU 88 wird von einem Register 87 geliefert. Der RES-Ausgang von AU 88 wird an den ALPHA-Eingang der AU's 104, 204 und 304 angelegt.
Der Ausgang der Muster-AFDU 90 wird an einen Muster-Funktionsmodul 92 angelegt. Der Ausgang des Moduls 92 ist eine Muster- Speicheradresse, die in Musterspeicher 102, 202 und 302 eingegeben wird. Der Inhalt der adressierten Plätze in den Musterspeichern 102, 202 und 302 wird an die A-Eingänge von AU's 104, 204 bzw. 304 angelegt. Der RES-Ausgang von AU's 104, 204 und 304 wird an Multiplexer 110, 210 bzw. 310 angelegt. Multiplexer 110, 210 und 310 erhalten als Eingänge auch die Ausgänge von Registern 106, 206 bzw. 306. Die Ausgänge der Multiplexer 110, 210 bzw. 310 werden als A-Eingänge an die AU's 114, 214 bzw. 314 angelegt.
Die RES-Ausgänge der AU's 114, 214 bzw. 314 werden an die A-Eingänge von AU's 122, 222 bzw. 322 angelegt. Dieselben RES-Ausgänge werden als sequentielle Eingänge an Pixel-Pufferspeicher 116 und 118, 216 und 218 bzw. 316 und 318 angelegt. Die sequentiellen Ausgänge dieser Pixel-Pufferspeicher gehen an Multiplexer 112, 212 bzw. 312. Diese erhalten als Eingänge auch die Ausgänge von Registern 108, 208 bzw. 308. Die Ausgänge der Multiplexer 112, 212 und 312 werden an die B-Eingänge von AU's 114, 214 bzw. 314 angelegt. Unter Verwendung der erfindungsgemäßen Schaltung gemäß Fig. 2 kann eine neue Schattierungsfunktion derselben Kurve berechnet und in den AU's arithmetisch mit dem Schattierungswert des zuvor berechneten und im Pixel-Pufferspeicherfeld gespeicherten entsprechenden Pixels kombiniert werden. Die Pixelpuffer werden sequentiell gesteuert von einem in der Zeichnung nicht gezeigten Zähler, der bei Beginn einer Kurvenoperation von der CPU 9 rückgesetzt werden muß. Alle Register können von der CPU 9 zugegriffen werden.
Die AU's 122, 222 und 322 erhalten B-Eingangssignale von den Ausgängen der Register 120, 220 bzw. 320. Die RES-Ausgänge der AU's 122, 222 bzw. 322 werden an die A-Eingänge der AU's 124, 224 bzw. 324 angelegt. Rote, grüne und blaue Rückkopplungsdaten vom Rahmenpuffer 20 (nicht gezeigt) werden als Eingangssignale an sequentiell adressierte Pixel-Pufferspeicher 126, 130, 226, 230, 326 und 330 angelegt. Die Ausgänge der Pixelpuffer 126, 226 und 326 werden an die B-Eingänge von AU's 124, 224 bzw. 324 angelegt. Die Ausgänge der Pixelpuffer 130, 230 und 330 werden an die B-Eingänge der AU's 128, 228 bzw. 328 angelegt. Die RES-Ausgänge der AU's 124, 224 bzw. 324 werden an die A-Eingänge der AU's 128, 228 bzw. 328 angelegt. Der ALPHA-Eingang der AU's 128, 228 und 328 wird vom Ausgang eines Transparenzregisters 98 beaufschlagt. Die RES-Ausgänge von AU's 128, 228 bzw. 328 liefern Digitaldarstellungen der Pixelschattierung für die Rot-, Grün- und Blau-CRT-Kanäle.
Nach der Beschreibung der Schaltungsverbindungen der in Fig. 2 gezeigten Schaltungskomponenten wird auf die Funktionsweise der Schaltung unter Bezugnahme auf die oben angegebenen Schattierungsgleichungen eingegangen, welche durch die Schaltung gemäß Fig. 2 implementiert sind. In der folgenden Erörterung wird nur auf den Rot-Kanal Bezug genommen. Es ist natürlich klar, daß ohne andere Angaben eine identische Arbeitsweise in den grünen und blauen Kanälen stattfindet.
1. Vektor- und Kurvenschattierung
Wie gesagt, wird die Kurvenschattierung durch Implementieren der Gleichung (8) wie folgt erreicht:
Pixelfarbe = T c (PB₄) + (1 - T c ) (Be(PB₃) + (1 - Be) (z(Cd) + (1 - z) (PM) )), (8)
wobei:
T c = Transparenzfaktor
PB₃, PB₄ = Pixel-Pufferdatenrückkopplung vom Rahmenpuffer
Be = modifizierte Bresenham-Fehlerfunktion
z = Tiefenwichtung
C d = Schleier- (haze) oder Bildtiefenfarbe
PM = intrinsische Kurvenfarbe von den Musterspeichern der Fig. 2.
Muster-AFDU 90 gibt den aktuellen Wert einer parametrischen Funktion an eine Musteradressen-Umsetzungsfunktionseinheit 92, die eine Musteradressentranslation des ihr eingegebenen Wertes durchführt. Die von der Adressentranslationsfunktion 92 ausgegebene Musteradresse wird an einen Musterspeicher 102 gegeben, um einen in diesem befindlichen Speicherplatz zu adressieren. Der adressierte Inhalt des Musterspeichers 90 stellt die intrinsische Kurvenfarbe PM in der obigen Gleichung (8) dar (und enthält auch ein Schreibaktivierungsbit für das aktuelle Pixel des Vektors oder der wiederzugebenden Kurve). In diesem Falle passiert PM die AU's 104 und 114 unverändert und wird an den Eingang A von AU 122 angelegt. Die Schleierfarbe (haze color) C d der Gleichung (8) wird vom Register 120 an den Eingang B von AU 122 angelegt. Ein z-Koordinatenwert aus dem Geometrieabschnitt 7 wird in den z-Funktionsmodul 94 eingegeben. Modul 94 führt eine Nachschlagetabellenfunktion durch, um ein Interpolationsgewicht an den ALPHA-Eingang von AU 122 als Funktion des z-Koordinatenwerts anzulegen. AU 122 führt die obige Gleichung (6 b) aus mit:
ALPHA-Eingang von AU 122 gleich z;
Eingang A von AU 122 gleich PM;
Eingang B von AU 122 gleich Cd.
Ausgang RES von AU 122 läßt sich daher entsprechend nachfolgender Gleichung (9) ausdrücken:
z(C d ) + (1 - z) (PM) (9)
Diese Größe stellt die intrinsische Farbe dar, eingestellt nach der Tiefe (d. h. gemischt mit einer Dichte der Schleierfarbe, die von dem z-Koordinatenwert abhängt); diese Größe wird auch als Bildtiefenfarbe (depth cued color) bezeichnet. Dieser Wert wird dann an Eingang A von AU 124 angelegt.
AA AFDU 50 entwickelt in Verbindung mit dem AA-Funktionsmodul 52 die oben erwähnte modifizierte Bresenham-Fehlerfunktion Be. Diese Funktion wird vom Multiplexer 96 an den ALPHA-Eingang von AU 124 angelegt. Pixeldatenrückkopplung vom Rahmenpuffer 20 der Fig. 1 wird vom Pixel-Pufferspeicher 126 gehalten und an den B-Eingang von AU 124 angelegt. AU 124 führt die obige Gleichung (6b) aus mit:
ALPHA-Eingang von AU 122 gleich Be;
Eingang A von AU 124 erhält das oben angegebene Bildtiefen-Farbergebnis, das am RES-Ausgang von AU 122 ausgegeben wird;
Eingang B von 124 ist gleich PB₃ aus Gleichung (1).
Ausgang RES von AU 124 ist daher:
Be(PB₃) + (1 - Be) (Bildtiefensimulationsfarbe) (10)
Diese Größe wird als die anti-aliasierte Farbe bezeichnet und an Eingang A von AU 128 angelegt. Der Transparenzfaktor T c wird vom Transparenzregister 98 an den ALPHA-Eingang von AU 128 angelegt. Die Pixel-Datenrückkopplung wird im Pixel-Pufferspeicher 130 gehalten und an den Eingang von AU 128 gegeben. AU 128 führt ebenfalls die obige Gleichung (6b) aus mit:
ALPHA-Eingang von AU 128 gleich T c ;
Eingang A gleich der anti-aliasierten Farbe;
Eingang B von AU 128 gleich PB₄;
Ausgang RES von AU 128 ist daher ausgedrückt durch die nachstehende Gleichung (11):
T c (PB₄) + (1 - T c ) (anti-aliasierte Farbe) (11)
Unter Bezugnahme auf die obigen Gleichungen (9) und (10) und die Schaltung gemäß Fig. 2 ist zu sehen, daß die Größe (11), welche die Pixelfarbe entsprechend Definition durch Gleichung (8) ist, durch die beschriebene Schaltung in neuartiger Weise wiedergegeben wird.
2. Polygon- und Fleckschattierung
Unter Anwendung der bekannten Phong-Approximation wird die Farbe an irgendeinem Punkt auf der Oberfläche eines von einer einzigen, im Unendlichen angeordneten Lichtquelle beleuchteten Polygons dargestellt durch die Summe eines Diffusionskoeffizienten mal der Objektfarbe und einem Spiegelungs- bzw. Reflexionskoeffizienten, erhoben zu einem Objekt-Reflexions- bzw. -Spiegelungsexponenten, mal der Lichtfarbe. (Beachte: Phong- Approximationen sind im Stande der Technik bekannt und vollständig beschrieben beispielsweise in einem Artikel von Tom Duff mit der Bezeichnung "Smoothly Shaded Renderings of Polyhedral Objects on Raster Displays", Computer Graphics, Band 13, Nr. 2, August 1979.) Wie gesagt, werden die Spiegelungs- und Diffusionskoeffizienten für eine Polygon-Abtastlinie gemäß Gleichungen (12) und (13) wie folgt berechnet:
Diffusion = K a + 1/√ [α NL RT + (1 - α) NL LT ] (12)
Spiegelung = 1/√ [α NH RT + (1 - a) NH LT ] (13)
wobei:
N der Oberflächennormalenvektor ist;
L ein Einheitsvektor in Richtung der Lichtquelle ist;
H ein Einheitsvektor in Richtung des maximalen Schlaglichts ist (d. h. der Vektor in Richtung der halben Strecke zwischen dem Betrachter und der Lichtquelle);
K a der Koeffizient der Umgebungsreflexion;
α ein Interpolationskoeffizient, dessen Wert sich linear zwischen 0 bis 1 entlang eines Abtastliniensegments eines wiederzugebenden Polygons ändert;
RT und LT beziehen sich auf den Wert des Punktprodukts N · L an den rechten und linken Enden eines Abtastliniensegments eines Polygons.
Die CPU 9-Abtastung setzt das Polygon um und liefert ein Abtastlinien- bzw. -zeilensegment über das zu erzeugende Polygon. Diffusions- und Spiegelungskoeffizienten an jedem Ende der Abtastlinie werden berechnet, nämlich NL RT , NL LT, NH RT und NH LT. Diese Koeffizienten werden in Register 82, 84, 72 bzw. 74 geladen. N · N-AFDU 60 erzeugt eine quadratische Funktion für N · N, (d. h. das Punktprodukt des Normalvektors entlang der Abtastlinie; dieses Produkt ist im Stande der Technik bekannt, siehe Tom Duff, "Smoothly Shaded Renderings of Polyhedral Objects on Raster Displays", Computer Graphics, Band 13, 1979).
Interp-AFDU 70 erzeugt eine lineare Interpolation von x zwischen 0 und 1 entlang des Abtastliniensegmentes des wiederzugebenden Polygons. Dieser Faktor wird an die ALPHA-Eingänge von AU's 76 und 86 angelegt. Das Implementieren der obigen Gleichung (6a) in den AU's 76 und 86 führt zu folgenden Ergebnissen:
RES-AU 76 = (ALPHA) NH RT + (1 - ALPHA) NH LT (14)
RES-AU 86 = (ALPHA) NL RT + (1 - ALPHA) NL LT (15)
Gleichungen 14 und 15 stellen glatte lineare Interpolationen von N · H bzw. N · L dar. Diese Werte sind nicht-normalisiert, da sie aufgrund des linearen Interpolationsprozesses nicht mehr Einheitsvektoren darstellen. Eine Neu-Normalisierung wird erreicht durch die quadratische Funktion für N · N, durchgeführt in der N · N-AFDU 60.
Die quadratische Funktion für N · N wird in der N · N-AFDU 60 erzeugt und in die Nachschlagetabelle 62 eingegeben, welche eine Annäherung der Inversion der Quadratwurzel liefert. Der Ausgang der Nachschlagetabelle 62 wird an die ALPHA-Eingänge der AU's 78 und 88 angelegt. Die AU's 78 und 88 führen die obige Gleichung (7a) aus. Da der B-Eingang von AU 78 offen ist, liefert der RES-Ausgang (ALPHA) A, das gleich ist 1/√ [RES-AU 76] dem Spiegelungskoeffizienten aus Gleichung (13). Dieser Ausgang wird als nächstes zum x oe-Funktionsgenerator 79 übertragen, wo der Objekt-Spiegelungs- bzw. Reflexionsexponent (die Reflexionspotenz) angelegt wird.
Der Koeffizient der Umgebungsreflexion Ka ist im Register 87 enthalten und wird angelegt an den B-Eingang von AU 88. Daher ist der RES-Ausgang von AU 88 gleich dem Diffusionskoeffizienten der obigen Gleichung (12).
Die Muster-AFDU 90 und die Musteradress-Umsetzfunktion 92 erzeugen eine Muster-Speicheradresse. Wie oben unter Bezugnahme auf das Schattieren von Vektoren beschrieben wurde, liefert der Musterspeicher Rot 102 die Objektfarbe an jedem Pixel. Die Objektfarbe (Rotkomponente) wird angelegt an den A-Eingang von AU 104. AU 104 löst die obige Gleichung (7a), und der RES-Ausgang stellt, da der B-Eingang offen ist, das Produkt des Diffusionskoeffizienten (ALPHA-Eingang) und Objektfarbe (A-Eingang) dar. Dieses Signal wird vom Multiplexer 110 als Eingang zum A-Eingang der AU 114 ausgewählt. Die Lichtfarbe im Register 108 wird vom Multiplexer 112 als Eingangssignal für den B-Eingang von AU 114 ausgewählt. Der Spiegelungs- bzw. Reflexionskoeffizient, erhoben zum Objekt-Spiegelungsexponenten vom Funktionsmodul 79, wird an den ALPHA-Eingang von AU 114 angelegt. AU 114 führt die Gleichung (7b) aus, wodurch ein vollständiger Pixelfarbausdruck am RES-Ausgang entwickelt wird. Die Weiterverarbeitung stromab der AU 114 wurde bereits unter Bezugnahme auf die Kurven- und Vektorschattierung beschrieben.
Wie oben erwähnt, wurde die vorstehende Erläuterung der Erfindung unter Bezugnahme auf Duff's-Approximation der Phong- Schattierung entsprechend dem Duff-Artikel "Smoothly Shaded Renderings of Polyhedral Objects on Raster Displays", Computer Graphics, Band 13, 1979 gegeben. Dieselbe Schaltung kann auch die Gouraud-Schattierung implementieren. Die Gouraud-Schattierung wird gewöhnlich wegen ihrer Einfachheit der Berechnung und Geschwindigkeit benutzt. Sie ist besonders brauchbar für eine grobe Schattierung. Die Gouraud-Schattierung wird als einfache lineare Interpolation der Farbe von einem Punkt zu einem anderen über die Polygon-Abtastlinie implementiert. Daher werden Diffusions- und Spiegelungskoeffizienten nicht berechnet, und die Farbe an Zwischenpixeln entlang der Abtastlinie bzw. -zeile ist gegeben durch:
ALPHA (rechte Farbe) + (1 - ALPHA) (linke Farbe).
Die Gouraud-Schattierung ist nicht-normalisiert, so daß es nicht notwendig ist, die inverse Quadratwurzel von N · N an den AU's 78 und 88 einzuführen. Stattdessen werden die ALPHA-Eingänge von AU 78 und 88 auf dem Wert 1 gehalten. Das Register 74 wird mit 0 geladen, das Register 72 wird mit 1 geladen, so daß der lineare Interpolationsfaktor von Interp-AFDU 70 unmodifiziert bis zum A-Eingang der AU 78 durchgeleitet wird. AU 78 entwickelt die obige Gleichung (7d) und läßt daher den A-Eingang unmodifiziert durch zu RES und überbrückt dadurch die x oe-Funktion, sowie zum ALPHA-Eingang von AU 114. Ein rechter Objekt-Farbwert wird in das Register 108 geladen, und ein linker Objekt-Farbwert wird in das Register 106 geladen. Die Interpolationskoeffizienten werden von Interp-AFDU 70 am ALPHA-Eingang von AU 114 zur Verfügung gestellt. Der Multiplexer 110 wählt Register 106 und der Multiplexer 112 Register 108 aus. AU 114 entwickelt die obige Gleichung (6a), wodurch die Gouraud-Schattierung am RES-Ausgang zur Verfügung gestellt und zum A-Eingang von AU 122 übertragen wird.
Die Verarbeitung von Flecken innerhalb der Schattierungsschaltung ist ähnlich Polygonen, mit der Ausnahme, daß die Schattierungsparameter N · L und N · H durch bi-kubische Funktionen approximiert werden, die von AFDU's 60 und 70 geliefert werden, anstatt durch eine lineare Interpolation über die Abtastlinie bzw. -zeile. (In dem Artikel von Michael Shantz und Sheue-Ling Lien, "Shading Bi-cubic Patches", Computer Graphics, Band 21, Nr. 4, 1987, sind einige mathematische Methoden zum Ableiten der oben erwähnten approximierenden bi-kubischen Funktionen angegeben.) Zur Fleck-Schattierung erzeugt N · N-AFDU 60 eine Approximation des Reflexions- bzw. Spiegelungskoeffizienten, und Interp-AFDU 70 erzeugt eine Approximation des Diffusionskoeffizienten. Die Ausgänge von N · N-AFDU 60 und Interp-AFDU 70 werden an die ALPHA-Eingänge der AU's 78 und 86 angelegt. Der Spiegelungskoeffizient durchläuft die Nachschlagetabelle 62 ohne Änderung.
Der A-Eingang von AU 78 wird auf den Wert 1 gehalten, wodurch der Spiegelungskoeffizient ungeändert zum RES-Ausgang durchläuft. In ähnlicher Weise wird der Diffusionskoeffizient durch die AU's 86 und 88 ohne Änderung durchgelassen. Danach erfolgt die Verarbeitung in der gleichen Weise wie zuvor für Polygone beschrieben.
Die Erzeugung der Fleck- und Polygonschattierung wird vom RES-Ausgang der AU 114 in der zuvor für die Kurven- und Vektorschattierung beschriebenen Weise mit Bezug auf die Bildtiefensimulation und Transparenz fortgesetzt. Zwischenergebnisse durchlaufen ungeändert die AU 124, da ein Anti-Aliasieren für Flecke oder Polygone nicht durchgeführt wird.
In Fig. 4 ist ein alternatives Ausführungsbeispiel der in Fig. 2 gezeigten Schaltung angegeben. In Fig. 4 entspricht die PFDU 400 der Muster-AFDU 90 und der N · N-AFDU 60 in Fig. 2 und führt die gleiche Funktion aus, wie sie zuvor unter Bezugnahme auf diese Komponenten beschrieben wurde. In ähnlicher Weise ersetzt QAFDU 402 die AA-AFDU 50 und die Interp-AFDU 70 in Fig. 2 und führt dieselben Funktionen aus. Adreßmodems 402 und 406 ersetzen bei gleichen Funktionen die Muster-Translation 92. Bildspeicher 0, 1 und 2 entsprechen bei gleichen Funktionen den Adreßmusterspeichern 102, 202 und 302 sowie der 1/Quadratwurzelfunktion 62 und den Pixelpufferspeichern (d. h. 116, 118, 216 usw.). Multiplexer 414 wählt als Eingang eine gewünschte Farbkonstante C₀, die NL lt, Ca, Cd oder Oc in den obigen Gleichungen sein kann, oder den Ausgang des Bildspeichers 0. Multiplexer 416 wählt als Eingang Be (der modifizierte Bresenham- Fehlerfaktor) oder den Ausgang von Bildspeicher 1 oder z oder tc, und zwar in Abhängigkeit von der wiederzugebenden besonderen Funktion. Multiplexer 418 wählt den Ausgang von Bildspeicher 1 oder den Ausgang von Bildspeicher 2 oder C₁, eine gewünschte Farbkonstante, die NL lt, Ca, Cd, Oc oder ein anderes konstantes Farbvolumen sein kann. Der gewählte Ausgang der Multiplexer 414, 416 und 418 wird den AU's 420, 422 und 424 zugeführt, welche in Fig. 4 an die Stelle aller Rot-, Grün- und Blau-AU's der Ausführungsform gemäß Fig. 2 sowie der AU's 76, 78, 86 und 88 der Fig. 2 treten. Die CPU 9 steuert die Schaltung gemäß Fig. 4 derart, daß jede Komponente eine geeignete Funktion durchführt, um die oben beschriebenen Funktionen auszuführen, deren Implementierung anhand der Fig. 2 vollständig beschrieben worden ist.
Es ist einleuchtend, daß die zuvor beschriebene Erfindung in anderen speziellen Ausführungsformen realisiert werden kann. Insbesondere können die AFDU's ohne weiteres derart erweitert werden, daß sie Funktionen höherer Ordnung als kubische implementieren können.

Claims (25)

1. Einrichtung zum Schattieren von Vektoren und Kurven auf einem Display, gekennzeichnet durch Mittel zum Implementieren einer ersten Funktion, die beinhaltet: T c [PB₁] + (1 - T c ) X;wobei T c gleich einem Transparenzfaktor, PB₁ gleich von einem Rahmenpuffer rückgekoppelten ersten Pixeldaten ist und X eine zweite Funktion darstellt,
Mittel zum Implementieren der zweiten Funktion, die beinhaltet:Be [PB₂] + (1 - Be) Y;wobei Be = eine modifizierte Bresenham-Fehlerfunktion und PB₂ = zweite aus dem Rahmenpuffer rückgekoppelte Pixeldaten und wobei Y eine dritte Funktion darstellt,
Mittel zum Implementieren der dritten Funktion, die beinhaltet:Z[C d ] + (1 - Z) [PM],wobei Z die Tiefenwichtung, C d die Schleierfarbe (haze color) und PM die intrinsische Kurvenfarbe darstellen, und
Mittel zum Kombinieren der Implementierung der ersten, zweiten und dritten Funktionen zur Gewinnung der Implementierung von Tc (PB₁) + (1 - Tc) [Be (PB₂) + (1 - Be)] Z(Cd) + (1 - Z) (PM)]], wodurch die Kurve und der Vektor schattiert und gemustert werden.
2. Einrichtung zum Schattieren von Polygonen, gekennzeichnet durch Mittel zum Implementieren einer ersten Funktion, die beinhaltet: Tc [PB + (1 - Tc)] X,wobei Tc einen Transparenzfaktor, PB von einem Rahmenpuffer rückgekoppelte Pixeldaten und X eine zweite Funktion darstellen,
Mittel zum Implementieren der zweiten Funktion, die beinhaltet:Z [Cd] + (1 - Z) [Diffusion [PM] + Spiegelung [Lc]],wobei Z die Tiefe, Cd die Bildtiefensimulationsfarbe oder die Schleierfarbe, Lc eine Lichtquellenfarbe, PM einen gespeicherten Farbwert und Diffusion und Spiegelung dritte und vierte Funktionen darstellen,
Mittel zum Implementieren der dritten Funktion, die im Falle von Polygonschattierung beinhaltet:Ka + (1/√ [α NL rt + (1 - α) NL lt],Mittel zum Implementieren der vierten Funktion, die beinhaltet:(1/ √ [α NH rt + (1 - α) NH lt] oe ,wobei N den Oberflächennormalenvektor, L einen Einheitsvektor in Richtung einer Lichtquelle, H einen Einheitsvektor in Richtung des maximalen Schlaglichts, Ka den Koeffizienten der Umgebungsreflexion, einen linearen Interpolationskoeffizienten, oe einen Objekt- Spiegelungsexponenten darstellen, rt einen Wert an einem rechten Ende und lt einen Wert an einem linken Ende einer Abtastlinie bezeichnen, und
Mittel zum Kombinieren der implementierten ersten, zweiten, dritten und vierten Funktionen zur Gewinnung von:Tc [PB] + (1 - Tc) [Z [Cd] + (1 - Z) [Diffusion [PM] + Spiegelung [LC]]].
3. Einrichtung zum Schattieren einheitlicher und uneinheitlicher, rationaler und nicht-rationaler B-Stäbchen (splines) und anderer Flecken, gekennzeichnet durch Mittel zum Implementieren einer ersten Funktion, die beinhaltet: Tc [Pb + (1 - Tc) ] X,wobei Tc einen Transparenzfaktor, PB von einem Rahmenpuffer rückgekoppelte Pixeldaten und X eine zweite Funktion darstellen,
Mittel zum Implementieren der zweiten Funktion, wobei die zweite Funktion beinhaltet:Z [Cd ] + (1 - Z) [Diffusion [PM] + Spiegelung [Lc]],wobei Z die Tiefe, Cd die Bildtiefensimulationsfarbe oder den Schleier, Lc eine Lichtquellenfarbe, PM einen gespeicherten Festwert und Diffusion und Spiegelung dritte und vierte Funktionen darstellen,
Mittel zum Implementieren der dritten Funktion, beinhaltend:Ka + N · L/ √Mittel zum Implementieren der vierten Funktion, die beinhaltet:[(1/√) (N · H)] oe ,wobei N den Oberflächennormalenvektor, L einen Einheitsvektor in Richtung einer Lichtquelle, H einen Einheitsvektor in Richtung maximalen Schlaglichts, Ka den Koeffizienten der Umgebungsreflexion, Lc eine Lichtquellenfarbe und PM einen gespeicherten Farbwert darstellen, und
Mittel zum Kombinieren der implementierten ersten, zweiten, dritten und vierten Funktionen zu:Tc [Pb] + (1 - Tc) [Z [Cd] + (1 - Z) [Diffusion [PM] + Spiegelung [LC]]].
4. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß arithmetische Logikeinheiten zum Implementieren der ersten, zweiten und dritten Funktionen vorgesehen sind.
5. Einrichtung nach Anspruch 1 oder 4, dadurch gekennzeichnet, daß Musterspeichermittel mit den Mitteln zum Implementieren der dritten Funktion zum Speichern und selektiven Wiedergewinnen der intrinsischen Kurvenfarbe (PM) gekoppelt sind.
6. Einrichtung nach Anspruch 5, dadurch gekennzeichnet, daß eine Funktionsgeneratoranordnung mit den Musterspeichermitteln zum selektiven Adressieren der Musterspeichermittel als Funktion eines Pixelplatzes gekoppelt ist.
7. Einrichtung nach Anspruch 6, dadurch gekennzeichnet, daß die Funktionsgeneratoranordnung eine adaptive Vorwärtsdifferenzbildungseinheit (AFDU) aufweist.
8. Einrichtung nach Anspruch 2 oder 3, dadurch gekennzeichnet, daß die ersten, zweiten, dritten und vierten Funktionen in arithmetischen Logikeinheiten implementiert sind.
9. Einrichtung nach Anspruch 2 oder 3, dadurch gekennzeichnet, daß zum Speichern und selektiven Wiedergewinnen der intrinsischen Kurvenfarbe (PM) Musterspeichermittel mit den Mitteln zum Implementieren der zweiten Funktion gekoppelt sind.
10. Einrichtung nach Anspruch 9, dadurch gekennzeichnet, daß mit den Musterspeichermitteln ein erster Funktionsgenerator zum selektiven Adressieren der Musterspeichermittel als Funktion eines Pixelplatzes gekoppelt ist.
11. Einrichtung nach Anspruch 10, dadurch gekennzeichnet, daß der erste Funktionsgenerator eine adaptive Vorwärtsdifferenzbildungseinheit (AFDU) enthält.
12. Einrichtung nach einem der Ansprüche 8 bis 11, dadurch gekennzeichnet, daß mit den Mitteln zum Implementieren der dritten und vierten Funktionen ein zweiter Funktionsgenerator gekoppelt ist, um eine lineare Interpolation der Position auf einem Abtastliniensegment der Polygone durchzuführen.
13. Einrichtung nach Anspruch 12, dadurch gekennzeichnet, daß der zweite Funktionsgenerator eine adaptive Vorwärtsdifferenzbildungseinheit (AFDU) aufweist.
14. Einrichtung nach einem der Ansprüche 8 bis 13, dadurch gekennzeichnet, daß zur Erzeugung des Ausdrucks 1/ √ ein dritter Funktionsgenerator vorgesehen und mit den Mitteln zum Implementieren der dritten und vierten Funktion gekoppelt ist.
15. Einrichtung nach Anspruch 14, dadurch gekennzeichnet, daß der dritte Funktionsgenerator eine adaptive Vorwärtsdifferenzbildungseinheit (AFDU) und eine Inversions-Quadratwurzel-Nachschlagetabelle (62) aufweist.
16. Einrichtung nach Anspruch 2, oder einem der Ansprüche 8 bis 14, dadurch gekennzeichnet, daß die Mittel zum Implementieren der vierten Funktion einen Exponentialfunktionsgenerator (79) enthalten.
17. Einrichtung nach Anspruch 3, dadurch gekennzeichnet, daß zur Erzeugung des Ausdrucks N · L √ ein zweiter Funktionsgenerator mit den Mitteln zum Implementieren der dritten Funktion gekoppelt ist.
18. Einrichtung nach Anspruch 17, dadurch gekennzeichnet, daß der zweite Funktionsgenerator eine adaptive Vorwärtsdifferenzbildungseinheit (AFDU) enthält.
19. Einrichtung nach Anspruch 3, 17 oder 18, dadurch gekennzeichnet, daß zur Erzeugung des N · H √-Ausdrucks ein dritter Funktionsgenerator mit den Mitteln zum Implementieren der vierten Funktion gekoppelt ist.
20. Einrichtung nach Anspruch 19, dadurch gekennzeichnet, daß der dritte Funktionsgenerator eine adaptive Vorwärtsdifferenzbildungseinheit (AFDU) aufweist.
21. Einrichtung nach einem der Ansprüche 4 bis 20, dadurch gekennzeichnet, daß die arithmetischen Logikeinheiten derart angeordnet sind, daß sie zur Pipelineverarbeitung geeignet sind.
22. Einrichtung nach einem der Ansprüche 4 bis 20, dadurch gekennzeichnet, daß die arithmetischen Logikeinheiten zur rekursiven Verarbeitung geeignet angeordnet sind.
23. Verfahren zum Schattieren von Vektoren und Kurven auf einem Display, gekennzeichnet durch
  • a) Implementieren einer ersten Funktion, die beinhaltet: Tc [PB₁] + (1 - Tc) X,wobei Tc einen Transparenzfaktor, PB₁ von einem Rahmenpuffer rückgekoppelte erste Pixeldaten und X eine zweite Funktion darstellen;
  • b) Implementieren der zweiten Funktion, die beinhaltet: Be [PB₂] + (1 - Be) Y,wobei Be eine modifizierte Bresenham-Fehlerfunktion, PB₂ von dem Rahmenpuffer rückgekoppelte zweite Pixeldaten und Y eine dritte Funktion darstellen;
  • c) Implementieren der dritten Funktion, wobei die Funktion beinhaltet: Z [Cd] + (1 - Z) [PM],wobei Z die Tiefenwichtung, Cd eine Schleierfarbe und PM eine intrinsische Kurvenfarbe darstellen;
  • d) Kombinieren der Ergebnisse der ersten, zweiten und dritten Funktionen zu der Implementierung von Tc (PB₁) + (1 - Tc) [Be (PB₂) + (1 - Be) [Z(Cd) + (1 - Z) (PM)]].
24. Verfahren zum Schattieren von Polygonen, gekennzeichnet durch:
  • a) Implementieren einer ersten Funktion, beinhaltend: Tc [PB + (1 - Tc)] X,wobei Tc einen Transparenzfaktor, PB von einem Rahmenpuffer rückgekoppelte Pixeldaten und X eine zweite Funktion darstellen;
  • b) Implementieren der zweiten Funktion, beinhaltend: Z [Cd] + (1 - Z) [Diffusion [PM] + Spiegelung [LC]].wobei Z die Tiefe, Cd die Bildtiefenfarbe oder den Schleier, Lc eine Lichtquellenfarbe, PM einen gespeicherten Farbwert und Diffusion und Spiegelung dritte und vierte Funktionen darstellen;
  • c) Implementieren der dritten Funktion, letztere beinhaltend: Ka + (1/ √) [α NL rt + (1-α ) NL lt]
  • d) Implementieren der vierten Funktion, letztere beinhaltend: (1/ √) [α NH rt + (1 - α ) NH lt] Oe ,wobei N einen Oberflächennormalenvektor, L einen Einheitsvektor in Richtung einer Lichtquelle, H einen Einheitsvektor in Richtung maximalen Schlaglichts, Ka einen Umgebungsreflexionskoeffizienten, rt einen Wert am rechten Ende einer Abtastlinie, lt einen Wert am linken Ende einer Abtastlinie, α einen linearen Interpolationskoeffizienten und Oe einen Objekt-Spiegelungsexponenten darstellen;
  • e) Kombinieren der Ergebnisse der implementierten ersten, zweiten, dritten und vierten Funktionen zu: Tc [PB] + (1 - Tc) [Z [Cd] + (1 - Z) [Diffusion [PM] + Spiegelung [LC]]].
25. Verfahren zum Schattieren einheitlicher und nichteinheitlicher, rationaler und nichtrationaler B-Splines und anderer Flecken, gekennzeichnet durch:
  • a) Implementieren einer ersten Funktion, die beinhaltet: Tc [PB + (1 - Tc)] X,wobei Tc einen Transparenzfaktor, PB von einem Rahmenpuffer rückgekoppelte Pixeldaten und X eine zweite Funktion darstellen;
  • b) Implementieren der zweiten Funktion, letztere beinhaltend: Z [Cd] + (1 - Z) [Diffusion [PM] + Spiegelung [Lc]],wobei Z die Tiefe, Cd die Bildtiefensimulationsfarbe oder den Schleier, Lc eine Lichtquellenfarbe, PM einen gespeicherten Farbwert und Diffusion und Spiegelung dritte und vierte Funktionen darstellen;
  • c) Implementieren der dritten Funktion, wobei die dritte Funktion beinhaltet: Ka + Kd (N · L/√);
  • d) Implementieren der vierten Funktion, letztere beinhaltend: [(1/√) (N · H)] Oe ,wobei N einen Oberflächennormalenvektor, L einen Einheitsvektor in Richtung einer Lichtquelle, H einen Einheitsvektor in einer Richtung maximalen Schlaglichts, Ka einen Umgebungsreflexionskoeffizienten und Oe einen Objekt- Spiegelungsexponenten darstellen; und
  • e) Kombinieren der Ergebnisse der ersten, zweiten, dritten und vierten Funktionen zu: Tc [PB] + (1 - Tc) [z[Cd] + (1 - z) [Diffusion [PM] + Spiegelung [LC]]].
DE19883825539 1987-07-27 1988-07-27 Einrichtung u. Verfahren zum Erzeugen schattierter Werte von graphischen Objekten auf einer Anzeigeeinrichtung Expired - Fee Related DE3825539C2 (de)

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
DE3825539A1 true DE3825539A1 (de) 1989-02-09
DE3825539C2 DE3825539C2 (de) 1997-06-12

Family

ID=22140108

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19883825539 Expired - Fee Related DE3825539C2 (de) 1987-07-27 1988-07-27 Einrichtung u. Verfahren zum Erzeugen schattierter Werte von graphischen Objekten auf einer Anzeigeeinrichtung

Country Status (7)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4124564B4 (de) * 1990-07-26 2005-02-24 Sun Microsystems, Inc., Mountain View Verfahren und Einrichtung zur Erzeugung von schattierten Abbildungen

Families Citing this family (4)

* 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
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 画像処理装置

Family Cites Families (3)

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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE Transactions on Computers, Vol. C-20, No. 6, June 1971, Pg. 623-629 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4124564B4 (de) * 1990-07-26 2005-02-24 Sun Microsystems, Inc., Mountain View Verfahren und Einrichtung zur Erzeugung von schattierten Abbildungen

Also Published As

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

Similar Documents

Publication Publication Date Title
DE19646194B4 (de) Echtzeit-Wiedergabeverfahren zum wahlweisen Ausführen von Bump-Mapping- und Phong-Schattierungs-Prozessen und zugehörige Vorrichtung
US6181836B1 (en) Method and system for non-destructive image editing
DE69839277T2 (de) Verfahren und anordnung zur ausführung von farbschlüsseln, transparenz und nebelfunktionen
DE69725809T2 (de) Anpassungsschichten für die Manipulation von zusammengesetzten Bildern
DE3348093C2 (de)
DE69830767T2 (de) Verfahren und Vorrichtung zum Zusammensetzen geschichteter synthetischer graphischer Filter
EP0984397B1 (de) Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster
DE69529500T2 (de) Verwendung von abgetasteten Bildern in einem Bildzusammensetzungssystem
DE19807053B4 (de) Strahltransformationsverfahren für eine schnelle Volumenaufbereitung für eine perspektivische Betrachtung
DE4124564A1 (de) Verfahren und einrichtung zur erzeugung von schattierten abbildungen
DE3022454A1 (de) Optisches abbildesystem mit computererzeugtem bild fuer einen bodenfesten flugsimulator
DE4314265A1 (de) Dreidimensionales Textur-Abbildungs-Displaysystem
DE69534697T2 (de) Verfahren zur Erzeugung texturierter Bilder und Spezialvideoeffekte
DE3518416A1 (de) Speicher- und prozessorsystem mit schnellem zugriff zur rasteranzeige
DE2703021A1 (de) Datenprozessor zum liefern von intensitaetssteuersignalen zur verwendung in einer rasteranzeige
DE4014231A1 (de) Verfahren zum bearbeiten der steuerpunkte eines symbolbildes
DE4211385A1 (de) Daten-projektionssystem
DE3315148C2 (de)
DE3619420A1 (de) Computer-displayeinrichtung
DE3815361A1 (de) Einrichtung und verfahren zum erzeugen von vektoren auf einem displaygeraet
DE19708679A1 (de) Bilddarstellungsverfahren und Vorrichtung zur Durchführung des Verfahrens
DE60024117T2 (de) Tiefenbasierte mischung mit 3d aufrasterungsgerät
DE69830766T2 (de) Verfahren und Vorrichtung zum Bestimmen des Anwendungsumfangs geschichteter synthetischer graphischer Filter
AT525294A1 (de) Verfahren zum Erzeugen einer hierarchischen Datenstruktur, hierarchische Datenstruktur sowie Verfahren zum Streamen von dreidimensionalen Objekten
DE3815374C2 (de) Verfahren zum Ableiten eines Reziprokwerts der homogenen Koordinate w zur Verwendung bei der Gewinnung von rationalen kubischen Funktionen für die Bilderzeugung auf einem Sichtgerät und Anordnung zur Durchführung des Verfahrens

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee