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 AnzeigeeinrichtungInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
- G06T15/83—Phong shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
- G06T15/87—Gouraud 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.
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
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.
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.
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.)
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.
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)
α 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.
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.
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.
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).
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):
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.
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.
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)
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.
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.
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.
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)
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)
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 | 図形シエ−デイング装置 |
-
1988
- 1988-05-13 GB GB8811392A patent/GB2207585B/en not_active Expired - Fee Related
- 1988-07-19 CA CA000572463A patent/CA1305802C/en not_active Expired
- 1988-07-25 FR FR8810000A patent/FR2622030B1/fr not_active Expired - Fee Related
- 1988-07-27 JP JP63187968A patent/JP2777577B2/ja not_active Expired - Fee Related
- 1988-07-27 DE DE19883825539 patent/DE3825539C2/de not_active Expired - Fee Related
-
1992
- 1992-05-11 SG SG52792A patent/SG52792G/en unknown
- 1992-08-13 HK HK60992A patent/HK60992A/xx not_active IP Right Cessation
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 |