DE69032932T2 - System und Verfahren zum unverfälschten Polygonenzeichnen - Google Patents

System und Verfahren zum unverfälschten Polygonenzeichnen

Info

Publication number
DE69032932T2
DE69032932T2 DE69032932T DE69032932T DE69032932T2 DE 69032932 T2 DE69032932 T2 DE 69032932T2 DE 69032932 T DE69032932 T DE 69032932T DE 69032932 T DE69032932 T DE 69032932T DE 69032932 T2 DE69032932 T2 DE 69032932T2
Authority
DE
Germany
Prior art keywords
polygons
pixels
frame buffer
graphics processor
pixel
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 - Lifetime
Application number
DE69032932T
Other languages
English (en)
Other versions
DE69032932D1 (de
Inventor
Brian Michael Kelleher
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of DE69032932D1 publication Critical patent/DE69032932D1/de
Application granted granted Critical
Publication of DE69032932T2 publication Critical patent/DE69032932T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • 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)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Description

    Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich allgemein auf ein System und ein Verfahren zur Reduzierung eines Treppeneffektes, der als Alias-Effekt in Polygonen, die auf ein Rastergraphik-Anzeigeuntersystem gezeichnet sind, bekannt ist. Die Reduzierung des Treppeneffektes durch Glätten der Kanten des Rasterpolygons ist als Antialiasing-Verarbeitung bekannt. Insbesondere bezieht sich die Erfindung auf ein Antialiasing-System und ein -Verfahren, die das Polygon pro Pixel mehrfach abtasten.
  • Beschreibung des Standes der Technik
  • Die Publikation des Standes der Technik WO 89/06033 mit dem Titel "Method of Tiling a Figure in Graphics Rendering System" lehrt das Auswählen jener Pixel aus einer adressierten Pixelmatrix, auf die eine in den Rahmenpuffer zu zeichnende Figur abgebildet wird. In der WO-Publikation des Standes der Technik ist eine Bildaufbereitungsoperation enthalten, die die durch die Rahmenpuffer-Speicherarchitektur geschaffene erhöhte Bandbreite effizient nutzt. Sie lehrt jedoch kein Verfahren zum Zeichnen von einer Antialiasing-Verarbeitung unterworfenen Polygonen.
  • Die Aufgabe der Abtast-Umsetzung eines Polygons auf einem Rastergraphik-Anzeigeuntersystem besteht im Bestimmen der Koordinaten der Pixel, die innerhalb des Polygons auf einem zweidimensionalen Gitterraster liegen. Das vollständige Beleuchten jener Pixel in dem Liniensegment, das das Polygon enthält, führt zu einem Treppenmuster, das das Polygon approximiert.
  • Bekannte Techniken zur Antialiasing-Verarbeitung sind sowohl zeitaufwendig als auch rechenintensiv und würden, falls sie hardwaremäßig implementiert würden, eine teure zusätzliche Hardwareunterstützung erfordern. Solche Algorithmen erfüllen die ihnen zugedachte Funktion sehr gut, wenn das Rastergraphik-Anzeigeuntersystem ein Untersystem mit ausreichender Leistung ist. Jedoch sind für preiswerte Arbeitsplatzrechneranwendungen, um dem Preiswettbewerb standzuhalten, Kompromisse bei der Bildaufbereitungsgeschwindigkeit notwendig. Die Verwendung von Zentraleinheiten (CPUs) für Computer mit reduziertem Befehlssatz (RISC) in solchen Arbeitsplatzrechnern minimiert das Ausmaß der notwendigen Kompromisse bezüglich der Rechnerleistung, jedoch läßt die Anwendung herkömmlicher Antialiasing-Algorithmen die graphische Antwort auf diesen Arbeitsplatzrechnern träge erscheinen. Es besteht deshalb ein Bedarf an einem System und Verfahren zur Antialiasing-Verarbeitung von Polygonen, das schneller und weniger rechenintensiv als die herkömmlichen Techniken ist.
  • Zusammenfassung der Erfindung
  • Die Erfindung beruht in ihrer weitesten Form auf einer Vorrichtung bzw. einem Verfahren gemäß der Ansprüche 1 bzw. 13 zum Zeichnen eines einer Antialiasing-Verarbeitung unterworfenen Polygons. Ein System zum Zeichnen von einer Antialiasing-Verarbeitung unterworfenen Polygonen, wie es im folgenden beschrieben ist, besitzt einen Host- Datenprozessor. Ein Speicher ist mit dem Host-Datenprozessor über einen Bus verbunden. Ein Graphikprozessor ist mit dem Bus verbunden. Eine Anzeige enthält mehrere Pixel zum Anzeigen der Polygone. Ein Rahmenpuffer ist zwischen den Graphikprozessor und die Anzeige geschaltet. Der Graphikprozessor enthält ein Programm zur Abtastung einer Bildmatrix. Die Bildmatrix ist wahlweise durch das Programm rekonfigurierbar, so daß sie entweder mehrere der Pixel oder mehrere Stellen innerhalb eines der Pixel enthält.
  • Ein Verfahren zum Zeichnen von einer Antialiasing-Verarbeitung unterworfenen Polygonen in Übereinstimmung mit dieser Erfindung umfaßt die Vorsorge eines Graphikprozessors einschließlich eines Programms zur Abtastung einer Bildmatrix.
  • Die Bildmatrix wird wahlweise mit dem Programm so konfiguriert, daß es entweder mehrere Pixel oder mehrere Stellen in einem der Pixel enthält. Die Bildmatrix wird der Konfiguration entsprechend abgetastet. Diese Schritte erzeugen durch Antialiasing verarbeitete Polygone.
  • Kurzbeschreibung der Zeichnung
  • Wie der obige Gegenstand erreicht wird und welche Vorteile und Merkmale der Erfindung damit verbunden sind, wird Fachleuten leichter deutlich nach Durchsicht der folgenden, genaueren Beschreibung der Erfindung und unter Bezugnahme auf die Zeichnung, worin:
  • Fig. 1 eine dem Verständnis der vorliegenden Erfindung dienende Darstellung eines einer Antialiasing-Verarbeitung unterworfenen Polygons ist;
  • Fig. 2 ein verallgemeinertes Blockdiagramm eines Systems zum Zeichnen von einer Antialiasing-Verarbeitung unterworfenen Polygonen gemäß der Erfindung ist;
  • Fig. 3 eine zweidimensionale Matrix von Pixeln ist, wie sie in dem System nach Fig. 2 verwendet wird;
  • Fig. 4 ein Diagramm ist, das zeigt, wie die zweidimensionale Matrix aus Fig. 3 in eine lineare Matrix umgesetzt wird;
  • die Fig. 5A-5D zeigen, wie ein Polygon in dem System nach Fig. 2 dargestellt wird;
  • Fig. 6 ein Diagramm ist, das einen Abschnitt des Verfahrens dieser Erfindung zeigt;
  • die Fig. 7A und 7B zweidimensionale Pixelmatrizen sind, die einen weiteren Abschnitt des Verfahrens der Erfindung zeigen;
  • die Fig. 8-9 weitere zweidimensionale Pixelmatrizen sind, die zusätzliche Abschnitte des Verfahrens der Erfindung zeigen;
  • Fig. 10 ein Fig. 4 ähnliches Diagramm ist, jedoch mit bestimmten dem Verständnis des Verfahrens der Erfindung dienenden mathematischen Darstellungen;
  • Fig. 11 ein genaueres Blockdiagramm eines Abschnitts des Systems nach Fig. 2 ist;
  • Fig. 12 ein weiteres genaueres Blockdiagramm eines weiteren Abschnitts des Systems nach Fig. 2 ist;
  • Fig. 13 eine dem Verständnis des Verfahrens der Erfindung dienende zweidimensionale Pixeluntermatrix ist; und
  • Fig. 14 eine zweidimensionale Pixelmatrix ist, die die Arbeitsweise eines Abschnitts des Verfahrens der Erfindung zeigt.
  • Genaue Beschreibung der Erfindung
  • In der Zeichnung, insbesondere in Fig. 1, ist ein der Antialiasing-Verarbeitung unterworfenes Dreieck 10 gezeigt, in dem Pixel 12, die eine innerhalb des Dreiecks 10 liegende obere linke Ecke 14 besitzen, beleuchtet sind. Wie gezeigt ist, entsprechen die beleuchteten Pixel 12 nur angenähert der durch die Liniensegmente 16, 18 und 20 begrenzten Dreiecksform. Die Aufgabe der Umsetzung des Polygons wie etwa des Dreiecks 10 auf ein Rastergraphik- Anzeigeuntersystem durch Abtastung besteht in dem Bestimmen der Koordinaten der Pixel 12, die innerhalb des Dreiecks 10 eines zweidimensionalen Gitterrasters 22 liegen. Das vollständige Beleuchten jener Pixel 12 innerhalb der Liniensegmente 16-20 führt zu einem Treppenmuster 24, das das Dreieck annähert.
  • Fig. 2 ist ein Blockdiagramm eines Systems 30 zum Zeichnen des Dreiecks 10 in einer durch Antialiasing verarbeiteten Form. Eine CPU 32 ist über einen Bus 36 mit einem Gleitpunktprozessor (FPU) 34 verbunden. Die CPU 32 ist über einen 32-Bit-Systembus 38 mit einem Direktzugriffsspeicher (RAM) 40, einem Cache 42 und einer Schnittstelle 44 in dem Graphik-Untersystem 45 verbunden. Die Schnittstelle 44 ist über den Bus 46 mit dem Graphikprozessor 48 verbunden. Der Graphikprozessor 48 ist über den 120-Bit- Graphikbus 50 mit dem Rahmenpuffer 52 verbunden. Der Rahmenpuffer 52 ist über den Bus 56 mit einem Video- Digital/Analog-Wandler (DAC) 54 verbunden. Der DAC 54 ist über die Leitung 60 mit der Videoanzeige 58 verbunden.
  • In Fig. 3 gibt der Ort der Verweisargumente an, daß der Graphikprozessor 48 den Rahmenpuffer 52 in einer rechtekkigen Matrix 70 von Pixeln 72 aktualisieren muß. Die folgenden Algorithmusbeschreibungen verwenden exemplarisch eine 4 · 4-Matrix, auch wenn reale Implementierungen sich davon unterscheiden können. Mehrere Graphikprozessoren 48 können gemeinsam verwendet werden, um eine höhere Bandbreite für den Rahmenpufferspeicher 52 zu erzielen. Jeder der Graphikprozessoren 48 kann auf jeden 4 · 4-Bereich in dem Rahmenpuffer 52 zugreifen. An beliebiger Stelle angeordnet stellt die obere linke Ecke 74 den Ursprung (origin) dar, wobei jedes Pixel 72 in der Matrix durch einen (x, y)-Versatz (offset) dargestellt wird. Die Stellen der Pixel 72 in der Matrix werden Standorte genannt. Jeder Standort (site) enthält die für das entsprechende Pixel 72 relevanten Informationen.
  • Die in Fig. 3 gezeigte zweidimensionale Darstellung der Matrix 70 dient als Anleitung zum Verständnis der Geometrie des Algorithmus, da die Standorte 72 in der Matrix 70 und die Pixel in dem Rahmenpuffer 52 auf intuitive Weise eins zu eins abgebildet werden. Alternativ könnte die Matrix 70, wie bei 74 in Fig. 4 gezeigt ist, linear dargestellt werden. Eine lineare Darstellung erscheint nützlicher für die Beschreibung der Hardware-Implementierungen der Algorithmen, da die Register des Graphikprozessor-48-Bausteins in Wirklichkeit linear ausgelegt sind.
  • Das geometrische Grundelement in dem Graphikprozessor 48 ist die Auswertung eines geometrischen Halbraums. Wie in den Fig. 5A, 5B und 5C gezeigt ist, teilt jede Linie (Gerade) 80 in einer Ebene die Ebene in zwei Halbräume 82 und 84. Die Halbraumauswertung bestimmt, auf welcher Seite einer Linie 80 ein bestimmter Punkt liegt. Alle Punkte auf der rechten Seite einer Linie befinden sich in einem Halbraum, während alle Punkte auf der linken Seite sich in dem anderen Halbraum befinden.
  • Der Graphikprozessor 48 unterstützt drei geometrische Grundelemente: Dreiecke, konvexe Trapezoide und Geraden. Diese Grundelemente wurden wegen ihrer geometrischen Einfachheit und aufgrund der Möglichkeit, mit ihnen komplexere Grundelemente aufzubauen, ausgewählt. Kompliziertere Grundelemente wie etwa konvexe Polygone schaffen eine größere Allgemeingültigkeit, jedoch auf Kosten eines starken Anwachsens der Komplexität des Graphik-Untersystems. Da die zur Beschreibung beliebiger konvexer Polygone erforderliche Datenmenge unbeschränkt ist, ist der Umfang einer atomaren Operation für ein Graphikbaustein ebenfalls unbeschränkt. Manche Graphik-Untersysteme unterbrechen die CPU, um während der Umsetzung durch Abtastung von Polygonen neue Kanten hinzuzufügen. Dieses Schema ist nicht nur komplex, sondern in einer Mehrprozessorumgebung außerdem nicht zugelassen. Um eine effiziente Nutzung der Prozessoren zu ermöglichen, muß der Umfang einer atomaren Operation gering sein. Komplizierte Polygone können von der CPU 32 leicht und effizient schachbrettartig in Dreiecke oder Trapezoide zerlegt werden. Da drei Punkte eine Ebene definieren und mehr Punkte eine Überbestimmung ergeben, führt das Aufbrechen eines Polygons in Dreiecke im allgemeinen tatsächlich zu besseren Ergebnissen für die Glättung.
  • Die zugrundeliegende Mathematik für die Halbraumgeometrie ist einfach und ihre VLSI-Implementierung kann sehr regelmäßig und effizient ausgeführt werden, jedoch liefert der Halbraum selbst kein nützliches Grundelement für 2D- oder 3D-Graphiken. Jedoch muß, wie in Fig. 5D gezeigt ist, das Innere 90 eines Dreiecks 92 betrachtet werden. Es handelt sich hier um nicht anderes als den Schnitt von drei Halbräumen 82. Das Dreieck 92 ist aus spitzen Win keln 94 und drei gemeinsamen Kanten 80 aufgebaut. Der Graphikprozessor 48 kann bestimmen, auf welcher Seite einer Kante 80 ein beliebiges Pixel 72 liegt. Er kann ein Pixel 72 in bezug auf eine Kante 80 mit '+' oder '-' markieren. Ein '+' bedeutet, daß sich ein Pixel 72 in bezug auf eine Kante 80 innerhalb eines Dreiecks 92 befindet, während ein '-' bedeutet, daß es sich außerhalb befindet. Die Bestimmung des Innenliegens eines Pixels 72 in bezug auf das gesamte Dreieck 92 besteht aus einer einfachen Prüfung des Innenliegens in bezug auf die drei Kanten 80, die als UND-Verknüpfung der Vorzeichenbits der Halbraumkomponenten-Auswertungen implementiert ist. Selbstverständlich läßt sich die Halbraumgeometrie genau so gut auf konvexe Trapezoide anwenden, die einfach der Schnitt von vier Halbräumen sind.
  • Die Grundbaublöcke sind eingerichtet worden: die Matrix 70 als Einheit für den Verweis auf den Rahmenpufferspeicher 52, die Halbraumauswertungen zur Bestimmung, welche Pixel 72 in einer geometrischen Figur enthalten sind und die Ebeneauswertungen zur Bestimmung der Objekteigenschaften im Inneren der Pixel 72. Die Grundmodelle der unterstützten Geometrie sind in Ausdrücken der Halbraumgeometrie eingerichtet worden, jedoch hat noch keine Diskussion der Verwirklichung dieser geometrischen Modelle in Ausdrücken für den Verweis auf den Matrixspeicher 52 stattgefunden. Die Erzeugung von Mehrfach-Matrixverweisen zur Aufteilung einer geometrischen Figur in Ziegel wird Wegverfolgung genannt und durch die angewandte Halbraumdarstellungen vereinfacht. Die Algorithmen des Graphikprozessors 48 prüfen die Halbraumgeometrie bei jedem Matrixverweis, um zu bestimmen, in welcher Richtung die geometrische Figur verläuft, wobei angegeben wird, wo der nächste Matrixverweis sein muß. Diese Matrixbewegung wird fortgesetzt, bis die gesamte geometrische Figur in Ziegel aufgeteilt worden ist. Fig. 6 zeigt, wie die Grundmatrix 70 verwendet wird, um ein Dreieck 100 in Ziegel aufzuteilen. Die Matrix 70 wird an der Spitze 102 des Dreiecks 100 angelegt, danach nach unten und nach links längs der Linie 104 bewegt und so lange zur Rechten abgetastet, bis sie die Linie 106 schneidet. Diese Operationen werden wiederholt, bis die Linie 108 erreicht und durch die Matrix 70 abgetastet worden ist.
  • Die Konstruktion geometrischer Formen bei einer gegebenen Halbraum-Auswerteeinrichtung als Grundelement ist sowohl geometrisch als auch konzeptionell attraktiv. Die Halbraumdarstellung ist ein mathematisches Modell, das an Pixelkoordinaten abgetastet wird, wobei die Darstellung zu jener des Rahmenpuffers 52 diskretisiert wird. Konzeptionell bietet dieses mathematische, mit der Pixelfrequenz abgetastete Modell eine einfache und elegante Lösung für die Aufbereitung gemeinsamer Computer-Datenbanken. Die folgende Beschreibung zeigt, daß diese konzeptionelle Einfachheit wiederum zu einer einfachen Implementierung führt, wobei eine hohe Parallelität bei relativ niedrigen Kosten geschaffen wird.
  • Die zugrundeliegende Mathematik, die zur Auswertung eines Halbraums verwendet wird, basiert auf der allgemeinen Gleichung einer Geraden:
  • y = mx + b
  • wobei m die Steigung der Geraden ist und b der Abstand auf der Y-Achse ist.
  • Die obige Gleichung ist erfüllt für Werte x und y auf der Geraden y > mx + b auf einer Seite der Gerade und y < mx + b auf der anderen Seite.
  • Für eine bestimmte Gerade, die durch (x1, y1) und (x2, y2) geht, betragen die Konstanten für die Geradengleichung:
  • m = dy/dx
  • b = y1 - dy/dx x1
  • wobei dy = y2 - y1 und dx = x2 - x1 sind.
  • Diese Werte werden durch Lösen der Gruppe simultaner Gleichungen für die Unbekannten m und b gefunden:
  • y1 = mx1 + b
  • und
  • y2 = mx2 + b
  • Somit erfordert die Auswertung eines durch zwei Punkte (x1, y1) und (x2, y2) parametrisierten Halbraums die Auswertung der linearen Gleichung:
  • y = dy/dx x + y1 - dy/dx x1 (1)
  • Die Mathematik der obigen Diskussion wurde in einem System der reellen Zahlen dargestellt. Jedoch erfordert die Adressierung der Raster-Rahmenpuffer die Diskretisierung der reellen Zahlenwerte von x und y. Diese Diskretisierung ist als Abtastung bekannt und in Fig. 7 A gezeigt. Das Ziel einer einfachen Rastergraphik besteht in der Abtastung der Halbraumgleichung an diskreten Pixel-72- Adressen, die einen Abtastpunkt pro Pixel 72 repräsentieren. In dieser Hinsicht kann bei jedem Pixel 72 in der Graphikprozessor-48-Matrix 70 entschieden werden, ob es innerhalb oder außerhalb der geometrischen Figur liegt.
  • Alternativ läßt sich, wie in Fig. 7B gezeigt ist, durch Überabtastung mittels bestimmter Antialiasing-Algorithmen der Prozentsatz an Pixeln 72, die innerhalb einer geometrischen Figur liegen, bestimmen. Werden mehrere Abstastwerte 120 aus einem Pixel 72 genommen und gemittelt, kann eine ausgezeichnete Antialiasing-Verarbeitung erzielt werden, wenn die Anzahl der Abtastwerte ausreichend groß ist. Da die Abtastfrequenz von der Mathematik unab hängig ist, können verschiedene Algorithmen dieselbe Geradengleichung bei verschiedenen Frequenzen abtasten.
  • Das Erzwingen von Endpunkten zu Pixelmittelpunkten 122 liefert schlechte Ergebnisse für durch Antialiasing verarbeitete Bilder. Durch Antialiasing verarbeitete Bilder profitieren außerdem aus der Anordnung von Unterpixeln, auch wenn die Verbesserung aufgrund der geringeren Bildqualität weniger deutlich ist. Es ist sehr wichtig, daß die Endpunkte mit einer höheren Auflösung angeordnet werden können, als dies der gegenwärtige Rahmenpuffer-Speicheraufwand und die gegenwärtige Videobandbreite gestatten. Deshalb verwendet der Graphikprozessor 48 eine Festpunktnotation für die Spitzen von Polygonen und Endpunkten von Geraden. Wie in Fig. 8 gezeigt ist, wird jedes Pixel 72 in ein 8 · 8-Gitterraster aufgebrochen, wobei (0, 0) in der linken oberen Ecke 124 liegt. Dem Graphikprozessor 48 angegebene Koordinaten können als eine einer Pixel-72-Koordinate beigefügten Unterpixel-120-Position sichtbar gemacht werden. Die Koordinate (x, y) befindet sich im Pixel (x div 8, y div 8) mit einem Unterpixel-Koordinatenwert (x mod 8, y mod 8). Daten können dem Graphikprozessor 48 entweder im Unterpixel-120-Format oder im Basispixel-72-Koordinatenformat angegeben werden. Wenn das Pixel-72-Koordinatenformat verwendet wird, schiebt der Graphikprozessor 48 intern die Daten unmittelbar nach der Eingabe in den Baustein um 3 Bits nach links.
  • Die Mathematik hierfür ist sehr einfach. Zurück zu Gleichung (1):
  • y = dy/dx x + y1 - dy/dx x1
  • Es ist anzumerken, daß diese Gleichung nicht streng an das Koordinatensystem gebunden ist. Für die Umgebung ist das Koordinatensystem, in dem die Gleichung ausgewertet wird, irrelevant: die Mathematik funktioniert dennoch.
  • Folglich werden dx, dy, x1 und y1 um den Faktor 8 vergrößert, um Unterpixel-120-Koordinatenwerte zu schaffen. Zuvor ist in einem Koordinatensystem abgetastet worden, in dem jedes Pixel 72 einer Einheit entsprach, weshalb x- und y-Werte von {0, 1, 2, 3, ...} von Interesse waren. Jetzt muß, um in jedem Pixel 72 abzutasten, bei Werten von {0, 8, 16, 24, ...} abgetastet werden. Da dieses neue Koordinatensystem 8 mal größer ist, sind die Pixel 72 8 Einheiten voneinander entfernt, wobei diese Beabstandung einen Abtastwert pro Pixel ergibt. Es ist anzumerken, daß die Abtastung in der oberen linken Ecke 124 eines Pixels geschieht, an der der Unterpixel-Anteil der Adresse (0, 0) ist.
  • Bei gegebener Technologie zur Auswertung eines Halbraums ist der nächste Schritt die Anwendung dieser Mathematik auf den Rahmenpuffer mittels des Graphikprozessors 48. Wie in Fig. 9 gezeigt ist, soll daran erinnert werden, daß der Graphikprozessor 48 in der Lage ist, einen 4 · 4- Bereich 130 parallel zu aktualisieren. Folglich bestimmt für jeden gegebenen 4 · 4-Bereich 130 auf dem Bildschirm die parallele Auswertung der Geradengleichung
  • y = dy/dx x + y1 - dy/dx x1
  • für jeden der 16 Koordinatenwerte an jedem der 16 Standorte 72 das Innenliegen in einem einzigen Auswertezeitraum. Zur Auswertung eines Halbraums über einen Bereich, der größer als 4 · 4 ist, muß die Matrix 130 über den Bereich gezogen werden, wobei dieser vollständig in Ziegel aufgeteilt wird. Wenn die Auswertung innerhalb der VRAM-Zugriffszeit durchgeführt werden kann, ist die Aktualisierung, jedoch nicht die Geschwindigkeit des Algorithmus durch den Speicherzugriff beschränkt.
  • Da eine Rastereinrichtung inhärent an diskreten Werten abtastet, geschieht die Auswertung eines Halbraums durch Auswertung der Geradengleichung an jedem Pixel 72 in dem Rahmenpuffer 52. In der Praxis werden nur die Pixel, die dem gewünschten Ergebnis am nächsten liegen, ausgewertet. Trotz der einfachen Konzeption ist nicht ohne weiteres zu sehen, daß eine VLSI-Implementierung der Halbraumauswertung preiswert und effizient durchgeführt werden kann. Die folgende Beschreibung legt eine sehr einfache und effiziente Technik zur parallelen Auswertung einer Geradengleichung für diskrete Werte dar.
  • Ein logischer Startpunkt ist durch die Geradengleichung gegeben:
  • y = mx + b
  • Für eine Gerade durch (x1, y1) und (x2, y2) sind die Konstanten:
  • m = dy/dx
  • b = y1 - dy/dx x1
  • wobei dy = y2 - y1 und dx = x2 - x1 sind.
  • Folglich ist
  • y = dy/dx x + y1 - dy/dx x1
  • y - dy/dx x - (y1 - dy/dx x1) = 0
  • Da Divisionen numerisch aufwendig sind und einen Verlust an Genauigkeit mitsichbringen, werden beide Seiten mit dx multipliziert.
  • dxy - dydx - dxy1 + dyx1 = 0
  • Die linke Seite der Gleichung ist 0, wenn (x, y) auf der Gerade liegt, positiv, wenn (x, y) auf einer Seite der Gerade liegt, und negativ, wenn (x, y) auf der anderen Seite liegt. Durch ausschließliches Auswerten des Vorzeichens der Gleichung an jedem Standort in der 4 · 4-Matrix kann der Graphikprozessor 48 für jedes Pixel 72 das Innenliegen bestimmen. Jedoch ist die durch eine VLSI- Implementierung gedachte Einfachheit noch nicht erreicht, da die Berechnung von dxy und dyx durch das Beinhalten zweier Multiplikationen und einer Addition an jedem Standort noch zu schwierig ist. Dies ist sowohl bezüglich des Umfangs als auch bezüglich der Ausführungszeit unzulässig aufwendig. Mit einigen einfachen Substitutionen können die Multiplikationen von der Pro-Pixel-Stufe zu der Pro-Halbraum-Stufe verschoben werden, wodurch die Pixel-Auswertungsstufe bei einer einzigen Addition mit Vorzeichenvergleich belassen wird.
  • Nun soll (originx, originy) den Ursprung des Bereichs 130 repräsentieren. Außerdem soll (offsetx, offsety) der Versatz von diesem Ursprung sein, so daß x = originx + offsetx und y = originy + offsety sind.
  • Durch Substitution von x und y ergibt sich:
  • dx(originy + offsety) - dy(originx + offsetx) - dxy1 + dyx1 = 0
  • dxoriginy + dxoffsety - dyoriginx - dyoffsetx - dxy1 + dyx1 = 0
  • Durch Umordnen ergibt sich die endgültige Gleichung:
  • dxoffsety - dyoffsetx = -dxoriginy + dyoriginx + dxy1 - dyx1
  • dxoffsety - dyoffsetx = (2)
  • - dxoriginy + dyoriginx + (3)
  • dxy1 - dyx1 (12)
  • Es ist sowohl zu beachten, wann die Auswertung der verschiedenen Ausdrücke geschieht, als auch die Dauer ihrer Gültigkeit. Einige Ausdrücke werden einmal für den gesamten Halbraum berechnet und einige werden einmal pro Einzelfall der Matrix 130 berechnet (d. h., wenn die Matrix 130 bewegt wird, muß der Ausdruck neu ausgewertet werden). Kein Ausdruck wird einmal pro Ort ausgewertet. Somit kann ein hoher Grad an Parallelität bei sehr geringen Kosten realisiert werden. Die Werte von dx, dy, x1 und y1 sind für die Definition eines geometrischen Halbraums im wesentlichen konstant, was dadurch angegeben wird, daß (4) einmal pro Halbraum ausgewertet wird und von der Position in der Matrix 130 oder der Bewegung der Matrix 130 unberührt bleibt.
  • Offsetx und offsety sind positive ganze Zahlen (0, 8, 16, 24), die x- und y-Versätze vom Ursprung des Bausteins angeben, dessen Werte in den Baustein eingearbeitet sind. Die Werte sind (0, 8, 16, 24) anstatt (0, 1, 2, 3), da das Gitterraster voraussetzt, daß die Positionierung und Abtastung der Unterpixel einmal pro Pixel geschieht. Somit wird (2) ebenfalls einmal pro Pixel berechnet. Ferner kann seine Auswertung zu aufeinanderfolgenden Additionen von dx und dy vereinfacht werden, da seine Werte regelmäßig beabstandet sind. Der Ausdruck (2) enthält die einzigen Werte, die von der Position in der Matrix abhängig sind.
  • Der einzige Ausdruck, der von der Position in der Matrix abhängt, ist (3), dxoriginy - dyoriginx. Dies beläßt nur zwei Multiplikationen und eine Addition pro Fall der Matrix, im Vergleich zu zwei Multiplikationen und einer Addition pro Standort 72 in der Matrix 130.
  • Dieser Abschnitt beschreibt eine einfache VLSI-Schaltung zur Implementierung des Algorithmus aus dem vorhergehenden Abschnitt. Die Geradengleichung
  • dxoffsety - dyoffsetx = -dxoriginy + dyoriginx + dxy1 - dyx1
  • dxoffsety - dyoffsetx = (2)
  • -dxoriginy + dyoriginx + (3)
  • dxy1 - dyx1 (4)
  • hat nur einen Unterausdruck, der für jeden Standort 72 in der Matrix 130 verschieden ist: den Ausdruck (2). Da dieser Ausdruck für alle 16 Permutationen der zugelassenen Werte für offsetx und offsety berechnet werden muß, scheint dies die aufwendigste Berechnung zu sein. Glücklicherweise liefert die Regelmäßigkeit des diskreten Gitterrasters 130 eine sehr effiziente Implementierung.
  • Die Tabellen I und II veranschaulichen die Regelmäßigkeit der für die Unterausdrücke von (2), dxoffsety und dyoffsetx, benötigten Werte. Tabelle I dx offsety Tabelle II dy offsetx
  • Die Erzeugung dieser Tabellen ist einfach. Jeder Wert in der Matrix 70 (Fig. 10) ist einfach gleich dem 8-Fachen von dx oder dy, das als Verschiebung um 3 Stellen nach rechts implementiert und zum vorhergehenden Wert in der Matrix hinzugezählt wird. Sobald diese Werte erhalten worden sind, läßt sich (2) durch eine einzige Subtraktion, dxoffsety - dyoffsetx, an jedem der 16 Standorte 72 berechnen. Die Standorte werden seriell mit einer sehr effizienten systolischen Matriximplementierung ausgefüllt. Die Ergebnisse dieser Subtraktion müssen, wie in Fig. 10 gezeigt ist, in jedem der 16 Standorte 140 gespeichert werden.
  • Die anderen Ausdrücke in der Geradengleichung sind vom Versatz innerhalb der Matrix unabhängig. Die Summe (3) + (4) wird Halbraumkonstante genannt. Vorausgesetzt, daß (2) aus der Halbraumgleichung, wie gezeigt, an jedem der Standorte 140 gespeichert worden ist, ergibt das Vorzeichen der Summe aus dem Standortwert und der Halbraumkonstante die Seitenlage des Pixels 72 bezüglich der Linie 80 (Fig. 5A-5D). Da die Halbraumkonstante von den Standortversatzkoordinaten unabhängig ist, wird zu jedem Standort derselbe Wert addiert. Somit ist die VLSI-Struktur 150 (Fig. 11) sehr einfach. Ein einziger n-Bit-Bus 152 tastet die Werte an jedem Standort 140 ab, die zu den an den Standorten 140 gespeicherten Werten addiert werden. Da das Vorzeichenbit das einzige interessierende Bit ist, genügt es, einen Wertevergleicher 154 statt eines Addierers zu verwenden. Somit ist jeder Standort 140 mit einem Wertevergleicher 154 und einem Register 156 zum Speichern der Standort-140-Werte versehen. Der Komparator 154 bestimmt, in welchem Halbraum jedes der Pixel 72 liegt. Fig. 11 zeigt ein Blockdiagramm der VLSI-Zelle für jeden Standort 140 in der Matrix. Das Register wird von dem Bus 152 geladen, wenn der Halbraum initialisiert wird. Jedesmal, wenn die Matrix 70 bewegt wird, werden die Register-156-Inhalte mit der Halbraumkonstante 158 auf dem Bus 152 verglichen. Die Ausgangssignale der Schaltungen bei 160 sind die Ergebnisse der Vergleiche.
  • Fig. 11 zeigt die Ansammlung 170 von Standortzellen 160, die die VLSI-Struktur zur Durchführung der parallelen Auswertung eines Halbraums an jedem der 16 Standorte 140 in der Matrix 70 bilden. Diese Struktur wird als Halbraum-Auswerteeinrichtung oder Halbraumturm bezeichnet. Die Spalte von Drähten des Busses 152 repräsentiert den einzigen Wert, (3) + (4), der zu jedem der gespeicherten Werte an den Standorten 140 addiert wird. Jeder Standort 140 enthält einen Komparator und ein Register, wie in Fig. 11 gezeigt ist. Die von jedem Standort 140 kommenden Linien 160 sind Boolesche Werte, die angeben, in welchem Halbraum die Standortpixel 72 liegen.
  • Bei einer gegebenen Schaltung 140 für die Halbraum-Auswerteeinrichtung ist eine Trapezoid-Auswerteschaltung, wie sie in Fig. 12 gezeigt ist, trivial. Dieselbe Schaltung wird viermal verwendet, einmal für jede Kante des Trapezoids. Die Booleschen Ergebnisse an den jeweiligen Standorten 140 in vier Halbraum-Auswerteeinrichtungen werden durch UND verknüpft, um das Innenliegen jedes Pixels 72 zu bestimmen. Wenn sich ein Pixel 72 in bezug auf alle vier Kanten in dem Trapezoid befindet, dann liegt es innerhalb des Trapezoids, andernfalls liegt es außerhalb. Ähnlich verwendet die Geraden-Auswerteeinrichtung die vier Halbraum-Auswerteeinrichtungen zur Erlangung des oben dargestellten Geradenmodells. Das Dreieckmodell erfordert nur drei der Auswerteeinrichtungen, wodurch sich die vierte erübrigt. Fig. 12 zeigt die Wechselwirkung der einzelnen Halbraumtürme 170. Die Booleschen Drähte 160, die über die Türme 170 verlaufen, sind zur Erzeugung des endgültigen Ergebnisses fest durch UND verknüpft.
  • Um die Eins-zu-eins-Entsprechung zwischen den Booleschen Drähten 160 an jedem Standort und den Pixeln in dem Rahmenpuffer 52 zu erreichen, führen die Drähte direkt zu Anschlußflecken auf dem Graphikprozessor 48, die zu Schreib-Freigabeleitungen (write enables) für die einzelnen Speicherbausteine werden. Da die 16 Pixel in 16 verschiedenen Speicherbausteinen liegen, liefern die Drähte eine individuelle Steuerung der Pixel. Eine '1' gibt den Speicherbaustein für das Schreiben frei, während eine '0' diesen sperrt.
  • Da das Gebiet der Computergraphik größer wird, verstärkt sich die Nachfrage nach visuellem Realismus. Techniken wie etwa Strahlverfolgung, Texturabbildung, Antialiasing- Verarbeitung, Transmission (transparency) und viele andere sind mit Erfolg angewandt worden, um realistische Bilder zu erzeugen. Diese Techniken waren vorwiegend software-orientiert oder setzten eine sehr teure Spezial- Hardware ein. Die geometrische Einfachheit und die mächtige Rahmenpuffer-Aktualisierungstechnologie in dem Graphikprozessor 48 verschafft eine gute Gelegenheit, einige der weiterentwickelten Aufbereitungstechniken zur Hardware hin zu verlagern.
  • Die an der Umsetzung einer geometrischen Form von einer kontinuierlichen geometrischen Darstellung in eine diskrete Pixeldarstellung beteiligte Abtastung ruft Mängel wie etwa unscharfe Kanten oder verlorene Einzelheiten hervor. Das Problem wird als Alias-Effekt bezeichnet und durch eine Unterabtastung der geometrischen Figur hervorgerufen. In Standard-Rastergraphiken werden Geraden und Polygone nur an diskreten Gitterrasterstellen oder Pixeln abgetastet. Der Alias-Effekt ist besonders deutlich auf gering auflösenden Einrichtungen, in denen die Abtastfrequenz niedriger ist. So wie die Auflösung ansteigt, nimmt die Fähigkeit des menschlichen Auges ab, den Alias-Effekt wahrzunehmen. Unabhängig von der Anzeigeauflösung kann die Abtastung an diskreten Gitterrasterstellen den Alias- Effekt niemals beseitigen. Jedoch kann es die menschliche Fähigkeit, diesen zu erfassen, herabsetzen. Dieser Abschnitt beschreibt die Antialiasing-Technik, die durch den Graphikprozessor 48 angewandt wird. Die Beschreibungen handeln nur von Dreiecken, jedoch funktioniert die Technik mit allen unterstützten geometrischen Grundelementen.
  • Um den Alias-Effekten zu begegnen, wendet der Graphikprozessor 48 eine Technik an, die als Überabtastung bekannt ist. Die Überabtastung beinhaltet die Abtastung bei einer höheren Auflösung, als sie von der Anzeige-Hardware unterstützt wird, sowie die Mittelwertbildung entsprechend der Pixelauflösung. Da der Rahmenpufferspeicher 52 eine wertvolle Einrichtung ist, wäre es ein Fehler, eine ganze Szene überabzutasten und dann den Mittelwert zu bilden. Die Abtastung des 16-Fachen der Anzeigeauflösung würde das 16-Fache des Rahmenpufferspeichers 52 erfordern. Eine preiswertere Lösung besteht darin, während des Rasterns eines Polygons 16 Abtastwerte innerhalb eines Pixels 72 zu nehmen (Fig. 13) und vor dem Schreiben in den Rahmenpuffer den Mittelwert der 16 Abtastwerte zu bilden. Im Normalmodus (Alias-Modus) verwendet der Graphikprozessor 48 die 16 Standorte in dem Baustein, um 16 Pixel 72 abzutasten. Beim Zeichnen eines Dreiecks oder einer Geraden im Antialias-Modus verwendet der Graphikprozessor 48 die 16 Standorte, um an 16 Stellen 120 innerhalb eines einzigen Pixels 72 abzutasten. Es ist anzumerken, daß die Leistung für die Antialiasing-Verarbeitung geringer ist, da die volle Speicherbandbreite nicht erreicht wird.
  • Dies harmoniert sehr gut mit dem bereits dargestellten Algorithmus. Der Algorithmus für die Antialiasing-Verarbeitung verwendet dieselbe Kantengleichung, die oben dargestellt worden ist:
  • dxoffsety - dyoffsetx = -dxoriginy + dyoriginx + dxy1 - dyx1
  • dxoffsety - dyoffsetx =
  • -dxoriginy + dyoriginx +
  • dxy1 - dyx1
  • Da die Koordinaten gegenüber der Pixelauflösung 8-fach vergrößert sind, liefert die Auswertung dieser Gleichung bei Werten für offsetx und offsety von {0, 2, 4, 6} 16 gleich beabstandete Abtastwerte innerhalb eines einzelnen Pixels 72. Die Farbe des Pixels 72 ist die Summe der Farben jener Abtastpunkte, die innerhalb des Polygons liegen, geteilt durch die Gesamtzahl der genommenen Abtastwerte (16). Da die Gesamtzahl der Abtastwerte eine Potenz von 2 ist, reduziert sich die Division auf ein arithmetisches Verschieben. Somit lautet die Formel für die Berechnung eines einer Antialiasing-Verarbeitung unterworfenen Pixelwertes:
  • Die beschriebene Antialiasing-Verarbeitung funktioniert hervorragend bei einem einzelnen Dreieck, jedoch soll der Fall zweier Dreiecke mit gemeinsamer Kante betrachtet werden. Das erste Dreieck wird der Antialiasing-Verarbeitung unterzogen und in den Rahmenpuffer 52 geschoben. Anschließend wird das zweite Dreieck der Antialiasing- Verarbeitung unterzogen und in den Rahmenpuffer 52 geschoben. Die Pixel längs der Kante, die in beiden Dreiekken liegt, besitzen nur die Werte des zweiten Dreiecks. Jedoch würden die Farbwerte aus dem ersten Dreieck bestehen bleiben und mit den Farbwerten aus dem zweiten Dreieck vermischt werden. Trotzdem gibt es noch nicht genügend Informationen bei der Aufbereitung des zweiten Dreiecks, um die Farbmischung korrekt zu handhaben. Fig. 14 zeigt zwei aneinandergrenzende Dreiecke 180 und 182 mit Pixeln 72 längs der gemeinsamen, mit '+' markierten Kante 184.
  • Es ist notwendig, einen besonderen Anteil der Pixelinformationen zu speichern, der den Prozentsatz eines Pixels angibt, der überdeckt ist. Dies wird gewöhnlich als &alpha;-Kanal oder Überdeckungskanal bezeichnet. Der Graphikprozessor 48 unterhält einen 8-Bit-&alpha;-Kanal. Eine 0 auf dem &alpha;-Kanal bei einem Pixel gibt an, daß das Pixel leer ist. Eine 255 auf dem &alpha;-Kanal gibt an, daß das Pixel vollständig überdeckt ist. Pixel an den Grenzen des Polygons besitzen im allgemeinen einen beliebigen Wert zwischen 0 und 255, der angibt, daß sie teilweise überdeckt sind. Der &alpha;-Wert für ein Pixel in einem Dreieck ist durch die Anzahl der Unterpixel-Abtastwerte innerhalb des Dreiecks, geteilt durch die Gesamtzahl der genommenen Unterpixel-Abtastwerte bestimmt. Dies ist eine Zahl zwischen 0 und 1, die anschließend auf den Bereich zwischen 0 und 255 vergrößert wird. Die eigentliche Berechnung von &alpha; besteht einfach im Bestimmen der Anzahl von Abtastwerten innerhalb des Dreiecks, die mit 16 multipliziert wird, wobei der Wert bei 255 abgefangen wird. Der Wert wird bei 255 abgefangen, da, wenn alle 16 Abtastwerte in dem Dreieck liegen, die Multiplikation aufgrund der dualen Darstellung von 1 in dem Festpunkt- Zahlensystem gerade 256 ergibt.
  • Durch Antialiasing verarbeitete Dreiecke müssen von vorn nach hinten sortiert und in dieser Reihenfolge aufbereitet werden. Das Grundmuster besteht darin, daß die Aufbereitungseinrichtung zu einem Pixel hinzufügt, bis dieses aufgefüllt ist, und voraussetzt, daß alle weiteren Dreiecke hinter diesem Pixel versteckt sind und nicht dem Rahmenpuffer 52 hinzugefügt werden. Somit löst der &alpha;-Kanal im Zusammenspiel mit der x-Sortierung versteckte Flächen auf. Beim Hinzufügen zum Rahmenpuffer 52 werden die folgenden Formeln verwendet:
  • inew = ifb + MIN(1 - &alpha;fb, &alpha;tri)itri
  • &alpha;new = &alpha;fb + MIN(1 - &alpha;fb, &alpha;tri)r
  • wobei:
  • &alpha;fb = momentaner &alpha;-Wert im Rahmenpuffer
  • ifb = momentaner Intensitätswert im Rahmenpuffer
  • &alpha;tri = &alpha;-Wert für neues. Dreieck (der auf der Anzahl der Unterpixel im Dreieck basiert)
  • itri = Intensitätswert von neuem Dreieck
  • &alpha;new = &alpha;-Wert, der in den Rahmenpuffer einzugeben ist
  • inew = Intensitätswert, der in den Rahmenpuffer einzugeben ist.
  • Die obigen Formeln verwenden normierte &alpha;-Werte zwischen 0 und 1.
  • Es ist anzumerken, daß diese Lösung nicht so robust wie der bei Lucas-Film verwendete A-Puffer-Algorithmus für einer Antialiasing-Verarbeitung unterworfene versteckte Flächen ist, jedoch in einer breiten Schicht von Anwendungen eine gute Leistung aufweist und hardwaremäßig viel einfacher zu implementieren ist. Der Graphikprozessor-48- Algorithmus ist einfacher, und die Speicheranforderungen sind viel geringer - der von dem A-Puffer von Lucas-Film geforderte Speicherplatz ist durch die Komplexität der Szene sowie den Umfang des Rahmenpuffers beschränkt. Die Speicheranforderungen des Graphikprozessors 48 sind nur durch den Umfang des Rahmenpuffers 52 beschränkt. Seine Einschränkungen in bezug auf den A-Puffer sind seine Unfähigkeit, zu erkennen, welche Anteile eines Pixels im voraus überdeckt waren, und seine Unfähigkeit, Ausgaben versteckter Flächen zwischen Polygonen, die sich in z überlappen, aufzulösen. Diese Einschränkungen werden für eine große Anzahl von Anwendungen, die aus einer Antialiasing-Verarbeitung unterworfenen Polygonen Nutzen ziehen können, als geringfügig angesehen.
  • Ferner sollte Fachleuten deutlich geworden sein, daß verschiedene Änderungen in der Form und in Einzelheiten der gezeigten und beschriebenen Erfindung ausgeführt werden können. Es ist beabsichtigt, daß solche Änderungen im Umfang der hier beigefügten Ansprüche enthalten sind.

Claims (20)

1. System zum Zeichnen von einer Antialiasing-Verarbeitung unterworfenen Polygonen, mit einem Graphikprozessor (48), der ein Programm zum Berechnen von Werten einer Bildmatrix (70) enthält, wobei die Bildmatrix zur Abtastung durch das Programm wahlweise so rekonfigurierbar ist, daß sie entweder mehrere Pixel oder mehrere Unterpixel in einem der Pixel enthält, wobei Linien des Polygons mit dem Programm bestimmbar sind, indem eine Ebene der Anzeigeoberfläche durch die Linien in geometrische Halbräume unterteilt wird und indem die Halbräume durch die Seite der Linien, auf der sich die Halbräume befinden, kategorisiert werden, wobei der Graphikprozessor einen an ihn angeschlossenen Rahmenpuffer (Frame-Puffer) (52), mehrere Matrixregister (156) und mehrere Komparatoren (154) enthält, wobei jedes der mehreren Matrixregister an einen der mehreren Komparatoren angeschlossen ist, wobei die Register und Komparatoren die durch das Programm berechneten Werte speichern bzw. vergleichen, um zu bestimmen, in welchem Halbraum sich die Pixel oder Unterpixel in der Bildmatrix befinden.
2. System zum Zeichnen von einer Antialiasing-Verarbeitung unterworfenen Polygonen nach Anspruch 1, in dem die Polygone mit dem Programm einer Antialiasing-Verarbeitung unterworfen werden können, indem bestimmt wird, welcher Anteil der Unterpixel innerhalb jedes Pixel sich in den Polygonen befindet und indem eine Farbe jedes Pixel auf der Grundlage des Anteils festgelegt wird.
3. System zum Zeichnen von einer Antialiasing-Verarbeitung unterworfenen Polygonen nach Anspruch 2, in dem die Polygone, die eine gemeinsame Kante besitzen, durch das Programm einer Antialiasing-Verarbeitung längs der gemeinsamen Kante in jedem Polygon, das eine gemeinsame Kante besitzt, die vom anderen Polygon teilweise überdeckt ist, unterworfen werden können, wobei die Farben der Pixel längs der gemeinsamen Kante auf der Grundlage des Ausmaßes der Teilüberdeckung gemischt werden.
4. System zum Zeichnen von einer Antialiasing-Verarbeitung unterworfenen Polygonen nach Anspruch 3, in dem die Polygone Dreiecke sind und die Farben der Pixel längs der gemeinsamen Kante unter Verwendung einer Beziehung gemischt werden, die äquivalent ist zu:
inew = + MIN (1 - &alpha;fb, &alpha;tri)itri
&alpha;new = &alpha;fb + MIN (1 - &alpha;fb, &alpha;tri),
wobei:
&alpha;fb = momentaner &alpha;-Wert im Rahmenpuffer
itb = momentaner Intensitätswert im Rahmenpuffer
&alpha;tri = &alpha;-Wert für neues Dreieck (der auf der Anzahl der Unterpixel im Dreieck basiert)
itri = Intensitätswert von neuem Dreieck
&alpha;new = &alpha;-Wert, der in den Rahmenpuffer einzugeben ist
inew = Intensitätswert, der in den Rahmenpuffer einzugeben ist.
5. System zum Zeichnen von einer Antialiasing-Verarbeitung unterworfenen Polygonen nach Anspruch 1, wobei die mehreren Matrixregister und Komparatoren im Graphikprozessor in Gruppen angeordnet sind, eine Gruppe für jede Linie des Polygons, wobei jedes Register jeder Gruppe ein Ausgangssignal von einem der Komparatoren erzeugt, wobei die Ausgangssignale durch den Graphikpro zessor kombiniert werden, um zu bestimmen, ob sich die Pixel innerhalb der Polygone befinden.
6. System zum Zeichnen von einer Antialiasing-Verarbeitung unterworfenen Polygonen nach den Ansprüche 1, 2, 3 oder 5, wobei der Graphikprozessor ferner eine Einrichtung zum Abtasten des Rahmenpuffers mit der Bildmatrix enthält, um die Polygone durch Bewegen der Bildmatrix von einem ersten Ort auf einer ersten Linie der Polygone in einer ersten Richtung, bis eine zweite Linie der Polygone angetroffen wird, durch Bewegen in einer zweiten Richtung längs der ersten Linie und dann durch Bewegen in der ersten Richtung, bis die zweite Linie angetroffen wird, sowie durch Wiederholen, bis eine dritte Linie der Polygone angetroffen wird, zu zeichnen.
7. System zum Zeichnen von Polygonen nach irgendeinem der vorangehenden Ansprüche, in dem der Graphikprozessor eine Einrichtung enthält zum Bestimmen, welche Pixel sich innerhalb der Polygone befinden, indem die Kategorisierung der Seite der Linien, auf der sich die Halbräume befinden, logisch kombiniert wird.
8. System zum Zeichnen von einer Antialiasing-Verarbeitung unterworfenen Polygonen nach Anspruch 7, in dem das Programm im Graphikprozessor die Linien der Polygone bewertet, indem es eine lineare Gleichung bewertet, die äquivalent ist zu:
y = dy/dx x + y1 - dy/dx x1
wobei x und y Koordinaten auf einer x-Achse bzw. auf einer y-Achse sind, x1 und y1 Inkrementwerte der Koordinaten x bzw. y sind und dy/dx die Ableitung von y nach x ist, die die Änderungsrate der y-Werte bei einer Änderung der x-werte repräsentiert, wobei die Ableitung dy/dx für die lineare Gleichung eine Konstante repräsentiert.
9. System zum Zeichnen von einer Antialiasing-Verarbeitung unterworfenen Polygonen nach Anspruch 8, wobei das Programm im Graphikprozessor die lineare Gleichung durch Bestimmen der folgenden Beziehung bewertet:
dx (offsety) - dy (offsetx),
wobei offsetx, offsety ein Pixel- oder ein Unterpixel- Versatz gegenüber einem Ursprung der Bildmatrix sind und dx(offsety) und dy(offsetx) die Ableitungen von x(offsety) bzw. y(offsetx) sind.
10. System zum Zeichnen von einer Antialiasing-Verarbeitung unterworfenen Polygonen nach irgendeinem vorangehenden Anspruch, in dem der Graphikprozessor eine Einrichtung zum Aktualisieren der Register in einer einzigen parallelen Operation enthält.
11. System zum Zeichnen von einer Antialiasing-Verarbeitung unterworfenen Polygonen nach irgendeinem vorangehenden Anspruch, in dem der Graphikprozessor eine Einrichtung enthält, die bestimmt, welcher Anteil der Unterpixel innerhalb jedes Pixel innerhalb der Polygone liegt, und die eine Farbe jedes Pixel auf der Grundlage des Anteils setzt.
12. System zum Zeichnen von einer Antialiasing-Verarbeitung unterworfenen Polygonen nach Anspruch 1, in dem das Programm ein Mittel enthält, das Polygone mit einer gemeinsamen Kante einer Antialiasing-Verarbeitung unterwirft, indem die Pixel längs der gemeinsamen Kante in jedem Polygon, dessen gemeinsame Kante durch das andere Polygon teilweise überdeckt wird, verarbeitet wird und in dem die Farben der Pixel längs der gemeinsamen Kante auf der Grundlage des Ausmaßes der Teilüberdeckung gemischt werden.
13. Verfahren zum Zeichnen von einer Antialiasing- Verarbeitung unterworfenen Polygonen, mit den folgenden Schritten:
Vorsehen eines Graphikprozessors (48), der ein Programm zum Berechnen von Werten einer Bildmatrix enthält;
Berechnen von Werten der Bildmatrix (70);
Vorsehen mehrerer Register (156) und mehrerer Komparatoren (154) im Graphikprozessor, wobei jedes der mehreren Register an einen der mehreren Komparatoren angeschlossen ist, wobei die Register und Komparatoren die durch das Programm berechneten Werte speichern und vergleichen;
wahlweises Konfigurieren der Bildmatrix durch Abtasten durch das Programm, so daß sie entweder mehrere Pixel oder mehrere Unterpixel innerhalb eines der Pixel enthält;
Berechnen von Werten der so konfigurierten Bildmatrix; und
Vergleichen der berechneten Werte, um festzustellen, ob die Pixel oder Unterpixel in der Bildmatrix innerhalb der Polygone liegen, einschließlich einer Verarbeitung von Linien der Polygone durch Teilen einer Ebene einer Anzeigeoberfläche durch die Linien in geometrische Halbräume und durch Kategorisieren der Halbräume durch die Seite der Linien, auf der sich die Halbräume befinden; und
Aktualisieren der Pixel oder Unterpixel in der Bildmatrix in paralleler Weise.
14. Verfahren nach Anspruch 13, ferner mit den folgenden Schritten:
Anordnen der mehreren Register und Komparatoren in Gruppen, eine Gruppe für jede Linie des Polygons; und
Kombinieren der Ausgangssignale von den Komparatoren, um zu bestimmen, ob die Pixel oder Unterpixel in der Bildmatrix innerhalb der Polygone liegen.
15. Verfahren nach Anspruch 13 oder Anspruch 14, ferner mit den folgenden Schritten:
Vorsehen eines Rahmenpuffers (52) zum Speichern von Pixeln; und
Abtasten des Rahmenpuffers mit der Bildmatrix, um die Polygone durch Bewegen der Bildmatrix von einem ersten Ort auf einer ersten Linie der Polygone in einer ersten Richtung, bis eine zweite Linie der Polygone angetroffen wird, durch Bewegen in einer zweiten Richtung längs der ersten Linie und dann durch Bewegen in der ersten Richtung, bis die zweite Linie angetroffen wird, sowie durch Wiederholen, bis eine dritte Linie der Polygone angetroffen wird, zu zeichnen.
16. Verfahren nach irgendeinem der Ansprüche 13, 14 oder 15, ferner mit den folgenden Schritten:
Bewerten der Linien der Polygone durch Bewerten einer linearen Gleichung, die äquivalent ist zu
y = dy/dx x + y1 - dy/dx x1
wobei x und y Koordinaten auf einer x-Achse bzw. auf einer y-Achse sind, x1 und y1 Inkrementwerte der Koordinaten x bzw. y sind und dy/dx die Ableitung von y nach x ist, die die Änderungsrate der y-werte bei einer Änderung der x-werte repräsentiert, wobei die Ableitung dy/dx für die lineare Gleichung eine Konstante repräsentiert.
17. Verfahren nach Anspruch 16, ferner mit dem folgenden Schritt:
Bewerten der linearen Gleichung durch Bestimmen der folgenden Beziehungen:
dx (offsety) - dy (offsetx),
wobei offsetx, offsety ein Pixel- oder ein Unterpixel- Versatz gegenüber einem Ursprung der Bildmatrix sind und dx(offsety) und dy(offsetx) die Ableitungen von x(offsety) bzw. y(offsetx) sind.
18. Verfahren nach irgendeinem der Ansprüche 13 bis 17, ferner mit dem folgenden Schritt: Bestimmen, welcher Anteil der Unterpixel innerhalb jedes Pixel in den Polygonen liegt, und Festlegen einer Farbe jedes Pixel auf der Grundlage des Anteils.
19. Verfahren nach irgendeinem der Ansprüche 13 bis 17, ferner mit dem folgenden Schritt: Ausführen einer Antialiasing-Verarbeitung für Polygone, die eine gemeinsame Kante besitzen, indem die Pixel längs einer gemeinsamen Kante in jedem Polygon, dessen gemeinsame Kante durch das andere Polygon teilweise überdeckt wird, verarbeitet werden und indem die Farben der Pixel längs der gemeinsamen Kante auf der Grundlage des Ausmaßes der Teilüberdeckung gemischt werden.
20. Verfahren nach Anspruch 19, ferner mit dem folgenden Schritt:
Mischen der Farben der Pixel längs der gemeinsamen Kante zweier Polygone, die Dreiecke sind, unter Verwendung einer Beziehung, die äquivalent ist zu
inew = + MIN (1 - &alpha;fb, &alpha;tri) itri
&alpha;new = &alpha;fb + MIN (1 - &alpha;fb, &alpha;tri),
wobei:
&alpha;fb = momentaner &alpha;-Wert im Rahmenpuffer
ifb = momentaner Intensitätswert im Rahmenpuffer
&alpha;tri = &alpha;-Wert für neues Dreieck (der auf der Anzahl der Unterpixel im Dreieck basiert)
itri = Intensitätswert von neuem Dreieck
&alpha;new = &alpha;-Wert, der in den Rahmenpuffer einzugeben ist
inew = Intensitätswert, der in den Rahmenpuffer einzugeben ist.
DE69032932T 1989-11-17 1990-11-15 System und Verfahren zum unverfälschten Polygonenzeichnen Expired - Lifetime DE69032932T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US43835689A 1989-11-17 1989-11-17

Publications (2)

Publication Number Publication Date
DE69032932D1 DE69032932D1 (de) 1999-03-18
DE69032932T2 true DE69032932T2 (de) 1999-09-16

Family

ID=23740329

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69032932T Expired - Lifetime DE69032932T2 (de) 1989-11-17 1990-11-15 System und Verfahren zum unverfälschten Polygonenzeichnen

Country Status (5)

Country Link
US (1) US5287438A (de)
EP (1) EP0430501B1 (de)
JP (1) JPH03212775A (de)
CA (1) CA2030022A1 (de)
DE (1) DE69032932T2 (de)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0464907B1 (de) * 1990-06-29 1996-10-09 Philips Electronics Uk Limited Bilderzeugung
JP2634127B2 (ja) * 1991-09-25 1997-07-23 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ・ディスプレイ・システム及び方法
JP3462566B2 (ja) 1994-04-08 2003-11-05 株式会社ソニー・コンピュータエンタテインメント 画像生成装置
JPH07282270A (ja) * 1994-04-08 1995-10-27 Sony Corp 画像生成方法および装置
EP0693737A3 (de) * 1994-07-21 1997-01-08 Ibm Verfahren und Apparat zum Verwalten der Aufgaben in einem Mehrprozessorsystem
JP2637920B2 (ja) * 1994-08-11 1997-08-06 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ・グラフィック・システム及びフレーム・バッファ使用方法
US6201528B1 (en) 1994-11-16 2001-03-13 International Business Machines Corporation Anti-aliased inking for pen computers
US5649173A (en) * 1995-03-06 1997-07-15 Seiko Epson Corporation Hardware architecture for image generation and manipulation
US5870097A (en) * 1995-08-04 1999-02-09 Microsoft Corporation Method and system for improving shadowing in a graphics rendering system
US5852443A (en) * 1995-08-04 1998-12-22 Microsoft Corporation Method and system for memory decomposition in a graphics rendering system
US5949428A (en) * 1995-08-04 1999-09-07 Microsoft Corporation Method and apparatus for resolving pixel data in a graphics rendering system
US5808617A (en) * 1995-08-04 1998-09-15 Microsoft Corporation Method and system for depth complexity reduction in a graphics rendering system
US5864342A (en) * 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
US5886701A (en) * 1995-08-04 1999-03-23 Microsoft Corporation Graphics rendering device and method for operating same
US5990904A (en) * 1995-08-04 1999-11-23 Microsoft Corporation Method and system for merging pixel fragments in a graphics rendering system
US5977977A (en) * 1995-08-04 1999-11-02 Microsoft Corporation Method and system for multi-pass rendering
JP2803630B2 (ja) * 1996-04-22 1998-09-24 日本電気株式会社 図形処理方法および装置
WO1998055965A1 (en) * 1997-06-04 1998-12-10 Oak Technology, Inc. Apparatus and method for optimizing memory usage while processing graphics images
US6057855A (en) * 1997-07-02 2000-05-02 Hewlett-Packard Company Method and apparatus for providing polygon pixel sub-sample information using incremental means
US7142224B2 (en) * 1997-07-10 2006-11-28 Yamaha Corporation Polygon drawing apparatus and method, and storage medium for implementing the same method
US6097397A (en) * 1997-11-20 2000-08-01 Real 3D, Inc. Anisotropic texture mapping using silhouette/footprint analysis in a computer image generation system
US6292192B1 (en) * 1998-01-09 2001-09-18 Silicon Graphics, Inc. System and method for the direct rendering of curve bounded objects
US6483504B1 (en) * 1998-02-17 2002-11-19 Sun Microsystems, Inc. Graphics system having a super sampled-sample buffer with efficient storage of sample position information
US6459428B1 (en) * 1998-02-17 2002-10-01 Sun Microsystems, Inc. Programmable sample filtering for image rendering
US6496187B1 (en) * 1998-02-17 2002-12-17 Sun Microsystems, Inc. Graphics system configured to perform parallel sample to pixel calculation
US6424343B1 (en) * 1998-02-17 2002-07-23 Sun Microsystems, Inc. Graphics system with programmable real-time sample filtering
US6489956B1 (en) * 1998-02-17 2002-12-03 Sun Microsystems, Inc. Graphics system having a super-sampled sample buffer with generation of output pixels using selective adjustment of filtering for implementation of display effects
US6496186B1 (en) * 1998-02-17 2002-12-17 Sun Microsystems, Inc. Graphics system having a super-sampled sample buffer with generation of output pixels using selective adjustment of filtering for reduced artifacts
US6317525B1 (en) * 1998-02-20 2001-11-13 Ati Technologies, Inc. Method and apparatus for full scene anti-aliasing
JP3639108B2 (ja) * 1998-03-31 2005-04-20 株式会社ソニー・コンピュータエンタテインメント 描画装置および描画方法、並びに提供媒体
US6606093B1 (en) 1998-05-19 2003-08-12 Microsoft Corporation Method and apparatus for antialiasing by gamma corrected area calculation
US6501483B1 (en) * 1998-05-29 2002-12-31 Ati Technologies, Inc. Method and apparatus for antialiasing using a non-uniform pixel sampling pattern
WO1999064990A2 (en) 1998-06-12 1999-12-16 Intergraph Corporation System for reducing aliasing on a display device
WO2000004527A1 (en) * 1998-07-17 2000-01-27 Intergraph Corporation Apparatus and method of directing graphical data to a display device
WO2000004436A1 (en) 1998-07-17 2000-01-27 Intergraph Corporation Graphics processing with transcendental function generator
US6459453B1 (en) 1998-07-17 2002-10-01 3Dlabs Inc. Ltd. System for displaying a television signal on a computer monitor
WO2000004482A2 (en) 1998-07-17 2000-01-27 Intergraph Corporation Multi-processor graphics accelerator
US6577316B2 (en) 1998-07-17 2003-06-10 3Dlabs, Inc., Ltd Wide instruction word graphics processor
WO2000004494A1 (en) 1998-07-17 2000-01-27 Intergraph Corporation Graphics processing system with multiple strip breakers
US7518616B1 (en) 1998-07-17 2009-04-14 3Dlabs, Inc. Ltd. Graphics processor with texture memory allocation system
US6188410B1 (en) 1998-07-17 2001-02-13 3Dlabs Inc. Ltd. System for processing vertices from a graphics request stream
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
US6417861B1 (en) * 1999-02-17 2002-07-09 Sun Microsystems, Inc. Graphics system with programmable sample positions
US6674440B1 (en) 1999-04-05 2004-01-06 3Dlabs, Inc., Inc. Ltd. Graphics processor for stereoscopically displaying a graphical image
US6781585B2 (en) 2000-01-11 2004-08-24 Sun Microsystems, Inc. Graphics system having a super-sampled sample buffer and having single sample per pixel support
US7119809B1 (en) 2000-05-15 2006-10-10 S3 Graphics Co., Ltd. Parallel architecture for graphics primitive decomposition
US6885378B1 (en) * 2000-09-28 2005-04-26 Intel Corporation Method and apparatus for the implementation of full-scene anti-aliasing supersampling
US7061507B1 (en) * 2000-11-12 2006-06-13 Bitboys, Inc. Antialiasing method and apparatus for video applications
US6819332B2 (en) * 2001-02-27 2004-11-16 3Dlabs Inc. Ltd. Antialias mask generation
US7184066B2 (en) 2001-05-09 2007-02-27 Clairvoyante, Inc Methods and systems for sub-pixel rendering with adaptive filtering
US6819320B2 (en) 2002-03-04 2004-11-16 Sun Microsystems, Inc. Reading or writing a non-super sampled image into a super sampled buffer
US20030169255A1 (en) * 2002-03-11 2003-09-11 Lavelle Michael G. Two-sided lighting in a single pass
US7015920B2 (en) * 2003-04-30 2006-03-21 International Business Machines Corporation Method and system for providing useable images on a high resolution display when a 2D graphics window is utilized with a 3D graphics window
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
US8872833B2 (en) * 2003-09-15 2014-10-28 Nvidia Corporation Integrated circuit configuration system and method
US7003758B2 (en) * 2003-10-07 2006-02-21 Brion Technologies, Inc. System and method for lithography simulation
US8711161B1 (en) 2003-12-18 2014-04-29 Nvidia Corporation Functional component compensation reconfiguration system and method
EP1580694A1 (de) * 2004-03-22 2005-09-28 STMicroelectronics S.r.l. Bildgenerierung mit adaptiver Antialias-Filterung
US7307628B1 (en) * 2004-08-06 2007-12-11 Nvidia Corporation Diamond culling of small primitives
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
US8698811B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Nested boustrophedonic patterns for rasterization
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
US8427487B1 (en) 2006-11-02 2013-04-23 Nvidia Corporation Multiple tile output using interface compression in a raster stage
US8237738B1 (en) 2006-11-02 2012-08-07 Nvidia Corporation Smooth rasterization of polygonal graphics primitives
US8482567B1 (en) * 2006-11-03 2013-07-09 Nvidia Corporation Line rasterization techniques
US8724483B2 (en) * 2007-10-22 2014-05-13 Nvidia Corporation Loopback configuration for bi-directional interfaces
US9064333B2 (en) * 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) * 2007-12-17 2014-07-15 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
JP5151946B2 (ja) * 2008-12-09 2013-02-27 富士通株式会社 描画装置
US20110063309A1 (en) * 2009-09-16 2011-03-17 Nvidia Corporation User interface for co-processing techniques on heterogeneous graphics processing units
CN101667123B (zh) * 2009-09-24 2013-05-08 中兴通讯股份有限公司 一种不规则窗口实现方法及装置
US9530189B2 (en) 2009-12-31 2016-12-27 Nvidia Corporation Alternate reduction ratios and threshold mechanisms for framebuffer compression
US9331869B2 (en) 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
JP5273087B2 (ja) * 2010-04-14 2013-08-28 株式会社Jvcケンウッド 映像処理装置および映像処理方法
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
US8860742B2 (en) * 2011-05-02 2014-10-14 Nvidia Corporation Coverage caching
US9607407B2 (en) 2012-12-31 2017-03-28 Nvidia Corporation Variable-width differential memory compression
US9591309B2 (en) 2012-12-31 2017-03-07 Nvidia Corporation Progressive lossy memory compression
GB2511817A (en) * 2013-03-14 2014-09-17 Imagination Tech Ltd Rendering in computer graphics systems
US9342891B2 (en) 2013-03-15 2016-05-17 Nvidia Corporation Stencil then cover path rendering with shared edges
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
US9832388B2 (en) 2014-08-04 2017-11-28 Nvidia Corporation Deinterleaving interleaved high dynamic range image by using YUV interpolation
US11295506B2 (en) * 2015-09-16 2022-04-05 Tmrw Foundation Ip S. À R.L. Chip with game engine and ray trace engine
CN112102435B (zh) * 2020-09-24 2023-08-01 安徽文香科技股份有限公司 一种几何图形绘制的方法、装置、设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4371872A (en) * 1979-07-23 1983-02-01 The Singer Company Fractional clock edge smoother for a real-time simulation of a polygon face object system
US4590465A (en) * 1982-02-18 1986-05-20 Henry Fuchs Graphics display system using logic-enhanced pixel memory cells
US4528642A (en) * 1982-04-12 1985-07-09 Tektronix, Inc. Completing a fill pattern inside a redrawn panel outline
US4783649A (en) * 1982-08-13 1988-11-08 University Of North Carolina VLSI graphics display image buffer using logic enhanced pixel memory cells
US4755810A (en) * 1985-04-05 1988-07-05 Tektronix, Inc. Frame buffer memory
US4780711A (en) * 1985-04-12 1988-10-25 International Business Machines Corporation Anti-aliasing of raster images using assumed boundary lines
US4811245A (en) * 1985-12-19 1989-03-07 General Electric Company Method of edge smoothing for a computer image generation system
FR2594980A1 (fr) * 1986-02-21 1987-08-28 Gen Electric Processeur de visualisation pour un systeme de visualisation graphique
US4991122A (en) * 1987-10-07 1991-02-05 General Parametrics Corporation Weighted mapping of color value information onto a display screen
US4918626A (en) * 1987-12-09 1990-04-17 Evans & Sutherland Computer Corp. Computer graphics priority system with antialiasing
US4908780A (en) * 1988-10-14 1990-03-13 Sun Microsystems, Inc. Anti-aliasing raster operations utilizing sub-pixel crossing information to control pixel shading

Also Published As

Publication number Publication date
DE69032932D1 (de) 1999-03-18
CA2030022A1 (en) 1991-05-18
US5287438A (en) 1994-02-15
EP0430501B1 (de) 1999-02-03
JPH03212775A (ja) 1991-09-18
EP0430501A2 (de) 1991-06-05
EP0430501A3 (en) 1993-03-24

Similar Documents

Publication Publication Date Title
DE69032932T2 (de) System und Verfahren zum unverfälschten Polygonenzeichnen
DE68927471T2 (de) Verfahren zur Schattierung eines graphischen Bildes
DE3854543T2 (de) Prioritätsverwaltung eines Tiefendatenpuffers für Echtzeitrechnersysteme zur Bilderzeugung.
DE3855231T2 (de) Prioritätsauflösungssystem zwischen Polygonen mit Antialiasing
DE102008034519B4 (de) Aufgeteilte Datenstruktur, und Verfahren zum Laden einer Partikel-basierten Simulation unter Verwendung der aufgeteilten Datenstruktur in GPU, usw.
DE69130132T2 (de) Verfahren zur Erzeugung von Adressen zu texturierten, in RIP Maps gespeicherten graphischen Primitiven
DE69908966T3 (de) Schattierung von 3-dimensionalen rechner-erzeugten bildern
DE69716877T2 (de) System und Verfahren zur genauen Gradientberechnung für die Texturabbildung in einem Computergraphiksystem
DE19709220B4 (de) System und Verfahren für eine beschleunigte Verdeckungsauslese
DE69100140T2 (de) Verfahren zur Anzeige eines Bildteiles einer physikalischen Struktur.
DE3689654T2 (de) Rechnergraphik, prozessor für parallele subdivision.
DE69130123T2 (de) Anzeigegerät und Verfahren zum Betreiben eines solchen Geräts
DE3750803T2 (de) Schattierungsschaltung zur Schattierung mehrerer Polygone, die ein Festkörpermodel einsetzen, und Schattierungsverfahren dafür.
DE69322575T2 (de) Verfahren und Gerät zur Wiedergabe von abgeglichenen NURB Oberflächen
DE69131927T2 (de) Verfahren und gerät um verfälschte polygone darzustellen
DE3650129T2 (de) Verfahren zur Kantenglättung für Rechnerbilderzeugungssystem.
DE69312505T2 (de) Polygonaufrasterung
DE69534331T2 (de) Verfahren und Vorrichtung zur Hervorhebung der Einzelheit einer Baumstruktur
DE69328589T2 (de) System und Verfahren zur Darstellung von Bezier-Splines-Kurven
DE69423129T2 (de) System und Verfahren zur Kurvendarstellung
DE68923227T2 (de) Vektor-zu-Raster-Umwandlungsverfahren.
DE60012917T2 (de) Verfahren und vorrichtung für eine antialiasing-operation auf impliziten kanten
EP1175663A1 (de) Verfahren zur rasterisierung eines graphikgrundelements
DE60106301T2 (de) Verfahren und system für die ausfuhr von datenverbänden zu zweidimensionalen oder dreidimensionalen geometrischen entitäten
DE19827726A1 (de) Verfahren und Vorrichtung zum Liefern von Polygonpixelunterabtastinformationen unter Verwendung einer Inkrementaleinrichtung

Legal Events

Date Code Title Description
8328 Change in the person/name/address of the agent

Free format text: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, 80538 MUENCHEN