DE3825539C2 - Einrichtung u. Verfahren zum Erzeugen schattierter Werte von graphischen Objekten auf einer Anzeigeeinrichtung - Google Patents

Einrichtung u. Verfahren zum Erzeugen schattierter Werte von graphischen Objekten auf einer Anzeigeeinrichtung

Info

Publication number
DE3825539C2
DE3825539C2 DE19883825539 DE3825539A DE3825539C2 DE 3825539 C2 DE3825539 C2 DE 3825539C2 DE 19883825539 DE19883825539 DE 19883825539 DE 3825539 A DE3825539 A DE 3825539A DE 3825539 C2 DE3825539 C2 DE 3825539C2
Authority
DE
Germany
Prior art keywords
graphic object
function
pixel data
shading
specular
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.)
Expired - Fee Related
Application number
DE19883825539
Other languages
English (en)
Other versions
DE3825539A1 (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

Die Erfindung betrifft eine Einrichtung zum Erzeugen schattierter Werte von graphischen Objekten zur Anzeige an einem vorgegebenen Ort auf einer graphischen Anzeigeeinrich­ tung mit einer zentralen Verarbeitungseinheit, einem Spei­ cher und einem Einzelbildpuffer, wobei die graphischen Ob­ jekte Vektoren, Kurven, Polygone und Flecke umfassen können und durch eine anfängliche Darstellung des graphischen Ob­ jekts umfassende Pixeldaten definiert sind. Ferner bezieht sich die Erfindung auf ein Verfahren zum Erzeugen schattier­ ter Werte eines graphischen Objekts.
Es wird Bezug genommen auf die deutschen Patentanmeldun­ gen P 38 15 390.4, betreffend eine Anordnung und ein Verfah­ ren zur adaptiven Vorwärtsdifferenzbildung bei der Erzeugung von Kurven und Flächen, und P 38 15 361.0, betreffend eine Einrichtung und ein Verfahren zum Erzeugen von Vektoren auf ein Displaygerät. Die Inhalte der vorgenannten rangälteren deutschen Patentanmeldungen werden durch Bezugnahme in die vorliegende Offenbarung einbezogen.
Bei vielen Computersystemen ist es üblich, einem Benut­ zer Informationen mittels digitaler Abbildungen darzustellen und zu übermitteln. Diese Abbildungen können viele Formen annehmen, beispielsweise die alphanumerischer Zeichen, Gra­ phiken und anderer Bilddarstellungen. Die digitalen Bilder werden üblicherweise auf einem Display angezeigt oder über einen Drucker ausgegeben. Typischerweise werden die wieder­ zugebenden Bilder in digitaler Form gespeichert, verarbeitet und danach zur Anzeige gebracht. Bei der Wiedergabe eines Bildes auf einer Anzeigeeinrichtung, beispielsweise einer Kathodenstrahlröhre, müssen die Koordinaten für jedes Bild­ element oder Pixel eines anzuzeigendes Bildes ebenso berech­ net werden wie die Werte für die Farben, Transparenz, Bild­ tiefensimulation und die Werte für die Darstellung einer spiegelnden oder diffusen Reflexion. Die Wiedergabe eines Pixels derart, daß es eine Charakteristik eines wiederzuge­ benden Objekts einer virtuellen Szene unter Berücksichtigung der Ausdehnung in der Bildtiefe, der Nähe zum Betrachter, der Lichtreflexionen usw. darstellt, wird Schattierung des Pixels genannt.
Einige Schattierungsmethoden werden zur Erzeugung schat­ tierter Abbildungen von Flächen verwendet, die durch dreidi­ mensionale parametrische Flecken (Patches) oder durch eine Vielzahl von Polygonen angenähert sind. Eine bekannte Metho­ de ist die Phong-Schattierung, die sich als günstige Schat­ tierungsmethode erwiesen hat, da sie eine ausreichend reali­ stische Wiedergabe des gewünschten Bildes bei mäßigem Re­ chenaufwand ermöglicht. Die meisten dreidimensionalen, com­ putergestü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 Schattierungstech­ nik wird als Gouraud-Schattierung bezeichnet und führt eine lineare Interpolation entlang einer Linie über die wiederzu­ gebenden Polygone durch. Die mit dieser Methode erzeugten Abbildungen sind jedoch weniger realistisch als die mittels der Phong-Schattierung erzeugten Abbildungen.
Bei der Darstellung gekrümmter Flächen werden oftmals Polygon-Approximationen verwendet, da die Hochgeschwindig­ keits-Graphik-Hardware zum überwiegenden Teil für eine ra­ sche Wiedergabe von Polygonen konstruiert ist. Ein typischer Fleck (Patch) kann beispielsweise 100 oder mehr Polygone zur Erzielung einer ausreichenden Approximation des gewünschten Flecks erforderlich machen. Zur Erzeugung genauerer Abbil­ dungen verwenden bekannte Einrichtungen eine adaptive Un­ terteilungsmethode, bei der die Objekte rekursiv solange in Polygone unterteilt werden, bis deren Fläche kleiner als die eines Pixels ist. Die Implementierung dieser rekursiven Me­ thoden in Computer-Hardware ist wegen der Hochgeschwindig­ keitsanforderungen relativ aufwendig und teuer.
Daneben gibt es Abbildungsverfahren, die zum Erzeugen von dreidimensionalen Flecken eine Schar dicht nebeneinan­ derliegender Kurven verwenden, wobei mittels einer inkremen­ talen Veränderung eines Kurvenparameters eine Kurve unmit­ telbar neben der vorhergehenden Kurve gezeichnet wird. Eine Kurve wird durch schrittweises Voranschreiten entlang gerad­ liniger Kurvenstücke dargestellt. Solche Verfahren nennt man Vorwärtsdifferenzbildungsmethoden.
In der deutschen Offenlegungsschrift DE 38 15 390 A1, die auf der eingangs genannten Patentanmeldung P 38 15 390.4 beruht, wird ein verbessertes Verfahren zur adaptiven Vor­ wärtsdifferenzbildung bei der Erzeugung von Kurven und Flä­ chen beschrieben. Bei diesem adaptiven Verfahren wird die Schrittweite während des Zeichnens einer Kurve derart modi­ fiziert, daß sie etwa dem Pixelabstand entspricht. Das ad­ aptive Vorwärtsdifferenzbildungsverfahren basiert auf para­ metrischen bi-kubischen Funktionen, welche die Pixelkoordi­ naten in Abhängigkeit von zwei Parametern bestimmen. Die schnelle Berechnung der Pixelkoordinaten sowie die Anpassung der Schrittweite an den vorgegebenen Abstand der Pixel wird mittels einer speziellen Hardware realisiert, die adaptive Vorwärtsdifferenzbildungsschaltungen (AFDU) und ein mit diesen Schaltungen gekoppeltes Pixelfilter verwendet. Das Pixelfilter wertet die erzeugten Koordinatenwerte aus und erzeugt Steuersignale, die die AFDUs zur Anpassung der Schrittweite veranlassen.
Aufgabe der Erfindung ist es, eine Einrichtung bzw. ein Verfahren zur schnellen Wiedergabe realitätsnaher Abbildun­ gen graphischer Objekte mit relativ geringem Hardware-Auf­ wand zur Verfügung zu stellen, bei denen die Realitätsnähe mit Hilfe der Schattierung der graphischen Objekte erreicht wird.
Diese Aufgabe wird erfindungsgemäß durch eine Einrich­ tung mit den Merkmalen des Patentanspruchs 1 bzw. ein Ver­ fahren mit den Merkmalen des Patentanspruchs 12 gelöst.
Die erfindungsgemäße Lösung baut auf der aus der ein­ gangs genannten Patentanmeldung P 38 15 390.4 bekannten An­ ordnung zur Erzeugung der Pixelkoordinaten auf und liefert die in die entsprechenden Speicherplätze des Einzelbildpuf­ fers einzuschreibenden Pixeldaten für die Helligkeit und den Farbwert der durch die Koordinaten adressierten Pixel. Dazu verwendet die vorliegende Erfindung eine Schattierungs-Pipe­ line mit drei Kanälen, jeweils einen für den roten, den grü­ nen und den blauen Anteil. Jeder Kanal enthält mehrere Pi­ xel-Modifizierungseinrichtungen, die in Abhängigkeit von der Art des anzuzeigenden graphischen Objekts selektiv freige­ geben werden können.
Es sind vier Modifizierungseinrichtungen vorgesehen. Ei­ ne erste Modifizierungseinrichtung dient zum Modifizieren der Pixeldaten gemäß einer spiegelnden und einer diffusen Funktion zum Einbringen von Werten einer spiegelnden bzw. einer diffusen Schattierung für die graphischen Objekte. Ei­ ne zweite Modifizierungseinrichtung dient zum Modifizieren der Pixeldaten des graphischen Objekts, um einen Bildtiefen­ effekt zu erzeugen. Eine dritte Modifizierungseinrichtung dient zum Modifizieren der Pixeldaten, um einen Anti-Alias-Effekt zu erzeugen. Schließlich dient eine vierte Modifizie­ rungseinrichtung zum Modifizieren der Pixeldaten dazu, einen Transparenzeffekt zu erzeugen. Diese vier Modifizierungsein­ richtungen werden in Abhängigkeit von den darzustellenden Objekten durch Eingabe unterschiedlicher Parameter modifi­ ziert und selektiv freigegeben und in unterschiedlicher Weise miteinander verknüpft.
Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
Im folgenden wird die Erfindung anhand von in der Zeichnung schematisch dargestellten Ausführungsbeispielen näher erläu­ tert. In der Zeichnung zeigen:
Fig. 1 ein Blockschaltbild der Anordnung zum Schattie­ ren 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 Schal­ tung; und
Fig. 4 ein alternatives Ausführungsbeispiel der Schal­ tung gemäß Fig. 2.
Erfindungsgemäß werden eine Einrichtung und ein Verfahren zur bevorzugten Verwendung in einem Computersystem für die graphi­ sche Bildwiedergabe angegeben. Obwohl die Erfindung unter Bezugnahme auf spezielle Schaltungen, Blockschaltbilder, Sig­ nale, Algorithmen usw. beschrieben wird, ist es für den Fach­ mann 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 beson­ deren Einzelheiten realisiert werden kann. In anderen Fällen sind bekannte Schaltungen nur als Blockschaltbilder darge­ stellt, um die Erfindung nicht mit überflüssigen Einzelheiten zu belasten.
In Fig. 1 ist ein funktionelles Gesamtblockdiagramm gezeigt. Um Bilder auf einem CRT-Display oder einer ande­ ren 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 Kur­ ve, 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 gespei­ chert sind und homogenen x-, y-, z- und w- Koordinaten entspre­ chen.
Ein Geometrieabschnitt 7 enthält die X-, Y-, Z-und W-AFDU-Ein­ heiten 14, die in Fig. 1 der o.g. älteren Anmeldungen gezeigt und beschrieben sind. Der Geometrieabschnitt 7 berechnet homo­ gene 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 Anmeldun­ gen, die einen modifizierten Bresenham-Algorithmus-Fehler­ ausdruck als Anti-Aliasing-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-Aliasing-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-Koor­ dinaten an die Adreßpipeline 16 aus. Der Pixelfilter 30 gibt die Bogenlänge und eine Anti-Aliasing-Wichtungsfunktion Ce und außerdem die z-Koordinate, die Bogenlänge und die Anti-Aliasing-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 oder Einzelpuffer 20 aus, um ein spezielles Pixel auf einer CRT zu definieren. Die Momentankoordinate z, welche in die Schattierungspipeline 12 eingegeben wird, dient dort zur Bild­ tiefensimulation. Hierbei handelt es sich um eine bekannte Technik zum Ausblenden von wiederzugebenden Objekten derart, daß sie weiter entfernt (in der z-(Tiefen-)Richtung) vom Be­ trachter des Bildes erscheinen. (Foley & Van Damm, Interactive Computer Graphics, Addison Wesley, 1982.) Die an die Schattie­ rungspipeline 12 ausgegebene Bogenlänge dient zum inkrementel­ len Weiterschalten eines Musterspeichers zum Zwecke der Abbil­ dung eines Musters entlang einer Kurve, während der Anti-Alia­ sing-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 Schattierungs­ pipeline 12. Farbgebungsabschnitt 150 erzeugt und gibt rote, grüne und blaue Darstellungen der an jedem Pixel wiederzugebe­ nen Farbe aus und führt Vektorschattierung, Kurvenschattie­ rung, Polygonschattierung sowie Fleckschattierung (d. h. Schat­ tierung von bi-kubischen Flecken) aus. Die Operation und Dar­ stellung jeder dieser Funktionen werden weiter unten genauer beschrieben.
Die AFDU-Schaltungen 10 dienen als Funktionsgeneratoren zur Erzeugung parametrischer Eingangssignale für die Schattie­ rungspipeline 12. Insbesondere dienen die AFDU′s 10 dem Zweck der Berechnung parametrischer kubischer Approximationen für die Normalvektor-Punktprodukte in der bekannten Phong-Schat­ tierungsgleichung sowie der Berechnung linearer Interpolati­ onsfunktionen 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 Blauverar­ beitung. Jeder Kanal enthält eine Folge von in Serie geschal­ teten arithmetischen Einheiten, welche Farbvektor-Arithmetik­ operationen ausführen. Jede arithmetische Einheit in der Schattierungspipeline 12 führt eine von mehreren arithmeti­ schen 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 Rahmen­ puffer 20 Farben aus, welche sowohl Diffusions- als auch Spie­ gelungs- bzw. Reflexionsbeiträge haben, und außerdem addiert sie Farbbildtiefensimulation, Anti-Aliasing, 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. zum Anti-Aliasing, zur Transparenz- und zu Bewegungsunschärfeberechnungen herangezo­ gen werden können.
Vektorschattierung
Bei der Wiedergabe von Vektoren enthalten Vektorattribute Linienbreite, Anti-Aliasing, Farbtiefensimulation und Transparenz. Linienbreite und Anti-Aliasing werden aus dem Geometrieabschnitt 7 abgeleitet, wie zuvor beschrieben und nachfolgend noch genauer erläutert werden wird. Die Farbtie­ fensimulation (color depth cueing) und Transparenz werden durch Implementierung der unten angegebenen Koeffizienten entsprechend der Berechnung gemäß Formel (1) unten abgelei­ tet.
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-Alia­ sing-Wichtungsfunktion), Bereich von 0 bis 1, typischerwei­ se 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-Aliasing-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 kon­ stante Farbe Ca für PB im Anti-Aliasing-Ausdruck substitu­ iert, daß man Be = 0 für Arbeiten ohne Anti-Aliasing ein­ stellt, 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 an 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 Schattierungs­ attributen. (Fundstelle Foley und Van Damm, Fundamentals of Interactive Computer Graphics, Addison, Wesley, 1982.) Der Hauptunterschied besteht darin, daß ein Anti-Aliasing-Koef­ fizient Ce das Be der Gleichung (1) ersetzt. Demgemäß wird die Gleichung zum Wiedergeben einer Kurve erfüllt durch Implemen­ tierung 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 berech­ net. Diese Schaltung ist Teil eines Pixelfilters 30 und wird weiter unten genauer beschrieben.
Polygonschattierung
Die Schattierungsattribute, die sich auf Polygone anwenden lassen, umfassen Hohl- und Volldarstellung, Gouraud- oder Phong-Schattierungsstil, Bildeinteilung, Anti-Aliasing, Bildtiefensimulation und Transparenz. Die folgende Gleichung gibt die Schattierungsgleichung für eine Linie zwischen zwei Punkten (d. h. einer Abtastlinie) eines Polygons. Die Polygon­ schattierung wird durch Implementierung der unten in Gleichung (3) und (4) aufgeführten Koeffizienten durchgeführt.
NL = nicht-normiertes Punktprodukt N.L am linken oder rechten Rand einer Abtastlinie eines zu schattierenden Polygons, wobei die Norma­ len an den Scheiteln derart normiert werden, daß eine lineare Interpolation NL stets in den Bereich von 0 bis 1, niemals oberhalb von 1, fal­ lenläßt. NL hat bei dem bevorzugten Ausführungsbei­ spiel 12 fraktionelle Bits, obwohl mehr oder weni­ ger Bits verwendet werden können.
NH = nicht-normiertes Punktprodukt N.H am linken oder rechten Rand der Abtastlinie 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 eines zu schattierenden Polygons linear zunimmt und typischerweise 12 frak­ tionelle 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 Spie­ gel- 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 Schattie­ rungsgleichung durch Eliminierung des Multiplikators 1/N.N 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 Gren­ zen 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 Erfin­ dung gehört eine Lösung des o.g. Problems der Erzeugung bzw. Wiedergabe von Grenzen, deren Breite größer ist als eine Pi­ xelbreite. 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 die­ jenigen 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-Aliasing 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 Schat­ tierungsgleichung für einen anti-aliasierten Rand um ein Phong-schattiertes Polygon ist
Es wurde festgestellt, daß Mehrfachlichtquellen von der Ein­ richtung gemäß Fig. 2 wiedergegeben werden können, indem zu­ nächst diff (IM) in den Pixelpuffern 116, 216 und 316 der Fig. 2 gespeichert und danach wiederholt die Reflexionskomponente specoe (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 imple­ mentieren einer kubischen (oder höherer Ordnung) parametri­ schen Funktion der Variablen (genannt der Parameter) v verwen­ det werden. Diese AFDU-Schaltungen, die als kubische Funkti­ onsgeneratoren 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-Pi­ xel-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 Tech­ nik 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 erfin­ dungsgemäß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ärtsdiffe­ renzbildungsbasis 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 ähn­ licher 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 Ax1 zu Ax0, Ax2 zu Ax1 und Ax3 zu Ax2. Die nächste Kurve wird danach durch die vier Werte in Spalte Ax0 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 Ax1 wird in die bekannte "Bezier"-Ba­ sis 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 hoch­ gesetzt. (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 Vek­ tor-, 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 Blau­ kanal.
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 Pixeladres­ sen, die von AFDU′s 14 ausgegeben werden. Die AFDU′s sind digitale Differenzialanalysierer dritter Ordnung, welche eine adaptive Vorwärtsdifferenzbildungslösung für eine parametri­ sche 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 beschrie­ bene 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 Ver­ wendung einer rekursiven Verarbeitung erreicht werden können, wobei eine einzige ALU für jeden Kanal jede der Rechenoperati­ onen 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 Verbin­ dung mit Fig. 4 beschrieben.
Jede der AU′s erhält Eingangssignale A, B und α und lie­ fert ein mit RES bezeichnetes Ergebnis. Jede der AU′s berech­ net einen der folgenden Ausdrücke am RES-Ausgang:
α A + (1-α) B (6a)
α B + (1-α) A (6b)
α A + B (7a)
α B + A (7b)
A * B (7c)
A + B (7d)
Das Ausgangssignal von AA-AFDU 50 wird an einen AA-Funktions­ modul 52 geliefert, der eine Nachschlagetabelle ist, die eine den Abstand von einer Abtastlinie zu Be in Glei­ chung (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-Alia­ sing-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 tx = xn+1 - xn+2 (tx ist die x-Komponente des momentanen Tangensvektors). Die Subtraktionsschaltung 171 nimmt Ein­ gangssignale aus y-Registern 121 und 122 auf und erzeugt das Ausgangssignal ty = yn+1 - yn+2 (ty ist die y-Komponente des momentanen Tangensvektors). Nachschlagetabelle 176 der Fig. 3 nimmt den momentanen Tangensvektor <tx, ty< Ein­ gangssignale von den Subtraktionsschaltungen 170 und 171, Eingang 182 von der CPU 9 sowie den Bruchbestandteil der Adresse fx und fy aus den Registern 103 und 121 auf.
Die Nachschlagetabelle 176 erzeugt drei Ausgangssignale: ein Ausgangssignal 178, den Anti-Aliasings-Gewichtsfaktor x zum Farbgebungsabschnitt 150, ein weiteres Ausgangssignal am Aus­ gang 179 (das x-Offset) zum Addierer 183 und ein Ausgangssi­ gnal 180 (das y-Offset) zum Addierer 184, das zum Rahmenpuffer weitergeleitet wird. Die Nachschlagetabelle 176 wird mit vor­ berechneten Werten entsprechend den beiden unten angegebenen Tabellen geladen. Ein Ein-Bit-Eingangssignal 182 an der Nach­ schlagetabelle 176 wird von der CPU 9 auf "Null" gesetzt, um die Schaltung gemäß Fig. 1 zu veranlassen, einen ersten Durch­ lauf 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-Aliasings-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+xoffset, y+yoffset< schattiert mit dem Schattierungsfak­ tor |α|, wobei xoffset = Vorzeichen (α) · x-Hauptkurve und yoffset = 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 xoffset = 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-Koor­ dinate 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 α-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 des Kehrwerts der Quadratwurzel N.N durchführt. Der Ausgang der Nachschlagetabelle 62 wird an den α-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 α-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 xoe-Funktions­ modul 79 angelegt. Der Ausgang des xoe-Funktionsmoduls 79 wird den α-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 Regi­ ster 87 geliefert. Der RES-Ausgang von AU 88 wird an den α-Eingang der AU′s 104, 204 und 304 angelegt.
Der Ausgang der Muster-AFDU 90 wird an einen Muster-Funktions­ modul 92 angelegt. Der Ausgang des Moduls 92 ist eine Muster-Speicheradresse, die in Musterspeicher 102, 202 und 302 ein­ gegeben wird. Der Inhalt der adressierten Plätze in den Mu­ sterspeichern 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. Multi­ plexer 110, 210 und 310 erhalten als Eingänge auch die Ausgän­ ge von Registern 106, 206 bzw. 306. Die Ausgänge der Multiple­ xer 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-Puffer­ speicher 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än­ ge 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 Schat­ tierungsfunktion 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ückkopplungsda­ ten vom Rahmenpuffer 20 (nicht gezeigt) werden als Eingangssi­ gnale an sequentiell adressierte Pixel-Pufferspeicher 126, 130, 226, 230, 326 und 330 angelegt. Die Ausgänge der Pixel­ puffer 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 α-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 Pixel­ schattierung 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 Schat­ tierungsgleichungen 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 = Tc (PB₄) + (1-Tc) (Be(PB₃) + (1-Be) (z(Cd) + (1-z) (PM))), (8)
wobei: Tc = Transparenzfaktor
PB₃, PB₄ = Pixel-Pufferdatenrückkopplung vom Rahmenpuffer
Be = modifizierte Bresenham-Fehlerfunktion
z = Tiefenwichtung
Cd = 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 ausge­ gebene Musteradresse wird an einen Musterspeicher 102 gegeben, um einen in diesem befindlichen Speicherplatz zu adressieren. Der adressierte Inhalt des Musterspeichers 90 stellt die in­ trinsische 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) Cd der Gleichung (8) wird vom Register 120 an den Eingang B von AU 122 angelegt. Ein z-Koordinatenwert aus dem Geometrie­ abschnitt 7 wird in den z-Funktionsmodul 94 eingegeben. Modul 94 führt eine Nachschlagetabellenfunktion durch, um ein Inter­ polationsgewicht an den α-Eingang von AU 122 als Funktion des z-Koordinatenwerts anzulegen. AU 122 führt die obige Glei­ chung (6b) aus mit:
α-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 nachfol­ gender Gleichung (9) ausdrücken:
z(Cd) + (1-z) (PM) (9)
Diese Größe stellt die intrinsische Farbe dar, eingestellt nach der Tiefe (d. h. gemischt mit einer Dichte der Schleier­ farbe, 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 α-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:
α-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 Tc wird vom Transparenzregister 98 an den α-Eingang von AU 128 angelegt. Die Pixel-Datenrückkopplung wird im Pixel-Puf­ ferspeicher 130 gehalten und an den Eingang von AU 128 gege­ ben. AU 128 führt ebenfalls die obige Gleichung (6b) aus mit:
α-Eingang von AU 128 gleich Tc;
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):
Tc (PB₄) + (1-Tc) (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 Diffusionskoeffizi­ enten mal der Objektfarbe und einem Spiegelungs- bzw. Reflexi­ onskoeffizienten, erhoben zu einem Objekt-Reflexions- bzw. -Spiegelungsexponenten, mal der Lichtfarbe. (Beachte: Phong-Approximationen sind im Stande der Technik bekannt und voll­ ständig beschrieben beispielsweise in einem Artikel von Tom Duff mit der Bezeichnung "Smoothly Shaded Renderings of Poly­ hedral 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:
wobei:
N der Oberflächennormalenvektor ist;
L ein Einheitsvektor in Richtung der Lichtquelle ist;
H ein Einheitsvektor in Richtung der maximalen Reflexion ist (d. h. der Vektor in Richtung der halben Strecke zwischen dem Betrachter und der Lichtquelle);
Ka der Koeffizient der Umgebungsreflexion;
α ein Interpolationskoeffizient, dessen Wert sich linear zwischen 0 bis 1 entlang eines Abtastlinienseg­ ments eines wiederzugebenden Polygons ändert;
RT und LT beziehen sich auf den Wert des Punktprodukts N.L an den rechten und linken Enden eines Abtastlini­ ensegments eines Polygons.
Die CPU 9-Abtastung setzt das Polygon um und liefert ein Ab­ tastlinien- bzw. -zeilensegment über das zu erzeugende Poly­ gon. Diffusions- und Spiegelungskoeffizienten an jedem Ende der Abtastlinie werden berechnet, nämlich NLRT, NLLT, NHRT und NHLT. 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 zwi­ schen 0 und 1 entlang des Abtastliniensegments des wiederzuge­ benden Polygons. Dieser Faktor wird an die α-Eingänge von AU′s 76 und 86 angelegt. Das Implementieren der obigen Glei­ chung (6a) in den AU′s 76 und 86 führt zu folgenden Ergebnis­ sen:
RES AU 76 = α NHRT + (1 - NHLT (14)
RES AU 86 = α NLRT + (1 - NLLT (15)
Gleichungen 14 und 15 stellen glatte lineare Interpolationen von N.H bzw. N.L dar. Diese Werte sind nicht-normiert, da sie aufgrund des linearen Interpolationsprozesses nicht mehr Einheitsvektoren darstellen. Eine Neu-Normierung 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 α-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 αA, das gleich ist 1/ [RES AU76] dem Spiegelungskoeffizienten aus Gleichung (13). Dieser Ausgang wird als nächstes zum xoe-Funktionsgenerator 79 übertragen, wo der Objekt-Spiegelungs- bzw. Reflexionsexpo­ nent (die Reflexionspotenz) angelegt wird.
Der Koeffizient der ambienten oder 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 Diffusionskoeffizien­ ten der obigen Gleichung (12).
Die Muster-AFDU 90 und die Musteradreß-Umsetzfunktion 92 erzeugen eine Muster-Speicheradresse. Wie oben unter Bezugnah­ me 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-Aus­ gang stellt, da der B-Eingang offen ist, das Produkt des Dif­ fusionskoeffizienten (α-Eingang) und Objektfarbe (A-Ein­ gang) dar. Dieses Signal wird vom Multiplexer 110 als Eingang zum A-Eingang der AU 114 ausgewählt. Die Lichtfarbe im Regi­ ster 108 wird vom Multiplexer 112 als Eingangssignal für den B-Eingang von AU 114 ausgewählt. Der Spiegelungs- bzw. Refle­ xionskoeffizient, erhoben zum Objekt-Spiegelungsexponenten vom Funktionsmodul 79, wird an den α-Eingang von AU 114 ange­ legt. AU 114 führt die Gleichung (7b) aus, wodurch ein voll­ ständiger Pixelfarbausdruck am RES-Ausgang entwickelt wird. Die Weiterverarbeitung stromab der AU 114 wurde bereits unter Bezugnahme auf die Kurven- und Vektorschattierung beschrie­ ben.
Wie oben erwähnt, wurde die vorstehende Erläuterung der Erfin­ dung 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-Schattie­ rung 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 Abtast­ linie bzw. -zeile ist gegeben durch:
α (rechte Farbe) + (1 - α) (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. Statt dessen werden die ALPHA-Ein­ gä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 unmo­ difiziert 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 xoe-Funktion, sowie zum α-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 α-Eingang von AU 114 zur Verfügung gestellt. Der Multi­ plexer 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 Schattierungsschal­ tung ist ähnlich Polygonen, mit der Ausnahme, daß die Schat­ tierungsparameter N.L und N.H durch bi-kubische Funktionen approximiert werden, die von AFDU′s 60 und 70 geliefert wer­ den, anstatt durch eine lineare Interpolation über die Abtast­ linie 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 α-Eingänge der AU′s 78 und 86 angelegt. Der Spiegelungskoeffizient durch­ lä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 durch­ lä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 Vek­ torschattierung beschriebenen Weise mit Bezug auf die Bildtie­ fensimulation 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 er­ setzt 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/Quadrat­ wurzelfunktion 62 und den Pixelpufferspeichern (d. h. 116, 118, 216 usw.). Multiplexer 414 wählt als Eingang eine gewünschte Farbkonstante C0, die NLlt, 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 Bresen­ ham-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 C1 eine gewünschte Farbkonstante, die NL₁t, 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 Funk­ tionen 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 imple­ mentieren können.

Claims (22)

1. Einrichtung zum Erzeugen schattierter Werte von gra­ phischen Objekten zur Anzeige an einem vorgegebenen Ort auf einer graphischen Anzeigeeinrichtung (22) mit einer zentra­ len Verarbeitungseinheit (CPU) (9), einem Speicher und einem Einzelbildpuffer (20), wobei die graphischen Objekte Vekto­ ren, Kurven, Polygone und Flecke (Patches) umfassen können und durch eine anfängliche Darstellung des graphischen Ob­ jekts umfassende Pixeldaten definiert sind, gekennzeichnet durch:
eine erste Modifizierungseinrichtung (76, 78, 86, 88, 104, 204, 304, 114, 214, 314) zum Modifizieren der Pixelda­ ten gemäß einer spiegelnden und einer diffusen Funktion zum Einbringen von Werten einer spiegelnden bzw. einer diffusen Schattierung für die graphischen Objekte,
wobei die spiegelnde Funktion aus spiegelnden Schat­ tierungswerten einer Abtastlinie, einem Objektspiege­ lungsexponenten für das graphische Objekt und einem Oberflächennormalenvektor für das graphische Objekt be­ stimmt wird, wobei die spiegelnden Schattierungswerte der Abtastlinie gemäß dem Punktprodukt des Oberflächen­ normalenvektors und des Einheitsvektors in Richtung der maximalen Reflexion bestimmt werden, und
wobei die diffuse Funktion aus diffusen Schattie­ rungswerten der Abtastlinie, einem Koeffizienten der am­ bienten Reflexion des graphischen Objekts, dem Oberflä­ chennormalenvektor des graphischen Objekts und einem für das graphische Objekt relevanten Musterspeicher (102, 202, 302) bestimmt wird, wobei die diffusen Schattie­ rungswerte der Abtastlinie gemäß dem Punktprodukt des Oberflächennormalenvektors und eines Einheitsvektors in Richtung der Lichtquelle bestimmt werden;
eine zweite Modifizierungseinrichtung (122, 222, 322) zum Modifizieren der Pixeldaten des graphischen Objekts, um einen Bildtiefeneffekt gemäß einer Bildtiefenfunktion zu er­ zeugen, wobei die Bildtiefenfunktion in Abhängigkeit von ei­ ner Bildtiefenhinweisfarbe des graphischen Objekts, der Hin­ tergrundfarbe und den Pixeldaten des graphischen Objekts be­ stimmt wird;
eine dritte Modifizierungseinrichtung (124, 224, 324) zum Modifizieren der Pixeldaten des graphischen Objekts, um einen Anti-Alias-Effekt gemäß einer Anti-Alias-Funktion zu erzeugen, wobei die Anti-Alias-Funktion aus einer modifi­ zierten Bresenham-Fehlerfunktion und aus aus dem Einzelbild­ puffer ausgelesenen Pixeldaten bestimmt wird, wobei die aus­ gelesenen Pixeldaten aus den Speicherplätzen des Einzelbild­ puffers ausgelesen sind, die dem vorgegebenen Ort entspre­ chen, an dem das graphische Objekt angezeigt werden soll,
eine vierte Modifizierungseinrichtung (128, 228, 328) zum Modifizieren der Pixeldaten des graphischen Objekts, um einen Transparenzeffekt gemäß einer Transparenzfunktion zu erzeugen, wobei die Transparenzfunktion aus einem Transpa­ renzkoeffizienten für das graphische Objekt, aus aus dem Einzelbildpuffer (20) aus den Speicherplätzen, die dem vor­ gegebenen Ort entsprechen, an dem das graphische Objekt an­ gezeigt werden soll, ausgelesenen Pixeldaten und den Pi­ xeldaten des graphischen Objekts bestimmt wird;
Mittel zum Verknüpfen der ersten, zweiten, dritten und vierten Modifizierungseinrichtungen in einer Pipeline-Struk­ tur, wobei die Pipeline-Struktur Einrichtungen aufweist, welche die ersten, zweiten, dritten und vierten Modifizie­ rungseinrichtungen derart seriell verbinden können, daß das Ausgangssignal der einen Modifizierungseinrichtung mit einem Eingang einer anderen Modifizierungseinrichtung verbunden ist, wobei die erste in der Pipeline-Struktur eingebundene Modifizierungseinrichtung die unmodifizierten Pixeldaten des graphischen Objekts an einem ihrer Eingänge empfängt und die letzte Modifizierungseinrichtung in der Pipeline-Struktur die modifizierten Pixeldaten an den Einzelbildpuffer aus­ gibt; und
eine Einrichtung, die es der CPU (9) gestattet, die er­ ste, zweite, dritte und vierte Modifizierungseinrichtung se­ lektiv in Abhängigkeit von der Art des durch die Pixeldaten definierten graphischen Objekts freizugeben.
2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß das graphische Objekt ein Vektor ist und daß die zweite, dritte und vierte Modifizierungseinrichtung freigegeben sind, um eine schattierte Abbildung des Vektors zu erzeugen.
3. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß das graphische Objekt eine Kurve ist und daß die zweite, dritte und vierte Modifizierungseinrichtung freigegeben sind, um eine schattierte Abbildung der Kurve zu erzeugen.
4. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß das graphische Objekt ein Polygon ist und daß die erste, zweite und vierte Modifizierungseinrichtung freigegeben sind, um eine schattierte Abbildung des Polygons zu erzeu­ gen.
5. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß das graphische Objekt ein Fleck (patch) ist und daß die erste, zweite und vierte Modifizierungseinrichtung freigege­ ben sind, um eine schattierte Abbildung des Flecks zu erzeu­ gen.
6. Einrichtung nach einem der Ansprüche 1-5, gekenn­ zeichnet durch eine Einrichtung zum Berechnen der diffusen Funktion gemäß der Gleichung: wobei α ein Interpolationskoeffizientenwert ist, welcher linear von Null zu Eins wächst, NLlt, NLrt die diffus schat­ tierten Abtastlinienwerte der linken bzw. rechten Seite der Abtastlinie sind, die das Punktprodukt des Oberflächennorma­ lenvektors N für das graphische Objekt und des Einheitsvek­ tors L in Richtung der Lichtquelle enthalten, Ka der Koeffi­ zient der ambienten Reflexion ist und PM der Inhalt des für das graphische Objekt relevanten Musterspeichers ist.
7. Einrichtung nach Anspruch 6, gekennzeichnet durch ei­ ne Einrichtung (76, 78) zum Berechnen der spiegelnden Funk­ tion gemäß der Gleichung: wobei α ein Wert ist, welcher linear von Null bis Eins wächst, NHlt, NHrt die spiegelnd schattierten Abtastlinien­ werte an der linken bzw. der rechten Seite der Abtastlinie sind, die das Punktprodukt des Oberflächennormalenvektors N für das graphische Objekt und des Einheitsvektors H in der Richtung der maximalen Reflexion enthalten, wobei LC die Lichtfarbe einer Lichtquelle für das graphische Objekt und Oe der Objektspiegelungsexponent für das graphische Objekt ist.
8. Einrichtung nach einem der Ansprüche 1-7, dadurch gekennzeichnet, daß die Bildtiefenfunktion die Gleichung um­ faßt: αB+(1-α)A,wobei α die Bildtiefenhinweisfarbe für das graphische Objekt, B die Hintergrundfarbe und A die Pixeldaten des gra­ phischen Objekts sind.
9. Einrichtung nach einem der Ansprüche 1-8, dadurch gekennzeichnet, daß die Anti-Alias-Funktion die Gleichung umfaßt: αB(1-α)A,wobei α die modifizierte Bresenham-Fehlerfunktion, B die Pixeldaten aus dem Einzelbildpuffer und A die Pixeldaten des graphischen Objekts sind.
10. Einrichtung nach einem der Ansprüche 1-9, dadurch gekennzeichnet, daß die Transparenzfunktion die Gleichung umfaßt: αB+(1-α)A,wobei α der Transparenzkoeffizient, B die Pixeldaten aus dem Einzelbildpuffer und A die Pixeldaten des graphischen Objekts sind.
11. Einrichtung nach Anspruch 7, dadurch gekennzeichnet, daß die erste Modifizierungseinrichtung ferner eine Einrich­ tung (114, 214, 314) zum Kombinieren der Ausgangssignale der Einrichtung (86, 88, 104, 204, 304) zum Berechnen der diffu­ sen Funktion und der Einrichtung (76, 78, 79, 62) zum Be­ rechnen der spiegelnden Funktion gemäß der folgenden Glei­ chung aufweist: αB+A,wobei α das von der Einrichtung zum Berechnen der spie­ gelnden Funktion erzeugte Ausgangssignal, B die Lichtfarbe der Lichtquelle und A das von der Einrichtung zum Berechnen der diffusen Funktion erzeugte Ausgangssignal ist.
12. Verfahren zum Erzeugen schattierter Werte eines gra­ phischen Objekts zur Anzeige an vorgegebenen Orten einer graphischen Anzeigeeinrichtung, wobei das graphische Objekt Vektoren, Kurven, Polygone und Flecke (Patches) umfassen kann, wobei jedes graphische Objekt von Pixeldaten definiert wird, die anfänglich eine Darstellung der Farbe des graphi­ schen Objekts umfassen, wobei jedes graphische Objekt in Be­ zug auf eine Lichtquelle schattiert wird, wobei:
selektiv spiegelnde und diffuse Schattierungswerte für das graphische Objekt gemäß spiegelnden und diffusen Schat­ tierungsfunktionen berechnet und die spiegelnden und diffu­ sen Schattierungswerte für das graphische Objekt mit den Pi­ xeldaten des graphischen Objekts kombiniert werden, um in die Pixeldaten des graphischen Objekts spiegelnde und dif­ fuse Schattierungswerte einzubringen,
wobei die spiegelnde Schattierungsfunktion aus Spie­ gelungsschattierungswerten einer Abtastlinie, einem Ob­ jektspiegelungsexponenten für das graphische Objekt, ei­ ner Lichtfarbe in bezug auf das graphische Objekt und einem Oberflächennormalenvektor für das graphische Ob­ jekt bestimmt wird, wobei die Spiegelungsschattierungs­ werte der Abtastlinie gemäß dem Punktprodukt aus dem Oberflächennormalenvektor und dem in die Richtung der maximalen Reflexion weisenden Einheitsvektor bestimmt werden,
wobei die diffuse Schattierungsfunktion aus Diffus­ schattierungswerten der Abtastlinie, einem Koeffizienten der ambienten Reflexion für das graphische Objekt, dem Oberflächennormalenvektor für das graphische Objekt und einem für das graphische Objekt relevanten Musterspei­ cher bestimmt wird, wobei die Diffusschattierungswerte der Abtastlinie gemäß dem Punktprodukt aus dem Oberflä­ chennormalenvektor und einem Einheitsvektor in Richtung der Lichtquelle bestimmt werden;
die Pixeldaten des graphischen Objekts selektiv modifi­ ziert werden, um einen Bildtiefeneffekt gemäß einer Bildtie­ fenfunktion zu erzeugen, wobei die Bildtiefenfunktion aus einem Bildtiefenhinweisfarbwert für das graphische Objekt, der Hintergrundfarbe und den Pixeldaten des graphischen Ob­ jekts bestimmt wird;
die Pixeldaten des graphischen Objekts selektiv modifi­ ziert werden, um einen Anti-Alias-Effekt gemäß einer Anti-Alias-Funktion zu erzeugen, wobei die Anti-Alias-Funktion aus einer modifizierten Bresenham-Fehlerfunktion, den Pi­ xeldaten des graphischen Objekts und den Pixeldaten aus dem Einzelbildpuffer, die in dem vorgegebenen Ort entsprechenden Speicherplätzen angeordnet sind, an dem das graphische Ob­ jekt angezeigt werden soll, bestimmt wird;
die Pixeldaten des graphischen Objekts selektiv modifi­ ziert werden, um einen Transparenzeffekt gemäß einer Trans­ parenzfunktion zu erzeugen, wobei die Transparenzfunktion aus einem Transparenzkoeffizienten für das graphische Ob­ jekt, aus aus dem Einzelbildbuffer ausgelesenen Pixeldaten, die in dem vorgegebenen Ort entsprechenden Speicherplätzen angeordnet sind, an dem das graphische Objekt angezeigt wer­ den soll, und den Pixeldaten des graphischen Objekts be­ stimmt wird;
die Funktionen zum selektiven Modifizieren des graphi­ schen Objekts gemäß der Art des graphischen Objekts ausge­ wählt werden, um ein schattiertes Abbild des graphischen Ob­ jekts zu erzeugen; und
die modifizierten Pixeldaten des graphischen Objekts an den Einzelbildpuffer zur Anzeige des schattierten Abbilds ausgegeben werden.
13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß das graphische Objekt ein Vektor ist und daß die Pi­ xeldaten des graphischen Objekts selektiv zum Erzeugen eines Bildtiefeneffekts, eines Anti-Alias-Effekts und eines Trans­ parenzeffekts modifiziert werden.
14. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß das graphische Objekt eine Kurve ist und daß die Pi­ xeldaten des graphischen Objekts zum Erzeugen eines Bildtie­ feneffekts, eines Anti-Alias-Effekts und eines Transparenz­ effekts selektiv modifiziert werden.
15. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß das graphische Objekt ein Polygon ist und daß die Pi­ xeldaten des graphischen Objekts zum Einbringen spiegelnd und diffus schattierender Werte, zum Erzeugen eines Bildtie­ feneffekts und zum Erzeugen eines Transparenzeffekts selek­ tiv modifiziert werden.
16. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß das graphische Objekt ein Fleck (Patch) ist und daß die Pixeldaten des graphischen Objekts zum Einbringen spiegelnd und diffus schattierender Werte, zum Erzeugen eines Bildtie­ feneffekts und zum Erzeugen eines Transparenzeffekts selek­ tiv modifiziert werden.
17. Verfahren nach einem der Ansprüche 12-16, dadurch gekennzeichnet, daß die diffuse Schattierungsfunktion gemäß der Gleichung berechnet wird, wobei α ein Interpolationskoeffizienten­ wert ist, welcher linear von Null zu Eins wächst, NLlt, NLrt die diffusen Schattierungswerte der Abtastlinie auf der lin­ ken und rechten Seite der Abtastlinie sind, die das Punkt­ produkt des Oberflächennormalenvektors N des graphischen Ob­ jekts und des Einheitsvektors L in Richtung der Lichtquelle enthalten, Ka der Koeffizient der ambienten Reflexion ist und PM der Inhalt des für das graphische Objekt relevanten Musterspeichers ist.
18. Verfahren nach Anspruch 17, dadurch gekennzeichnet, daß die spiegelnde Schattierungsfunktion gemäß der Gleichung berechnet wird, wobei α ein Wert ist, welcher linear von Null zu Eins wächst, NHlt, NHrt die Spiegelungsschattie­ rungswerte der Abtastlinie auf der linken und rechten Seite der Abtastlinie sind, die das Punktprodukt des Oberflächen­ normalenvektors N für das graphische Objekt und des Ein­ heitsvektors H in Richtung der maximalen Reflexion umfassen, LC die Lichtfarbe der Lichtquelle ist und Oe der Objektspie­ gelungsexponent ist.
19. Verfahren nach einem der Ansprüche 12-18, dadurch gekennzeichnet, daß die Bildtiefenfunktion gemäß der Glei­ chung αB + (1-α)Aberechnet wird, wobei α die Bildtiefenhinweisfarbe für das graphische Objekt, B die Hintergrundfarbe und A die Pi­ xeldaten des graphischen Objekts sind.
20. Verfahren nach einem der Ansprüche 12-19, dadurch gekennzeichnet, daß die Anti-Alias-Funktion gemäß der Glei­ chung αB + (1-α)Aberechnet wird, wobei α die modifizierte Bresenham-Feh­ lerfunktion, B die Pixeldaten aus dem Einzelbildpuffer und A die Pixeldaten des graphischen Objekts sind.
21. Verfahren nach einem der Ansprüche 12-20, dadurch gekennzeichnet, daß die Transparenzfunktion gemäß der Glei­ chung αB + (1-α)Aberechnet wird, wobei α der Transparenzkoeffizient, B die Pixeldaten aus dem Einzelbildpuffer und A die Pixeldaten des graphischen Objekts sind.
22. Verfahren nach Anspruch 18, dadurch gekennzeichnet, daß das Ergebnis der Berechnung der diffusen Schattierungs­ funktion mit dem der spiegelnden Schattierungsfunktion gemäß der Gleichung α + A,kombiniert wird, wobei α das Ergebnis der Berechnung der spiegelnden Schattierungsfunktion und A das Ergebnis der Be­ rechnung der diffusen Schattierungsfunktion ist.
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 DE3825539A1 (de) 1989-02-09
DE3825539C2 true 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)

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

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 図形シエ−デイング装置

Also Published As

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

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
EP0984397B1 (de) Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster
DE4314265B4 (de) Displaysystem
DE69725809T2 (de) Anpassungsschichten für die Manipulation von zusammengesetzten Bildern
DE60032832T2 (de) Darstellung einer gekrümmten Oberfläche in mehreren Auflösungen
DE69816824T2 (de) Texturabbildung in 3-d-rechnergraphik
DE2703021A1 (de) Datenprozessor zum liefern von intensitaetssteuersignalen zur verwendung in einer rasteranzeige
DE3315148C2 (de)
DE102005050846A1 (de) Perspektiveneditierwerkzeuge für 2-D Bilder
DE4433887A1 (de) Verfahren und Vorrichtung zum Erzeugen einer Hilfsbildpunktmaske für eine Computergraphik
DE3022454A1 (de) Optisches abbildesystem mit computererzeugtem bild fuer einen bodenfesten flugsimulator
DE69534697T2 (de) Verfahren zur Erzeugung texturierter Bilder und Spezialvideoeffekte
DE3815361C2 (de) Schaltungsanordnung zum Erzeugen von Kurven oder Vektoren zur Wiedergabe auf einer Anzeigeeinrichtung und Verfahren zum Wiedergeben solcher Kurven oder Vektoren auf einer Anzeigeeinrichtung
DE19917092A1 (de) Verfahren zur Rasterisierung eines Graphikgrundelements
DE69921696T2 (de) Verfahren zur perspektivischen darstellung, ausgehend von einem voxelraum
DE3619420A1 (de) Computer-displayeinrichtung
EP0789328A2 (de) Bildverarbeitungsverfahren zur Darstellung von spiegelnden Objekten und zugehörige Vorrichtung
DE4224568C2 (de) Vorrichtung und Verfahren zur Bildung der Anzeige eines dreidimensionalen sequentiellen tomografischen Flächenschattierungsbildes
DE19619288A1 (de) System und Verfahren zur Dreieck-Rasterung mit in zwei Dimensionen verschachtelten Rahmenpuffern
DE69921608T2 (de) Verfahren und vorrichtung zum zoomen von digitalen bilddateien
DE19708679A1 (de) Bilddarstellungsverfahren und Vorrichtung zur Durchführung des Verfahrens
DE2261141A1 (de) Einrichtung zur graphischen darstellung
DE60024117T2 (de) Tiefenbasierte mischung mit 3d aufrasterungsgerät
DE3825539C2 (de) Einrichtung u. Verfahren zum Erzeugen schattierter Werte von graphischen Objekten auf einer Anzeigeeinrichtung
DE112011105126T5 (de) Texturkartierungsvorrichtung

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