DE10000594A1 - Multisample-Z-Buffer-Pixelprozessor auf Spannweitenbasis - Google Patents

Multisample-Z-Buffer-Pixelprozessor auf Spannweitenbasis

Info

Publication number
DE10000594A1
DE10000594A1 DE10000594A DE10000594A DE10000594A1 DE 10000594 A1 DE10000594 A1 DE 10000594A1 DE 10000594 A DE10000594 A DE 10000594A DE 10000594 A DE10000594 A DE 10000594A DE 10000594 A1 DE10000594 A1 DE 10000594A1
Authority
DE
Germany
Prior art keywords
polygon
span
fragments
method further
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.)
Withdrawn
Application number
DE10000594A
Other languages
English (en)
Inventor
Michael Cosman
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 DE10000594A1 publication Critical patent/DE10000594A1/de
Withdrawn 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

Abstract

Es wird ein Verfahren für die Schaffung eines Multisample-Z-Buffer-Pixelprozessors auf Spannweitenbasis in einem Computergrafiksystem beschrieben, um mit diesem eine Menge von Daten, die für jeden Pixel in dessen Bildpufferspeicher gespeichert werden muß, zu vermindern. Indem man eine Gebietskohärenz nutzt, wird die Menge von Daten, die in jedem Pixel gespeichert werden müssen, vermindert. Durch das Verwenden einer Verschmelzung (Merging) kann das Verfahren auch gewährleisten, daß die Pixelspeicheranforderungen nicht über eine vorbestimmte Grenze ansteigen.

Description

HINTERGRUND DER ERFINDUNG GEBIET DER ERFINDUNG
Diese Erfindung bezieht sich allgemein auf die Verbesserung der Leistung eines Grafiksystems. Insbesondere können die Ko­ sten eines Pixelprozessorabschnitts eines Computergrafiksy­ stems durch das Ausnutzen einer Gebietskohärenz vermindert werden, um somit die Menge der Information, die in jedem Pi­ xel gespeichert werden muß, zu vermindern. Es wird ebenfalls ein Verfahren der Verschmelzung (Merging) verwendet, um zu gewährleisten, daß der Pixelspeicher niemals eine einge­ stellte Grenze überschreitet.
STAND DER TECHNIK
Der Stand der Technik in Pixelverarbeitungssystemen (pixel processing systems) hat sich von einem frühen Zustand, bei dem ein Z-Buffer-Maschine ein einfaches Polygon für jeden Pi­ xel speicherte, entwickelt. Bei der Verarbeitung jedes neuen Polygons bestimmte die Maschine zunächst, ob das alte oder das neue Polygon dichter an der Perspektive eines Beobachters lag. Das Polygon, das am weitesten vom Beobachter entfernt war, wurde verworfen, und das nähere Polygon wurde für das Rendern gespeichert. Zusätzlich wurden Kanten und Ineinander­ schachtelungen (interpenetrations) zu ganzen Pixeln quanti­ siert.
Die sich ergebenden Bilder zeigten mehrere Anomalien. Diese Anomalien umfaßten Treppenstufen, Crawl-Effekte (crawling) und Kantenszintillation. Kleine Polygone wurden sogar inter­ mittierend dargestellt, während dünne Polygone oft in nicht miteinander verbundene Segmente zerbrochen wurden.
Bei einem Versuch, das Rendern unter Verwendung der Z-Buffer- Maschine zu verbessern, wurden Modifikationen am Z-Buffering- Verfahren vorgenommen. Beispielsweise wurde eine Mehrfachab­ tastungs-Z-Buffer-Maschine (multi-sample z-buffer engine) im­ plementiert, um so jeden Pixel in mehrere Subpixel aufzutei­ len, wobei jeder Subpixel eine zugehörige Z-Tiefe und ein Farbtripel aufweist. Bei der Verarbeitung jedes Polygons wur­ den die Abtastproben (samples), die "gewonnen" wurden, mit der Farbe des Polygons (die über den Pixel konstant ist) und mit seinen einzelnen Z-Tiefen, die für jede Subpixel-Abtast­ probe eindeutig sind, geladen.
Eine Abdeckung von Pixeln wurde dann auf der Ebene der Subpi­ xel durch das Vergleichen von neuen und gespeicherten Z-Tie­ fen ermittelt. Der gewinnende Subpixel wurde dann mit seiner zugehörigen Farbe gespeichert. Ein Anzeigebild wurde dann durch das Mitteln der Farbwerte für die Subpixel innerhalb jedes Pixels bestimmt.
Mehrfachabtastungs-Z-Buffer-Maschinen lieferten eine verbes­ serte Bildqualität. Unvorteilhafterweise wurde die verbes­ serte Bildqualität auf Kosten des stark erhöhten Pixeldaten­ speichers erreicht. Der Pixeldatenspeicher war insbesondere deswegen teuer, weil der Bildpufferspeicher für die Speiche­ rung mittels eines verhältnismäßig langsamen DRAM-Speichers implementiert werden muß, was zu einen Engpaß beim System­ durchsatz führt.
Eine einfache Berechnung kann leicht die typischen Speicher­ anforderungen darstellen. Ein minimaler Datensatz für eine Subpixel-Abtastung kann 8 Bits jeder der roten, grünen und blauen Farbdaten und 16 Bits Tiefendaten aufweisen. Ein Sy­ stem, das eine Mehrfachabtastung mit 4 Subpixeln verwendet, würde somit 4.40 Bits für die Abtastungen plus 24 Bits für das Anzeigebild (bei einer Doppelpufferung (double-buffering) würden es 48 Bits sein), plus das Ermöglichen von überlappen­ den/darunterliegenden Ebenen und das Halten des Datensatzes erfordern.
Eine noch robustere Lösung, die für eine Flugsimulation ge­ eignet ist, würde 12 Bit Farbkomponenten und 32 Bits für die Tiefe benötigen. Dies könnte zu ungefähr 400 Bits von Daten pro Pixel führen, wenn eine vollständige Implementierung er­ folgt.
Diese Beispiele zeigen, daß bei der Verwendung der Mehr­ fachabtastungs-Z-Buffer-Maschine mit vier Subpixeln eine be­ achtliche Menge von Speicher erforderlich ist. Vier Subpixel liefern jedoch nur eine geringe Bildqualität. Diese ist typi­ scherweise für Anwendungen mit geringen Anforderungen und für Spiele geeignet. Systeme mit höheren Anforderungen können ei­ ne Mehrfachabtastung mit 16 Subpixel verwenden, was ungefähr 2000 Bits Speicherplatz für das Speichern der Daten erfor­ dert.
Bei einer neueren Architektur, dem adaptiven Mehrfachabtaster (adaptive multisampler) speichert dieser Fragmentinformation als Polygondatensätze innerhalb eines Pixels statt Unterabta­ stproben. Diese Lösung halbiert den erforderlichen Speicher­ platz und verbessert die Handhabung transparenter Polygone stark. Dieses System erfordert jedoch einen Stapelspeicherme­ chanismus. Somit ergibt sich eine nicht deterministische Menge einer Lese-/Schreib-Aktivität des Bildspeichers.
Gegenüber dem Stand der Technik würde es auch einen Fort­ schritt bedeuten, ein Fragmentverschmelzung (fragment mer­ ging) zu verwenden, um somit einen Stapelmechanismus zu ver­ meiden. Dies würde den Vorteil bieten, daß die Lese-/Schreib- Aktivität des Bildpufferspeichers deterministisch wird, so daß sie vollständig parallel gestaltet werden kann.
Wenn man den Stand der Technik untersucht, ist es auch nütz­ lich, eine etwas andere Lösung für eine Pixelverarbeitung zu untersuchen. Dieses alternative Verfahren verwendet einen A- Buffer. Der A-Buffer ist ein nur als Software ausgebildetes Rendering-Verfahren. Kurz gesagt, es löst Pixel durch das An­ häufen von Polygonfragmentdaten, das Sortieren anhand der Bildflächentiefe (scene depth), das Verschmelzen "ähnlicher" Fragmente und das Gewichten der endgültigen Pixelfarbe durch sichtbare Polygonfragmentgebiete auf. Dies ist im Konzept ähnlich den endgültigen Zielen der verbesserten Pixelverar­ beitung. Die Implementierung in Form eines A-Buffers hat je­ doch viele Nachteile.
Zuerst stutzt der A-Buffer Polygone zu Pixelgrenzen und be­ stimmt ein Gebiet für jedes Polygon-/Pixelfragment. Dieses Verfahren ist daher rechenintensiv. Beispielsweise verwendet der A-Buffer sowohl eine Gebiets- als auch eine Bitmaske. Dies kann auch zu feinen Inkonsistenzen bei der gesamten Pi­ xelbehandlung führen. Weiterhin kann der A-Puffer keine über­ lappenden/ausgetriggerten Bitmaskierungsstrategien (overlapped/outrigger bit-mask strategies), die sich natürli­ cher in andere Strategien einpassen, aufnehmen.
Der A-Buffer verwendet auch eine komplexe Verbindungslisten­ datenstruktur um Polygonfragmente innerhalb eines Pixels zu verfolgen. Die Liste muß zu ihrem Abschluß verfolgt werden, so daß die Verarbeitung sehr variabel ist. Weiterhin kann die Verbindungsliste zufällig im Speicheradreßraum verteilt sein, was weiter eine Cache-Kohärenz behindert und den Speicherzu­ griff verlangsamt. Es würde ein Vorteil sein, einen Daten­ block konstanter Größe zu verwenden, so daß die Speicherzu­ griffe begrenzt und deterministisch sind.
Der A-Buffer verschiebt auch das Entfernen verdeckten Flächen bis zum endgültigen Schritt der Farbtonauflösung. Somit muß er viele Polygonfragmente handhaben, von denen es sein kann, daß sie schließlich nicht zur Pixelfarbe beitragen. Ein ande­ rer Vorteil würde darin bestehen, Subpixelteile von Fragmen­ ten zu löschen, wenn sie durch neu ankommende Fragmente ver­ deckt werden. Dies macht den zugehörigen Speicher so bald als möglich für eine erneute Nutzung im Render-Verfahren verfüg­ bar.
Der A-Buffer sortiert auch Fragmente nach dem vordersten Z- Wert und er enthält keine Information über die Orientierung des Fragments. Es würde ein anderer Vorteil sein, Z-Neigungs­ information, die die volle Rekonstruktion der Geometrie des Fragmentes ermöglicht, zu speichern. Dieses Verfahren würde sich gut zum Mehrfach-Pixel-Rendern (multiple-pixel rende­ ring) von Gebieten ohne Qualitätsverlust eignen.
Der A-Buffer muß auf ein Kreuzungs/Verschmelzungs-Verfahren ausweichen, wenn Fragmente im Z-Wert dicht beieinander lie­ gen, auch wenn sie sich in Wirklichkeit nicht kreuzen. Somit würde es ein anderer Vorteil sein, die Subpixel-Abdeckung zu einer höheren Auflösung hin zu erhöhen. Dies würde verhin­ dern, daß verdeckte Flächen hindurch scheinen, wie das bei dem A-Buffer auftritt, bei dem sich viele Polygone an einem Scheitel treffen.
Der A-Buffer erfordert ebenfalls eine beträchtliche Menge Speicherplatz. Beispielsweise benötigt der A-Buffer 64 Bits für eine einfachen Surrounder oder für den ersten Listenzei­ ger und 192 Bits für jedes zusätzliche Fragment, das mit ei­ nem Pixel verbunden ist. Somit benötigt der A-Buffer für eine mittlere Tiefenkomplexität von 4 832 Bits pro Pixel plus dem endgültigen RGB-Wert (Rot-Grün-Blau-Wert). Im Gegensatz dazu würde es für dieselbe Tiefenkomplexität vorteilhaft sein, die Speicheranforderungen auf ungefähr 256 Bits pro Pixel zu ver­ mindern.
Es würde daher eine Verbesserung gegenüber dem Stand der Technik darstellen, die verbesserte Bildqualität der adapti­ ven Mehrfachabtastungs-Lösung zu nutzen, während die Gebiets­ kohärenz genutzt wird, um somit die Speichererfordernisse zu vermindern.
ZIELE UND ZUSAMMENFASSUNG DER ERFINDUNG
Eine Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren für eine verbesserte Pixelverarbeitung unter Ver­ wendung einer Multisample-Z-Buffer-Maschine auf Spannweiten­ basis (span-based) bereit zu stellen.
Eine andere Aufgabe besteht darin, eine Multisample-Z-Buffer- Maschine zu verwenden, um es zu ermöglichen, daß die Lese- /Schreibaktivität deterministisch wird.
Eine andere Aufgabe besteht darin, eine Multisample-Z-Buffer- Maschine auf Spannweitenbasis, die vollständig parallelisiert werden kann, zu verwenden.
Eine andere Aufgabe besteht darin, eine Multisample-Z-Buffer- Maschine auf Spannweitenbasis zu verwenden, während die Ge­ bietskohärenz genutzt wird, um somit die Speicheranforderun­ gen des Pixelprozessors zu vermindern.
Eine andere Aufgabe besteht darin, eine Fragmentverschmelzung (fragment merging) zu verwenden, um somit die Notwendigkeit für einen Stapelmechanismus zu vermeiden.
Die aktuell bevorzugte Ausführungsform der vorliegenden Er­ findung besteht aus einem Verfahren für das Schaffen eines Multisample-Z-Buffer-Pixelprozessors auf Spannweitenbasis in einem Computergrafiksystem, um somit die Menge von Daten, die für jeden Pixel in einem Bildpufferspeicher gespeichert wer­ den müssen, zu vermindern. Durch das Nutzen der Gebietskohä­ renz wird die Menge von Daten, die in jedem Pixel gespeichert werden müssen, vermindert. Durch das Verwenden von Merging, kann das Verfahren auch gewährleisten, daß die Pixelspeicher­ anforderungen nicht über eine vorbestimmte Grenze hinaus wachsen.
Gemäß einem ersten Aspekt der Erfindung wird jede Adresse in­ nerhalb eines Bildpufferspeichers so definiert, daß sie einer Gruppe von vier Pixeln, die als kontinuierliches 2 × 2 Feld an­ geordnet sind, entspricht. Daten innerhalb jedes Spannweiten­ datensatzes werden mit einzelnen Polygonfragmenten, die in einem oder mehreren der vier Pixel in einer Gruppe sichtbar sind, verbunden.
Gemäß einem zweiten Aspekt der Erfindung empfängt der Pixel­ prozessor Polygonfragmente für jeden Pixel. Da neue Fragmente innerhalb einer Gruppe von vier Pixeln akkumuliert werden, ist es möglich, daß schließlich mehr Daten, die in den Bild­ puffer zurückgeschrieben werden müssen, vorhanden sind, als Platz verfügbar ist. Wenn dies auftritt, so verschmilzt das System ein oder mehrere Paare von Polygonfragmenten, bis die Daten passen, um somit wirksam die Speichererfordernisse zu begrenzen.
In einem dritten Aspekt der Erfindung können die akkumulier­ ten Polygonfragmente in einem Anzeigebild für jeden der vier Pixel in einer Gruppe zu jedem Zeitpunkt aufgelöst werden. Diese und andere Aufgaben, Merkmale, Vorteile und alternative Aspekte der vorliegenden Erfindung werden Fachleuten aus ei­ ner Betrachtung der folgenden detaillierten Beschreibung in Verbindung mit den begleitenden Zeichnungen deutlich.
KURZE BESCHREIBUNG DER ZEICHNUNGEN
Fig. 1 ist ein Flußdiagramm, das die bevorzugte Ausführungs­ form, die gemäß den Prinzipien der vorliegenden Erfindung konstruiert ist, beschreibt.
DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
Es wird nun Bezug genommen auf die Zeichnungen, in denen ver­ schiedenen Elementen der vorliegenden Erfindung numerische Bezeichnungen gegeben werden, und in der die Erfindung disku­ tiert werden wird, um es einem Fachmann zu ermöglichen, die Erfindung auszuführen und zu verwenden. Es sollte verständ­ lich sein, daß die folgende Beschreibung nur ein Beispiel der Prinzipien der vorliegenden Erfindung gibt, und nicht so an­ gesehen werden soll, daß sie die Ansprüche, die folgen, ein­ engt.
Es ist nützlich, einen Überblick über die vorliegende Erfin­ dung zu erhalten, bevor man sich eingehend mit der detail­ lierten Beschreibung der bevorzugten Ausführungsform befaßt. So kann man beobachten, daß die vorliegende Erfindung in vor­ teilhafter Weise die Kosten eines Pixelprozessors eines Com­ putergrafiksystems durch das Verwenden einer Gebietskohärenz, um die Menge der Daten, die in jedem Pixel gespeichert werden müssen, zu vermindern, vermindert. Und wenn die Menge der zu speichernden Daten das Volumen des Bildpufferspeichers über­ steigt, so verwendet die vorliegende Erfindung eine Ver­ schmelzungstechnik (Merging), bis die Daten auf eine handhab­ bare Größe, wie sie durch die Speicherkapazität des Bildpuf­ ferspeichers definiert wird, vermindert sind.
Der Bildpufferspeicher dient in einem Computergrafiksystem einem doppelten Zweck. Zuerst wird beobachtet, daß der Bild­ pufferspeicher für das Rendern Information über jedes sicht­ bare Polygon speichert, wenn ein Bild aufgebaut wird. Als zweites speichert der Bildpufferspeicher das aufgelöste An­ zeigebild, das als die roten, grünen und blauen Werte für je­ den Pixel, der auf einem Computerbildschirm dargestellt wer­ den soll, definiert ist.
In dieser Erfindung wird jede Adresse im Bildpufferspeicher so zugeordnet, daß sie einer Gruppe von vier Pixeln ent­ spricht. Die Gruppe von vier Pixeln ist eine kontinuierliche 2 × 2 Matrix, auf die als eine Spannweite (span) Bezug genommen wird. Die Daten innerhalb eines Spannweitendatensatzes werden dann mit den einzelnen Polygonfragmenten, von denen bestimmt wird, daß sie in einem oder mehreren der vier Pixel in einer Spannweite sichtbar sind, verbunden.
Der Pixelprozessor empfängt als Eingabe Polygonfragmente für jeden Pixel. Der Pixelprozessor löst Polygonfragmentüberlap­ pungen auf, um zu bestimmen, welches Polygon sichtbar ist (was auch als "Überleben (surviving)" oder "Gewinnen (winning)" bekannt ist). Die überlebenden Polygonfragmente werden dann für eine spätere Betrachtung, wenn ein zu ren­ derndes Bild im Speicher des Bildpufferspeichers aufgebaut wird, gespeichert.
Polygonfragmente können entweder undurchsichtig oder transpa­ rent sein. Weiterhin kommen sie nicht notwendigerweise in ei­ ner Reihenfolge von vorne nach hinten an. Jedes Polygonfrag­ ment umfaßt eine Information, die mindestens zwei Eigenschaf­ ten beschreibt. Die erste Eigenschaft ist die seitliche Er­ streckung des Polygonfragments auf dem Bildschirm (eine "Multisample-Maske" oder eine Subpixel-Sample-Matrix). Die zweite Eigenschaft ist das Tiefenverhalten (depth behavior). Das Tiefenverhalten ist definiert als eine Tiefe im Zentrum der Spannweite und die Tiefenneigungen in einer Pixelzeile und in den Elementrichtungen.
Jedes neue Polygonfragment wird mit allen vorher gespeicher­ ten Polygonfragmenten innerhalb einer Spannweite verglichen. Teile des neuen Polygons, die hinter vorherigen Polygonen verborgen sind, werden durch das Löschen zugehöriger Bits in einer Abdeckungsmaske gelöscht. Teile vorherigen Polygone, die sich hinter dem neuen Polygon befinden, werden ebenfalls gelöscht. Wenn das neue Polygon vollständig durch frühere Po­ lygone gelöscht wird, so wird nichts Neues in die Daten, die in den Spannweiten gespeichert sind, zurückgeschrieben. Wei­ terhin werden frühere Polygone, die nun vollständig gelöscht sind, aus dem Speicher gelöscht, wenn Spannweitendaten in den Bildpufferspeicher zurückgeschrieben werden.
Da neue Polygonfragmente innerhalb einer Spannweite angesam­ melt werden, ist es möglich, daß schließlich mehr Daten für das Zurückschreiben in den Bildpufferspeicher vorhanden sind, als Platz verfügbar ist. Wenn dies auftritt, wird das System ein oder mehrere Paare von Polygonfragmenten verschmelzen, bis die Menge der zu speichernden Daten in den Speicher des Bildpufferspeichers paßt.
Es wird beobachtet, daß die angesammelten Polygonfragmente in einem Anzeigebild aufgelöst werden können, wobei dies die ro­ ten, grünen und blauen Werte für jeden der vier Pixel in ei­ ner Spannweite darstellt. Diese Anzeigebilddaten können auch im Spannweitendatensatz oder sonstwo gespeichert werden. Es wird auch beobachtet, daß nur ein aufgelöster Farbton (shade) (der rote, grüne und blaue Wert) für jeden Pixel vorhanden ist, wohingegen es viele Polygonfragmente, die Farbinformati­ on für jeden Pixel liefern, geben kann.
Es wurde vorher erläutert, daß wenn die Polygone verarbeitet werden, die "gewinnenden" Subpixelabtastproben mit der Farbe des Polygons und den einzelnen Z-Tiefen, die für jede Subpi­ xelabtastprobe eindeutig sind, bestückt werden. Eine Ab­ deckung von Bildpunkten wurde dann auf der Ebene der Subpixel durch das Vergleichen der neuen und der gespeicherten Z-Tie­ fen bestimmt. Der gewinnende Subpixel wurde dann mit seiner zugehörigen Farbe gespeichert. Das Anzeigebild wurde dann durch das Mitteln der Farbwerte für die Subpixel innerhalb jedes Pixels bestimmt.
Die Perspektive Z (Tiefe) wird verwendet, wenn die Ab­ deckungsverarbeitung durchgeführt wird, da die Tiefe in einem Bildschirmraum linear interpoliert werden kann. Die Tiefe im Zentrum einer Spannweite wird zusammen mit den Tiefenneigun­ gen in einer Zeile und den Elementrichtungen gespeichert. Aus diesen Werten kann die Tiefe jeder Abtastprobe rekonstruiert werden, wenn dies notwendig werden sollte. Dies vermindert die Bildpufferspeicheranforderungen von einem Tiefenwert pro Abtastung auf einen Tiefenwert und zwei Neigungswerte pro Spannweite. Diese Speicherreduktion weist im Vergleich zu bisherigen Multisample-Lösungen, auf der Basis einer 2 × 2 Pi­ xelspannweite mit 9 Abtastungen pro Pixel ungefähr den Faktor 12 auf.
Eine Abdeckung wird dann auf der Abtastebene aufgelöst, so daß Kanten der Ineinanderschachtelungen mit hoher Qualität dargestellt werden. Wenn es notwendig ist, werden die Abtast­ tiefen für die neuen und vorhergehenden Polygone rekonstru­ iert, verglichen, und dann verwendet, um jede Abtastprobe dem passenden Polygon zuzuweisen.
Die Transparenz wird in einer Weise aufgelöst, die ähnlich dem Verfahren ist, das für den adaptiven Multisampler verwen­ det wird. Insbesondere werden mehrere transparente "Eigentümer" für jede Abtastprobe ermöglicht. Das passende visuelle Ergebnis wird durch das Verarbeiten transparenter Polygone in einer Reihenfolge von hinten nach vorn berechnet. Die aktuell bevorzugte Ausführungsform verbessert das Verfah­ ren durch das korrekte Lösen des Problems der Ineinander­ schachtelung transparenter Polygone durch das Erzwingen einer Verschmelzung, wenn eine Ineinanderschachtelung detektiert wird. Die Verschmelzungsfunktion löst dann eine Kante des Schnittpunktes korrekt auf, so daß keine Zacken (jaggies) auftreten.
Die bevorzugte Ausführungsform muß auch Polygondatensätze sortieren. Polygondatensätze werden nach der Tiefe innerhalb einer Spannweite sortiert. Dies wird vorgenommen, um die kor­ rekte Auflösung der Transparenz zu erleichtern, und um ein wirksames Verschmelzen, wenn dies notwendig ist, um die An­ forderungen des Bildpufferspeichers zu erfüllen, zu unter­ stützen. Jedem neuen Polygon wird, wenn es verarbeitet wird, sein passender Platz in einer Sortierliste zugewiesen, so daß die Sortieroperation zum größten Teil "frei" ist.
Es ist nützlich zu wissen, daß in einer alternativen Ausfüh­ rungsform das Sortierverfahren ausgedehnter gestaltet werden kann. Beispielsweise kann die Sortierliste so angelegt wer­ den, daß sie aus zwei Abschnitten besteht. Der erste Ab­ schnitt umfaßt alle transparenten Polygone, die untereinander sortiert sind. Der zweite Abschnitt umfaßt alle undurchsich­ tigen Polygone, die auch untereinander sortiert sind. Diese Sortierlösung unterscheidet sich vom adaptiven Multisampler, der es nicht erforderlich macht, daß die undurchsichtigen Po­ lygone getrennt untereinander sortiert sind.
Es wurde durch Experimente bestimmt, daß man etwas bessere Ergebnisse durch eine Sortierung auf der Basis einer "mittleren" Tiefe als auf der Basis der Tiefe im Zentrum der Spannweite erhält. Diese Berechnung wird nebenbei erledigt. Die exakte Wahl der Sortierkriterien ist jedoch irrelevant. Natürlich wird, wenn sich zwei Polygone überlappen, das Poly­ gon im Vordergrund in jedem Abschnitt der sortierten Liste an erster Stelle angeordnet sein.
Ein Verschmelzen (merging) tritt auf, wenn das System er­ kennt, daß zu viele Daten nach der Verarbeitung eines neuen Polygons in den Bildpufferspeicher zurückgeschrieben werden müssen. Es können mehrere Verschmelzungen notwendig werden, um in die Grenzen des Speichers zurück zu gelangen. Kandida­ ten für die Verschmelzung werden aus Polygonen ausgewählt, die sich in der sortierten Liste nebeneinander befinden.
Die ersten Polygone (transparent oder undurchsichtig), die verschmelzt werden, werden die beiden Polygone sein, die in ihren Z-Tiefenwerten am dichtesten beieinander liegen. Das Verschmelzungsergebnis wird dann als ein einzelnes Polygon betrachtet. Wenn zusätzliche Verschmelzungen benötigt werden, kehrt das System zurück, um das nächste Paar, das bezüglich der Z-Tiefe am dichtesten beisammen liegt, zu bestimmen und dieses zu verschmelzen.
Die verschmolzenen Tiefendaten werden so bestimmt, daß sie den gewichteten Mittelwert der Tiefendaten der zwei ausge­ wählten Polygone darstellen. Der Wichtungsfaktor für jedes Polygon ist die Anzahl der Abtastproben, die jedes Polygon in der Spannweite gewinnt. Der Renormierungsfaktor ist dann die Summe der Zahl der Abtastproben, die den ausgewählten Polygo­ nen zugewiesen sind, und nicht die Summe der Abtastproben in einer sich ergebenden Abtastmaske. Das kommt daher, daß, wenn die ausgewählten Polygone transparent sind und sie sich über­ lappen, einige Abtastproben doppelt gezählt werden, und zu einer späteren Zeit zweimal aufgeteilt werden müssen. Die verschmolzene Polygonabtastmaske wird als boolesche ODER-Ver­ knüpfung zweier eingegebenen Polygonmasken definiert.
Das Verschmelzen von Farb- und Transmissionsdaten ist etwas komplexer. Die ausgewählten Polygone können sich überlappen, und in den überlappenden Gebieten wird die Farbe eines hinte­ ren Polygons durch die Transmission eines vorderen Polygons abgeschwächt. Die vorderen und hinteren Polygone können auch miteinander eine Verschachtelung bilden. In diesem Fall kön­ nen Teile der vorderen und hinteren Polygone sich hinterein­ ander befinden. Der Transmissionswert durch die überlappten Gebiete ist das Produkt der zwei Transmissionswerte.
Wenn man berücksichtigt, daß das Verschmelzen von Rot, Grün, Blau und der Transmission Pixel für Pixel erfolgt, gestalten sich diese Schritte folgendermaßen. Zuerst findet eine Ver­ schmelzung zwischen zwei Polygonen, auf die als erstes Poly­ gon und als zweites Polygon Bezug genommen wird, statt. Als zweites werden boolesche Operationen mit zwei Abtastmasken verwendet, um vier nicht überlappende Gebiete im Pixel zu be­ stimmen. Die vier Gebiete werden definiert als nur das erste Polygon, nur das zweite Polygon, das erste Polygon hinter dem zweiten Polygon, und das zweite Polygon hinter dem ersten Po­ lygon. Als drittes werden Abtastzählwerte, die jedem dieser vier Gebiete zugehören, bestimmt und verwendet, um den Ver­ schmelzungsprozeß zu gewichten.
Beispielsweise seien N1 die Abtastproben für das erste Poly­ gon, N2 die Abtastproben für das zweite Polygon, N12 die Ab­ tastproben für das erste Polygon, das sich vor dem zweiten Polygon befindet, und N21 die Abtastproben für das zweite Po­ lygon, das sich vor dem ersten Polygon befindet. NT sei die Summe aus N1 + N2 + N12 + N21, was den Abtastzählwert für die boolesche Verschmelzung der Abtastmasken für das erste Poly­ gon und das zweite Polygon darstellt, wobei dieser die Zahl der Abtastproben im Pixel nicht überschreiten kann. Gleichung 1 zeigt, das sich die verschmolzene Transmission ergibt zu:
Tm = [T1.N1 + T2.N2 + T1.T2.(N12 + N21)]/NT
Man beachte, daß die Transmission einen Wert zwischen 0 (undurchsichtig) und 1 (transparent) annimmt, so daß Tm immer zwischen T1 und T2 liegt.
Die verschmolzene Farbe (merged color) ist anhand der roten Komponente in Gleichung 2 gezeigt:
Rm = [R1.N1 + R2.N2 + R1.T2.N21 + R2.T1.N12)]/NT
Die verschmolzene Farbe ist anhand der grünen Komponente in Gleichung 3 gezeigt:
Gm = [G1.N1 + G2.N2 + G1.T2.N21 + G2.T1.N12)]/NT
Die verschmolzene Farbe ist anhand der blauen Komponente in Gleichung 4 gezeigt:
Bm = [B1.N1 + B2.N2 + B1.T2.N21 + B2.T1.N12)]/NT
Diese Berechnungen in den Gleichungen 2, 3 und 4 können neu angeordnet werden, um jegliche Hardwareimplementierung zu verbessern. Somit ist ihre exakte Reihenfolge unerheblich.
Eine andere Beobachtung, die man beim obigen Verschmelzungs­ prozeß macht, ist die, daß er für jede Kombination aus un­ durchsichtigen und transparenten Polygonen korrekt funktio­ niert. Wenn sowohl das erste als auch das zweite Polygon un­ durchsichtig sind, so sind T1 und T2 beide 0, so wie es N12 und N21 sind. Die aktuell bevorzugte Ausführungsform ver­ schmilzt keine Polygone, bei denen ein Polygon undurchsichtig und das andere Polygon dies nicht ist, da der implizite Zweck im Verschmelzungsverfahren darin besteht, daß die erste und zweiten Polygone irgendwie zueinander gehören, wobei diese Wahl aber nicht als kritisch oder einschränkend für die vor­ liegende Erfindung betrachtet werden soll.
Die vorliegende Erfindung verwendet eine Datenstruktur, die als Spannweitendatensatz (span record) bezeichnet wird. Poly­ gondaten werden im Spannweitendatensatz gespeichert und unter Verwendung des begrenzten Speicherplatzes des Bildpufferspei­ chers so organisiert, daß sie eine maximale Flexibilität auf­ weisen. Werte, die einmal in jeder Spannweite auftauchen, um­ fassen den Zählwert für die Zahl der aktuell gespeicherten Polygonfragmente und das aufgelöste Anzeigebild für die vier Pixel der entsprechenden Spannweite. Weiterhin können diese Daten doppelt gepuffert werden, um die Geschwindigkeit des Grafiksystem zu erhöhen.
Werte, die einmal für jedes Polygon auftauchen, umfassen den Tiefenwert für das Zentrum der Spannweite, die beiden Werte für die Tiefenneigung und vier Bits, die anzeigen, welche Pi­ xel in der Spannweite tatsächlich Stücke des Polygons enthal­ ten. Für jedes dieser Bits, das gesetzt ist, gibt es einen Farbtondatenblock für einen entsprechenden Pixel, der die Farb- und die Transmissionswerte und die Pixelabtastmaske enthält. Pixeln, die keine Abtastproben aufweisen, wird kein Farbtondatenblock zugewiesen, was Platz schafft für die Ver­ wendung durch andere Pixel und Polygone.
Die aktuell bevorzugte Ausführungsform speichert Polygonda­ tenblöcke, die von einem Ende des Spannweitendatensatzes an­ steigen (direkt auf die Spannweitendaten folgend), und Farbtonblöcke, die vom anderen Ende des Spannweitendatensat­ zes abnehmen. Dies gestattet es, daß derselbe Speicherbereich im Bildpufferspeicher in Abhängigkeit von den augenblickli­ chen Umständen und Bedürfnissen für jeden Typ von Blöcken verwendet werden kann.
In der aktuell bevorzugten Ausführungsform werden RGB (rot, grün und blau) Farbkomponenten als blocknormierte Werte mit 5 Bits für Rot, 6 Bits für Grün, 5 Bits für Blau und 3 Bits für den Exponenten gespeichert. Diese Bits liefern eine visuelle Leistung, die einer 12 Bit Farbdarstellung (die für Anwendun­ gen mit hohen Qualitätsansprüchen benötigt wird) nahezu gleichwertig ist, während beträchtlicher Platz im Bildpuffer­ speicher gespart werden kann.
Es ist wichtig zu erkennen, daß die Farbkomponenten mit der Polygondeckfähigkeit vor der Aufnahme durch den Pixelprozes­ sor im Vorhinein multipliziert wurden. Dieses pseudoglei­ tende Format (pseudo-float format) speichert tatsächlich die gesamte Zahl der Komponenten, die bei einer Hardwareimplemen­ tierung der arithmetischen Berechnungen, die für das Ver­ schmelzen und für die Bildauflösung notwendig sind, benötigt werden.
Die Transmission (1 - Deckfähigkeit) ist ein 6 Bit Wert, der genügt, um das Erscheinungsbild einer sich sanft ändernden Transparenz zu liefern. Zusätzlich sind 9 Subpixel Abtastbits für eine Gesamtzahl von 36 Subpixel Abtastbits je 2 × 2 Spann­ weite vorhanden. Es ist nun möglich, zu bestimmen, daß somit der Farbtondatenblock 34 Bits aufweist (die Summe von 5 + 6 + 5 + 3 + 6 + 9 Bits in der aktuell bevorzugten Ausführungs­ form).
Eine zusätzliche Genauigkeit kann für die Transmission be­ reitgestellt werden, und es können mehr Subpixel-Abtastwerte verwendet werden. Dies ist jedoch wahlweise möglich und stellt für die Neuheit der Erfindung keinen kritischen Aspekt dar.
Die Z-Tiefe des Zentrums der Spannweite ist eine Gleitkomma­ zahl mit einer Mantisse von 15 Bits (plus einem versteckten Bit) und einem Exponenten von 7 Bits. Weder die Mantisse noch der Exponent benötigen ein Vorzeichenbit, da die Tiefenwerte alle zwischen 0 und 1 liegen (und somit immer positiv sind). Die Tiefenneigungen sind blocknormierte kurze Gleitkommazah­ len mit einer mit Vorzeichen versehenen Mantisse von 6 Bits und einem gewöhnlich mit Vorzeichen versehenen Exponent von 7 Bit. Vier Bits werden benötigt, um das Vorhandensein von Farbtondaten für jeden der vier Pixel der Spannweite, anzu­ zeigen. Im Ergebnis weist der Polygondatenblock somit 45 Bits (die Summe aus 22 + 6 + 6 + 7 + 4 Bits) auf.
Vier Bits sind erforderlich, um die Zahl der früheren Polygo­ ne, die in der Spannweite gespeichert sind, und das blockno­ mierte 5/6/7 Bit Farbformat (+ 3 Bits für den Exponenten) für das doppelt gepufferte Bild für jeden der vier Pixel in der Spannweite zu bezeichnen. Der Spannweiten-Overhead be­ trägt somit 156 Bits (die Summe aus 4 + 2.4 (5 + 6 + 5 + 3)).
Wenn eines Gesamtzahl von 1024 Bits für den Spannweitendaten­ satz bereitgestellt werden (was 256 Bits pro Pixel ent­ spricht), können die Spannweitendatensätze verwendet werden, um die folgenden Kombinationen aus Polygonen und Farbtonda­ tenblöcken zu liefern:
1, 2, 3 oder 4 Polygone mit jeweils 1 bis 4 Farbtonblöcken;
5 Polygone und 5 bis 18 Farbtonblöcke;
6 Polygone und 6 bis 17 Farbtonblöcke;
7 Polygone und 7 bis 16 Farbtonblöcke;
8 Polygone und 8 bis 13 Farbtonblöcke;
9 Polygone und 9 bis 13 Farbtonblöcke;
10 Polygone und 10 bis 12 Farbtonblöcke.
Die maximale Zahl von Bits, die von den 1024 Bits, die im Spannweitendatensatz vorhanden sind, benötigt werden, beträgt nur 1015, so daß etwas Speicherplatz für Änderungen in der Genauigkeit etc. verfügbar ist. Man beachte, daß 11 Polygone nur einen Raum für 10 Farbtonblöcke übrig lassen, wobei das keine vernünftige Kombination darstellt, da jedes Polygon mindestens einen Farbtonblock erhalten muß. Andererseits kön­ nen, wenn man insgesamt nur 768 Bits für den Spannweitenda­ tensatz (192 Bits pro Pixel) bereitstellt, die folgenden Kom­ binationen in der aktuell bevorzugten Ausführungsform unter­ stützt werden:
1, 2 oder 3 Polygone mit 1 bis 4 Farbtonblöcken;
4 Polygone und 4 bis 12 Farbtonblöcke;
5 Polygone und 5 bis 11 Farbtonblöcke;
6 Polygone und 6 bis 10 Farbtonblöcke;
7 Polygone und 7 oder 8 Farbtonblöcke.
Das obige Beispiel benötigt maximal 766 Bits der zugewiesen 768 Bits. Man beachte, daß das Verfahren und dessen Hardwar­ eimplementierung parametrisiert werden können, um eine konti­ nuierliche Variation der Zahl der Bits pro Spannweitendaten­ satz zu gestatten. Dieses Merkmal gestattet eine beträchtli­ che Modularität der Systemkosten und der Leistung.
Fig. 1 wird als Summe des Verfahrens der bevorzugten Ausfüh­ rungsform der vorliegenden Erfindung bereitgestellt. Für je­ des neue Polygonfragment werden die Polygonfragmentinforma­ tion und die Spannweitenadresse zum Pixelprozessor gesandt. Der Spannweitendatensatz wird dann aus dem Speicher in innere Pufferspeicher des Pixelprozessors gelesen. Das dargestellte Verfahren wird nun beschrieben.
Zu Beginn des Verfahrens ist es wichtig, daß ein Zähler für frühere Polygone jeder Spannweite auf den Wert Null initiali­ siert wird. Das Verfahren beginnt dann mit Schritt 10, der angibt, daß ein Spannweitendatensatz eines neuen Polygons durch den Pixelprozessor gelesen wird. Wenn es irgendwelche früheren Polygone gibt, wie das in Schritt 12 bestimmt wird, wird jedes, wiederum mit Schritt 14 beginnend, verarbeitet. Wenn es jedoch keine früheren Polygone gibt, so springt das Verfahren direkt zu Schritt 30, wo das Bild aktualisiert wird.
In Schritt 14 wird ein nächstes früheres Polygon in den Spei­ cher gezogen. In Schritt 16 wird das neue Polygon mit dem nächsten früheren Polygon verglichen. Der Vergleich findet in Form der Tiefeninformation für das nächste frühere Polygon und das neue Polygon statt, wobei diese verwendet wird, um zu bestimmen, welche Subpixel-Abtastproben jedes Polygons sich voreinander befinden. Verlierende Abtastproben (losing sam­ ples) jedes Polygons werden gelöscht. Man beachte, daß Abta­ stproben hinter einem transparenten Polygon niemals gelöscht werden, da sie dennoch sichtbar sind.
Während der Verarbeitung der früheren Polygone hält das Sy­ stem, wenn alle Abtastproben neuer Polygone schließlich ge­ löscht sind, die Verarbeitung an und verläßt das Verfahren, wie das in Schritt 18 gezeigt. Die existierende Information im Spannweitendatensatz im DRAM ist dennoch gültig, und es hat sich nichts geändert, was eine neue Berechnung des Anzei­ gebildes erfordern würde, so daß die Auswertung des speziel­ len Polygon/Spannweiten-Fragments vollendet ist. Es ist auch möglich, daß bei einem Polygon oder mehreren der Polygone der nächsten früheren Polygone alle jeweiligen Abtastproben ge­ löscht sind. Die nachfolgende Verarbeitung muß eine Prüfung auf das Vorhandensein von Abtastproben durchführen, um zu be­ stimmen, ob das Polygon noch existiert.
Wenn Abtastproben des neuen Polygons übrig bleiben, wie das in Schritt 18 bestimmt wird, so geht das Verfahren zu Schritt 20 weiter, um zu bestimmen, ob es noch mehr frühere Polygone gibt. Wenn dies der Fall ist, so kehrt das Verfahren zum Schritt 14 für eine Wiedergewinnung und Verarbeitung zurück. Wenn es keine früheren Polygone mehr gibt, so geht das Ver­ fahren zu Schritt 22.
Während der Betrachtung des neuen Polygons gegenüber den nächsten früheren Polygonen bestimmt das System in Schritt 22, wo das neue Polygon in eine sortierte Liste eingefügt werden soll. Das neue Polygon wird dann in die sortierte Li­ ste der Polygon/Spannweiten-Fragmente eingeschoben.
In Schritt 24 bestimmt das System, wie viel Speicherplatz be­ nötigt wird, um den Spannweitendatensatz an seinen zugewiese­ nen Platz in den DRAM zurück zu schreiben. Wenn zu viele Da­ ten vorhanden sind, so werden die Polygone in Schritt 26 ver­ schmolzen. Es kann viele Kriterien für die Auswahl, welche Polygone verschmolzen werden sollen, geben. Diese Kriterien können das Auswählen benachbarter Polygone, die in Bezug auf die Neigung etc. ähnlich sind, einschließen. Wichtig ist, daß das Verfahren von einem Auswahlproblem der Ordnung n2, bei dem jedes Polygon mit jedem anderen Polygon verglichen wird, zu einem Auswahlproblem der Ordnung n, bei dem jedes Polygon nur mit benachbarten Polygonen verglichen wird, verschoben wird.
Die Polygone, die in Schritt 26 lokalisiert wurden, werden dann in Schritt 28 verschmolzen. Das System berechnet dann die Menge des Speicherplatzes, der im Speicher erforderlich ist, durch das Zurückkehren zu Schritt 24 neu. Das Verschmel­ zen setzt sich fort, bis das Ergebnis des Schrittes 24 so ausfällt, daß die Daten passen. Es sei angemerkt, daß in der aktuell bevorzugten Ausführungsform nicht mehr als drei Ver­ schmelzungen notwendig sind, um ein neues Polygonfragment zu assimilieren. Während des Verschmelzens wird das sich erge­ bende Polygon im Speicherplatz, der von einem der beiden ver­ schmolzenen Polygone belegt wird, belassen. Das andere Poly­ gon wird durch das Löschen seiner Abtastproben ausgelöscht. Es sollte auch beachtet werden, daß die Reihenfolge der sor­ tierten Liste der Polygon/Spannweiten-Fragmente nach dem Ver­ schmelzen gültig bleibt. Es ist keine neue Sortierung der Da­ ten erforderlich.
Wenn einmal bestimmt wurde, daß die Daten in den zugewiesenen Speicherort im DRAM passen, so wird das Anzeigebild in Schritt 30 neu berechnet und in Schritt 32 gespeichert. Der Spannweitendatensatz wird in den DRAM zurück geschrieben, und das System geht zum Ausgang. Das "Gehen-zum-Ausgang" bedeu­ tet, daß das System für das nächste Polygon/Spannweiten-Frag­ ment, das in das System eingegeben wird, bereit ist. Es wer­ den für Polygone, die alle ihre Abtastproben entweder durch eine Abdeckung oder durch ein Verschmelzen verloren haben, keine Daten zurück geschrieben.
Einige Betrachtungen hinsichtlich der Leistung des Systems können zusätzlich einen Einblick in den Betrieb der aktuell bevorzugten Ausführungsform geben. Beispielsweise besteht der allem zugrunde liegende Grund des Verfahrens der vorliegenden Erfindung darin, daß sogar wenn die visuelle Umgebung in zu­ fälliger Reihenfolge (statt von vorne nach hinten) in irgend­ einer Spannweite verarbeitet wird, es relativ wenige Polygon­ fragmente gibt, wobei diese dazu neigen, sich in Bezug auf die Z-Tiefe um die wenigen "Objekte", zu denen sie gehören, anzuhäufen.
Wenn es viele Polygonfragmente innerhalb einer Spannweite gibt, so bedeckt jedes Polygonfragment nur einen Bruchteil der Spannweite und trifft typischerweise nicht auf alle vier Pixel in der 2 × 2 Matrix. Wenn genug Polygonfragmente ange­ häuft werden, bevor das Verschmelzen beginnt, so besteht eine gute Chance, daß gute Kandidaten für die Verschmelzung (das heißt, Polygonfragmente, die zueinander gehören) vorhanden sind. Idealerweise sollten Polygonfragmente, die verschmolzen werden, so dicht zusammen liegen, daß es unwahrscheinlich ist, daß nachfolgende Polygonfragmente bezüglich der Z-Tiefe zwischen diese gelangen können. Wenn die Polygonfragmente wirklich zusammen gehören, so werden sie aller Wahrschein­ lichkeit nach ähnliche Farbtonwerte aufweisen. Und schließ­ lich werden, da die mittlere "Tiefenkomplexität" des Bildes dazu neigt, gering zu sein (ungefähr 3 bis 5), nur relativ wenige Spannweiten überhaupt ein Verschmelzen aufweisen.
Bilder, die durch den Pixelprozessor der aktuell bevorzugten Ausführungsform erzeugt werden, bestätigen die Leistung des Systems. In einer Abtasttestsequenz besteht eine Datenbasis aus elf Sätzen von vier ineinander verschachtelten Objekten und einem Hintergrundterrain und einem komplexen Himmel/Erde- Modell. Die Polygone der Datenbasis wurden in vier Durchläu­ fen für jedes der vier Polygone in jedem Modell verarbeitet, so daß die Reihenfolge, in der man auf sie trifft, patholo­ gisch nicht die Reihenfolge von vorn nach hinten noch eine Reihenfolge, die durch das Objekt geordnet ist, war. Die Bildgröße betrug 128 mal 96 Spannweiten, und es wurden nahezu 39000 Polygone gerendert. Es wurden über 237000 Poly­ gon/Spannweitenfragmente verarbeitet. Ohne ein Verschmelzen erforderte die Szene 58 Polygonfragmente pro Spannweite und 90 Farbtondatenblöcke pro Spannweite. Es gab etwas über 11000 erste Verschmelzungen, ungefähr 2000 zweite Verschmelzungen und 56 dritte Verschmelzungen. Die maximale Differenz im An­ zeigebild zwischen dem "perfekten" Bild und der aktuell be­ vorzugten Ausführungsform betrug bei einigen wenigen Pixeln 24% und weniger als 12% bei den meisten Pixeln, was ungefähr gleich ist wie bei einer einfachen Subpixelabtastung der Va­ riation.
Es sollte verständlich sein, daß die oben beschriebenen An­ ordnungen nur als Beispiel für die Anwendung der Prinzipien der vorliegenden Erfindung dienen sollen. Verschiedene Modi­ fikationen und alternative Anordnungen können von Fachleuten ins Auge gefaßt werden, ohne von der Idee und dem Umfang der vorliegenden Erfindung abzuweichen. Die angefügten Ansprüchen sollen diese Modifikationen und Anordnungen abdecken.

Claims (38)

1. Verfahren für das Erzeugen eines Multisample-Z-Buffer-Pi­ xelprozessors auf Spannweitenbasis in einem Computergrafiksy­ stem, um so die Menge der Daten, die für jeden Pixel in einem Bildpufferspeicher gespeichert werden müssen, zu vermindern, wobei das Verfahren die folgenden Schritte umfaßt:
  • 1. Bestimmen einer Spannweite als einer Gruppe von zu einander in Bezug stehenden Pixeln, die als eine kontinuier­ liche Anordnung angeordnet sind, wobei jede Spannweite mit mindestens einem Polygonfragment, das in mindestens einem Pi­ xel der Spannweite sichtbar ist, in Verbindung gebracht wird;
  • 2. Empfangen von Polygonfragmenten für jede Spannweite im Pixelprozessor;
  • 3. Bestimmen welche Polygonfragmente in jeder Spann­ weite sichtbar sind; und
  • 4. Speichern der in jeder Spannweite sichtbaren Poly­ gonfragmente zurück in den Bildpufferspeicher für die Dar­ stellung in einer Bildanzeigevorrichtung.
2. Verfahren nach Anspruch 1, wobei das Verfahren weiter den Schritt des Festsetzens der Spannweite, so daß sie mindestens vier kontinuierliche Pixel aufweist, umfaßt.
3. Verfahren nach Anspruch 1, wobei das Verfahren weiter den Schritt des Festsetzens der Spannweite als eine kontinuierli­ che Anordnung von Pixeln, die eine Matrix bilden, die eine gleiche Zahl von Zeilen und Spalten besitzt, umfaßt, um somit Nutzen aus der Gebietskohärenz zu ziehen.
4. Verfahren nach Anspruch 1, wobei das Verfahren weiter den Schritt des Festsetzens der Spannweite als eine kontinuierli­ che 2 × 2 Anordnung von vier Pixeln umfaßt.
5. Verfahren nach Anspruch 1, wobei das Verfahren weiter den Schritt der Verarbeitung von Polygonfragmenten, die undurch­ sichtig oder transparent sind oder einen dazwischen liegenden Zustand aufweisen, umfaßt, um somit korrekte Anzeigeeigen­ schaften für die Pixel zu bestimmen.
6. Verfahren nach Anspruch 1, wobei das Verfahren weiter den Schritt des Empfangs der Polygonfragmente in beliebiger Rei­ henfolge, um somit alle Polygonfragmente unabhängig von der Reihenfolge, in der sie zum Pixelprozessor gesandt werden, zu verarbeiten, umfaßt.
7. Verfahren nach Anspruch 1, wobei das Verfahren weiter den Schritt des Vergleichs jedes neuen Polygonfragments mit allen vorher gespeicherten Polygonfragmenten innerhalb einer Spann­ weite umfaßt, um somit zu bestimmen, welche der neuen Poly­ gonfragmente und welche der vorher gespeicherten Polygonfrag­ mente sichtbar und welche verdeckt sind.
8. Verfahren nach Anspruch 7, wobei das Verfahren weiter den Schritt des Löschens von Teilen des neuen Polygonfragments, die hinter irgend einem Teil der vorher gespeicherten Poly­ gonfragmente verborgen sind, umfaßt.
9. Verfahren nach Anspruch 8, wobei das Verfahren weiter den Schritt des Löschens von Teilen des neuen Polygonfragments, die hinter irgend einem Teil der vorher gespeicherten Poly­ gonfragmente verborgen sind, durch das Löschen zugehörige Da­ tenbits in einer Abdeckungsmaske umfaßt.
10. Verfahren nach Anspruch 9, wobei das Verfahren weiter den Schritt des Löschens von Teilen der vorher gespeicherten Po­ lygonfragmente, von denen bestimmt wurde, das sie sich hinter dem neuen Polygonfragment befinden, umfaßt.
11. Verfahren nach Anspruch 8, wobei das Verfahren weiter den Schritt des Zurückschreibens von keinen neuen Daten in den Bildpufferspeicher, wenn das neue Polygon vollständig hinter den vorher gespeicherten Polygonfragmenten versteckt ist, um­ faßt.
12. Verfahren nach Anspruch 10, wobei das Verfahren weiter den Schritt des Löschens von Teilen der vorher gespeicherten Polygonfragmente, von denen bestimmt wurde, daß sie hinter dem neuen Polygonfragment angeordnet sind, durch das Löschen der Teile der vorher gespeicherten Polygonfragmente, wenn die Spannweitendaten zurück in den Bildpufferspeicher geschrieben werden, umfaßt.
13. Verfahren nach Anspruch 1, wobei das Verfahren weiter folgende Schritte umfaßt:
  • 1. Erzeugen einer Menge von Spannweitendaten, die grö­ ßer als der verfügbare Speicherplatz im Bildpufferspeicher ist; und
  • 2. Verarbeiten der Spannweitendaten in einer Weise, so daß die Spannweitendaten in den verfügbaren Speicherplatz des Bildpufferspeichers passen.
14. Verfahren nach Anspruch 13, wobei das Verfahren weiter den Schritt des Verarbeitens der Spannweitendaten in einer Weise, so daß sie in den verfügbaren Speicherplatz des Bildp­ ufferspeichers passen, durch das Verschmelzen von mindestens einem Paar von Polygonfragmenten, bis die Spannweitendaten kleiner als der verfügbare Speicherplatz des Bildpufferspei­ chers sind, umfaßt.
15. Verfahren nach Anspruch 14, wobei das Verfahren weiter die folgenden Schritte umfaßt:
  • 1. Sortieren der Polygonfragmente in einer Sortierliste innerhalb der Spannweite, um somit zumindest eine korrekte Auflösung der Transparenz zu erleichtern und um ein wirksames Verschmelzen zu unterstützen; und
  • 2. Auswählen von Kandidaten für die Verschmelzung aus den ineinander geschachtelten Polygonfragmenten in der Sor­ tierliste.
16. Verfahren nach Anspruch 14, wobei das Verfahren weiter folgende Schritte umfaßt:
  • 1. Sortieren der Polygonfragmente innerhalb der Spann­ weite in einer Sortierliste, um somit zumindest die korrekte Auflösung der Transparenz zu erleichtern, und um das wirksame Verschmelzen zu unterstützen; und
  • 2. Auswählen von Kandidaten für die Verschmelzung aus den Polygonfragmenten, die sich in der Sortierliste nebenein­ ander befinden.
17. Verfahren nach Anspruch 14, wobei das Verfahren weiter folgende Schritte umfaßt:
  • 1. Sortieren der Polygonfragmente innerhalb der Spann­ weite in einer Sortierliste, wie sie durch das Nebeneinander­ liegen bestimmt wurden, um somit zumindest die korrekte Auf­ lösung der Transparenz zu erleichtern, und um das wirksame Verschmelzen zu unterstützen; und
  • 2. Auswählen von Kandidaten für die Verschmelzung aus den Polygonfragmenten, die sich in der Sortierliste nebenein­ ander befinden.
18. Verfahren nach Anspruch 16, wobei das Verfahren weiter den Schritt des Auswählens der Kandidaten für die Verschmel­ zung aus den Polygonfragmenten nach Auswahlkriterien der Ord­ nung n, wobei benachbarte Polygone verglichen werden, umfaßt, wobei die verschmolzenen Polygonfragmente dann als ein einzi­ ge Polygonfragment, das dieselbe Position innerhalb der Sor­ tierliste beibehält, betrachtet werden.
19. Verfahren nach Anspruch 18, wobei das Verfahren weiter folgende Schritte umfaßt:
  • 1. Bestimmen, ob die Spannweitendaten in den verfügba­ ren Speicherplatz des Bildpufferspeichers nach dem Verschmel­ zen von mindestens einem Paar von Polygonfragmenten passen;
  • 2. Auswählen eines nächsten geeigneten Paars von Poly­ gonfragmenten gemäß den Auswählkriterien der Ordnung n, wobei benachbarte Polygone innerhalb der Sortierliste verglichen werden, wenn die Spannweitendaten nicht in den verfügbaren Speicherplatz passen;
  • 3. Verschmelzen des nächsten geeigneten Paars von Poly­ gonfragmenten; und
  • 4. Wiederholen der Schritte (1) bis (3), bis die Spann­ weitendaten kleiner als der verfügbare Speicherplatz des Bil­ dpufferspeichers sind.
20. Verfahren nach Anspruch 14, wobei das Verfahren weiter den Schritt des Aufteilens der Sortierliste in zwei getrennte Kategorien von Polygonfragmenten, (1) in eine Vielzahl von transparenten Polygonen, die unter sich sortiert sind, und (2) in eine Vielzahl undurchsichtiger Polygone, die unter sich sortiert sind, umfaßt.
21. Verfahren nach Anspruch 20, wobei das Verfahren weiter folgende Schritte umfaßt:
  • 1. Sortieren der Polygone durch das Plazieren eines er­ sten Polygons vor einem zweiten Polygon in der Sortierliste, wenn das erste Polygon das zweite Polygon überlappt; und
  • 2. wenn das erste Polygon keine Überlappung bildet und nicht durch das zweite Polygon überlappt wird, Sortieren der Polygone relativ zu einer mittleren Z-Tiefe.
22. Verfahren nach Anspruch 14, wobei das Verfahren weiter den Schritt des Verschmelzens von mindestens einem Paar von Polygonfragmenten in Bezug auf einen gewichteten Mittelwert ihrer Tiefe umfaßt.
23. Verfahren nach Anspruch 22, wobei das Verfahren weiter den Schritt des Definierens des gewichteten Mittelwertes des Paars von Polygonfragmenten als eine Gesamtzahl von Abtast­ proben, die jedes Polygonfragment in der Spannweite gewinnt, umfaßt.
24. Verfahren nach Anspruch 23, wobei das Verfahren weiter den Schritt des Definierens eines Renormierungsfaktors als eine Summe der Gesamtzahl von Abtastproben, die dem Paar von Polygonfragmenten zugewiesen ist, umfaßt.
25. Verfahren nach Anspruch 14, wobei das Verfahren weiter den Schritt des Darstellens der Farbe, der Transmission und des gegenseitigen Durchdringens des Paars von Polygonfragmen­ ten für jeden einzelnen Pixel umfaßt.
26. Verfahren nach Anspruch 25, wobei das Verfahren weiter folgende Schritte umfaßt:
  • 1. Erzeugen einer Abtastmaske für jedes Paar von Poly­ gonfragmenten, die verschmolzen werden sollen;
  • 2. Bestimmen von vier Gebieten innerhalb des Pixels, die definiert sind als nur das erste Polygon, nur das zweite Polygon, das erste Polygon hinter dem zweiten Polygon und das zweite Polygon hinter dem ersten Polygon;
  • 3. Bestimmen einer Gesamtzahl von Zählwerten der Abta­ stproben, die mit jedem der vier Gebiete verbunden sind; und
  • 4. Bestimmen des gewichteten Mittelwertes unter Verwen­ dung der Gesamtzahl von Zählwerten der Abtastproben.
27. Verfahren nach Anspruch 26, wobei das Verfahren weiter den Schritt der Bestimmung eines verschmolzenen Transmissi­ onswertes als
Tm = [T1.N1 + T2.N2 + T1.T2.(N12 + N21)]/NT
umfaßt, wobei N1 die Gesamtzahl der Abtastproben für das er­ ste Polygon, N2 die Gesamtzahl der Proben für das zweite Po­ lygon, N12 die Gesamtzahl der Abtastproben, bei denen das er­ ste Polygon sich vor dem zweiten Polygon befindet, N21 die Gesamtzahl der Abtastproben, bei denen sich das zweite Poly­ gon vor dem ersten Polygon befindet, T1 einen Transmissions­ wert des ersten Polygons, T2 einen Transmissionswert der zweiten Polygons bezeichnet, und wobei NT = N1 + N2 + N12 + N21.
28. Verfahren nach Anspruch 27, wobei das Verfahren weiter den Schritt der Bestimmung eines verschmolzenen roten Farb­ wertes als:
Rm = [R1.N1 + R2.N2 + R1.T2.N21 + R2.T1.N12)]/NT
umfaßt, wobei R1 eine rote Komponente des ersten Polygons und R2 eine rote Komponente des zweiten Polygons ist.
29. Vetfahren nach Anspruch 27, wobei das Verfahren weiter den Schritt der Bestimmung eines verschmolzenen grünen Farb­ wertes als:
Gm = [G1.N1 + G2.N2 + G1.T2.N21 + G2.T1.N12)] / NT
umfaßt, wobei G1 eine grüne Komponente des ersten Polygons und G2 eine grüne Komponente des zweiten Polygons ist.
30. Verfahren nach Anspruch 27, wobei das Verfahren weiter den Schritt der Bestimmung eines verschmolzenen blauen Farb­ wertes als:
Bm = [B1.N1 + B2.N2 + B1.T2.N21 + B2.T1.N12)]/NT
umfaßt, wobei B1 eine blaue Komponente des ersten Polygons und B2 eine blaue Komponente des zweiten Polygons ist.
31. Verfahren nach Anspruch 25, wobei das Verfahren ferner den Schritt der Erzwingung einer Verschmelzung, wenn bestimmt wird, daß ein Paar transparenter Polygonfragmente einander durchdringt, umfaßt, um somit verschobene Pixel an einer Kante der Durchdringung des Paars von Polygonfragmenten zu eliminieren.
32. Verfahren nach Anspruch 1, wobei das Verfahren weiter den Schritt der Definition eines Spannweitendatensatzes für das Speichern von Polygonfragmentdaten in der Art, daß (1) ein Zählwert der Gesamtzahl von aktuell gespeicherten Polygon­ fragmenten und (2) ein aufgelöstes Anzeigebild für die Pixel der Spannweite eingeschlossen wird, umfaßt.
33. Verfahren nach Anspruch 32, wobei das Verfahren weiter den Schritt der Definition eines Datensatzes für jedes Poly­ gonfragment, der (1) einen Tiefenwert des Zentrums der Spann­ weite, (2) zwei Tiefenneigungswerte (depth slope values) und (3) eine Vielzahl von Flag-Bits, die anzeigen, welche Pixel in der Spannweite tatsächlich einen Teil des Polygonfragments enthalten, einschließt, umfaßt.
34. Verfahren nach Anspruch 33, wobei das Verfahren weiter den Schritt der Definition eines Farbtondatenblocks, der ei­ nem gesetzten Flag aus der Vielzahl der Flag-Bits entspricht, wobei der Farbtondatenblock (1) einen Farbwert, (2) einen Transmissionswert und (3) eine Pixelabtastmaske einschließt, umfaßt.
35. Verfahren nach Anspruch 1, wobei das Verfahren weiter den Schritt des Einschlusses von Daten, die eine seitliche Schirmausdehnung und ein Tiefenverhalten betreffen, in jedes der Polygonfragmente umfaßt.
36. Verfahren nach Anspruch 35, wobei das Verfahren weiter den Schritt des Einschlusses einer Multisample-Maske als ei­ nen Teil der seitlichen Schirmausdehnung umfaßt.
37. Verfahren nach Anspruch 36, wobei das Verfahren weiter den Schritt des Einschlusses einer Tiefe des Zentrums der Spannweite und von Tiefenneigungen in einer Pixelzeile und Elementrichtungen als zumindest einen Teil des Tiefenverhal­ tens umfaßt.
38. Verfahren nach Anspruch 1, wobei das Verfahren weiter den Schritt der Auflösung der Bildanzeige als einen Satz von ro­ ten, grünen und blauen (RGB) Werten für jeden Pixel innerhalb der Spannweite umfaßt.
DE10000594A 1999-01-11 2000-01-10 Multisample-Z-Buffer-Pixelprozessor auf Spannweitenbasis Withdrawn DE10000594A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/228,146 US6404425B1 (en) 1999-01-11 1999-01-11 Span-based multi-sample z-buffer pixel processor

Publications (1)

Publication Number Publication Date
DE10000594A1 true DE10000594A1 (de) 2000-07-13

Family

ID=22856019

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10000594A Withdrawn DE10000594A1 (de) 1999-01-11 2000-01-10 Multisample-Z-Buffer-Pixelprozessor auf Spannweitenbasis

Country Status (4)

Country Link
US (1) US6404425B1 (de)
CA (1) CA2294668C (de)
DE (1) DE10000594A1 (de)
GB (1) GB2351892A (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002163672A (ja) * 2000-11-28 2002-06-07 Mitsubishi Electric Corp 3次元グラフィックス描画装置およびその方法
JP3705739B2 (ja) * 2000-12-11 2005-10-12 株式会社ナムコ 情報記憶媒体及びゲーム装置
JP2003199061A (ja) * 2001-12-28 2003-07-11 Communication Research Laboratory デジタル放送配信方法及びデジタル放送配信システム、それを用いた課金方法
US7268779B2 (en) 2002-12-24 2007-09-11 Intel Corporation Z-buffering techniques for graphics rendering
US20050122338A1 (en) * 2003-12-05 2005-06-09 Michael Hong Apparatus and method for rendering graphics primitives using a multi-pass rendering approach
EP2104930A2 (de) 2006-12-12 2009-09-30 Evans & Sutherland Computer Corporation System und methode zum ausgleichen des rgb-licht in einem monomodulator projektor
US8300699B2 (en) * 2007-05-31 2012-10-30 Qualcomm Incorporated System, method, and computer-readable medium for reducing required throughput in an ultra-wideband system
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
US8077378B1 (en) 2008-11-12 2011-12-13 Evans & Sutherland Computer Corporation Calibration system and method for light modulation device
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

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4780711A (en) * 1985-04-12 1988-10-25 International Business Machines Corporation Anti-aliasing of raster images using assumed boundary lines
JPH06309425A (ja) 1990-10-12 1994-11-04 Internatl Business Mach Corp <Ibm> グラフィックディスプレイ装置及び方法
JPH07120435B2 (ja) 1990-12-06 1995-12-20 インターナショナル・ビジネス・マシーンズ・コーポレイション 高速zバッファの初期化および更新方法ならびにそのシステム
WO1994027240A1 (en) 1993-05-10 1994-11-24 Apple Computer, Inc. Computer graphics system having high performance multiple layer z-buffer
GB9406511D0 (en) 1994-03-31 1994-05-25 Argonaut Software Limited Z-buffering in 3-d computer graphics
US5825363A (en) 1996-05-24 1998-10-20 Microsoft Corporation Method and apparatus for determining visible surfaces

Also Published As

Publication number Publication date
CA2294668A1 (en) 2000-07-11
GB0000253D0 (en) 2000-03-01
GB2351892A (en) 2001-01-10
CA2294668C (en) 2006-09-12
US6404425B1 (en) 2002-06-11

Similar Documents

Publication Publication Date Title
DE69919497T2 (de) Verfahren und Gerät zur Volumendarstellung mit mehreren Tiefenpuffern
DE3335162C2 (de) Vorrichtung und Verfahren für graphische Darstellungen mittels Computer
DE10296401B4 (de) Verbund-Rendering von 3-D-Graphikobjekten
DE10053439B4 (de) Grafik-Beschleuniger mit Interpolationsfunktion
EP0984397B1 (de) Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster
DE69625561T2 (de) Antialiasing für Silhouetteränder
DE60008520T2 (de) Darstellung von durchsichtigen schichten
DE69908966T3 (de) Schattierung von 3-dimensionalen rechner-erzeugten bildern
DE3619420C2 (de)
DE69836924T2 (de) Block- und bandorientierter durchlauf in dreidimensionaler dreieckswiedergabe
DE3407983C2 (de) Mehrprozessorrechnersystem zum Erzeugen von Bildpunktinformationen aus in einer hierarchischen Datenstruktur definierten Objektelementen
DE19917092A1 (de) Verfahren zur Rasterisierung eines Graphikgrundelements
DE69921696T2 (de) Verfahren zur perspektivischen darstellung, ausgehend von einem voxelraum
DE3315148C2 (de)
DE112005000804T5 (de) Multi-Label-Bildsegmentierung mit GPU
DE602004003111T2 (de) Tiefen-basiertes Antialiasing
DE69531536T2 (de) Synthetisches bilderzeugungsverfahren mit sphärischem puffer
DE60008867T2 (de) Antialiasingverfahren und -anordnung zur effizienten nutzung von wenigen mischeinheiten
DE19806985B4 (de) Organisationsverfahren für volumetrische Daten, das effiziente Cache-Aufbereitungsbeschleunigungen und einen effizienten Graphik-Hardwareentwurf ermöglicht
DE10000594A1 (de) Multisample-Z-Buffer-Pixelprozessor auf Spannweitenbasis
DE19708679A1 (de) Bilddarstellungsverfahren und Vorrichtung zur Durchführung des Verfahrens
DE102010028668B4 (de) Verfahren zur räumlichen Darstellung
AT525294A1 (de) Verfahren zum Erzeugen einer hierarchischen Datenstruktur, hierarchische Datenstruktur sowie Verfahren zum Streamen von dreidimensionalen Objekten
DE102008046505B4 (de) Verfahren zur Bildverarbeitung von Stereobildern
DE69817633T2 (de) Faltung von Zeilenrasterdarstellungen

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee