DE10000594A1 - Multisample-Z-Buffer-Pixelprozessor auf Spannweitenbasis - Google Patents
Multisample-Z-Buffer-Pixelprozessor auf SpannweitenbasisInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden 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
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.
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.
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.
Fig. 1 ist ein Flußdiagramm, das die bevorzugte Ausführungs
form, die gemäß den Prinzipien der vorliegenden Erfindung
konstruiert ist, beschreibt.
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.
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.
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.
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.
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.
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.
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.
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)
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)
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 |
-
1999
- 1999-01-11 US US09/228,146 patent/US6404425B1/en not_active Expired - Lifetime
-
2000
- 2000-01-07 GB GB0000253A patent/GB2351892A/en not_active Withdrawn
- 2000-01-10 CA CA002294668A patent/CA2294668C/en not_active Expired - Lifetime
- 2000-01-10 DE DE10000594A patent/DE10000594A1/de not_active Withdrawn
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 |