DE3855231T2 - Prioritätsauflösungssystem zwischen Polygonen mit Antialiasing - Google Patents

Prioritätsauflösungssystem zwischen Polygonen mit Antialiasing

Info

Publication number
DE3855231T2
DE3855231T2 DE3855231T DE3855231T DE3855231T2 DE 3855231 T2 DE3855231 T2 DE 3855231T2 DE 3855231 T DE3855231 T DE 3855231T DE 3855231 T DE3855231 T DE 3855231T DE 3855231 T2 DE3855231 T2 DE 3855231T2
Authority
DE
Germany
Prior art keywords
polygon
priority
pixel
mask
subpixels
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
DE3855231T
Other languages
English (en)
Other versions
DE3855231D1 (de
Inventor
Russell A Brown
Glen A Eckart
Gary S Watkins
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.)
Evans and Sutherland Computer Corp
Original Assignee
Evans and Sutherland Computer Corp
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 Evans and Sutherland Computer Corp filed Critical Evans and Sutherland Computer Corp
Publication of DE3855231D1 publication Critical patent/DE3855231D1/de
Application granted granted Critical
Publication of DE3855231T2 publication Critical patent/DE3855231T2/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/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing

Landscapes

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

Description

    Hintergrund und Zusammenfassung der Erfindung
  • Videospiele sind vielleicht die bekannteste Form von Systemen zur graphischen Datenverarbeitung bzw. Computergraphiksystemen (nachfolgend "Computergraphiksysteme" genannt). Die Wissenschaft umfaßt jedoch eine beträchtliche Zahl anderer Formen von Anzeigevorrichtungen, wie für das Üben, die Gestaltung, das Entwerfen usw. Typischerweise geben diese Systeme dem Betrachter den Eindruck, daß er durch ein Fenster auf ein großes Bild schaut. Im wesentlichen wählt das Computergraphiksystem einen Bildinhalt aus Objektdaten aus, orientiert ihn in bezug auf das Fenster und zeigt ihn als logische Abbildung an.
  • Eine Computergraphiktechnik bildet Abbildungen aus Polygonen (von geraden Kanten begrenzte, geschlossene Umrisse), die die grundlegenden räumlichen Flächen von Grau oder Farbe definieren, um ein Objekt für die Anzeige bzw. den Bildschirm (nachfolgend "Anzeige" genannt) zu definieren. Die herkömmliche Praxis umfaßt das Orientieren solcher Polygone in bezug auf einen Standpunkt, das Abtasten derer, um einzelne Bildelemente (Pixel) der Anzeige zu ermitteln, dann das Verarbeiten von Daten für die einzelnen Pixel. Im wesentlichen umfaßt die Rasterwandlung und die Verarbeitung eines Polygons das Auffinden aller nicht verlegten Pixel innerhalb der Polygongrenzen und das Erzeugen einer Anzeige durch geeignetes Festlegen der Farbe und Intensität für jedes Pixel. Bei einer herkömmlichen Anzeige können eine Million Pixel eingesetzt werden, um ein Bild zusammenzusetzen.
  • Typischerweise werden vorbereitend für die Anzeige einer Abbildung Bilddaten als Muster binärer Digitalzahlen gespeichert, die eine rechteckige Anordnung von Pixeln repräsentieren. Für die Anzeige können Pixeldaten vom Speicher an eine Kathodenstrahlröhre gegeben werden, die die Pixel in einem Rastermuster anzeigt, einer Folge von Abtastzeilen, die jeweils aus einer Reihe einzelner Pixel bestehen. Das Rastermuster ist bei Fernsehbildschirmen höchst vertraut.
  • Unter Anwendung der oben erwähnten Techniken sind gegenwärtige Computergraphiksysteme fähig, aus Grundelementen wie ebenen Polygonen realistische Bilder zu liefern. Wie oben angegeben, umfaßt die Erzeugung solcher Bilder das Auswählen von Abschnitten dieser Polygone, die in der Anzeige erscheinen. In jeder Hinsicht sind mehrere Techniken für verdeckte Flächen und Abschneiden in weit verbreitetem Gebrauch, um verlegte Flächen und Flächen außerhalb des Betrachtungsfensters zu eliminieren. Techniken für verdeckte Flächen ermitteln die Priorität von sich überlagernden Polygonen. Wenn zum Beispiel zwei mit Abstand voneinander angeordnete Polygone von einer Sichtlinie geschnitten werden, wird dem Polygon, das dem Standpunkt am nächsten ist, Priorität gegeben und liefert folglich die Daten für die an der Konkurrenz beteiligten Pixel. US 4 590 465 offenbart ein System zum Ermitteln der Priorität zwischen Polygonen, das die Merkmale des Oberbegriffs des Anspruchs 1 besitzt. Im allgemeinen entscheidet das System der vorliegenden Erfindung über die Priorität zwischen konkurrierenden Polygonen an besturirnten Stellen, z.B. Pixeln oder Unterpixeln.
  • Beim Ermitteln der Priorität zwischen einem Paar von Polygonen kann eine Kante definiert werden, wo sich die Ebenen der beiden Polygone schneiden. Natürlich erscheint eine solche Kante in der Anzeige und kann eine unerwünschte zackige oder Treppenerscheinung aufweisen. Solche Kanten sind bei Rasteranzeigen beinahe üblich und sind bei Fernsehbildern wohlbekannt. Solche Defekte werden "Aliasing" oder "Rasterung" genannt. Sie können durch eine Filterung der Pixel, die die Kante durchläuft, vermieden werden. Die vorliegende Erfindung schließt solche Techniken ein, um verbesserte Anzeigen zu erreichen. Zusammenfassend können Qualitätsabbildungen durch Rasterabtasttechniken erzeugt werden, die umfassen: (1) Priorisieren der Polygone der Bildquelle in bezug auf einen Standpunkt, um einzelne Pixel zu definieren, die verdeckte Flächen eliminieren, (2) Filtern der Pixel, die auf einer Kante zwischen den Bildpolygonen liegen, um gezackte Begrenzungen zu reduzieren und (3) gleichmäßiges Abtönen der Bildpolygone, um das Auftreten einzelner Polygone zu reduzieren. Jede dieser Techniken ist im Stand der Technik wohlbekannt, und Vorrichtungen zu deren Implementierung sind weit verbreitet in Gebrauch. Die vorliegende Erfindung betrifft in erster Linie die Techniken (1) Priorisieren und (2) Filtern.
  • Im allgemeinen ist das System der vorliegenden Erfindung als ein Verfahren oder ein Produkt zum Entscheiden über die Priorität zwischen Grundelementen (Polygonen) verkörpert, die um einzelne Bereiche in einer Anzeige, z.B. Pixel oder Unterpixel, konkurrieren. Über die Priorität wird entschieden, indem die Kante, an der sich die Ebenen zweiter Polygone schneiden, definiert wird und dann, indem eine einfache Prüfung der Vorzeichenwerte nach dem Transformieren der Kante auf den Raum des Anzeigeschirms angewendet und die Steigung einer solchen Kante ermittelt wird. Zusammen mit dem Entscheiden über die Priorität zwischen konkurrierenden Polygonen filtert das hier offenbarte System die Pixeldaten. Folglich ermöglicht das System bei einer Videographikanzeige mit Rasterabtastung die Erzeugung verhältnismäßig sauberer, scharfer Kanten.
  • Kurze Beschreibung der Zeichnungen
  • In den Zeichnungen, die einen Teil der Beschreibung bilden, sind beispielhafte Ausführungsformen dargelegt, die verschiedene Ziele und Merkmale hiervon zeigen, insbesondere ist:
  • Fig. 1 eine perspektivische Darstellung, die konkurrierende Polygone für eine Anzeige darstellt, so daß über sie gemäß der vorliegenden Erfindung entschieden wird,
  • Fig. 2 eine vergrößerte und verzerrte Ansicht eines Teils der Fig. 1,
  • Fig. 3 eine graphische Darstellung eines Teils der Fig. 2 aus einem anderen Winkel,
  • Fig. 4 eine graphische Darstellung eines gemäß der vorliegenden Erfindung für eine Anzeige erzeugten Bildelements,
  • Fig. 5 ein Block- oder symbolisches Diagram einer Komponente eines Systems gemäß der vorliegenden Erfindung,
  • Fig. 6 ein Flußdiagramm eines Verfahrens gemäß der vorliegenden Erfindung,
  • Fig. 7 ein Blockdiagramm eines Systems, das die Struktur gemäß der vorliegenden Erfindung verkörpert,
  • Fig. 8 ein Blockdiagramm eines weiteren Systems, das die Struktur gemäß der vorliegenden Erfindung verkörpert, und
  • Fig. 9 eine graphische Ansicht dreier in einem Pixel angezeigter Polygone zur Auswertung gemäß der vorliegenden Erfindung.
  • Beschreibung der erläuternden Ausführungsform
  • Hier ist eine erläuternde strukturelle Ausführungsform der vorliegenden Erfindung offenbart, sie ist jedoch ausschließlich repräsentativ, wobei anerkannt wird, daß eine große Vielfalt spezieller Ausführungsformen des offenbarten Systems möglich sind. Dennoch wird die erläuternde Ausführungsform als die betrachtet, die die beste Ausführungsform zu Zwecken der Offenbarung bietet und eine Basis für die Ansprüche hierin bereitstellt, die den Umfang der vorliegenden Erfindung definieren
  • In Fig. 1 ist ein pyramidenstumpfförmiges Volumen V dargestellt, um ein Sichtgebiet im Welt-Raum bzw. dreidimensionalen Raum (nachfolgend "dreidimensionaler Raum" genannt) für einen Betrachter anzugeben, der durch ein Auge E dargestellt ist und sich am Standpunkt 0 befindet. Im allgemeinen wird eine graphische Anzeige geliefert, indem Objekte auf einer Bildschirmfläche 5 präsentiert werden, wobei die Objekte in verschiedenen Positionsverhältnissen innerhalb des Volumens V (dreidimensionaler Raum) liegen. Wenn sie auf der Bildschirmfläche 5 dargestellt sind, sind die Objekte auf eine zusammengesetzte zweidimensionale Anordnung von Pixeln reduziert.
  • Wie hier offenbart, nehmen die dargestellten Objekte die Form von Polygonen an, insbesondere wie die dreieckigen Polygone 10 und 12, die im dreidimensionalen Raum definiert sind. Es ist anzumerken, daß, während die Objektpolygone 10 und 12 im dreidimensionalen Raum in drei Dimensionen x, y und z definiert sind, dieselben Dreiecke vor der Verarbeitung für verdeckte Flächen in den Bildraum transformiert sein müssen. Während der Verarbeitung für verdeckte Flächen sind bestimmte Kanten in die zweidimensionale Bildschirmfläche 5 projiziert, mit der Folge, daß diese Kanten nur in der x- und der y-Dimension dargestellt sind. Techniken für diese Transformationen sind wohlbekannt, wie in dem Buch "Principles of Interactive Computer Graphics", 2. Aufl., Newman and Sproull, herausgegeben 1979 von McGraw-Hill Book Company, siehe S. 339, beschrieben.
  • Wie in Fig. 1 dargestellt, erstrecken sich die Polygone 10 und 12 in der z-Dimension des dreidimensionalen Raums und durchdringen sich gegenseitig. Herkömmlicherweise sind Polygone, wie die Polygone 10 und 12, bei Computergraphikvorrichtungen durch Repräsentationen von Spitzen, d.h. den, Ecken oder Grenzbzw. Endpunkten der Dreiecke, definiert. Wenn die Spitzen festgesetzt sind, sind die Ebenen der Polygone 10 und 12 in mathematischer Form leicht verfügbar. Solche Ebenen sind bei der Zuteilung von Pixeln wie zwischen solchen konkurrierenden Dreiecken wichtig.
  • Hinsichtlich der Polygone 10 und 12 ist zu bemerken, daß der Scheitelpunkt des Polygons 10 (der an einer Spitze 14 endet) das Polygon 12 durchdringt, wobei ein Dreieck 16 mit kleiner Fläche freigelegt wird. Die Grundseite des kleinen Dreiecks 16 erstreckt sich zwischen den Ecken 20 und 22 und definiert eine Kante 18 zwischen den Polygonen 10 und 12. Wie unten ausführlich beschrieben, ist das System der vorliegenden Erfindung nutzbar, um zwischen Abschnitten der Polygone 10 und 12 entlang von Kanten, wie durch die Kante 18 veranschaulicht, zu unterscheiden. Das heißt, das System der vorliegenden Erfindung ist als Vorrichtung zur Entscheidung über die Priorität nutzbar, um den Inhalt von Pixel zu ermitteln, um verdeckte Flächen zu eliminieren und eine Unterdrückung des Aliasing zu erreichen.
  • An dieser Stelle werden einige Hintergrunderläuterungen als angemessen betrachtet, die Techniken zur Eliminierung verdeckter Flächen betreffen. Einige solche Techniken sind in dem erwähnten Buch "Principles of Interactive Computer Graphics" beschrieben. Die sogenannten "Z-Puffer" - oder Tiefenpuffer-Technik zergliedert Polygone zu einzelnen Bildelementen (Pixel) Während jedes Polygon verarbeitet wird, werden seine darstellenden Pixel als näher oder weiter entfernt befindlich als vorher verarbeitete Polygone ermittelt. In jedem Fall werden die Daten der näheren Pixel aufbewahrt und die entfernteren werden geopfert. Folglich sind bei Abschluß der Verarbeitung Daten für jedes Pixel herausgearbeitet, um die Polygonfläche darzustellen, die dem Auge am nächsten ist. So sind verdeckte Flächen eliminiert. Obwohl in der Vergangenheit die Tiefenpuffer-Technik in verschiedenen Vorrichtungen verkörpert wurde, sind bekannte Formen beim Vermeiden von zackigen oder dem Aliasing unterworfenen Kanten unwirksam bzw. untauglich. Bei Verwendung früherer Tiefenpuffer-Techniken würden zum Beispiel die Schnittkante 18 und alle Randkanten der Polygone 10 und 12 (Fig. 1) als unerwünscht gestufte oder gezackte Begrenzungslinien erscheinen. Im Gegensatz dazu entscheidet das System der vorliegenden Erfindung nicht nur über die Priorität zwischen konkurrierenden Polygonen, sondern ermöglicht die Unterdrückung des Aliasing aller Rand- und Schnittkanten.
  • Um das System der vorliegenden Erfindung ausführlicher zu betrachten, wird nun auf Fig. 2 Bezug genommen, die eine vergrößerte Form der Polygone 10 und 12 zeigt. Es ist anzumerken, daß das pyramidenartige Volumen V verkürzt und bruchstückhaft dargestellt ist; Die Bildschirmfläche 5 ist jedoch in bezug auf die Polygone 10 und 12 dargestellt. Es ist bemerkenswert, daß im Interesse der Einfachheit der Erläuterung Proportionen und Maßstab geopfert wurden.
  • Wie oben erläutert, bildet die Kante 18 einen Schnitt bzw. eine Schnittlinie zwischen den Polygonen 10 und 12. Wie in Fig. 2 dargestellt, muß die dreidimensionale Kante 18 zu einer zweidimensionalen Kante 18a auf der Bildschirmfläche 5 transformiert werden. In der Anzeige bildet die Kante 18a (die durch Pixel definiert ist) idealerweise eine gerade, saubere Begrenzung zwischen den Polygonen 10 und 12. Es werden einige mögliche Pixel aus der Ebene betrachtet, die der Kante 18a etwas benachbart ist.
  • Eine kleine Komponentenfläche 30 ist nahe der unteren rechten Ecke des Polygons 12 spezifiziert. Ein für die Fläche 30 repräsentatives Pixel 30a ist auf der Bildschirmfläche 5 angegeben. Aus dem Ort der Fläche 30 auf dem Polygon 12 ist offensichtlich, daß die Fläche nicht mit irgendeiner Fläche des Polygons 10 überlappt oder konkurriert. Folglich konkurriert zwischen den Polygonen 10 und 12 nur das Polygon 12 um das Pixel 30a. So steuert die Intensität und Farbe des Polygons 12 das Pixel 30a vollständig. Weitere Pixel, wie sie nun betrachtet werden, sind nicht so klar spezifiziert.
  • Eine Elementarfläche 32 ist in einem kleinen Dreieck 16 dargestellt, das das Polygon 12 durchdringt und eine Fläche auf Polygon 12 verlegt. Die Elementarfläche 32 ist in der Anzeige durch ein ausgerichtetes Pixel 32a auf der Bildschirmfläche 5 abgebildet.
  • Da das Polygon 10 eine undurchsichtige Fläche repräsentiert, sollte das Pixel 32a nur die Farbe und Intensität des Polygons 10 anzeigen. Als Folge sollte die blockierte oder verdeckte Fläche des Polygons 12 unsichtbar sein. Um die Beziehung besser zu verstehen, siehe Fig. 3, die eine Querschnittsansicht der Polygone 10 und 12 senkrecht durch die Kante 18 zeigt. Fig. 3 veranschaulicht, daß die Elementarfläche 32 direkt vor einem ausgerichteten Schattengebiet 32b auf dem Polygon 12 liegt. Folglich soll in der Anzeige das Schattengebiet 32b auf dem Polygon 12 unsichtbar sein, während die Elementarfläche 32 angezeigt werden soll.
  • Es ist anzumerken, daß die beiden Flächen 32 und 32b (über der Kante 18) mit einem Abstand +ΔZ zwischen den Ebenen der Polygone 10 und 12 voneinander angeordnet sind. Es ist beachtenswert, daß über der Kante 18 das positive Vorzeichen von +ΔZ über die Pixelpriorität zugunsten der Elementarfläche 32 entscheidet.
  • Als nächstes wird eine Elementarfläche 34 (Fig. 2) auf dem Polygon 12 betrachtet, die durch ein Pixel 34a repräsentiert wird. Die Fläche 34 verdeckt eine Fläche 34b (Fig. 3) auf dem Polygon 10. Folglich sollte das Polygon 12 (das die Fläche 34 enthält) das Pixel 34a bei Farbe und Intensität dominieren. In diesem Fall ist es beachtenswert, daß unterhalb der Kante 18 (Fig. 3) das negative Vorzeichen der Versetzung -ΔZ über die Priorität zugunsten der Elementarfläche 34 entscheidet.
  • Aus dem obigen ist offensichtlich, daß zwischen einem Paar sich schneidender Polygone über die Priorität auf der Basis des bloßen Vorzeichens der Versetzung +ΔZ bezüglich der Kante 18 entschieden werden kann. Das System der vorliegenden Erfindung umfaßt die Bestimmung der Kante 18 als Basis zur Verwendung von Vorzeichen, um über die Priorität zu entscheiden.
  • Als nächstes ist es wichtig zu erkennen, daß das System hiervon für Elementarflächen 36 (Fig. 2) angewendet werden kann, die von der Kante 18 geschnitten werden. Solche Flächen werden behandelt, indem auf Unterpixelausgewichen wird. Das bedeutet, daß ein Pixel 36a, das auf der Kante 18a liegt, weiter in Unterpixel eingeteilt und in übereinstimmung hiermit wirksam gefiltert werden kann, um eine Anzeige zu erreichen, bei der das Aliasing unterdrückt ist. Durch Einteilen der Pixel in Unterpixel und einzelnes Zuteilen solcher Unterpixel zu Polygonen, werden Kanten angezeigt, die dem menschlichen Auge als glatte Begrenzungen erscheinen. Da die Orte auf Bildschirm der Kanten nicht im Voraus bekannt sind, werden natürlich alle Pixel in Unterpixel eingeteilt, um die Unterdrückung des Aliasing einer Kante zu gestatten, wie sie irgendwo auf dem Bildschirm auftreten kann.
  • Fig. 4 stellt ein einzelnes Pixel 36a aus der Darstellung in Fig. 2 beträchtlich vergrößert dar. Für Zwecke der Darstellung ist das Pixel 36a durch ein in neun Unterpixel 40 eingeteiltes Quadrat repräsentiert. Wie oben angegeben, werden im Interesse der Vereinfachung der Erläuterung idealisierte Formen verwendet, wobei die Proportionen nicht beachtet werden. Es ist anzumerken, daß die Unterpixel von 0 bis 8 numeriert sind, wobei mit dem oberen linken Unterpixel begonnen und mit dem unteren rechten Unterpixel aufgehört wird. Diese Konvention wird später benutzt.
  • Wie dargestellt, ist das Pixel 36a durch die Kante 18a geteilt. Die Unterdrückung des Aliasing wird beim Pixel 36a ausgeführt, wie durch Zuteilen einzelner Unterpixel 40 zu einem der konkurrierenden Polygone, so daß die Kante 18a die Tendenz hat, als eine glatte, gerade Abgrenzungslinie zu erscheinen. Die Verwendung von Unterpixeln, um eine Unterdrückung des Aliasing zu erreichen, ist im Stand der Technik wohlbekannt und ist in einem Beitrag mit dem Titel "The A-buffer, an Antialiased Hidden Surface Method" von Loren Carpenter, erschienen in Computer Graphics, herausgegeben 1984 von The Association for Computing Machinery, Inc., beschrieben. Da die Kante 13a für die Unterdrückung des Aliasing äußerst wichtig ist, wird nun die Technik der vorliegenden Erfindung, die Gleichung der Kante 13a zu bestimmen, behandelt, die anfangs etwas mathematisch ist.
  • In Übereinstimmung mit herkömmlichen Computergraphiktechniken zur Anzeige werden die Polygone 10 und 12 (Fig. 2) in den Bildraum transformiert. Dementsprechend können die Ebenengleichungen im Budraum für die Polygone 10 und 12 die Form annehmen:
  • (1a) a&sub1;x + b&sub1;y + c&sub1;z + d&sub1; =
  • (1b) a&sub2;x + b&sub2;y + c&sub1;z + d&sub2; =
  • Das Berechnen der Schnittlinie der beiden Ebenen und das Projizieren in den Bildschirmraum, d.h. auf die XY-Ebene der Bildschirmfläche 5, erzeugt:
  • (2a) (c&sub2;a&sub1;-c&sub1;a&sub2;)x + (c&sub2;b&sub1;-c&sub2;b&sub1;)y + (c&sub2;d&sub1;-c&sub1;d&sub2;) =
  • Zur Bequemlichkeit kann die obige Gleichung (2a) vereinfacht werden als:
  • (2b) Ax + By + C = 0
  • worin A, B und C aus der vorherigen Gleichung (2a) definiert sind.
  • Die Gleichung (2b) kann angeben, daß die Kante 18a (Fig. 2) entweder mehr horizontal (Versetzung weniger als 45º gegenüber der Horizontalen) oder mehr vertikal ist (Versetzung mehr als 45' gegenüber der Horizontalen) . Eine mehr horizontale Kante ist gegeben, wenn der Absolutwert von B den Absolutwert von A in der Gleichung (2b) übersteigt, wie aus der Untersuchung der folgenden Punkt-Steigungs-Form der Gleichung (2b) erkannt werden kann:
  • (3) y = -(A/B)x - (C/B)
  • Durch Untersuchung der Gleichung (3) kann gesehen werden, daß die Kante mehr horizontal ist, wenn der Absolutwert von B den Absolutwert von A übersteigt, da die Größe der Steigung der Kante, als A/B ausgedrückt, kleiner als Eins ist.
  • Eine mehr vertikale Kante ist gegeben, wenn der Absolutwert von A den Absolutwert von B übersteigt, wie aus der Untersuchung der folgenden Punkt-Steigungs-Form der Gleichung (2b) erkannt werden kann:
  • (4) x = -(B/A)y - (C/A)
  • Durch Untersuchung der Gleichung (4) kann gesehen werden, daß die Kante mehr vertikal ist, wenn der Absolutwert von A den Absolutwert von B übersteigt, da die Größe der Steigung der Kante, als B/A ausgedrückt, kleiner als Eins ist.
  • In einigem Umfang zusammenfassend teilt die Kante 18a, wie sie durch die Gleichung (2b) definiert ist, die Bildschirmfläche 5 in zwei Bereiche ein. In einem Bereich (oberer) befindet sich das Polygon 10 vor dem Polygon 12. Im anderen Bereich (darunter) befindet sich das Polygon 12 vor dem Polygon 10. Ein besonders geschickter bzw. kluger Aspekt des vorliegenden Systems liegt in der Weise, in der es ermittelt, welches Polygon auf jeder Seite der Kante 18a vorne liegt. Vor der Erörterung der Einzelheiten dieser Ermittlung ist eine Konvention für das Bildschirm-Koordinatensystem, wie es in Fig. 1 vorgeschlagen ist, zu betrachten. Insbesondere wächst vom Auge E aus x nach rechts an, y wächst nach oben an und z wächst vom Auge E weg an. Mit einer solchen Konvention können die Gleichungen (1a) und (1b) geschrieben werden als:
  • (5a) z&sub1; = (-1/c&sub1;) (a&sub1;x + b&sub1;y d&sub1;) und
  • (5b) z&sub2; = (-1/c&sub2;) (a&sub2;x + b&sub2;y + d&sub2;)
  • Unter Verwendung dieser Gleichungen kann die Differenz in der z-Tiefe zwischen den Polygonen P&sub1; und P&sub2;, die als die Polygone 10 und 12 dargestellt sind (siehe Fig. 3), dargestellt werden als:
  • (6a) ΔZ = z&sub2; - z&sub1; oder
  • (6b) ΔZ = (-1/c&sub2;) (a&sub2;x + b&sub2;y + d&sub2;) - (-1/c&sub1;) (a&sub1;x + b&sub1;y + d&sub1;)
  • worin z&sub1; und z&sub2; die z-Tiefen der Polygone P&sub1; bzw. P&sub2; darstellen.
  • Wenn beide Seiten der Gleichung (6b) mit c&sub1; und c&sub2; multipliziert werden, ist das Ergebnis:
  • (6c) c&sub1;c&sub2;ΔZ = Ax + By + C
  • Interessanterweise gestattet die obige Gleichung (6c) die Verwendung der Schnittkante 15a (Fig. 2), um zu ermitteln, welches der Polygone 10 oder 12 auf einer bestimmten Seite der Kante 18 vor dem anderen liegt. Diese Ermittlung für eine Entscheidung über die Polygonpriorität wird wie unten erläutert erreicht und umfaßt die Untersuchung und Anwendung dreier verschiedener Fälle der Polygonkonfiguration, wovon der erste die Schnittkante nicht umfaßt.
  • Der erste Fall zur Entscheidung über die Priorität tritt auf, wenn die Polygone parallel sind, mit dem Ergebnis, daß es keine Schnittkante gibt (nicht dargestellt). Eine solche Konfiguration ist leicht vorzustellen, da die Polygone einfach in Ebenen liegen, die parallel sind, und es dementsprechend keinen Schnittpunkt gibt. Als Folge sind sowohl A als auch B in der Gleichung (6c) Null und für den ersten Fall kann die Gleichung (6c) geschrieben werden:
  • (7) c&sub1;c&sub2;ΔZ = C
  • Die obige Gleichung (7) zeigt, daß das Vorzeichen ΔZ gleich dem Vorzeichen von C ist, wenn die Vorzeichen von c&sub1; und c&sub2; gleich sind. Wenn in diesem Fall C positiv ist, ist ΔZ ebenfalls positiv, was angibt, daß das Polygon P&sub1; das vorderste ist, wie in Fig. 3 gezeigt. Wenn C negativ ist, ist ΔZ ebenfalls negativ und das Polygon P&sub2; ist das vorderste, wieder wie in Fig. 3 gezeigt. Wenn, als eine alternative Situation, die Vorzeichen von c&sub1; und c&sub2; verschieden sind, dann ist das Vorzeichen von ΔZ dem Vorzeichen von C entgegengesetzt. In diesem Fall gibt ein positives C an, daß das Polygon P&sub2; das vorderste ist, wohingegen ein negatives C angibt, daß das Polygon P&sub1; das vorderste ist. Das obige kann auf eine einfache Wahrheitstafel zur Entscheidung über die Priorität reduziert werden:
  • Polygon mit Priorität:
  • Vorzeichen von c&sub1; und c&sub2; gleich?
  • Nun wird der zweite Fall betrachtet, der auftritt, wenn der Absolutwert von A größer als der Absolutwert von B ist, was angibt, daß die Kante 15a mehr vertikal ist. Für diesen Fall zeigt die Untersuchäng der Gleichung (6c), daß entlang der Schnittkante 18a ΔZ Null sein muß. Wenn ein kleiner Schritt von der Kante nach rechts in die Richtung des positiven x gemacht wird, dann hat c&sub1;c&sub2;ΔZ das gleiche Vorzeichen wie Abk. Wenn c&sub1; und c&sub2; das gleiche Vorzeichen haben und ΔX positiv ist, dann wird ΔZ daher durch das Vorzeichen von A bestimmt. Das bedeutet, wenn A für diesen Fall positiv ist, dann liegt rechts von der Kante das Polygon P&sub1; vor dem Polygon P&sub2;, während links von der Kante das Polygon P&sub2; vor dem Polygon P&sub1; liegt. Wenn, wie oben angegeben, die Vorzeichen von c&sub1; und c&sub2; verschieden sind, ist der Sinn des Tests umgekehrt. Dementsprechend können noch zwei Wahrheitstafeln wie folgt formuliert werden:
  • Polygon mit Priorität rechts der Kante:
  • Vorzeichen von c&sub1; und c&sub2; gleich?
  • ja nein
  • Polygon mit Priorität links der Kante:
  • Vorzeichen von c&sub1; und c&sub2; gleich?
  • Der dritte Fall tritt auf, wenn der Absolutwert von B größer ist als der Absolutwert von A, was angibt, daß die Kante 18a mehr horizontal ist. In etwa ähnlich dem oben im zweiten Fall gemachten Ansatz ist offensichtlich, daß ein kleiner Schritt oberhalb der Kante in Richtung des positiven y die Lösung zeigt. Wenn, wie vorher, c&sub1; und c&sub2; das gleiche Vorzeichen haben, dann gibt ein positiver Wert von B an, daß oberhalb der Kante P&sub1; vor P&sub2; liegt, während unterhalb der Kante P&sub2; vor P&sub1; liegt. Wenn, ebenfalls wie vorher erläutert, die Vorzeichen von c&sub1; ünd c&sub2; verschieden sind, ist der Sinn des Tests umgekehrt. Wie bei den anderen Fällen sind zwei weitere Wahrheitstafeln für den dritten Fall wie folgt verfügbar:
  • Polygon mit Priorität oberhalb der Kante:
  • Vorzeichen von cl&sub1; und c&sub2; gleich?
  • Polygon mit Priorität unterhalb der Kante:
  • Vorzeichen von c&sub1; und c&sub2; gleich?
  • Wie vorher wird das Polygon, das fur eine spezielle Elementbestimmung (Unterpixel) Vorrang hat, in Übereinstimmung mit den Vorzeichen von c&sub1; und c&sub2; und den Vorzeichen der Werte A, B und C angegeben. Somit ist offensichtlich, daß dieser Test einen äußerst einfachen Ansatz für die Entscheidung über die Polygonpriorität Pixel für Pixel oder Unterpixel für Unterpixel bietet. Obwohl, wie oben angegeben, Polygone in Form von Dreiecken ausführlich beschrieben wurden, hat das Konzept Anwendung auf andere, bei( der Zusammensetzung von Anzeigenbildern verwendete Grundelemente. Das Konzept kann zum Beispiel auf Kreise angewendet werden, die perspektivische Projektionen von Kugeln sind.
  • Eine Implementierung der oben erläuterten Techniken umfaßt eine Struktur zum Rasterwandeln eines Polygons, um die Pixel zu ermitteln, die es einnimmt, und um die Unterpixel zu berechnen, die vom Polygon innerhalb eines gegebenen Pixels eingenommen werden. Es wird eine Rasterwandlungsvorrichtung verwendet, wie sie im Stand der Technik wohlbekannt ist und auf Seite 229 des genannten Buchs "Principles of Interactive Computer Graphics" beschrieben ist.
  • Im wesentlichen verwendet eine Rasterwandlung sowohl die Darstellung der Randkanten des Polygons im Bildschirmraum als auch die x,y-Koordinaten der Pixel, um die von einem Polygon eingenommenen Pixel zu ermitteln. Wenn jedes Pixel so ermittelt ist, werden die von dem Polygon eingenommenen Unterpixel durch eine Berechnungsvorrichtung für Unterpixel berechnet, wie sie im Stand der Technik wohlbekannt ist und in etwa wie sie auf Seite 146 einer Abhandlung mit dem Titel "A Parallel Scan Conversion Algorithm with Anti-Aliasing for a General- Purpose Ultracomputer von Eugene Fiume, Alain Fournier und Larry Rudolph, erschienen in Computer Graphics, herausgegeben 1984 von der Association for Computing Machinery, Inc., beschrieben ist. Diese Berechnung von Unterpixeln verwendet ebenfalls sowohl die Darstellung der Randkanten des Polygons im Bildschirmraum als auch die x,y-Koordinaten der Pixel.
  • In Übereinstimmung mit dem oben erläuterten idealisierten Format wird jedes Pixel in neun Unterpixel unterteilt (siehe Fig. 4). Folglich wird für eine herkömmliche Anzeige eine Speicherung für neun Unterpixel in jedem von einer Million Pixeln benötigt, somit ist eine Speicherung für neun Millionen Unterpixel erforderlich. Fig. 5 stellt diese Speicherstruktur dar, die sowohl einen Maskenspeicher als auch einen Polygonspeicher einschließt.
  • Der Maskenspeicher würde einen Speicher für die Unterpixel zur Verfügung stellen, der als eine Million Pixeldatensätze organisiert ist, wobei jeder den Speicher für neun Unterpixel zur Verfügung stellt. Die eine Million Pixel bei der Bildschirmfläche 5 bilden eine zweidimensionale Anordnung, die eintausend Reihen mit jeweils eintausend Pixeln umfaßt. Folglich ist ein spezieller Pixeldatensatz innerhalb des Maskenspeichers unter Verwendung der x,y-Koordinate oder x,y-Adresse jenes Pixels festgesetzt. (Es ist anzumerken, daß die x,y-Koordinate und die x,y-Adresse des Pixels identisch sind.)
  • Ein typischer Pixeldatensatz 51 des Maskenspeichers zum Speichern eines einzelnen Pixels, d.h. neun Unterpixeln, ist in Fig. 5 dargestellt. Der Pixeldatensatz 51 umfaßt neun Datenworte. Jedes der Datenworte hat Platz für ein Maskenbit (mit M&sub0;, M&sub1;, M&sub2; ... M&sub8; bezeichnet) und einen Polygonadressenzeiger (mit PAP&sub0;, PAP&sub1;, PAP&sub2; ... PAP&sub8; bezeichnet). Die Maskenbits geben an, ob jedes Unterpixel einem Polygon zugeordnet wurde.
  • Wenn ein Maskenbit auf "Null" gesetzt ist, wurde das Unterpixel keinem Polygon zugeordnet. Wenn jedoch ein Maskenbit auf "Eins" gesetzt ist, wurde das Unterpixel dem Polygon zugeordnet, das durch den Inhalt des Polygonadressenzeigers gekennzeichnet ist. Das bedeutet, der Polygonadressenzeiger enthält die Adresse eines Polygondatensatzes im Polygonspeicher 52. Der durch diese Adresse bezeichnete besondere Polygondatensatz enthält Information, die für das Polygon kennzeichnend ist, dem das Unterpixel zugeordnet wurde. Zum Beispiel kann der spezielle Polygondatensatz die Koeffizienten a, b, c und d der Ebenengleichung des Polygons enthalten, wie sie in Gleichung (1) dargestellt ist. Außerdem kann der Polygondatensatz Abtöninformation enthalten, die für das Polygon relevant sind, wie mit den Spitzen des Polygons verbundene Gouraud-Intensitäten. Tatsächlich kann jeder Polygondatensatz Informationen enthalten, die für ein anderes Graphikgrundelement als ein Polygon spezifischsind, d.h. eine Kugel, einen Zylinder, eine parametrische Fläche usw. Und jeder Polygondatensatz kann Informationen enthalten, die für ein Graphikgrundelement spezifisch sind, das von dem eines anderen Polygondatensatzes verschieden ist. Somit könhen verschiedene Polygondatensätze Information enthalten, die für irgendeine Kombination dieser verschiedenen Arten von Graphikgrundelementen spezifisch ist, um die gleichzeitige Wiedergabe und Anzeige verschiedener Typen von Graphikgrundelementen zu gestatten. In analoger Weise kann jeder Polygondatensatz Informationen enthalten, die für ein Abtönmodell spezifisch sind, das von dem Abtönmodell nach Gouraud verschieden ist, d.h. ein Abtönmodell nach Phong oder ein Abtönmodell mit Strahlverfolgung bzw. Strahlzeichnung (ray-tracing shading model). Auf diese Weise können in derselben Szene bzw. im selben Bild verschiedene Abtönmodelle eireicht werden. Somit kann die im Polygondatensatz gespeicherte Information recht allgemein sein.
  • Unter Bezugnahme auf Fig. 4 und die vorherige Erwähnung der Konvention der Unterpixelnumerierung ist zu sehen, daß die Konvention eine physikalische Interpretation der Maskenbits des Polygondatensatzes gestattet. Die Maskenbits M&sub0;, M&sub1;, M&sub2;, ... M&sub8; entsprechen jeweils den Unterpixeln 0, 1, 2, ... 8. Eine digitale Darstellung der Unterpixel kann durch ein Neun- Bit-Wort definiert sein, bei dem das Bit M&sub0; das am weitesten links stehende Bit des Wortes, das Bit M&sub1; das nächste Bit rechts davon usw. ist, wobei das Bit M8 das am weitesten rechts stehende Bit des Wortes ist. Somit können die in Fig. 5 dargestellten Maskenbits M&sub0;, M&sub1;, M&sub2;, .. M&sub8; durch ein Neun- Bit-Wort dargestellt werden, das lautet: 010110110. Ein solches Neun-Bit-Wort wird als eine Maske bezeichnet.
  • Ein Beispiel zur Darstellung der Verwendung des Maskenspeichers 50 und des Polygonspeichers 52 ist in Fig. 5 dargestellt. Das Maskenbit M&sub0; wird auf "Null" gesetzt, was angibt, daß das Unterpixel keinem Polygon zugeordnet wurde. Das Maskenbit M&sub1; wird auf "Eins" gesetzt, was angibt, daß der Polygonadressenzeiger PAP&sub1; die Adresse des Polygondatensatzes PR&sub4; im Polygonspeicher 52 enthält, wie durch Pfeil 54 gezeigt. Somit würde die Struktur angeben, daß das Unterpixel 1 des Pixeldatensatzes dem Polygon P&sub4; zugeordnet wurde. Ebenso geben die Maskenbits M&sub3;, M&sub4;, M&sub6; und M&sub7; an, daß die Polygonadressenzeiger PAP&sub3;, PAP&sub4;, PAP&sub6; bzw. PAP&sub7; die Adressen der Polgondatensätze PR&sub9;, PR&sub1;, PR&sub1; bzw. PR&sub6; enthalten, wie durch die Pfeile 58, 56, 57 bzw. 59 gezeigt. Die Tatsache, daß die Polygonadressenzeiger PAP&sub4; und PAP&sub6; beide die Adresse des Polygondatensatzes PR&sub1; enthalten, gibt an, daß die Unterpixel 4 und 6 beide dem Polygon P&sub1; zugeordnet wurden.
  • Es ist anzumerken, daß jeder Polygondatensatz des Polygonspeichers einen Speicher für Information zur Verfügung stellt, die für ein bestimmtes Polygon spezifisch ist. Es ist ebenfalls anzumerken, daß die für ein bestimmtes Polygon spezifische Information nur in einem Polygondatensatz repräsentiert ist. Somit ist die erforderliche Gesamtzahl der Polygondatensätze im Polygonspeicher gleich der Gesamtzahl der durch den Algorithmus für verdeckte Flächen zu verarbeitenden Polygone. In dieser Hinsicht repräsentiert der in Fig. 5 dargestellte Polygon speicher nur einen sehr kleinen Bruchteil des Polygonspeichers, der für die Verarbeitung eines komplexen Modells erforderlich ist, das einige Tausend Polygone umfaßt.
  • Fig. 6 stellt die Reihenfolge von Operationen dar, durch die der Algorithmus für verdeckte Flächen vonstatten geht und durch die Information in dem Maskenspeicher und dem Polygonspeicher gespeichert wird. Die Berechnung beginnt mit einer Initialisierung des Maskenspeichers, wie durch Block 60 angegeben. Während der Initialisierung werden alle neun Millionen Maskenbits des Naskenspeichers auf "Null" gesetzt, um anzugeben, daß keine Unterpixel irgendeinem Polygon zugeordnet wurden. Dann wird das erste Polygon, das mit P&sub1; bezeichnet ist, (durch die Transformationsvorrichtung) vom dreidimensionalen Raum in den Bildraum transformiert, wie durch Block 62 angegeben. Die Koeffizienten a, b, c und d der Ebenengleichung von P&sub1; werden im ersten verfügbaren Polygondatensatz des Polygonspeichers 52 gespeichert, wie durch Block 64 angegeben. Dieser Polygondatensatz wird mit PR&sub1; bezeichnet.
  • Als nächstes wird P&sub1; von einer Vorrichtung zur Rasterwandlung rastergewandelt, um die von P&sub1; zu belegenden Pixel zu bestimmen. Während der Ausführung dieses Algorithmus geht die Rasterwandlung für die Pixel einzeln vonstatten, wie durch Block 66 angegeben. Während jedes von P&sub1; zu belegende Pixel von der Vorrichtung zur Rasterwandlung ermittelt wird, werden die von P&sub1; zu belegenden Unterpixel in diesem Pixel von der Vorrichtung zur Berechnung von Unterpixeln berechnet, wie durch Block 68 angegeben. Diese Unterpixel werden jedoch möglicherweise nicht P&sub1; im Speicher des Maskenspeichers 50 zugeordnet, bis eine Prüfung durchgeführt ist, um zu ermitteln, ob die betreffenden Unterpixel einem vorher verarbeiteten Polygon zugeordnet wurden. Folglich wird der Pixeldatensatz, der für das betreffende Pixel spezifisch ist, aus dem Maskenspeicher ausgelesen, wie durch Block 70 angegeben.
  • Jedes der Maskenbits, die den betreffenden Unterpixeln entsprechen, wird überprüft, um zu sehen, ob irgendwelche von ihnen auf "Eins" gesetzt sind, was die Zuordnung zu einem vorherigen Polygon angibt, wie durch die in der Raute 72 gestellte Frage angegeben ist. Weil aber P&sub1; das erste verarbeitete Polygon seit der Initialisierung ist, als alle Maskenbits auf "Null" gesetzt wurden, zeigt diese Überprüfung, daß keine der den betreffenden Unterpixeln entsprechenden Maskenbits auf "Eins" gesetzt sind. Folglich können nun alle der den betreffenden Unterpixeln entsprechenden Maskenbits auf "Eins" gesetzt werden, und jeder mit diesen Maskenbits verbundene Polygonadressenzeiger (PAP) kann nun mit PR&sub1; geladen werden, der Adresse im Polygonspeicher des Polygondatensatzes, wo die Koeffizienten der Ebenengleichung von P&sub1; gespeichert wurden. Dieser Vorgang, der durch Block 74 angegeben ist, legt fest, daß die betreffenden Unterpixel tatsächlich vom Polygon P&sub1; eingenommen sind oder ihm zugeordnet wurden.
  • Als nächstes wird ein Test durchgeführt, um zu ermitteln, ob die Rasterwandlung von P&sub1; beendet ist, wie durch die Raute 76 angegeben. Wenn die Rasterwandlung von P&sub1; nicht beendet ist, schreitet die Rasterwandlung von P&sub1; zum nächsten von P&sub1; eingenommenen Pixel fort, wie durch den Block 66 angegeben. Wenn die Rasterwandlung von P&sub1; beendet ist, wird ein Test durchgeführt, um zu ermitteln, ob mehr Polygone rasterzuwandlen sind, wie durch die Raute 78 angegeben.
  • Wenn weitere Polygone rasterzuwandeln sind, kann die Verarbeitung des nächsten Polygons beginnen, das mit P&sub2; bezeichnet ist. Zuerst wird P&sub2; von der Transformationsvorrichtung vom dreidimensionalen Raum zum Bildraum transformiert, wie durch Block 62 angegeben. Die Koeffizienten a, b, c und d der Ebenengleichung von P&sub2; werden im nächsten verfügbaren Polygondatensatz des Polygonspeichers 52 gespeichert, wie durch den Block 64 angegeben. Dieser Polygondatensatz wird mit PR2 bezeichnet. Als nächstes wird P&sub2; von der Vorrichtung zur Rasterwandlung rastergewandelt, um die von P&sub2; zu belegenden Pixel zu bestimmen, wie durch den Block 66 angegeben.
  • Während jedes von P&sub2; zu belegende Pixel durch die Vorrichtung zur Rasterwandlung ermittelt wird, werden die von P&sub2; zu belegenden Unterpixel in jenem Pixel von der Vorrichtung zur Berechnung von Unterpixeln berechnet, wie durch Block 68 angegeben. Diese Unterpixel können jedoch nicht P&sub2; im Speicher des Maskenspeichers 50 zugeordnet, bis eine Überprüfung durchgeführt ist, um zu ermitteln, ob die betreffenden Unterpixel einem vorher verarbeiteten Polygon zugeordnet wurden. Folglich wird der Pixeldatensatz, der für das betreffende Pixel spezifisch ist, aus dem Maskenspeicher ausgelesen, wie durch den Block 70 angegeben. Jedes der den betreffenden Unterpixeln entsprechenden Maskenbits wird überprüft, um zu sehen, ob irgendwelche von Ihnen auf "Eins" gesetzt sind, was die Zuordnung zu einem vorherigen Polygon angibt, wie durch die in der Raute 72 gestellte Frage angegeben. Wenn keine dieser Maskenbits vorher P&sub1; zugeordnet wurden, können nun alle in einer Weise P&sub2; zugeordnet werden, die analog der ist, in der Maskenbits wie oben beschrieben P&sub1; zugeordnet wurden, und wie durch den Block 74 angegeben.
  • Wenn jedoch einige dieser Maskenbits vorher P&sub1; zugeordnet wurden, dann sagt man, daß P&sub1; und P&sub2; um die vorher zugeordneten Maskenbits konkurrieren. In diesem Fall muß die Ermittlung der Polygonpriorität durchgeführt werden, wie nun beschrieben wird. Die Koeffizienten a&sub1;, b&sub1;, c&sub1; und dl der Ebenengleichung von P&sub1; bzw. a&sub2;, b&sub2;, c&sub2; und d&sub2; von P&sub2; werden aus den Polygondatensätzen PR&sub1; und PR&sub2; des Polygonspeichers ausgelesen, wie durch den Block 80 angegeben. Diese Koeffizienten werden wie in Gleichung (2) kombiniert, um die Koeffizienten A, B und C der Kantengleichung der Kante zu erzeugen, die durch den Schnitt der beiden Ebenen bestimmt ist, wie durch den Block 82 angegeben. Dann werden die Vorzeichen von c&sub1;, c&sub2; und A, B oder C in Übereinstimmung mit der geeigneten Wahrheitstafel (oben beschrieben) verwendet, um zu ermitteln, welches der vorher dem Polygon P&sub1; zugeordneten Maskenbits dem Polygon P&sub2; neu zugeordnet wird. Diese Neuzuordnung beginnt mit einer Prüfung, ob A und B beide gleich Null sind, wie durch die Raute 84 angegeben. Wenn A und B beide gleich Null sind, sind die beiden Ebenen parallel, und die Neuzuordnung ergibt sich abhängig von den Vorzeichen von c&sub1;, c&sub2; und C, wie durch den Block 86 angegeben. Wenn A und B nicht beide gleich Null sind, dann wird eine Prüfung durchgeführt, ob der Absolutwert von A den Absolutwert von B übersteigt, wie durch die Raute 38 angegeben. Wenn der Absolutwert von A den Absolutwert von B übersteigt, dann schneiden sich die beiden Ebenen entlang einer mehr vertikalen Kante und die Neuzuordnung ergibt sich abhängig von den Vorzeichen von c&sub1;, c&sub2; und A, wie durch den Block 90 angegeben. Wenn jedoch der Absolutwert von A den Absolutwert von B nicht übersteigt, dann schneiden sich die beiden Ebenen entlang einer mehr horizontalen Kante und die Neuzuordnung ergibt sich abhängig von den Vorzeichen von c&sub1;, c&sub2; und B, wie durch den Block 92 angegeben.
  • Somit werden die Vorzeichen von c&sub1;, c&sub2; und A, B oder C dazu benutzt, zu ermitteln, welches der vorher dem Polygon P&sub1; zugeordnetenmaskenbits dem Polygon P&sub2; neu zuzuordnen ist, wie durch die Blöcke 36, 90 und 92 angegeben. Die Maskenbits werden neu zugeordnet, Indem ihre zugehörigen Polygonadressenzeiger (PAP) von PRL&sub1; nach PR&sub2; geändert werden.
  • Als nächstes wird eine Prüfung durchgeführt, um zu ermitteln, ob die Rasterwandlung von P&sub2; beendet ist, wie durch die Raute 76 angegeben. Wenn die Rasterwandlung von P&sub2; nicht beendet ist, schreitet die Rasterwandlung von P&sub2; zum nächsten von P&sub2; zu belegenden Pixel fort, wie durch den Block 66 angegeben. Wenn die Rasterwandlung von P&sub2; beendet ist, wird eine Prüfung durchgeführt, um zu ermitteln, ob weitere Polygone rasterzuwandeln sind, wie durch die Raute 78 angegeben. Wenn weitere Polygone rasterzuwandeln sind, kann die Verarbeitung des nächsten Polygons beginnen, das mit P3 bezeichnet ist. Die Verarbeitung von P3 geht in einer zu der von P&sub2; analogen Weise vonstatten. Bei einem gegebenen Unterpixel kann entdeckt werden, daß P3 mit P&sub1; oder P&sub2; konkurriert, und die Ermittlung der Polygonpriorität wird dann wie oben beschrieben ausgeführt. Wenn alle der von P3 zu belegenden Pixel auf diese Weise verarbeitet wurden, werden die Polygone P&sub4;, P&sub5;, ... Pm der Reihe nach verarbeitet, wobei Pm das letzte zu verarbeitende Polygon bezeichnet. Wenn Pm verarbeitet wurde, enthalten der Maskenspeicher 50 und der Polygonspeicher 52 zusammen einen Datensatz der Polygone, die spezifische Unterpixel in jedem der eine Million Pixel belegen. Somit wurde der Algorithmus für verdeckte Flächen vollendet, und das Abtönen kann wie durch Block 94 angegeben beginnen.
  • Polygone können unter Verwendung der im Maskenspeicher 50 gespeicherten Information abgetönt werden, vorausgesetzt, daß eine Information über die Polygonabtönung, wie eine Information über die Intensität nach Gouraud, im Polygonspeicher 52 gespeichert wurde. Um ein bestimmtes Pixel abzutönen kann eine Abtönvorrichtung auf den speziellen Pixeldatensatz im Maskenspeicher zugreifen, um eine Beschreibung von Polygonen zu erhalten, die spezifische Unterpixel in jenem Pixel belegen. Diese Beschreibung kann verwendet werden, um skalierte Polygonfarbtöne für jenes Pixel zu berechnen, und diese Farbtöne können verwendet werden, um die für jenes Pixel in einem Video-Bildwiederholspeicher gespeicherte Intensität festzusetzen. Fig. 5 zum Beispiel zeigt, daß die Maskenbits M&sub1;, M&sub3;, M&sub4;, M&sub6; und M&sub7; auf "Eins" gesetzt sind, was angibt, daß die Polygonadressenzeiger PAP&sub1;, PAP&sub3;, PAP&sub4;, PAP&sub6; und PAP&sub7; gültige Adressenzeiger Im Polygonspeicher beinhalten; insbesondere enthalten sie die Adressen der Polygondatensätze PR&sub4;, PR&sub9;, PR&sub1;, PR&sub1; bzw. PR6. Ein einfacher Abtönalgorithmus, der diese Information benutzt, ist wie folgt gegeben. Zuerst liest die Abtönvorrichtung das Maskenbit M&sub0;, ermittelt, daß es auf "Null" gesetzt ist, und geht zum nächsten Maskenbit weiter. Das nächste Maskenbit M&sub1; ist auf "Eins" gesetzt, so daß die Abtönvorrichtung den zugehörigen Polygonadressenzeiger, PAP&sub1;, als Adresse verwendet, um den Polygonspeicher zu lesen und den Polygondatensatz PR&sub4; abzurufen. In PR&sub4; ist die Information über die Intensität nach Gouraud gespeichert, die zum Berechnen des Farbtons nach Gouraud des Polygons P&sub4; notwendig ist. Folglich berechnet die Abtönvorrichtung den Farbton nach Gouraud von P&sub4; bei dem Pixel, skaliert diesen Farbton mit 1/9 (dem vom Unterpixel 1 eingenommenen Bruchteil des Pixeis) und fügt dieses Ergebnis dem betreffenden Pixel im Bildwiederholspeicher zu. Die Abtönvorrichtung geht dann zum nächsten Unterpixel weiter. Wenn die Abtönvorrichtung die Verarbeitung des in Fig. 5 dargestellten Pixeldatensatzes abgeschlossen hat, haben die Polygone P&sub4;, P&sub9;, P&sub1; und P&sub6; mit 1/9, 1/9, 2/9 und 1/9 skalierte Farbtöne zur Intensität des im Bildwiederholspeicher gespeicherten Pixeis beigesteuert.
  • Der obige Algorithmus dient nur dazu, die Verwendung von Unterpixelinformation beim Abtönen darzustellen. Eine anspruchsvolle Anwendung von Unterpixelinformation beim Abtönen, die das Filtern durch Flächenabtastung einschließt, ist im Stand der Technik wohlbekannt und in den beiden oben angeführten Abhandlungen mit den Titeln "The A-buffer, an Anti-aliased Hidden Surface Method" und "A Parallel Scan Conversion Algorithm with Anti-Aliasing for General-Purpose Ultracomputer" beschrieben. Die obige Diskussion zeigt jedoch auf, daß alle Polygonkanten, d.h. sowohl Polygonrandkanten als auch durch das Schneiden von Polygonen erzeugte Kanten, unter Verwendung von Unterpixeln verarbeitet werden und daher zum Erreichen einer Unterdrückung des Aliasing unter Verwendung anspruchsvoller Techniken, wie der Flächenabtastung, verarbeitet werden können.
  • Der Algorithmus für verdeckte Flächen, wie er in Fig. 6 dargestellt ist, kann unterschiedlich ausgeführt und implementiert werden. In dieser Hinsicht stellt Fig. 7 eine allgemeine Implementierung des Systems der vorliegenden Erfindung in der Umgebung eines herkömmlichen Computergraphikelements dar. Ein Polygonpufferspeicher 100 speichert Polygondaten für mehrere Tausend im dreidimensionalen Raum definierte Polygone. Auf die Daten für jedes Polygon kann zugegriffen werden, und sie können der Reihe nach von einem Transformationscomputer 102 verarbeitet werden (wie in der Technik wohlbekannt), um sowohl Intensitätsberechnungen, eine Bildtransformation, ein Schneiden und eine Abbildung bzw. eine Bildschirmformatierung des Darstellungsfeldes als auch verschiedene Vorgänge auszuführen, wie sie im Stand der Technik wohlbekannt sind. Das während eines spezifischen Zeitraums in Verarbeitung befindliche Polygon wird als das neue Polygon bezeichnet.
  • Daten, die wie oben angegeben verarbeitet werden, werden vom Transformationscomputer 102 an den Polygonspeicher 52 und einem Rasterwandler 104 gegeben. Insbesondere gibt der Transformationscomputer 102 die Intensitäten nach Gouraud an den Spitzen des neuen Polygons und die Budraumdarstellungen der Koeffizienten a, b, c und d, die die Ebenengleichung des neuen Polygons definieren, an den Polygonspeicher zur Speicherung im nächsten verfügbaren Polygondatensatz. Die Adresse im Polygonspeicher jenes Polygondatensatzes, der als neue Polygonadresse NPA bezeichnet wird, wird an den Transformationscomputer zurückgegeben. Der Transformationscomputer gibt dann die NPA und weitere relevante Polygondaten, wie die Bildschirmraumdarstellungen der Randkanten des neuen Polygons, an den Rasterwandler.
  • Der Rasterwandler 104 ermittelt der Reihe nach die von dem neuen Polygon zu belegenden Pixel. Der Wandler kann eine bekannte Form annehmen, wie in dem angeführten Buch "Principles of Interactive Computer Gaphics" offenbart, siehe Abschnitt 16-2, "Scan Converting Polygons".
  • Jedes bestimmte Pixel ist unter Verwendung einer x,y-Adresse spezifiziert, die mit der x,y-Koordinate des Pixeis identisch ist. Für jedes solche Pixel gibt der Rasterwandler sowohl die x,y-Adresse als auch die Randkanten des neuen Polygons an einen Unterpixelcomputer 106. Unter Verwendung dieser Information berechnet der Unterpixelcomputer 106 die von dem Polygon innerhalb des betreffenden Pixeis zu belegenden Unterpixel.
  • Die berechnete Unterpixelinformation wird durch ein Neun-Bit- Wort wie oben erläutert dargestellt, d.h. ein Bit für jedes der neun Unterpixel, und wird als neue Polygonmaske oder NEWM bezeichnet. Die NEWM wird zum Rasterwandler zurück übertragen.
  • Während derselben Zeit, in der die NEWM vom Unterpixelcomputer 106 berechnet wird, gibt der Rasterwandler 104 die x,y-Adresse für das betreffende Pixel an den Maskenspeicher 50 und liest dementsprechend aus dem Maskenspeicher einen Pixeldatensatz aus. Wie oben beschrieben werden die Maskenbits dieses Pixeldatensatzes zu einem Neun-Bit-Wort zusammengesetzt, das beschreibt, welche Unterpixel in jenem Pixel von vorher verarbeiteten Polygonen eingenommen sind. Das Wort wird als die alte Polygonmaske oder OLDM bezeichnet. Der Rasterwandler prüft dann auf eine Konkurrenz um Unterpixel durch einfaches Berechnen der logischen UND-Operation zwischen der NEWM und der OLDM. Das Ergebnis dieser logischen UND-Operation wird als Konkurrenzmaske oder CONM bezeichnet. Die CONM gibt die Unterpixel an, für welche eine Konkurrenz zwischen dem neuen Polygon und den vorher verarbeiteten Polygonen besteht.
  • Wenn die CONM "Null" enthält, dann gibt es keine Konkurrenz um die Unterpixel und sie können nun dem neuen Polygon zugeordnet werden. Es wird zum Beispiel angenommen, daß die NEWM 101000000 enthält. Weiter wird angenommen, daß die OLDM von dem in Fig. 5 dargestellten Pixeldatensatz aus geladen wurde und folglich 010110110 enthält. Dann ist das logische UND zwischen der NEWM und der OLDM 000000000, welches Ergebnis in die CONM geladen wird. Da die CONM 000000000 enthält, gibt es keine Konkurrenz um Unterpixel. Daher werden die Unterpixel dem neuen Polygon zugeordnet.
  • Eine direktere Struktur zum Ermitteln, welche der durch die NEWM spezifizierten Unterpixel dem neuen Polygon zugeordnet werden können, ist wie folgt. Der Rasterwandler berechnet das logische UND zwischen der NEWM und dem logischen NICHT der OLDM. Das Ergebnis dieser Folge von Operationen wird als die freie Maske oder FREM bezeichnet. Die FREM bezeichnet freie, oder nicht zugeordnete, Unterpixel, die dem neuen Polygon zugeordnet werden können. Für das obige Beispiel ist das logische NICHT der OLDM 101001001, so daß das logische UND zwischen der NEWM und dem logischen NICHT der OLDM 101000000 ist, welches Ergebnis in die FREM geladen wird. Die Bits der FREN, die auf "Eins" gesetzt sind, spezifizieren Unterpixel, die dem neuen Polygon zugeordnet werden können. Da die FREN 101000000 enthält, können somit die Unterpixel 0 und 2 dem neuen Polygon zugeordnet werden. Dies wird durch den Rasterwandler 104 ausgeführt, der eine Schreiboperation auf dem Pixeldatensatz im Maskenspeicher 50 ausführt, um einige der Maskenbits und einige der Polygonadressenzeiger des Pixeldatensatzes wie folgt zu verändern. Zuerst berechnet der Rasterwandler 104 das logische ODER zwischen der freien Maske FREM und der alten Polygonmaske OLDM und speichert dieses Ergebnis in den Maskenbits des Pixeldatensatzes. Da die FREM 101000000 enthält und die OLDM 010110110 enthält, schreibt somit der Rasterwandler 111110110 in die Maskenbits des Pixeldatensatzes, was die Maskenbits M&sub0; und M&sub2; wirksam auf "Eins" setzt. Als nächstes ändert der Rasterwandler die Polygonadressenzeiger des Pixeldatensatzes wie folgt. Jeder Polygonadressenzeiger, der durch ein Bit der FREM, das nicht Null ist, spezifiziert ist, wird mit der neuen Polygonadresse NPA geladen. Da die Bits 0 und 2 der FREM auf "Eins" gesetzt sind, werden folglich die Polygonadressenzeiger PAP&sub0; und PAP&sub2; mit der neuen Polygonadresse NPA geladen. Diese Änderungen ordnen wirksam die Unterpixel 0 und 2 dem neuen Polygon zu. Zu diesem Zeitpunkt ist das betreffende Pixel verarbeitet worden, und der Rasterwandler 104 fährt fort, das nächste von dem Polygon zu belegende Pixel zu ermitteln.
  • Wenn die CONM nicht "Null" enthält, gibt es eine Konkurrenz um die Unterpixel, und sie können vor der Ermittlung der Polygon priorität dem neuen Polygon nicht zugeordnet werden. Es wird zum Beispiel angenommen, daß die NEWM 000010100 enthält und daß die OLDM wie vorher 010110110 enthält. Dann ist die CONM, die als das logische UND zwischen der NEWM und der OLDM berechnet ist, 000010100, was eine Konkurrenz um die Unterpixelbits 4 und 6 angibt. Alternativ ist die FREM, die als das logische UND zwischen der NEWM und dem logischen NICHT der OLDM berechnet ist, 000000000, was angibt, daß keine Unterpixel vor einer Ermittlung der Polygonpriorität dem neuen Polygon zugeordnet werden können. Die Polygonpriorität wird wie folgt bestimmt.
  • Da die Bits 4 und 6 der CONM auf "Eins" gesetzt sind, untersucht der Rasterwandler die Polygonadressenzeiger PAP4 und PAP&sub6; des Pixeldatensatzes (siehe Fig. 5). Diese Polygonadressenzeiger enthalten die Adresse des Polygondatensatzes PR&sub1;, was angibt, daß die Unterpixel 4 und 6 dem Polygon P&sub1; zugeordnet sind. Das heißt, es gibt eine Konkurrenz um die Unterpixel 4 und 6 zwischen dem neuen Polygon und dem Polygon P&sub1;. In diesem Fall gibt der Rasterwandler 104 für die Ermittlung der Polygonpriorität erforderliche Daten an die Einrichtung 103 zur Entscheidung über die Priorität. Insbesondere gibt der Rasterwandler die Konkurrenzmaske CONM, die neue Polygonadresse NPA, den Polygonadressenzeiger PAP&sub4; (oder alternativ den Polygonadressenzeiger PAP&sub6;, der dieselbe Information enthält) und die x,y-Adresse des Pixeis (die mit der x,y-Koordinate des Pixels identisch ist) an die Einrichtung zur Entscheidung über die Priorität. Diese Daten spezifizieren zwei mit NPA und PAP&sub4; angegebene Polygone, die um die durch die CONM angegebenen Unterpixel innerhalb des Pixels konkurrieren, das durch die x,y- Adresse des Pixels angegeben ist.
  • Die Einrichtung 108 zur Entscheidung über die Priorität ermittelt innerhalb des betreffenden Pixels die Polygonpriorität zwischen konkurrierenden Polygonen und drückt dieses Ergebnis als Prioritätszuerkennungsmaske PAWM aus. Die Einrichtung zur Entscheidung über die Priorität implementiert die Algorithmen wie oben beschrieben mathematisch.
  • Die Bits der PAWM, die auf "Eins" gesetzt sind, spezifizieren Unterpixei, bei welchen dem neuen Polygon Priorität gegenüber dem Polygon P&sub1; zuerkannt wird. Folglich wird die PAWM verwendet, um gegenwärtig vom Polygon P&sub1; eingenommene Unterpixei zu spezifizieren, die dem neuen Polygon neu zugeordnet werden. Die PAWM wird wie folgt berechnet. Als erstes wendet die Einrichtung zur Entscheidung über die Priorität PAP4 als Adresse auf den Polygonspeicher 52 an und liest die Koeffizienten der Ebenengleichung des Polygons P&sub1;, die als a&sub1;, b&sub1;, c&sub1; und d&sub1; bezeichnet sind. Als nächstes wendet die Einrichtung zur Entscheidung über die Priorität NPA als Adresse auf den Polygonspeicher an und liest die Koeffizienten der Ebenengleichung des neuen Polygons, die als a&sub2;, b&sub2;, c&sub2; und d2 bezeichnet sind. Die Bezeichnung der Koeffizienten der Ebenengleichung des neuen Polygons mit dem unteren Index "2" gibt an, daß das neue Polygon als Polygon P&sub2; verwendet wird, wenn die Wahrheitstafein (die oben beschrieben sind) verwendet werden. Die Einrichtung zur Entscheidung über die Priorität berechnet die Koeffizienten A, B und C der Schnittkante der beiden Ebenen, wie in Gleichung (2) angegeben. Sie gibt dann sowohl diese die Kante definierenden Koeffizienten als auch die x,y-Koordinate des Pixeis an den Unterpixelcornputer 106. Der Unterpixeicomputer ermittelt dann, welche Unterpixel innerhalb des Pixeis auf der "Innenseite" der Kante liegen und spezifiziert diese Unterpixel durch eine Kantenmaske mit neun Bit, die als EDGM bezeichnet wird. Die Konvention, durch die eine Kante eine "Innenseite" und eine "Außenseite" besitzt, ist im Stand der Technik wohlbekannt und auf Seite 146 der Abhandlung mit dem Titel "A Parallel Scan Conversion Algorithm with Anti-Aliasing for a General-Purpose Ultracomputer" beschrieben. Eine repräsentative EDGM kann durch Bezugnahme auf Fig. 4 erhalten werden. Es ist zu bemerken, daß die Unterpixel 0, 3 und 6 links der Kante 13a liegen, wohingegen die Unterpixel 1, 2, 4, 5, 7, und 8 rechts der Kante 13a liegen. Wenn durch Konvention die Seite links von der Kante als die "Innenseite" bezeichnet wird, dann wird die EDGM vom Unterpixelcomputer mit 100100100 geladen, was spezifiziert, daß die Unterpixel 0, 3 und 6 auf der "Innenseite" der Kante liegen. Der Unterpixelcomputer 106 überträgt dann die EDGM an die Einrichtung 103 zur Entscheidung über die Priorität.
  • In gewissem Grade zusammenfassend enthält die EDGM eine Spezifikation der Unterpixel, die auf der "Innenseite" der Schnittkante der Ebenen der konkurrierenden Polygone P&sub1; (des vorher verarbeiteten Polygons) und P&sub2; (des neuen Polygons) liegen. Die Einrichtung zur Entscheidung über die Priorität verarbeitet die EDGM, um die Unterpixel zu berechnen, bei welchen das Polygon P&sub2; vor dem Polygon P&sub1; liegt, und spezifiziert diese Unterpixel über ein Neun-Bit-Wort, das als die Prioritätsmaske PRIM bezeichnet wird. Diese Berechnung verwendet die Wahrheitstafeln und die Vorzeichen von c&sub1;, c&sub2; und A, B oder C, um diese Unterpixel zu berechnen. Es wird zum Beispiel angenommen, daß die Kante eine mehr vertikale Kante ist, wie in Fig. 4 dargestellt. Dann sind für die Berechnung die Wahrheitstafeln erforderlich, die die Vorzeichen von c&sub1;, c&sub2; und A verwenden.
  • Es wird angenommen, daß die Vorzeichen von c&sub1; und c&sub2; die gleichen sind und das Vorzeichen von A positiv ist. Eine Bezugnahme auf die Wahrheitstafel mit dem Titel "Polygon mit Priorität links der Kante" zeigt, daß in diesem Fall das Polygon P&sub2; links der Kante Priorität hat. Da die EDGM auch Unterpixel links der Kante spezifiziert, lädt die Einrichtung zur Entscheidung über die Priorität die EDGM in die PRIM. Diese Aktion gibt an, daß die Unterpixel links der Kante, d.h. die Unterpixel 0, 3 und 6, die Unterpixel sind, bei denen das Polygon P&sub2; vor dem Polygon P&sub1; liegt. Somit enthält die PRIM nun 100100100.
  • Es wird jedoch angenommen, daß die Vorzeichen von c&sub1; und c&sub2; nicht gleich sind und daß das Vorzeichen von A positiv ist.
  • Eine Bezugnahme auf die Wahrheitstafel mit dem Titel "Polygon mit Priorität rechts der Kante" zeigt, daß in diesem Fall das Polygon P&sub2; rechts der Kante Priorität hat. Da die EDGM Unterpixel links der Kante spezifiziert, lädt die Einrichtung zur Entscheidung über die Priorität das logische NICHT der EDGM in die PRIM. Diese Aktion gibt an, daß die Unterpixel rechts der Kante, d.h. die Unterpixel 1, 2, 4, 5, 7 und 8 die Unterpixel sind, bei denen das Polygon P&sub2; vor dem Polygon P&sub1; liegt. Somit enthält die PRIM nun 011011011. Im vorliegenden Beispiel wird dieser Inhalt der PRIM bei nachfolgenden Berechnungen verwendet.
  • Zu diesem Zeitpunkt enthält die Prioritätsmaske PRIM eine Beschreibung der Unterpixel innerhalb des betreffenden Pixels, bei denen das Polygon P&sub2; vor dem Polygon P&sub1; liegt. Die Einrichtung 103 zur Entscheidung über die Priorität muß nun eine Beschreibung nur jener Pixel berechnen, um die es eine Konkurrenz zwischen den Pölygonen P&sub1; und P&sub2; gibt, und bei denen das Polygon P&sub2; vor dem Polygon P&sub1; liegt. Diese Beschreibung ist als Prioritätszuerkennungsmaske PAWM bezeichnet (siehe oben) Die Einrichtung zur Entscheidung über die Priorität berechnet die PAWM als das logische UND zwischen der Konkurrenzmaske CONM und der Prioritätsmaske PRIM. Es wird angenommen, daß die CONM 000010100 enthält und daß die PRIM 011011011 enthält (beides wie oben). Dann lädt die Einrichtung zur Entscheidung über die Priorität die PAWM mit 000010000.
  • Die Bits der PAWM, die auf "Eins" gesetzt sind, spezifizieren Unterpixel, die dem neuen Polygon neu zugeordnet werden können. Da die PAWM 000010000 enthält, kann somit das Unterpixel 4 dem neuen Polygon neu zugeordnet werden. Diese Neuzuordnung wird von der Einrichtung 108 zur Entscheidung über die Priorität ausgeführt, die eine Schreiboperation auf dem Pixeldatensatz im Maskenspeicher 50 ausführt, um einen der Polygonadressenzeiger des Pixeldatensatzes wie folgt zu verändern. Jeder durch ein Bit der PAWM, das nicht Null ist, spezifizierte Polygonadressenzeiger wird mit der neuen Polygonadresse NPA geladen. Da das Bit 4 der PAWM auf "Eins" gesetzt ist, wird somit der Polygonadressenzeiger PAP&sub4; mit der NPA geladen. Diese Anderung ordnet wirksam das Unterpixel 4 dem neuen Polygon zu. Zu diesem Zeitpunkt ist das betreffende Pixel verarbeitet worden, und der Rasterwandler 104 schreitet fort, um das nächste von dem Polygon zu belegende Pixel zu bestimmen.
  • Die bis hierhin erörterten Beispiele erzeugten entweder für die freie Maske FREM oder die Konkurrenzmaske CONM einen Inhalt, der nicht Null ist, jedoch nicht für beide Masken. Es ist möglich, für sowohl die FREM als auch die CONM einen Inhalt zu erzeugen, der nicht Null ist. Es wird zum Beispiel angenommen, daß die neue Polygonmaske NEWM 100000010 enthält. Weiterhin wird angenommen, daß die alte Polygonmaske OLDM von dem in Fig. 5 dargestellten Pixeldatensatz aus geladen wurde und daher 010110110 enthält. Dann enthält die FREM, die als das logische UND zwischen der NEWN und dem logischen NICHT der OLDM berechnet ist, 100000000. Ferner enthält die CONM, die als das logische UND zwischen der NEWN und der OLDM berechnet ist, 000000010. In diesem Fall steuert die FREN den Rasterwandler 104 so, daß er das Unterpixel 0 dem neuen Polygon zuordnet. Ferner gibt der Rasterwandler die CONM an die Einrichtung 108 zur Entscheidung über die Priorität, was sie so steuert, daß sie ermittelt, ob des Unterpixel 7 von P&sub6; dem neuen Polygon neu zugeordnet wird.
  • Auch erzeugten die bis hierhin erörterten Beispiele eine Konkurrenz um Unterpixel zwischen dem neuen Polygon und nur einem vorher verarbeiteten Polygon. Es ist auch möglich, Fälle zu erzeugen, in denen es eine Konkurrenz zwischen dem neuen Polygon und mehreren vorher verarbeiteten Polygonen gibt. Es wird zum Beispiel angenommen, daß die neue Polygonmaske NEWM 010100100 enthält. Ferner wird angenommen, daß die alte Polygonmaske OLDM von dem in Fig. 5 dargestellten Pixeldatensatz aus geladen ist und daher 010110110 enthält. Dann enthält die CONM, die als das logische UND zwischen der NEWM und der OLDM berechnet ist, 010100100. Der Inhalt der CONM gibt an, daß es eine Konkurrenz zwischen dem neuen Polygon und drei vorher verarbeiteten Polygonen gibt (siehe Fig. 5). Beim Unterpixel 1 gibt es eine Konkurrenz mit dem Polygon P&sub4;. Beim Unterpixel 3 gibt es eine Konkurrenz mit dem Polygon P&sub9;. Und beim Unterpixel 6 gibt es eine Konkurrenz mit dem Polygon P&sub1;. In diesem Fall muß der Rasterwandler 104 die zusammengesetzte Konkurrenzmaske CONM in drei einfache Konkurrenzmasken zerlegen, eine für jedes der Polygone P&sub4;, P&sub9; und P&sub1;, und jede der drei Konkurrenzmasken der Reihe nach an die Einrichtung 108 zur Entscheidung über die Priorität zu geben. Zuerst erzeugt der Rasterwandler die Konkurrenzmaske 010000000 und gibt sie an die Einrichtung zur Entscheidung über die Priorität, was die Einrichtung zur Entscheidung über die Priorität so steuert, daß sie ermittelt, ob das Unterpixel 1 von P&sub4; dem neuen Polygon neu zugeordnet wird. Als nächstes erzeugt der Rasterwand-1er die Konkurrenzmaske 000100000 und gibt sie an die Einrichtung zur Entscheidung über die Priorität, was die Einrichtung zur Entscheidung über die Priorität so steuert, daß sie ermittelt, ob das Unterpixel 3 von P&sub9; dem neuen Polygon neu zugeordnet wird. Schließlich erzeugt der Rasterwandler die Konkurrenzmaske 000000100 und gibt sie an die Einrichtung zur Entscheidung über die Priorität, was die Einrichtung zur Entscheidung über die Priorität so steuert, daß sie ermittelt, ob das Unterpixel 6 von P&sub1; dem neuen Polygon neu zugeordnet wird.
  • Folglich können komplizierte Fälle der Nichtkonkurrenz und der Konkurrenz auftreten, wie sie durch den Inhalt der FREM und der CONM ausgedrückt sind. Der Rasterwandler 104 enthält eine Schaltung zum Zerlegen dieser zusammengesetzten Fälle in einfache Fälle, die von dem Rasterwandler 104 und die Einrichtung 103 zur Entscheidung über die Priorität verarbeitet werden können.
  • Die in Fig. 7 gezeigte allgemeine Implementierung des Systems der vorliegenden Erfindung umfaßt einen Cache-Speicher 110 für die Kanten, der verwendet wird, um eine Ermittlung der Polygonpriorität wie folgt zu ermöglichen. Fig. 2 stellt die Dreiecke 10 und 12 dar, die einander durchdringen und die einander bei einer großen Anzahl von Pixeln überlappen. Es wird angenommen, daß das Dreieck 10, das als das Polygon P&sub1;&sub0; bezeichnet ist, vorher von dem in Fig. 7 dargestellten System verarbeitet wurde und daher in einer großen Zahl von Pixeldatensätzen im Maskenspeicher 50 repräsentiert ist. Es wird ferner angenommen, daß das Dreieck 12, das als das Polygon P&sub1;&sub2; bezeichnet ist, gegenwärtig vom Rasterwandler 104 verarbeitet wird, um die Pixel zu bestimmen, die es belegt. Zu irgendeinem Zeitpunkt während der Rasterwandlung von P&sub1;&sub2; wird entdeckt, daß es innerhalb eines gegebenen Pixels, zum Beispiel dem Pixel 32, in Konkurrenz mit P&sub1;&sub0; steht. Es wird angenommen, daß das Pixel 32 das erste Pixel ist, in dem eine Konkurrenz zwischen P&sub1;&sub0; und P&sub1;&sub2; entdeckt wird. Zu diesem Zeitpunkt steuert der Rasterwandler die Einrichtung 108 zur Entscheidung über die Priorität so, daß sie die Polygonpriorität zwischen P&sub1;&sub0; und P&sub1;&sub2; ermittelt, und versieht die Einrichtung zur Entscheidung über die Priorität mit den Adressen im Polygonspeicher 52 der Polygondatensätze, die Daten für P&sub1;&sub0; und P&sub1;&sub2; enthalten. Folglich liest die Einrichtung zur Entscheidung über die Priorität die Koeffizienten a&sub1;&sub0;, b&sub1;&sub0;, c&sub1;&sub0; und d&sub1;&sub0; der Ebenengleichung für P&sub1;&sub0; und die Koeffizienten a&sub1;&sub2;, b&sub1;&sub2;, c&sub1;&sub2; und d&sub1;&sub2; der Ebenengleichung für P&sub1;&sub2; aus dem Polygonspeicher aus. Dann berechnet die Einrichtung zur Entscheidung über die Priorität die Koeffizienten A, B und C der Schnittkante 15a der beiden Ebenen. Wenn die Einrichtung zur Entscheidung über die Priorität einmal auf den Polygonspeicher zugegriffen hat und die Schnittkante berechnet hat, kann sie mit Hilfe des Unterpixelcomputers die Verarbeitung des Pixels abschließen, indem sie ermittelt, ob irgendwelche P&sub1;&sub0; zugeordnete Unterpixel P&sub1;&sub2; neu zugeordnet werden können. Wenn die Verarbeitung des Pixels abgeschlossen ist, fährt der Rasterwandler 104 mit der Rasterwandlung von P&sub1;&sub2; fort, um zu ermitteln, welche weiteren Pixel P&sub1;&sub2; belegt.
  • Zu irgendeinem anderen Zeitpunkt während der Rasterwandlung von P&sub1;&sub2; wird entdeckt, daß es innerhalb eines weiteren Pixels, zum Beispiel des Pixels 36, in Konkurrenz mit P&sub1;&sub0; steht. Zu diesem Zeitpunkt steuert der Rasterwandler die Einrichtung 108 zur Entscheidung über die Priorität so, daß sie die Polygonpriorität zwischen P&sub1;&sub0; und P&sub1;&sub2; ermittelt. Folglich liest die Einrichtung zur Entscheidung über die Priorität wieder die Koeffizienten a&sub1;&sub0;, b&sub1;&sub0;, c&sub1;&sub0; und d&sub1;&sub0; der Ebenengleichung für P&sub1;&sub0; und die Koeffizienten a&sub1;&sub2;, b&sub1;&sub2;, c&sub1;&sub2; und d&sub1;&sub2; der Ebenengleichung für P&sub1;&sub2; aus dem Polygonspeicher 52 aus. Dann berechnet die Einrichtung zur Entscheidung über die Priorität wieder die Koeffizienten A, B und C der Schnittkante 18a der beiden Ebenen. Diese Zugriffe auf den Polygonspeicher und diese Berechnung der Schnittkante 18a sind jedoch redundant; sie wurden bereits vorher ausgeführt. Und sie werden für jedes der zahlreichen Pixel wiederholt, für die entdeckt wird, daß P&sub1;&sub0; und P&sub1;&sub2; in Konkurrenz stehen.
  • Es ist jedoch möglich, die Wiederholung dieser Zugriffe auf den Polygonspeicher und dieser Kantenberechnung wie folgt zu vermeiden. Beim ersten Fall der Berechnung der Kante 18a, d.h. wenn P&sub1;&sub0; und P&sub1;&sub0; innerhalb des Pixeis 32 in Konkurrenz stehen, werden die Koeffizienten A, B und C der Kante im Cache-Speicher 110 für Kanten gespeichert. Der Cache-Speicher für Kanten ist ein Cache-Speicher, wie er im Stand der Technik wohlbekannt und auf den Seiten 314-321 des angeführten Buchs "Computer Systems Architecture", Baer, 1980, Computer Science Press, Inc., beschrieben ist. Dieser Cache-Speicher für Kanten ist so organisiert, daß die Speicherung und das Abrufen der Kantenkoeffizienten gestattet wird, wobei jene Kantenkoeffizienten nur dadurch gespeichert und abgerufen werden können, daß der Cache-Speichers mit einem Zugriffscode für ein Polygonpaar versehen wird. Für das Polygonpaar P&sub1;&sub0; und P&sub1;&sub2; zum Beispiel kann der Zugriffscode durch Verknüpfen von für diese beiden Polygone eindeutiger Information erhalten werden. Somit ist ein geeigneter Zugriffscode die Verknüpfung der beiden Adressen im Polygonspeicher der Polygondatensätze, die Daten für P&sub1;&sub0; und P&sub1;&sub2; enthalten. Zusammenfassend werden im ersten Fall der Berechnung der Kante isa, d.h. wenn P&sub1;&sub0; und P&sub1;&sub2; innerhalb des Pixeis 32 in Konkurrenz stehen, die Koeffizienten A, B und C der Kante 18a im Cache-Speicher für Kanten gespeichert, auf den unter Verwendung des Zugriffscodes P&sub1;&sub0; und P&sub1;&sub2; zugegriffen wird. Dann werden zu einem späteren Zeitpunkt, wenn P&sub1;&sub0; und P&sub1;&sub2; innerhalb eines weiteren Pixeis, zum Beispiel des Pixels 36, in Konkurrenz stehen, die Koeffizienten A, B und C der Kante 18a aus dem Cache-Speicher für Kanten abgerufen, auf den wiederum unter Verwendung des Zugriffscodes für P&sub1;&sub0; und P&sub1;&sub2; zugegriffen wird. Die Verwendung des Cache-Speichers für Kanten auf diese Weise vermeidet die Wiederholung der Zugriffe auf den Polygonspeicher 52 und der Berechnung der Koeffizienten A, B und C für jedes Pixel, innerhalb dessen P&sub1;&sub0; und P&sub1;&sub2; in Konkurrenz stehen. Die Verwendung des Cache-Speichers für Kanten wird durch die Tatsache möglich gemacht, daß die Kante 18a durch den Schnitt der Ebenen der Polygone P&sub1;&sub0; und P&sub1;&sub2; erzeugt ist, und gilt für alle Pixel auf der Bildschirmfläche S, nicht nur für ein Pixel. Daher kann die Kante isa zur Ermittlung der Polygonpriorität zwischen den Polygonen P&sub1;&sub0; und P&sub1;&sub2; für irgendein Pixel verwendet werden, innerhalb dessen eine Konkurrenz zwischen P&sub1;&sub0; und P&sub1;&sub2; auftritt.
  • Wann immer ein Polygonpaar innerhalb eines Pixeis in Konkurrenz steht, gibt somit die Einrichtung 108 zur Entscheidung über die Priorität an den Cache-Speicher 110 für Kanten einen Zugriffscode für jenes Polygonpaar, und versucht die für jenes Polygonpaar relevanten Koeffizienten abzurufen. Wenn jene Kantenkoeffizienten vorher berechnet und im Cache-Speicher für Kanten gespeichert wurden, wie während eines früheren Falles der Konkurrenz zwischen demselben Polygonpaar, dann können jene Kantenkoeffizienten von der Einrichtung zur Entscheidung über die Priorität abgerufen und verwendet werden. Wenn jedoch jene Kantenkoeffizienten vorher nicht berechnet und im Cache- Speicher für Kanten gespeichert wurden, wie in dem Fall, in dem es keinen früheren Fall der Konkurrenz zwischen demselben Polygonpaar gab, dann muß die Einrichtung zur Entscheidung über die Priorität auf den Polygonspeicher 52 zugreifen und die Kantenkoeffizienten berechnen. Wenn die Kantenkoeffizien ten einmal auf diese Weise berechnet wurden, können sie im Cache-Speicher für Kanten unter Verwendung des Zugriffscodes für jenes Polygonpaar gespeichert werden. Bei einem späteren Fall von Konkurrenz zwischen demselben Polygonpaar können dann die Kantenkoeffizienten unter Verwendung desselben Zugriffscodes abgerufen werden.
  • Nachdem alle der Polygone im Pufferspeicher 100 für Polygone wie oben beschrieben vom Transformationscomputer 102, dem Rasterwandler 104 und der Einrichtung 108 zur Entscheidung über die Priorität verarbeitet wurden, wurde der Algorithmus für verdeckte Flächen vollständig ausgeführt. Somit enthalten der Maskenspeicher 50 und der Polygonspeicher 52 zusammen einen Datensatz der Polygone, die spezifische Unterpixel innerhalb jedes von einer Million Pixeldatensätze belegen. Zu diesem Zeitpunkt kann die Abtöneinrichtung 112 die Arbeit aufnehmen. Die Abtöneinrichtung untersucht der Reihe nach jeden Pixeldatensatz des Maskenspeichers. Innerhalb eines Pixeldatensatzes untersucht die Abtöneinrichtung für jedes Unterpixel, für das das Maskenbit "Eins" enthält, den zugehörigen Polygonadressenzeiger, um das Polygon zu ermitteln, das das Unterpixel belegt (siehe Fig. 5). Die Abtöneinrichtung liest dann die Polygon- Abtöninformation für jenes Polygon, wie die Information über die Intensität nach Gouraud, aus dem Polygonspeicher 52 aus. Als nächstes berechnet die Abtöneinrichtung den Farbton für das Polygon innerhalb jenes Pixeis. Dann skaliert die Abtöneinrichtung jenen Farbton in Übereinstimmung mit der Anzahl der von dem Polygon innerhalb jenes Pixeis belegten Unterpixel. Dieser skalierte Farbton wird dann zur für jenes Pixel im Bildwiederholspeicher 114 gespeicherten Intensität hinzugefügt. Ahnlich wird der Farbton wieder in Übereinstimmung mit der Anzahl und der Position der vom Polygon innerhalb jenes Pixeis belegten Unterpixel skaliert und den für umgebende Pixel im Bildwiederholspeicher gespeicherten Intensitäten hinzugefügt. Dieser Ansatz zum Abtönen erreicht das Unterdrücken des Aliasing der Polygone durch Flächenabtastung der Polygone, wie im Stand der Technik wohlbekannt. Das im Bildwiederholspeicher gespeicherte Ergebnis kann auf der Rasteranzeigevorrichtung 116 angesehen werden.
  • Es ist zu bemerken, daß die allgemeine Implementierung des Systems der vorliegenden Erfindung die Rasterwandlung und Verfahren für verdeckte Flächen vom Abtönverfahren abtrennt. Dieser Ansatz kann in bestimmten Situationen vorteilhaft sein, wie zum Beispiel, wenn die Rasterwandlung und Verfahren für verdeckte Flächen bei der Berechnung bzw. rechnerisch weniger komplex als das Abtönverfahren sind. In diesem Fall kann die Abtäneinrichtung so gestaltet sein, daß sie das Abtönverfahren in ungefähr demselben Zeitraum abschließt, der für die Rasterwandlung und Verfahren für verdeckte Flächen erforderlich ist.
  • Die allgemeine Implementierung des Systems der vorliegenden Erfindung, die bis hierhin erörtert wurde, zieht die Rasterwandlung und Verarbeitung verdeckter Flächen von Polygonen der Reihe nach und das Abtönen von Pixeln der Reihe nach in Betracht. Eine alternative Implementierung des Systems der vorliegenden Erfindung, die in Fig. 8 dargestellt ist, zieht die parallele Rasterwandlung und Verarbeitung verdeckter Flächen von Polygonen und das parallele Abtönen der Pixel in Betracht. Ein Polygonpufferspeicher 100 ist mit mehreren Polygoncomputern 118 verbunden. Wie in Fig. 7 dargestellt, beinhaltet ein Polygoncomputer einen Transformationscomputer 102, einen Rasterwandler 104, einen Unterpixelcomputer 106, eine Einrichtung 108 zur Entscheidung über die Priorität und einen Cache- Speicher 110 für Kanten. Die Polygoncomputer 118 sind mit dem Maskenspeicher 50 und dem Polygonspeicher 52 verbunden. Der Maskenspeicher und der Polygonspeicher sind mit mehreren Abtöneinrichtungen 112 verbunden. Die Abtöneinrichtungen sind mit einem Bildwiederholspeicher 114 verbunden. Der Bildwiederholspeicher ist mit einer Rasteranzeigevorrichtung 116 verbunden.
  • Der Polygonpufferspeicher 100 wird zur Speicherung von Polygondaten für mehrere Tausend im dreidimensionalen Raum definierte Polygone verwendet. Auf die Daten für ein einzelnes Polygon kann von einem einzelnen Polygoncomputer 118 zugegriffen werden, und sie können von ihm verarbeitet werden, um Intensitätsberechnungen, Bildtransformation, Abschneiden und Abbildung bzw. Bildschirmformatierung des Darstellungsfeldes, Rasterwandlung und Entscheidung über die Priorität auszuführen. Es ist anzumerken, daß, obwohl ein einzelner Polygoncomputer während eines gegebenen Zeitintervalls nur ein einziges Polygon verarbeitet, während jenes Zeitintervalis jeder andere Polygoncomputer ein anderes Polygon verarbeitet. Somit wird durch die Verwendung mehrerer Polygoncomputer eine parallele Rasterwandlung der Polygone möglich gemacht.
  • Die parallele Implementierung der Rasterwandlung und des Algorithmus für verdeckte Flächen geht wie folgt vonstatten. Jeder Polygoncomputer 118 greift auf den Polygonpufferspeicher 100 der Reihe nach zu und erhält Daten für das nächste unverarbeitete Polygon. Jeder Polygonspeicher rasterwandelt sein Polygon und verändert im Verlauf Pixeldatensätze im Maskenspeicher 50 und Polygondatensätze im Polygonspeicher 52. Alle der Polygoncomputer arbeiten gleichzeitig, so treten Dialoge zwischen einem bestimmten Polygoncomputer und dem Polygonpufferspeicher dem Maskenspeicher oder dem Polygonspeicher zufällig auf und sind zufällig zwischen ähnlichen Dialogen zwischen anderen Polygoncomputern und dem Polygonpufferspeicher, dem Maskenspeicher oder Polygonspeicher verschachtelt bzw. verzahnt. Wenn ein bestimmter Polygoncomputer die Verarbeitung seines Polygons abgeschlossen hat, greift er wieder auf den Polygonspeicher zu und erhält Daten für das nächste verfügbare, nicht verarbeitete Polygon, welches er dann verarbeitet. Wenn alle Polygoncomputer die Verarbeitung ihrer einzelnen Polygone abgeschlossen haben, und wenn keine nicht verarbeiteten Polygone im Polygonpufferspeicher verbleiben, wurde der Algorithmus für verdeckte Flächen vollständig ausgeführt.
  • Zu diesem Zeitpunkt können die mehreren Abtöneinrichtungen 112 ihre Tätigkeit aufnehmen. Jede Abtöneinrichtung greift der Reihe nach auf den Maskenspeicher zu und erhält den nächsten verfügbaren, nicht verarbeiteten Pixeldatensatz. Wie durch den Inhalt des Pixeldatensatzes gesteuert, greift jede Abtöneinrichtung auf den Polygonspeicher zu, um die Polygondatensätze für jedes das Pixel belegende Polygon zu erhalten. Sie tönt jedes solche Polygon ab und skaliert und fügt die so erzeugten Farbtöne den für das Pixel gespeicherten Intensitäten und den für die umgebenden Pixel gespeicherten Intensitäten im Bildwiederholspeicher 114 hinzu. Der auf jeden Farbton angewendete Skalierungsfaktor ist in Übereinstimmung mit den Prinzipien der Flächenabtastung sowohl durch die Anzahl und die Position der von dem Polygon belegten Unterpixel als auch durch das spezielle Pixel, das die Intensitätsdaten erhalten soll, beeinflußt. Alle Abtöneinrichtungen arbeiten gleichzeitig, so treten Dialoge zwischen einer bestimmten Abtöneinrichtung und dem Maskenspeicher, dem Polygonspeicher oder dem Bildwiederholspeicher zufällig auf und sind zwischen ähnlichen Dialogen zwischen den anderen Abtöneinrichtungen und dem Maskenspeicher, dem Polygonspeicher oder dem Bildwiederholspeicher zufällig verschachtelt bzw. verzahnt. Wenn eine bestimmte Abtöneinrichtung die Verarbeitung eines Pixeldatensatzes abgeschlossen hat, greift sie auf den Maskenspeicher zu und erhält Daten für den nächsten verfügbaren, nicht verarbeiteten Pixeldatensatz, welchen sie dann verarbeitet. Wenn alle Abtöneinrichtungen die Verarbeitung ihrer einzelnen Pixeldatensätze abgeschlossen haben und wenn keine nicht verarbeiteten Pixeldatensätze im Maskenspeicher verbleiben, dann kann das im Bildwiederholspeicher gespeicherte Ergebnis auf der Rasteranzeigevorrichtung 116 angesehen werden.
  • Um eine parallele Implementierung der Rasterwandlung und des Algorithmus für verdeckte Flächen zu gestatten, müssen die Dialoge zwischen dem Polygoncomputern 113 und dem Maskenspeicher 50 von etwas anspruchsvollerer Art sein, als während der vorhergehenden Erörterung einer aufeinanderfolgenden Implementierung der Rasterwandlung und des Algorithmus für verdeckte Flächen angegeben. Fig. 9a stellt zum Beispiel die Dreiecke 1, 2 und 3 dar, die einander im Pixel 4 überlappen. Der Einfachheit halber ist die Unterteilung des Pixels in Unterpixel nicht gezeigt, es ist jedoch selbstverständlich, daß die von jedem Dreieck innerhalb des Pixels belegte Fläche unter Verwendung von Unterpixeln genau codiert ist. Die Dreiecke 1, 2 und 3 werden als P&sub1;, P&sub2; und P&sub3; bezeichnet. Fig. 9a zeigt, daß P&sub3; das vorderste Polygon ist, daß P&sub2; hinter P&sub3; liegt und daß P&sub1; hinter sowohl P&sub2; als auch P&sub3; liegt.
  • Einer kurzen Einführung der in der Erörterung verwendeten Nomenklatur folgend, wird nun die Verarbeitung von P&sub1;, P&sub2; und P&sub3; erörtert. Das im Pixeldatensatz des Maskenspeichers 50 gespeicherte Polygon wird als das alte Polygon oder Po bezeichnet. Das Polygon, das gerade rastergewandelt wird, wird als das neue Polygon oder Pn bezeichnet. Der Polygoncomputer 118, der die Rasterwandlung ausführt, wird als PCn bezeichnet. Die von PCn in Reaktion auf die Konkurrenz zwischen Po und Pn berechnete Prioritätszuerkennungsmaske wird als PAWMn,o bezeichnet und wird verwendet, um Maskenbits von Po Pn neu zuzuordnen.
  • Es wird angenommen, daß P&sub1; bereits rastergewandelt wurde und daher im Maskenspeicher repräsentiert ist, wie in Fig. 9b angegeben. Es wird weiter angenommen, daß ein Polygoncomputer 118, der als PC&sub2; bezeichnet wird, sich im Verlauf des Rasterwandelns von P&sub2; befindet und daß ein weiterer Polygoncomputer, der als PC&sub3; bezeichnet wird, sich im Verlauf des Rasterwandeins von P&sub3; befindet. Zu irgendeinem Zeitpunkt während der Rasterwandlung von P&sub2; tritt im Pixel 4 zwischen P&sub2; und P&sub1; eine Konkurrenz um Unterpixel auf. Fig. 9c zeigt die richtige Auflösung der Konkurrenz, die von PC2 berechnet, als Prioritätszuerkennungsmaske PAWM2,1 codiert und im Maskenspeicher 50 gespeichert wird. Ebenso tritt zu irgendeinem Zeitpunkt während der Rasterwandlung von P3 im Pixel 4 zwischen P&sub3; und P&sub1; eine Konkurrenz um Unterpixel auf. Fig. 9d zeigt die richtige Auflösung der Konkurrenz, die von PC&sub3; berechnet, als die Prioritätszuerkennungsmaske PAWM3,1 codiert und im Maskenspeicher gespeichert wird.
  • Nun wird eine beispielhafte Reihenfolge von Ereignissen betrachtet, die während der Rasterwandlung von P&sub2; und P&sub3; auftreten. Zuerst entdeckt PC&sub2; eine Konkurrenz zwischen P&sub2; und P&sub1;, berechnet die PAWM2,1 und ordnet die durch die PAWM2,1 angegebenen Pixeln von P&sub1; P&sub2; neu zu. Der Pixeldatensatz im Maskenspeicher ist nun wie in Fig. 9c gezeigt. Als nächstes entdeckt PC&sub3; eine Konkurrenz zwischen P&sub3; und P&sub1;, berechnet die PAWM3,1 und ordnet die durch die PAWM3,1 angegebenen Unterpixel von P&sub1; P&sub3; neu zu. Als nächstes entdeckt PC&sub3; eine Konkurrenz zwischen P&sub3; und P&sub2; (einige Unterpixel wurden gerade durch PC&sub2; von P&sub1; P&sub2; neu zugeordnet), berechnet die PAWM3,2 und ordnet die durch die PAWM3,2 angegebenen Unterpixel von P&sub2; P&sub3; neu zu. Der Pixeldatensatz im Maskenspeicher ist nun wie in Fig. 9e gezeigt, was die richtige Lösung des Problems der verdeckten Flächen ist.
  • Als nächstes wird eine weitere beispielhafte Reihenfolge von Ereignissen betrachtät, die während der Rasterwandlung von P&sub2; und P3 auftritt. Zuerst entdeckt PC3 eine Konkurrenz zwischen P&sub3; und P&sub1;, berechnet die PAWM3,1 und ordnet die durch die PAWM3,1 angegebenen Unterpixel von P&sub1; P&sub3; neu zu. Der Pixeldatensatz im Maskenspeicher ist nun wie in Fig. 9d gezeigt. Als nächstes entdeckt PC&sub2; eine Konkurrenz zwischen P&sub2; und P&sub1;, berechnet die PAWM2,1 und ordnet die durch die PAWM2,1 angegebenen Unterpixel von P&sub1; P&sub2; neu zu. Als nächstes entdeckt PC&sub2; eine Konkurrenz zwischen P&sub2; und P&sub3; (einige Unterpixel wurden gerade durch PC&sub3; von P&sub1; P&sub3; neu zugeordnet), berechnet die PAWM2,3 und ordnet die durch die PAWM2,3 angegebenen Unterpixel von P&sub3; P&sub2; neu zu. Der Pixeldatensatz im Maskenspeicher ist nun wie in Fig. 9e gezeigt, was wieder die richtige Lösung des Problems der verdeckten Flächen ist.
  • Folglich wird das Problem der verdeckten Flächen unabhängig von der Reihenfolge, in welcher eine Konkurrenz zwischen P&sub1; und P&sub2; und eine Konkurrenz zwischen P&sub1; und P&sub3; von PC&sub2; und PC&sub3; entdeckt und aufgelöst wird, richtig gelöst. Die richtige Lösung ist aber nur garantiert, wenn eine Konkurrenz aufgelöst ist und Unterpixel neu zugeordnet sind, bevor eine weitere Konkurrenz entdeckt wird. Es wird zum Beispiel die folgende beispielhafte Reihenfolge von Ereignissen betrachtet, die während der Rasterwandlung von P&sub2; und P&sub3; auftritt. Zuerst entdeckt PC eine Konkurrenz zwischen P&sub2; und P&sub1; und beginnt, die PAWM2,1 zu berechnen. Als nächstes entdeckt PC&sub3; eine Konkurrenz zwischen P&sub3; und P&sub1; und beginnt die PAWM3,1 zu berechnen. Als nächstes beendet PC&sub2; die Berechnung der PAWM2,1 und ordnet die durch die PAWM2,1 angegebenen Unterpixel von P&sub1; P&sub2; neu zu. Der Pixeldatensatz im Maskenspeicher ist nun wie in Fig. 9c gezeigt, was eine richtiges Zwischenergebnis ist. Als nächstes beendet PC&sub3; die Berechnung der PAWM3,1 und ordnet die durch die PAWM3,1 angegebenen Unterpixel von P&sub1; (und P&sub2;) P&sub3; neu zu. Unglücklicherweise ordnet diese Aktion einige Unterpixel von P&sub2; P&sub3; neu zu, weil jene Unterpixel durch PC&sub2; gerade von P&sub1; P&sub2; neu zugeordnet wurden. Aber weil sich P&sub3; tatsächlich vor P&sub2; befindet, ist der Pixeldatensatz im Maskenspeicher nun zufällig wie in Fig. 9e gezeigt, was die richtige Lösung des Problems verdeckter Flächen ist.
  • Es wird jedoch diese letzte beispielhafte Reihenfolge von Ereignissen betrachtet, die während der Rasterwandlung von P&sub2; und P&sub3; auftritt. Zuerst entdeckt PC&sub3; eine Konkurrenz zwischen P&sub3; und P&sub1; und beginnt, die PAWM3,1 zu berechnen. Als nächstes entdeckt PC&sub2; eine Konkurrenz zwischen P&sub2; und P&sub1; und beginnt, die PAWM2,1 zu berechnen. Als nächstes beendet PC&sub3; die Berechnung der PAWM3,1 und ordnet die durch die PAWM3,1 angegebenen Unterpixel von P&sub1; P&sub3; neu zu. Der Pixeldatensatz im Maskenspeicher ist nun wie in Fig. 9d gezeigt, was ein richtiges Zwischenergebnis ist. Als nächstes beendet PC&sub2; die Berechnung der PAWM2,1 und ordnet die durch die PAWM2,1 angegebenen Unterpixel von P&sub1; (und P&sub3;) P&sub2; neu zu. Unglücklicherweise ordnet diese Aktion einige Unterpixel von P&sub3; P&sub2; neu zu, weil jene Unterpixel durch PC&sub3; gerade von P&sub1; P&sub3; neu zugeordnet wurden. Und weil P&sub2; sich tatsächlich hinter P&sub3; befindet, ist der Pixeldatensatz im Maskenspeicher nun zufällig wie in Fig. 9f gezeigt, was eine falsche Lösung des Problems verdeckter Flächen ist, weil P&sub2; als vor P3 liegend repräsentiert ist.
  • Dieser Fehler entsteht, weil P&sub3; im Pixel 4 nicht repräsentiert ist, wenn PC2 beginnt, die PAP2,1 zu berechnen. Wenn PC&sub2; die Berechnung der PAWM2,1 beendet, ordnet er somit die durch die PAPM2,1 angegebenen Unterpixel von P&sub1; (und unglücklicherweise von P&sub3;) P&sub2; neu zu, ohne jemals eine Konkurrenz zwischen P&sub2; und P&sub3; entdeckt zu haben. Die durch die PAWM3,1 angegebenen Unterpixel wurden vorher durch PC&sub3; von P&sub1; P&sub3; neu zugeordnet, aber einige dieser Unterpixel wurden von PC&sub2; blind, ohne eine Prüfung seitens PC&sub2; auf eine Konkurrenz zwischen P&sub2; und P&sub3;, von P&sub3; P&sub2; neu zugeordnet.
  • Dieser Fehler legt eine richtige Implementierung einer parallelen Rasterwandlung und eines Algorithmus für verdeckte Flächen nahe. Ein Polygoncomputer PCn berechnet in Antwort auf die Konkurrenz um Unterpixel zwischen zwei Polygonen eine Prioritätszuerkennungsmaske PAWMn,o. Eines der Polygone, Po, wird im Pixeldatensatz des Maskenspeichers gespeichert. Das andere Polygon, Pn, befindet sich im Verlauf der Rasterwandlung. Die Prioritätszuerkennungsmaske PAWMn,o wird verwendet, um Maskenbits im Pixeldatensatz von Po, Pn neu zuzuordnen. Aber vor der Neuzuordnung muß der Polygoncomputer überprüfen, daß jedes von der PAWMn,o spezifizierte Unterpixel tatsächlich Po zugeordnet ist. Nur jene Unterpixel, die durch die PAWMn,o spezifiziert sind, und die Po zugeordnet sind, können Pn neu zugeordnet werden. Irgendwelche Unterpixel, die durch die PAWMn,o spezifiziert sind, und die anderen Polygonen als Po zugeordnet sind, d.h. pk, geben eine Konkurrenz um Unterpixel zwischen Pn und Pk an. Diese Konkurrenz kann durch den Polygoncomputer PCn in derselben Weise wie bei jeder anderen Konkurrenz aufgelöst werden. Es wird zum Beispiel das letzte Beispiel betrachtet, das eine fehlerhafte Lösung des Problems verdeckter Flächen verursachte. Während des fehlerhaften Dialogs mit dem Maskenspeicher, sollte PC&sub2; die durch die PAWM2,1 spezifizierten Unterpixel überprüft und ermittelt haben, daß einige jener Unterpixel nicht mehr P&sub1; zugeordnet sind, sondern vielmehr P&sub3; neu zugeordnet wurden. Zu diesem Zeitpunkt würde PC&sub2; eine Konkurrenz zwischen P&sub2; und P&sub3; um die P&sub3; zugeordneten Unterpixel entdeckt haben.
  • Zusammenfassend müssen die von der PAWMn,o spezifizierten Un terpixel vom Polygoncomputer 118 überprüft werden, um zu sehen, ob sie von Po Pk neu zugeordnet wurden. Wenn sie nicht von Po Pk neu zugeordnet wurden, können sie von Po Pn neu zugeordnet werden. Um diese Überprüfung auszuführen, muß der Polygoncomputer den Pixeldatensatz aus dem Maskenspeicher 50 auslesen und die Polygonadressenzeiger in jenem Pixeldatensatz untersuchen. Eine alternative Implementierung des Maskensreichers kann jedoch dem Maskenspeicher selbst gestatten, sowohl diese Überprüfung als auch andere nützliche Operationen wie folgt auszuführen.
  • Diese alternative Implementierung des Maskenspeichers beinhaltet einen Speicher für eine Million Pixeldatensätze. Er beinhaltet auch eine ausreichende Verarbeitungsfähigkeit, um logische Operationen auf Neun-Bit-Masken auszuführen und Polygonadressenzeiger zu vergleichen. Er arbeitet in Verbindung mit dem Polygoncomputer in den drei folgenden Modi. Zuerst empfängt er vorn Polygoncomputer die x,y-Adresse eines Pixels, eine neue Polygonmaske und einen neuen Polygonzeiger, zusammen mit einer Anforderung, daß der Maskenspeicher alle von der neuen Polygonmaske spezifizierten Unterpixel, die gegenwärtig nicht zugeordnet sind, dem neuen Polygon zuordnen soll. Zweitens sendet er Konkurrenzmasken und zugehörige Polygonadressenzeiger zum Polygoncomputer. Drittens empfängt er vom Polygoncomputer die x,y-Adresse eines Pixels, eine Prioritätszuerkennungsmaske, einen neuen Polygonzeiger und einen alten Polygonzeiger, zusammen mit einer Anforderung, daß der Maskenspeicher dem neuen Polygon alle von der neuen Polygonmaske spezifizierten Unterpixel zuordnen soll, die gegenwärtig dem alten Polygon zugeordnet sind.
  • Für den ersten Betriebsmodus zwischen dem Polygoncomputer und dem Maskenspeicher erzeugt der Polygoncomputer eine neue Polygonmaske NEWM, die die Unterpixel darstellt, die von dem neuen Polygon im Pixel zu belegen sind, in das das neue Polygon rastergewandelt wird. Der Polygoncomputer gibt dann die neue Maske NEWM, die neue Polygonadresse NPA und die x,y-Adresse des Pixels an den Maskenspeicher, zusammen mit einer Anforderung, irgendwelche unbelegte Unterpixel im Pixel dem neuen Polygon zuzuordnen. In Reaktion darauf ruft der Maskenspeicher den von der x,y-Adresse für das Pixel spezifizierten Pixeldatensatz ab und setzt die alte Polygonmaske OLDM aus den Maskenbits zusammen (siehe Fig. 5). Der Maskenspeicher berechnet dann das logische UND zwischen der NEWM und dem logischen NICHT der OLDM, wodurch die freie Maske FREM erzeugt wird. Die FREM spezifiziert nicht belegte Unterpixel. Der Maskenspeicher ordnet diese nicht belegten Unterpixel dem neuen Polygon zu, indem das Maskenbit jedes nicht belegten Unterpixels auf "Eins" gesetzt und die neue Polygonadresse NPA in den Polygonadressenzeiger jedes nicht belegten Unterpixels geschrieben wird. Dann berechnet der Maskenspeicher das logische UND zwischen der NEWM und der OLDM, wodurch die Konkurrenzmaske CONM erzeugt wird. Die CONM spezifiziert Unterpixel, für die eine Konkurrenz zwischen dem neuen Polygon und vorher verarbeiteten Polygonen besteht. Wenn die CONM "Null" enthält, besteht keine Konkurrenz zwischen dem neuen Polygon und irgendeinem vorher verarbeiteten Polygon. In diesen Fall ist der Dialog zwischen dem Polygoncornputer und dem Maskenspeicher abgeschlossen.
  • Wenn die CONM jedoch nicht "Null" enthält, besteht eine Konkurrenz zwischen dem neuen Polygon und wenigstens einem vorher verarbeiteten Polygon. Diese Bedingung aktiviert den zweiten Betriebsmodus zwischen dem Polygoncomputer und dem Maskenspeicher. In diesem Modus muß der Maskenspeicher den Polygoncomputer von der Konkurrenz informieren und angeben, mit welchem bzw. welchen vorher verarbeiteten Polygon oder Polygonen die Konkurrenz auftritt. Wenn eine Konkurrenz nur mit einem vorher verarbeiteten Polygon auftritt, ist die CONM eine einfache Konkurrenzmaske. In diesem Fall überträgt der Maskenspeicher die CONM zusammen mit dem von den Bits der CONM, die nicht Null sind, spezifizierten Polygonadressenzeiger an den Polygoncomputer. Wenn Konkurrenz mit mehr als einem vorher verarbeiteten Polygon auftritt, ist die CONM eine zusammengesetzte Konkurrenzmaske. In diesem Fall zerlegt der Maskenspeicher die CONM in eine Reihe einfacher Konkurrenzmasken und überträgt jede einfache Konkurrenzmaske zusammen mit dem von den Bits, die nicht Null sind, jener einfachen Konkurrenzmaske spezifizierten Polygonadressenzeiger der Reihe nach an den Polygoncomputer. Der Polygonadressenzeiger spezifiziert das vorher verarbeitete Polygon, das mit dem neuen Polygon in Konkurrenz steht. Das so spezifizierte vorher verarbeitete Polygon wird als das alte Polygon bezeichnet.
  • Der Polygoncomputer empfängt der Reihe nach vom Maskenspeicher die Konkurrenzmaske oder -masken zusammen mit dem zu jeder Konkurrenzirtaske gehörenden Polygonadressenzeiger. Jede Konkurrenzmaske gibt eine Konkurrenz zwischen dem neuen Polygon und dem durch den Polygonadressenzeiger spezifizierten Polygon, d.h. eine Konkurrenz zwischen dem neuen Polygon und dem alten Polygonander Polygoncomputer löst jede Konkurrenz der Reihe nach auf, indem er eine Prioritätszuerkennungsmaske PAWM berechnet. Zu diesem Zeitpunkt ist der Polygoncomputer für den dritten Betriebsmodus zwischen dem Polygoncomputer und dem Maskenspeicher vorbereitet. In diesem Modus gibt der Polygoncomputer jede Prioritätszuerkennungsmaske PAWM an den Maskenspeicher zusammen mit einer Spezifikation des alten Polygons (d.h. dem Polygonadressenzeiger), einer Spezifikation des neuen Polygons (d.h. der neuen Polygonadresse NPA), der x,y- Adresse des Pixels und einer Anforderung, die von der PAWM spezifizierten Unterpixel vom alten Polygon dem neuen Polygon neu zuzuordnen. In Reaktion darauf überprüft der Maskenspeicher, daß jene Unterpixel tatsächlich dem alten Polygon zugeordnet sind. Jedes dem alten Polygon zugeordnete Unterpixel wird dem neuen Polygon neu zugeordnet, indem die neue Polygonadresse NPA in den Polygonadressenzeiger jenes Unterpixels geschrieben wird. Jedes dem alten Polygon nicht zugeordnete Unterpixel gibt eine Konkurrenz zwischen dem neuen Polygon und dem vom Polygonadressenzeiger jenes Unterpixels spezifizierten Polygon an. Der Maskenspeicher muß den Polygoncomputer von der Konkurrenz informieren, indem er eine Reihe von Konkurrenzmasken zusammen mit Polygonadressenzeigern zum Polygoncornputer zurück überträgt.
  • So kann der Maskenspeicher eine Schaltung beinhalten, um seine Nutzung durch den Polygoncomputer zu erleichtern. Diese Schaltung führt logische Operationen aus und vergleicht Polygonadressenzeiger.
  • Angesichts der obigen Beschreibung ist offensichtlich, daß das System der vorliegenden Erfindung in einer weiten Vielfalt von Systemen implementiert werden kann, die zahlreiche verschiedene spezifische Techniken verwenden. Folglich sollte der Umfang der Erfindung in Übereinstimmung mit den Ansprüchen, wie sie unten dargelegt sind, ausgelegt werden.

Claims (14)

1. Verfahren zum Entscheiden über die Priorität an spezifischen Stellen von bestimmten Werten von x und y für einen Graphikanzeige zwischen einem ersten Grundelement (10) in einer Ebene a&sub1;x + b&sub1;y + c&sub1;z + d&sub1; = 0 und einem zweiten Grundelement (12) in einer Ebene a&sub2;x b&sub2;y c&sub2;z + d&sub2; = 0, wobei sich die Ebenen möglicherweise, wenn auch nicht notwendigerweise, entlang einer projizierten Schnittlinie (18a) in der Anzeige schneiden, dadurch gekennzeichnet, daß das Verfahren die Schritte umfaßt:
Ermitteln der Werte von (c&sub2;a&sub1; - c&sub1;a&sub2;), (c&sub2;b&sub1; - c&sub1;b&sub2;) und (c&sub2;d&sub1; - c&sub1;d&sub2;) und
Entscheiden über die Priorität zugunsten eines der Grundelemente auf der Basis der Vorzeichen von c&sub1; und c&sub2; und auf der Basis der Vorzeichen und Größen eines oder mehrerer von (c&sub2;a&sub1; - c&sub1;a&sub2;), (c&sub2;b&sub1; - c&sub1;b&sub2;) und (c&sub2;d&sub1; - c&sub1;d&sub2;).
2. Verfahren nach Anspruch 1, das den weiteren Schritt des Entscheidens über die Schnittlinie (18a), die zwischen den Grundelementen (10, 12) vorhanden ist, als mehr horizontal oder mehr vertikal, indem die relativen Größen (c&sub2;a&sub1; - c&sub1;a&sub2;) und (c&sub2;b&sub1; - c&sub1;b&sub2;) ermittelt werden, und des weiteren Entscheidens über die Priorität in Übereinstimmung damit, ob die Linie entweder mehr horizontal oder mehr vertikal ist.
3. Verfahren nach Anspruch 2, bei dem, basierend auf c&sub1;, c&sub2; und (c&sub2;a&sub1; c&sub1;a&sub2;), über die Priorität zugunsten des ersten Grundelements (10) nach einer Seite der mehr vertikalen Linie entschieden wird, und über die Priorität zugunsten des zweiten Grundelements (12) nach der anderen Seite der mehr vertikalen Linie entschieden wird.
4. Verfahren nach Anspruch 2, bei dem, basierend auf c&sub1;, c&sub2; und (c&sub2;b&sub1;- c&sub1;c&sub2;), über die Priorität zugunsten des ersten Grundelements (10) nach einer Seite der mehr honzontalen Linie entschieden wird, und über die Priorität zugunsten des zweiten Grundelements (12) nach der anderen Seite der mehr horizontalen Linie entschieden wird.
5. Verfahren nach Anspruch 1, bei dem Ober die Priorität weiter entschieden wird, indem die Abwesenheit einer Schnittlinie zwischen den Grundelementen (10, 12) ermittelt wird.
6. Verfahren nach Anspruch 5, bei dem über die Priorität zugunsten eines der Grundelemente (10, 12) auf der Basis von c&sub1;, c&sub2; und (c&sub2;d&sub1; - c&sub1;d&sub2;) entschieden wird.
7. Verfahren nach einem der vorangehenden Ansprüche, bei dem die bestimmten Werte von x und y Unterbildelemente (40) auf der Anzeige angeben und das Verfahren weiterhin einen Schritt des Berechnens von Zusammensetzungen für Bildelemente in Übereinstimmung mit den für die Unterbildelemente ermittelten Prioritäten beinhaltet.
8. Vorrichtung zum Entscheiden über die Priorität an spezifischen Stellen von bestimmten Werten von x und y für eine Graphikanzeige zwischen einem ersten Grundelement (10) in einer Ebene a&sub1;x + b&sub1;y + c&sub1;z + d&sub1; = 0 und einem zweiten Grundelement (12) in einer Ebene a&sub2;x + b&sub2;y + c&sub2;z + d2 = 0, wobei sich die Ebenen möglicherweise, wenn auch nicht notwendigerweise, entlang einer projizierten Schnittlinie (18a) in der Anzeige schneiden, dadurch gekennzeichnet, daß sie umfaßt:
eine Speichereinrichtung (52) zum Speichern von Grundelementdaten, die die Grundelemente (10, 12) definieren, Verarbeitungsmittel (118) zum
Ermitteln der Werte von (c&sub2;a&sub1; - c&sub1;a&sub2;), (c&sub2;b&sub1; - c&sub1;b&sub2;) und (c&sub2;d&sub1; - c&sub1;d&sub2;) und zum
Entscheiden über die Priorität zugunsten eines der Grundelemente auf der Basis der Vorzeichen von c&sub1; und c&sub2; und auf der Basis der Vorzeichen und Größen eines oder mehrerer von (c&sub2;a&sub1; - c&sub1;a&sub2;), (c&sub2;b&sub1; - c&sub1;b&sub2;) und (c&sub2;d&sub1; - c&sub1;d&sub2;).
9. Vorrichtung nach Anspruch 8, bei der die Speichereinrichtung einen Grundelementspeicher (52) zum Speichern der Grundelementdaten und einen Maskenspeicher (50) zum Speichern von Bildelement- oder Unterbildelementdaten beinhaltet.
10. Vorrichtung nach Anspruch 8 oder Anspruch 9, die einen Bildwiederholspeicher (114) zum Speichern von Bildern zur Anzeige umfaßt.
11. Vorrichtung nach einem der Ansprüche 8 bis 10, die eine Vielfalt von Prozessoren (118) zum gemeinsamen Ausführen einer Ermittlung der Priorität verdeckter Flächen für eine Menge von Grundelementen.
12. Vorrichtung nach Anspruch 11, bei der jeder Prozessor (118) unabhängig eine exklusive Untermenge der Grundelemente verarbeitet.
13. Vorrichtung nach Anspruch 11 oder Anspruch 12, bei der die Prozessoren (118) einen Zugang zu einem gemeinsamen Speichersystem (50, 52) gemeinsam benutzen.
14. Vorrichtung nach einem der Ansprüche 8 bis 13, bei der ein Cache-Speicher (110) verwendet wird, um Zwischenoder Endergebnisse der Ermittlung der Priorität zwischen Grunde lernenten zu speichern und wiederzugewinnen.
DE3855231T 1987-12-09 1988-11-16 Prioritätsauflösungssystem zwischen Polygonen mit Antialiasing Expired - Fee Related DE3855231T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/130,811 US4918626A (en) 1987-12-09 1987-12-09 Computer graphics priority system with antialiasing

Publications (2)

Publication Number Publication Date
DE3855231D1 DE3855231D1 (de) 1996-05-30
DE3855231T2 true DE3855231T2 (de) 1997-01-02

Family

ID=22446456

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3855231T Expired - Fee Related DE3855231T2 (de) 1987-12-09 1988-11-16 Prioritätsauflösungssystem zwischen Polygonen mit Antialiasing

Country Status (4)

Country Link
US (1) US4918626A (de)
EP (1) EP0321095B1 (de)
JP (1) JP2963102B2 (de)
DE (1) DE3855231T2 (de)

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02278475A (ja) * 1989-04-20 1990-11-14 Hitachi Ltd 図形処理装置およびその使用方法ならびにマイクロプロセッサ
US6727903B1 (en) * 1989-04-20 2004-04-27 Hitachi, Ltd. Microprocessor, and graphics processing apparatus and method using the same
US7382929B2 (en) 1989-05-22 2008-06-03 Pixel Instruments Corporation Spatial scan replication circuit
US5249263A (en) * 1989-06-16 1993-09-28 International Business Machines Corporation Color palette display interface for a computer-based image editor
JPH0371277A (ja) * 1989-08-10 1991-03-27 Daikin Ind Ltd サーフェス・モデル描画方法およびその装置
US5265198A (en) * 1989-10-23 1993-11-23 International Business Machines Corporation Method and processor for drawing `polygon with edge`-type primitives in a computer graphics display system
JPH03138783A (ja) * 1989-10-25 1991-06-13 Victor Co Of Japan Ltd 陰面消去回路
EP0430501B1 (de) * 1989-11-17 1999-02-03 Digital Equipment Corporation System und Verfahren zum unverfälschten Polygonenzeichnen
US5245700A (en) * 1989-11-21 1993-09-14 International Business Machines Corporation Adjustment of z-buffer values for lines on the surface of a polygon
US5123085A (en) * 1990-03-19 1992-06-16 Sun Microsystems, Inc. Method and apparatus for rendering anti-aliased polygons
JP3071229B2 (ja) * 1990-04-09 2000-07-31 株式会社リコー 図形処理装置
US5243695A (en) * 1990-05-24 1993-09-07 Rockwell International Corporation Method and apparatus for generating anti-aliased lines on a video display
EP0536114A1 (de) * 1990-06-26 1993-04-14 Du Pont Pixel Systems Limited Graphisches anzeigesystem
US5459835A (en) * 1990-06-26 1995-10-17 3D Labs Ltd. Graphics rendering systems
JPH07118025B2 (ja) * 1990-06-29 1995-12-18 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ・グラフィックス処理方法及びシステム
US5175805A (en) * 1990-10-30 1992-12-29 Sun Microsystems, Inc. Method and apparatus for sequencing composite operations of pixels
US5220650A (en) * 1991-01-22 1993-06-15 Hewlett-Packard Company High speed method for rendering antialiased vectors
US5343558A (en) * 1991-02-19 1994-08-30 Silicon Graphics, Inc. Method for scan converting shaded triangular polygons
JP3079612B2 (ja) * 1991-03-29 2000-08-21 ソニー株式会社 ビデオデータ処理装置及びビデオデータ処理方法
WO1993000650A1 (en) * 1991-06-28 1993-01-07 Hong Lip Lim Improvements in visibility calculations for 3d computer graphics
US5680525A (en) * 1991-08-08 1997-10-21 Hitachi, Ltd. Three-dimensional graphic system with an editor for generating a textrue mapping image
US5333249A (en) * 1992-03-02 1994-07-26 Xerox Corporation Method for phase aligned nth bitting of graphics applications
US5408606A (en) * 1993-01-07 1995-04-18 Evans & Sutherland Computer Corp. Computer graphics system with parallel processing using a switch structure
GB9303009D0 (en) * 1993-02-15 1993-03-31 Canon Res Ct Europe Ltd Processing image data
US5579455A (en) * 1993-07-30 1996-11-26 Apple Computer, Inc. Rendering of 3D scenes on a display using hierarchical z-buffer visibility
US5574847A (en) * 1993-09-29 1996-11-12 Evans & Sutherland Computer Corporation Computer graphics parallel system with temporal priority
JP3473056B2 (ja) * 1993-09-30 2003-12-02 株式会社セガ 画像処理方法及び装置
US5534925A (en) * 1994-05-02 1996-07-09 Cognitech Inc. Image compression by optimal reconstruction
US5619627A (en) * 1994-05-03 1997-04-08 Loral Aerospace Corp. Multiple-level occulting using a mask buffer
CA2124030C (en) * 1994-05-20 1999-08-24 Albert Z. Zhao Method for colour image scaling and other geometrical transformations
US5818456A (en) * 1996-04-30 1998-10-06 Evans & Sutherland Computer Corporation Computer graphics system with adaptive pixel multisampler
US5940080A (en) * 1996-09-12 1999-08-17 Macromedia, Inc. Method and apparatus for displaying anti-aliased text
US6023279A (en) * 1997-01-09 2000-02-08 The Boeing Company Method and apparatus for rapidly rendering computer generated images of complex structures
GB9800900D0 (en) * 1998-01-17 1998-03-11 Philips Electronics Nv Graphic image generation and coding
US6501483B1 (en) * 1998-05-29 2002-12-31 Ati Technologies, Inc. Method and apparatus for antialiasing using a non-uniform pixel sampling pattern
US7616200B1 (en) 1998-06-12 2009-11-10 3Dlabs Inc. Ltd. System for reducing aliasing on a display device
WO2000004494A1 (en) 1998-07-17 2000-01-27 Intergraph Corporation Graphics processing system with multiple strip breakers
WO2000004495A1 (en) 1998-07-17 2000-01-27 Intergraph Corporation System for processing vertices from a graphics request stream
WO2000004482A2 (en) 1998-07-17 2000-01-27 Intergraph Corporation Multi-processor graphics accelerator
US6480913B1 (en) 1998-07-17 2002-11-12 3Dlabs Inc. Led. Data sequencer with MUX select input for converting input data stream and to specific output data stream using two exclusive-or logic gates and counter
WO2000004527A1 (en) * 1998-07-17 2000-01-27 Intergraph Corporation Apparatus and method of directing graphical data to a display device
US6459453B1 (en) 1998-07-17 2002-10-01 3Dlabs Inc. Ltd. System for displaying a television signal on a computer monitor
US7518616B1 (en) 1998-07-17 2009-04-14 3Dlabs, Inc. Ltd. Graphics processor with texture memory allocation system
US6181355B1 (en) 1998-07-17 2001-01-30 3Dlabs Inc. Ltd. Graphics processing with transcendental function generator
US6577316B2 (en) 1998-07-17 2003-06-10 3Dlabs, Inc., Ltd Wide instruction word graphics processor
US6906728B1 (en) * 1999-01-28 2005-06-14 Broadcom Corporation Method and system for providing edge antialiasing
US6674440B1 (en) 1999-04-05 2004-01-06 3Dlabs, Inc., Inc. Ltd. Graphics processor for stereoscopically displaying a graphical image
DE60008867T2 (de) * 1999-05-07 2004-07-29 Broadcom Corp., Irvine Antialiasingverfahren und -anordnung zur effizienten nutzung von wenigen mischeinheiten
US6407736B1 (en) 1999-06-18 2002-06-18 Interval Research Corporation Deferred scanline conversion architecture
US6437795B1 (en) 1999-07-21 2002-08-20 Sun Microsystems, Inc. Method and apparatus for clipping a function
US6850338B1 (en) * 2000-05-12 2005-02-01 International Business Machines Corporation Method, system, program, and data structure for generating raster objects
US6894796B1 (en) 2000-05-12 2005-05-17 International Business Machines Corporation Method, system, and logic for selecting line work and control data for a pixel from multiple objects of line work data provided for the pixel
US6449328B1 (en) 2000-05-15 2002-09-10 International Business Machines Corporation Method and apparatus for shifting data from registers
US7394568B1 (en) * 2000-05-15 2008-07-01 Infoprint Solutions Company Llc Method, system, and logic for selecting pixel data from multiple objects
US6804411B1 (en) 2000-05-15 2004-10-12 International Business Machines Corporation Method, system, and program for decompressing and aligning line work data from multiple objects
US6961134B1 (en) 2000-05-15 2005-11-01 International Business Machines Corporation Method, system, and logic using multiplexers to select data for pixels from multiple objects
TW504651B (en) * 2000-12-06 2002-10-01 Silicon Integrated Sys Corp Eliminating jagged effects using post filtering
US6788307B2 (en) * 2002-04-09 2004-09-07 Evans & Sutherland Computer Corporation System and method for improved pixel rendering performance
US20030214512A1 (en) * 2002-05-14 2003-11-20 Cheng Brett Anthony Hardware method for sub-pixel anti-aliasing of text on an LCD display
US20040174379A1 (en) * 2003-03-03 2004-09-09 Collodi David J. Method and system for real-time anti-aliasing
DE60305027T2 (de) * 2003-07-28 2006-12-14 Dassault Systèmes S.A. Verfahren zur Bereitstellung eines Vektorbildes mit entfernten versteckten Linien
US8775112B2 (en) * 2003-09-15 2014-07-08 Nvidia Corporation System and method for increasing die yield
US8775997B2 (en) * 2003-09-15 2014-07-08 Nvidia Corporation System and method for testing and configuring semiconductor functional circuits
US8732644B1 (en) 2003-09-15 2014-05-20 Nvidia Corporation Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits
US8711161B1 (en) 2003-12-18 2014-04-29 Nvidia Corporation Functional component compensation reconfiguration system and method
US8723231B1 (en) * 2004-09-15 2014-05-13 Nvidia Corporation Semiconductor die micro electro-mechanical switch management system and method
US8711156B1 (en) 2004-09-30 2014-04-29 Nvidia Corporation Method and system for remapping processing elements in a pipeline of a graphics processing unit
US8427496B1 (en) 2005-05-13 2013-04-23 Nvidia Corporation Method and system for implementing compression across a graphics bus interconnect
US8294731B2 (en) * 2005-11-15 2012-10-23 Advanced Micro Devices, Inc. Buffer management in vector graphics hardware
US8698811B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Nested boustrophedonic patterns for rasterization
US9123173B2 (en) * 2005-12-15 2015-09-01 Nvidia Corporation Method for rasterizing non-rectangular tile groups in a raster stage of a graphics pipeline
US9117309B1 (en) 2005-12-19 2015-08-25 Nvidia Corporation Method and system for rendering polygons with a bounding box in a graphics processor unit
US8390645B1 (en) 2005-12-19 2013-03-05 Nvidia Corporation Method and system for rendering connecting antialiased line segments
US8928676B2 (en) * 2006-06-23 2015-01-06 Nvidia Corporation Method for parallel fine rasterization in a raster stage of a graphics pipeline
US7843468B2 (en) * 2006-07-26 2010-11-30 Nvidia Corporation Accellerated start tile search
US8085264B1 (en) 2006-07-26 2011-12-27 Nvidia Corporation Tile output using multiple queue output buffering in a raster stage
US9070213B2 (en) * 2006-07-26 2015-06-30 Nvidia Corporation Tile based precision rasterization in a graphics pipeline
US8427487B1 (en) 2006-11-02 2013-04-23 Nvidia Corporation Multiple tile output using interface compression in a raster stage
US8482567B1 (en) 2006-11-03 2013-07-09 Nvidia Corporation Line rasterization techniques
EP2104930A2 (de) 2006-12-12 2009-09-30 Evans & Sutherland Computer Corporation System und methode zum ausgleichen des rgb-licht in einem monomodulator projektor
US7852350B2 (en) 2007-07-26 2010-12-14 Stmicroelectronics S.R.L. Graphic antialiasing method and graphic system employing the method
US8724483B2 (en) * 2007-10-22 2014-05-13 Nvidia Corporation Loopback configuration for bi-directional interfaces
KR100924122B1 (ko) * 2007-12-17 2009-10-29 한국전자통신연구원 픽셀 단위 처리 요소 기반의 광선 추적 장치 및 방법
US8780123B2 (en) * 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US9064333B2 (en) * 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8681861B2 (en) * 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) * 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8358317B2 (en) 2008-05-23 2013-01-22 Evans & Sutherland Computer Corporation System and method for displaying a planar image on a curved surface
US8702248B1 (en) 2008-06-11 2014-04-22 Evans & Sutherland Computer Corporation Projection method for reducing interpixel gaps on a viewing surface
US20100066731A1 (en) * 2008-09-16 2010-03-18 James Calvin Vecore Configurator Process and System
US8077378B1 (en) 2008-11-12 2011-12-13 Evans & Sutherland Computer Corporation Calibration system and method for light modulation device
US8686999B2 (en) * 2009-02-02 2014-04-01 Microsoft Corporation Dynamic fragment coverage antialiasing
US20110063306A1 (en) * 2009-09-16 2011-03-17 Nvidia Corporation CO-PROCESSING TECHNIQUES ON HETEROGENEOUS GPUs INCLUDING IDENTIFYING ONE GPU AS A NON-GRAPHICS DEVICE
US9331869B2 (en) 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
US9183651B2 (en) * 2010-10-06 2015-11-10 Microsoft Technology Licensing, Llc Target independent rasterization
US9171350B2 (en) 2010-10-28 2015-10-27 Nvidia Corporation Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up
US9641826B1 (en) 2011-10-06 2017-05-02 Evans & Sutherland Computer Corporation System and method for displaying distant 3-D stereo on a dome surface
US9401034B2 (en) 2013-04-30 2016-07-26 Microsoft Technology Licensing, Llc Tessellation of two-dimensional curves using a graphics pipeline
US9710894B2 (en) 2013-06-04 2017-07-18 Nvidia Corporation System and method for enhanced multi-sample anti-aliasing
CN114777686A (zh) * 2017-10-06 2022-07-22 先进扫描仪公司 生成一个或多个亮度边缘以形成物体的三维模型

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3602702A (en) * 1969-05-19 1971-08-31 Univ Utah Electronically generated perspective images
US3816726A (en) * 1972-10-16 1974-06-11 Evans & Sutherland Computer Co Computer graphics clipping system for polygons
US4590465A (en) * 1982-02-18 1986-05-20 Henry Fuchs Graphics display system using logic-enhanced pixel memory cells
US4679040A (en) * 1984-04-30 1987-07-07 The Singer Company Computer-generated image system to display translucent features with anti-aliasing
US4780711A (en) * 1985-04-12 1988-10-25 International Business Machines Corporation Anti-aliasing of raster images using assumed boundary lines
FR2586838B1 (fr) * 1985-08-30 1989-07-28 Labo Electronique Physique Processeur d'elimination de faces cachees pour la synthese d'images a trois dimensions
US4811245A (en) * 1985-12-19 1989-03-07 General Electric Company Method of edge smoothing for a computer image generation system

Also Published As

Publication number Publication date
JPH01191276A (ja) 1989-08-01
DE3855231D1 (de) 1996-05-30
EP0321095A3 (de) 1991-05-02
US4918626A (en) 1990-04-17
JP2963102B2 (ja) 1999-10-12
EP0321095B1 (de) 1996-04-24
EP0321095A2 (de) 1989-06-21

Similar Documents

Publication Publication Date Title
DE3855231T2 (de) Prioritätsauflösungssystem zwischen Polygonen mit Antialiasing
DE68927471T2 (de) Verfahren zur Schattierung eines graphischen Bildes
DE3854543T2 (de) Prioritätsverwaltung eines Tiefendatenpuffers für Echtzeitrechnersysteme zur Bilderzeugung.
DE69632578T2 (de) Computer-grafiksystem zum schaffen und verbessern von texturabbildungssystemen
DE3750784T2 (de) Generation eines intrapolierten charakteristischen Wertes zur Anzeige.
DE69833531T2 (de) Vollszenen-Antialiasing mit verbesserten Überabtastungstechniken
EP1227444B1 (de) Verfahren zur Rasterisierung eines Graphikgrundelements
DE3853393T2 (de) Verfahren und Vorrichtung zur zweidimensionalen Bilderstellung.
DE10053439B4 (de) Grafik-Beschleuniger mit Interpolationsfunktion
DE69908966T3 (de) Schattierung von 3-dimensionalen rechner-erzeugten bildern
DE69333379T2 (de) Vorrichtung und Verfahren zur Verarbeitung von Videosignalen
DE69127915T2 (de) System und Verfahren von Prioritätsfarbabbildung
DE69127516T2 (de) Verfahren und Gerät zur Bilderzeugung
DE102005050846A1 (de) Perspektiveneditierwerkzeuge für 2-D Bilder
DE69924699T2 (de) Verfahren zur Schaffung von als Oberflächenelemente dargestellten grafischen Objekten
DE19600431A1 (de) Computergraphik-Pixel-Wiedergabesystem mit Cache-Speichern
DE69120407T2 (de) Bildgenerator
DE60106301T2 (de) Verfahren und system für die ausfuhr von datenverbänden zu zweidimensionalen oder dreidimensionalen geometrischen entitäten
DE19619288A1 (de) System und Verfahren zur Dreieck-Rasterung mit in zwei Dimensionen verschachtelten Rahmenpuffern
DE102012210521A1 (de) Unbeschnittene Zeit- und Linsen-Begrenzungen für verbesserte Probentest- Effizienz bei Bild-Rendering
EP0862141A2 (de) Bilddarstellungsverfahren und Vorrichtung zur Durchführung des Verfahrens
DE69924230T2 (de) Verfahren zur Modellierung von durch Oberflächenelemente dargestellten grafischen Objekten
DE3854600T2 (de) Verfahren zur Verwendung von baryzentrischen Koordinaten wie bei der Vieleckinterpolation.
DE3854619T2 (de) Quadratische interpolation zur schattierten bilderzeugung.
DE19723063A1 (de) Verfahren zum Halten eines zusammenhängenden Texturspeichers zur Cachekohärenz

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee