DE69908966T3 - Schattierung von 3-dimensionalen rechner-erzeugten bildern - Google Patents

Schattierung von 3-dimensionalen rechner-erzeugten bildern Download PDF

Info

Publication number
DE69908966T3
DE69908966T3 DE69908966.2T DE69908966T DE69908966T3 DE 69908966 T3 DE69908966 T3 DE 69908966T3 DE 69908966 T DE69908966 T DE 69908966T DE 69908966 T3 DE69908966 T3 DE 69908966T3
Authority
DE
Germany
Prior art keywords
edge
pixel
polygon
data
tile
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69908966.2T
Other languages
English (en)
Other versions
DE69908966D1 (de
DE69908966T2 (de
Inventor
Simon Fenney
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.)
Imagination Technologies Ltd
Original Assignee
Imagination Technologies Ltd
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=10842016&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69908966(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Imagination Technologies Ltd filed Critical Imagination Technologies Ltd
Publication of DE69908966D1 publication Critical patent/DE69908966D1/de
Application granted granted Critical
Publication of DE69908966T2 publication Critical patent/DE69908966T2/de
Publication of DE69908966T3 publication Critical patent/DE69908966T3/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Description

  • Die vorliegende Erfindung betrifft das Schattieren dreidimensionaler computergenerierter Bilder und ein Verfahren und eine Vorrichtung zu dessen Durchführung.
  • Die EP-8-0549183 offenbart eine Schaltung zum Schattieren dreidimensionaler Computergrafikbilder. In ihr werden polygonale Modelle zuerst in ein Drahtgitter umgewandelt. Das ist ein Netz aus Linien, die die Scheitelpunkte des polygonalen Modells verbinden. Die Intensitäten der Scheitelpunktpixel werden berechnet, um ein Bild zu erstellen, das einem schattierten dreidimensionalen Volumenmodell gleicht. Die Intensität jedes gewünschten Pixels ist proportional zu der Komponente eines zur Bilddarstellung normalen Vektors, der parallel zur Richtung des assimilierten Auflichts verläuft. Flächen des Bildes, die hinter anderen Flächen liegen, sind verdeckt. Gewöhnlich wird ein Tiefenpuffer zum Speichern der aktuellen Tiefe jedes Pixels in dem 3D-Bild verwendet, sodass nur die sichtbaren Flächen angezeigt werden. Die Tiefen nachfolgender Pixel werden mit den aktuellen Tiefen der Pixel in dem Tiefenpuffer verglichen und er wird aktualisiert, wenn ein Pixel mit einer geringeren Tiefe angetroffen wird.
  • In unserem britischen Patent Nr. 2281682 wird ein 3D-Renderingsystem für Polygone beschrieben, bei dem jedes Objekt in einer zu betrachtenden Szene als ein Satz Flächen definiert wird, die unendlich sind. Durch jeden Elementarbereich des Bildschirms, in dem ein Bild angezeigt werden soll, wird ein Strahl von einem Blickpunkt in die dreidimensionale Szene projiziert. Dann wird die Stelle des Schnittpunktes des projizierten Strahls mit jeder Fläche ermittelt. Anhand dieser Schnittpunkte kann dann ermittelt werden, ob eine geschnittene Fläche an diesem Elementarbereich sichtbar ist. Der Elementarbereich wird dann zum Anzeigen in Abhängigkeit vom Ermittlungsergebnis schattiert.
  • Das System kann dann in einem Pipeline-Prozessor implementiert werden, der eine Anzahl von Zellen aufweist, die jeweils eine Schnittpunktberechnung mit einer Fläche durchführen können. So kann eine große Zahl von Flächenschnittpunkten gleichzeitig berechnet werden. Jede Zelle ist mit einem Satz Koeffizienten geladen, die eine Fläche definieren, für die sie den Schnittpunkttest durchführen soll.
  • In „A Parallel Algorithm for Polygon Rasterization” (Computer Graphics, Vol. 22, No. 4, August 1988) von Juan Pineda wird ein System offenbart, bei welchem Kantengleichungen eines Polygons für jedes Pixel berechnet werden und aus diesen während der Schattierung jedes Pixels bestimmt wird, ob ein Pixel in ein Polygon fällt oder nicht.
  • Eine weitere Verbesserung, die in unserer britischen Patentanmeldung Nr. 2298111 beschrieben wird, unterteilt die Bildebene in Subregionen oder Fliesen (Tiles). Hier wird die Verwendung eines variablen Fliesenortes und die Projektion eines Eingrenzungskastens um komplexe Objekte vorgeschlagen. Hierfür wird zunächst die Verteilung von Objekten auf dem sichtbaren Bildschirm für auszuwählende geeignete Fliesengrößen bestimmt. Die die verschiedenen Objekte definierenden Flächen werden dann in einer zusammenhängenden Liste abgespeichert. Dadurch wird die Notwendigkeit vermieden, identische Flächen für jede Fliese zu speichern, da ein aus vielen Flächen bestehendes Objekt in einer Reihe von Fliesen sein könnte. Die Fliesen können dann nacheinander mit Hilfe des oben beschriebenen Ray-Casting-Verfahrens gerendert werden, wobei jeweils alle Objekte innerhalb dieser Fliese gerendert werden. Dies ist ein effizientes Verfahren, weil keine Anstrengungen unternommen werden müssen, um Objekte zu rendern, von denen bekannt ist, dass sie in einer bestimmten Fliese nicht sichtbar sind.
  • Wir haben erkannt, dass die Verarbeitung dadurch optimiert werden kann, dass keine variable Fliesengröße verwendet wird, sondern stattdessen eine regelmäßige Fliesengröße auf der gesamten Bildebene verwendet wird, wobei sich die Fliesengrenzen mit Objekten schneiden können, aber ohne obiges Rendern aller Objekte in dieser Fliese einzeln nacheinander. Dies ist ein effizientes Verfahren, weil keine Anstrengungen unternommen werden müssen, um Objekte zu rendern, von denen bekannt ist, dass sie in einer bestimmten Fliese nicht sichtbar sind.
  • Wir haben erkannt, dass der Verarbeitungsaufwand weiter verringert werden kann, wenn nur Daten bezüglich wirklich sichtbarer Teile von Flächen verarbeitet werden. Wir sehen daher erfindungsgemäß ein Verfahren gemäß Patentanspruch 1 und eine Vorrichtung gemäß Patentanspruch 4 vor.
  • Wir haben erkannt, dass die Verarbeitung dadurch optimiert werden kann, dass keine variable Fliesengröße verwendet wird, sondern stattdessen eine regelmäßige Fliesengröße auf der gesamten Bildebene verwendet wird, wobei sich die Fliesengrenzen mit Objekten schneiden können, aber ohne dass Kanten beschnitten werden müssen. Dann kann ein Satz Fliesen ausgewählt werden, die einen Eingrenzungskasten für ein bestimmtes Objekt definieren, und zum Rendern dieses betreffenden Objekts brauchen nur die Fliesen innerhalb dieses Eingrenzungskastens bearbeitet zu werden. Eine Anzeigeliste der Flächen, die in diese Fliese fallen, wird zum Definieren von Objekten innerhalb des Eingrenzungskastens verwendet.
  • Eine weitere Verbesserung dieses Verfahrens verwirft diejenigen Fliesen eines Eingrenzungskastens, die das zu rendernde Objekt eigentlich nicht enthalten.
  • Im Folgenden werden bevorzugte Ausgestaltungen der Erfindung unter Bezugnahme auf die Begleitzeichnungen beispielhaft beschrieben. Dabei zeigt:
  • 1 eine grafische Darstellung einer dreieckigen Fläche zur Verwendung beim Darstellen eines Teils eines Objektes;
  • 2, wie die positiven und negativen Seiten der Flächen verwendet werden, um den sichtbaren Teil des Dreiecks in 1 zu ermitteln;
  • 3 eine schematische Darstellung der Kantenprozessoren und Flächenprozessoren, die zum Schattieren des Dreiecks in 2 verwendet werden;
  • 4 eine schematische Darstellung eines Bildschirms mit einem auf ihm befindlichen Objekt, wobei der Bildschirm in eine Anordnung von 25 Fliesen aufgeteilt ist und wobei ein Objekt mit einem konventionellen Verfahren in Dreiecke unterteilt ist;
  • 5 eine schematische Darstellung der Objektlisten, die gemäß einer Ausgestaltung der Erfindung verwendet werden; 6 ein Dreieck in einem Eingrenzungskasten mit 12 Fliesen;
  • 7a, b, c und d eine Anzahl verschiedener Dreiecke mit verschiedenen Eingrenzungskästen und den verschiedenen Fliesenzahlen, die erforderlich sind, um sie anzuzeigen;
  • 8 eine optimierte Auswahl von Fliesen für das Dreieck in 7d;
  • 9 eine Tabelle, die die Tests illustriert, die zum Ermitteln der Fliesen in 8 verwendet wurden, die zum Anzeigen des Dreiecks nicht erforderlich sind, und
  • 10 einen rechteckigen Satz Fliesen mit einem Testpunkt; und
  • 11 ein Blockdiagramm der zum Generieren von Eingrenzungskästen verwendeten Schaltungen.
  • In unserem britischen Patent Nr. 2281682 wird das in der Einleitung der vorliegenden Spezifikation zusammengefasste Renderingsystem beschrieben. Wir haben erkannt, dass jedes Objekt als ein Satz Dreiecke modelliert werden kann. Daher wären diese dann die unendlichen Flächen, die in diesem Patent bearbeitet würden. In diesem Patent würden die Kanten der Objekte die Schnittpunkte der unendlichen Flächen und die relativen Tiefen von nach vorne und nach hinten weisenden Flächen umfassen, die verwendet wurden, um zu ermitteln, ob eine bestimmte Fläche sichtbar war oder nicht (wenn eine nach hinten weisende Fläche näher ist als eine nach vorne weisende Fläche, dann ist an einem bestimmten Pixel keine von beiden sichtbar).
  • Wir haben erkannt, dass die Verarbeitung verbessert werden kann, indem die Kanten von Dreiecken durch unendliche Flächen definiert werden, die lotrecht zum Betrachtungspunkt sind. Für ein Dreieck werden somit vier Flächen benötigt, eine für die Vorderseite und drei für die Kanten, eine je Kante.
  • Bevor ein Dreieck gerendert werden kann, müssen die Gleichungen für jede Fläche berechnet werden. Diese werden in einer Polygon-Setup-Einheit anhand von Scheitelpunktdaten berechnet, die von der Anwendungssoftware geliefert werden. Die Gleichung für eine lotrechte Kantenfläche zwischen zwei Scheitelpunkten v1 und v2, die in 1 gezeigt werden und sich an (x1, y1, z1) und (x2, y2, z2) befinden, wird definiert durch: (y2 – Y1)x + (x1 – x2)y + (x2y1 – y2x1) = 0 die die Form Ax + By + C = 0 hat, wobei es sich um die Gleichung einer ebenen Fläche handelt.
  • Wenn die Gleichung ein positives Ergebnis für bestimmte xy-Werte (Pixelorte) hat, dann ist der xy-Ort auf der nach vorne weisenden Seite der Kantenfläche, und wenn sie einen negativen Wert hat, dann ist der xy-Ort auf der nach hinten weisenden Seite der Fläche. Wenn alle vier Gleichungen, die das Dreieck in 1 darstellen, einen positiven Wert haben, dann ist die Pixelposition innerhalb des Dreiecks, wie in 2 illustriert. Diese Regel gilt für jede Form, deren Verwendung einem Dreieck vorgezogen wird, z. B. einem Viereck.
  • Eine bevorzugte Ausgestaltung der Erfindung wird in 3 gezeigt. In dieser Figur gibt es eine Polygon-Setup-Einheit 2, die Dreiecke definierende Scheitelpunktdaten erhält und die gerichteten Flächendaten für die Dreiecke jeweiligen aus dem Satz von 32 Flächenprozessoren 4 zuführt. Gleichzeitig sendet sie für jedes von einem Flächenprozessor 4 bearbeitete Dreieck drei Sätze von Kantendaten zu jeder von drei Anordnungen von Kantenprozessoren 6. Diese weisen jeweils eine Tiefenauswertungseinheit auf, die ermittelt, ob der von ihnen bearbeitete Wert für die Kantenfläche für jeden von 32 separaten Pixelorten positiv oder negativ ist oder nicht. Ihre Ausgänge sind jeweils ein positives oder ein negatives Vorzeichenbit und diese Vorzeichenbits für die drei Flächen werden zu dem jeweiligen Flächenprozessor für dieses Dreieck gesendet. Wenn alle Vorzeichenbits positiv sind, wie oben beschrieben, dann weiß der Flächenprozessor, dass die von ihm bearbeitete Dreiecksfläche sichtbar ist, d. h. dass sie nicht außerhalb des Dreiecks liegt, und legt daher einen Tiefenwert als Ausgang an, der zu einem Tiefenspeicher geht, wonach weitere Tests durchgeführt werden können, um zu ermitteln, ob er als Beitrag zu dem Bild, das bearbeitet wird, hinzugenommen werden soll oder nicht. Wenn eines der Vorzeichenbits negativ ist, dann braucht der Flächenprozessor 4 nichts zu tun.
  • Die Kantenprozessoren arbeiten in der x-Richtung, d. h. entlang einer Scanlinie in einem Bild, und in einem System, das eine Array von 32 Flächenprozessoren 4 verwendet, arbeiten sie im typischen Fall in einem fliesengestützten System, das Blöcke von 32×32 Pixel bearbeitet. Der in jeden Kantenprozessor eingegebene Wert ist daher äquivalent zu By + C. Der Kantenprozessor verwendet einen ungenauen Non-Restoring-Division-Algorithmus, der am Rand des Dreiecks wirkt. Dieser Algorithmus berechnet effektiv X = C / A
  • Das ist möglich, weil der y-Wert für einen bestimmten Wert von x konstant ist, und daher ist By + C entlang einer bestimmten Scanlinie eine Konstante.
  • Tabelle 1 zeigt die mit dem Berechnen der Position eines Übergangspunktes von innenseitig zu außenseitig (positiver zu negativer Tiefe) von einer Kante verbundene Rechnungsart. Tabelle 1
    Ungenaue Non-Restoring-Division in einem Kantenprozessor
    A C Operation
    Verschiebung A links 4 (16 × A) C Addieren
    Verschiebung A links 3 (8 × A) 16A + C = C1 Wenn C1 >= 0 und A >= 0, dann subtrahieren, sonst addieren
    Verschiebung A links 2 (4 × A) C1 ± 8A = C2 Wenn C2 >= 0 und A = 0, dann subtrahieren, sonst addieren
    Verschiebung A links 1 (2 × A) C2 ± 4A = C3 Wenn C3 >= 0 und A >= 0, dann subtrahieren, sonst addieren
    A C3 ± 2A = C4 Wenn C4 >= 0 und A >= 0, dann subtrahieren, sonst addieren
    A C4 .. A = C5 Wenn C5 >= 0 und A >= 0, dann subtrahieren, sonst C5
    C5(–A) = C6
  • Die in Stufe 1A durchgeführte Operation bewegt den Abtastpunkt im Sinne von x zur Mitte. Dies ist möglich, weil die Setup-Einheit den Ausgangsort (x, y) = (o, o) in die linke obere Ecke der Fliese verschiebt. Die Operationsspalte gibt den Test an, der durchgeführt wird, um zu berechnen, ob an dem angehäuften C-Wert im nächsten Taktzyklus eine Addition oder eine Subtraktion durchzuführen ist. Diese Tests sind im Wesentlichen eine Form von binärer Suche, bei der uns jede Addition/Subtraktion dem Nulldurchgangspunkt näher bringt. Im folgenden Beispiel wird davon ausgegangen, dass der Nullübergang bei 13 ist.
    x-Ort
    Start C = negativ A + positiv 0
    Add. 16 C = positiv 16
    Subtr. 8A C = negativ 8
    Add. 4A C = negativ 12
    Add. 2A C = positiv 14
    Subtr. A C = 0 (positiv) 13
    Subtr. A 12
  • Das Vorzeichen der von dem Kantenprozessor durchgeführten Additionen/Subtraktionen wird zum Berechnen von Übergangspunkt oder Kante verwendet. Nach dem Ermitteln dieser Pixelposition kann sie dann zum Erstellen einer Maske für eine ganze Linie der Fliese verwendet werden. Diese Maske stellt einen positiven/negativen Tiefenwert für jedes Pixel in der Linie dar. Die Operation kann dann mithilfe der oben erwähnten Array von Tiefenprozessoren im Pipeline-Verfahren erfolgen, damit in jedem Taktzyklus eine Kantenmaske für eine Pixelreihe in einer Fliese erstellt werden kann. Wie oben erläutert, wird der y-Koeffizient für die Kantengleichung in Konstante C akkumuliert, bevor die Kante bearbeitet wird. Somit kann eine Kantenmaske für eine komplette Fliese mit 32×32 Pixeln in 32 Taktzyklen generiert werden, wobei h die Höhe der Fliese ist.
  • Die Masken für alle drei Kanten in dem Dreieck sind miteinander UND-verknüpft, um eine Tiefenmaske für das Dreieck zu erstellen. Die Vorzeichen der akkumulierten Tiefendaten der Pixelposition werden zu den Flächenprozessoren 4 geleitet.
  • Wenn die Tiefe positiv ist, dann ist die Fläche sichtbar. Somit kann unter Verwendung dieses Verfahrens ein Dreieck mit der gleichen Geschwindigkeit bearbeitet werden wie eine einzelne Fläche. Wenn vier Kantenprozessoren oder mehr verfügbar wären, dann könnten eindeutig auch Vierecke und andere kompliziertere Formen bearbeitet werden.
  • Wenn der Bildschirm des Bildes in eine Mehrzahl von Fliesen aufgeteilt wird, erfordern aktuelle Hardware-Ausführungen, dass alle Objekte in der Szene für jede Fliese bearbeitet werden müssen. Dies ist ineffizient, da es bedeutet, dass alle Fliesen für alle Objekte bearbeitet werden müssen.
  • In konventionellen Renderingsystemen erfordert das Rendern des Bildschirms Fliese für Fliese, dass Objekte an Fliesengrenzen beschnitten werden, und daher müssen die Schnittstellen mit Fliesengrenzen definierenden Daten definiert werden (siehe 4).
  • Es müssen nur die Objekte bearbeitet werden, die einen bestimmten Regionenbereich schneiden. Wie oben erklärt, ergibt, wenn ein Objekt in Bildschirmraum definiert ist, ein Vergleich der Scheitelpunkte, die das Objekt, wie z. B. ein Dreieck, definieren, einen Eingrenzungskasten für dieses Objekt. Ein Eingrenzungskasten definiert einen rechteckigen Bereich innerhalb des Bildschirms, der das Objekt enthält. 4 zeigt eine in Fliesen unterteilte Region des Bildschirms mit einem Objekt, das von einer Anzahl von Dreiecken darin dargestellt wird.
  • Ein Eingrenzungskasten für ein bestimmtes Objekt kann auf Fliesengrenzen ausgerichtet werden, sodass dann eine Liste von Fliesen innerhalb des Eingrenzungskastens erstellt werden kann. Diese Fliesenliste ist eine Teilmenge aller Fliesen in dem Bildschirm und approximiert die Fliesen, die das Objekt schneiden. Sollte sich der Eingrenzungskasten mit dem Objekt mit dem ganzen Bildschirmbereich schneiden, dann werden die Objektparameter (Koordinaten, Schattierungsdaten usw.) in einen Speicherbereich in dem System geschrieben, und es wird ein Zeiger auf den Anfang der Objektdaten generiert.
  • Das vorliegende Renderingsystem arbeitet fliesenweise, wobei es die Objekte für jede Fliese bearbeitet, bevor es zum folgenden übergeht. Die Datenstruktur wird daher zum Kennzeichnen der Objekte verwendet, die für jede Fliese bearbeitet werden müssen. Dies wird in 5 gezeigt. In dieser Figur wird in einem Regionen- oder Fliesen-Array 30 eine Liste von Fliesen innerhalb des Bildschirms erstellt. Jede Fliese ist durch x- und y-Grenzen definiert. Für jede Fliese wird eine Liste von Zeigern auf Objekte, die für diese Fliese bearbeitet werden müssen, als eine Objektliste 32 generiert. Es gibt eine separate Objektliste für jede Fliese, auf die die Regionen-Array zeigt. Das Konzept des Eingrenzungskastens wird zum Erstellen einer Fliesenliste (mit Objektlisten) verwendet, der der Objektzeiger, der beim Schreiben von Daten in den Speicher erstellt wird, hinzugefügt werden muss. Die Hardware muss aber das Ende jeder Objektliste kennzeichnen, sodass eine Adresse, in die der Objektzeiger zu schreiben ist, abgeleitet werden kann. Das einfachste Verfahren hierfür ist das Speichern eines Listenendezeigers, der auf die nächste freie Stelle in der Liste zeigt. Dies kann ein Anfangsblock in der Objektliste sein.
  • Eine Verbesserung hiervon ist die Verwendung eines Cache-Speichers, der kleiner sein kann. Der Cache-Speicher speichert eine Teilmenge der Listenendezeiger. Da ein Objekt im Allgemeinen mehrere Fliesengrenzen überquert, bewirkt ein Fehltreffer am Cache-Speicher das Einlesen mehrerer Listenendezeiger und die Vorhersage der von dem Objekt überquerten Fliesen. Dies vergrößert die Effizienz des Cache-Speichers. Außerdem ermöglicht es eine gleichzeitige Unterteilung mehrerer Bilder in Fliesen durch Verschachteln der Objektdaten und Ändern des Cache-Speicherinhalts. Dieses Schalten beinhaltet das Speichern des Inhalts des Listenendezeiger-Cache-Speichers, wobei der, mit dem Cache-Speicher verbundene Speicherbereich und der zum Speichern von Objekten verwendete Speicherbereich angepasst werden. Jetzt ist der Kontexteffekt geändert. Das heißt, dass der Cache-Speicher invalidiert wurde und jetzt ein anderer Datensatz zur Unterteilung in Fliesen verfügbar ist. Das Zurückschalten des Kontextes ist der umgekehrte Vorgang und beinhaltet die Speicherung des neuen Kontextes, die Umkehr von Cache-Speicher und Objektspeicherstellen und die Invalidierung des aktuellen Cache-Speichers.
  • Die Informationen für die Objektlisten sind jetzt verfügbar. Eine Adresse für den Zeiger, der von dem Listenendezeiger-Cache-Speicher kommt, und ein Objektzeiger, der auf ein Objekt zeigt, das einen diese Fliese schneidenden Eingrenzungskasten hat. Alle Objektlisteneinträge für das Objekt, das bearbeitet wird, können dann in den Speichergeschrieben und das nächste Objekt kann bearbeitet werden.
  • Das wird mit dem Schaltkomplex von 10 realisiert. In dieser Figur werden Objektdaten in der Form von Dreiecken, Fächern, Streifen und Punkten von dem Anwendungsprogramm erhalten. Anfänglich werden alle Objektdaten in einer Umwandlungseinheit 40 in Streifen umgewandelt. Ihre Speichernutzung ist effizient. Der Konverter 40 weist einen Konverter 42 zum Umwandeln von Fächern und Seiten in Streifen und einen Konverter 44 für Punkte und Linien in Streifen auf. Die Streifendaten werden dann zu einem Eingrenzungskasten-Generator 46 gesendet, der den Eingrenzungskasten für jedes Dreieck in dem Streifen und den Eingrenzungskasten für den ganzen Streifen berechnet. Wenn der Eingrenzungskasten den Bildschirmbereich schneidet, werden die Objektdaten über lokale Lese-/Schreibzuteiler 48 ab der nächsten verfügbaren Stelle abgespeichert. Ansonsten geht das System zum nächsten Streifen über. Die Adresse, an der diese Daten abgespeichert werden, wird durch die Pipeline geleitet.
  • Ein Regionsgenerator 50 erhält die Eingrenzungskasten-Informationen und generiert eine Maske und eine Fliesenkennung für jede Fliese innerhalb des Eingrenzungskastens für den ganzen Streifen. Die Fliesenkennung wird verwendet, um auf einen Listenendezeiger-Cache-Speicher 52 zuzugreifen, um die nächste verfügbare Zeigerstelle zu lesen. Wenn dies die letzte Adresse in dem Block ist, wird ein neuer Zeigerblock für diese Fliese zugeordnet und eine Verbindung von dem aktuellen Block zu dem neuen generiert.
  • Eine Schreibanforderung an eine freie Adresse für den Zeiger, mit der Objektadresse, und die Maske für dieses Objekt werden in eine Warteschlange gesetzt. Der Listenendezeiger für die Fliese wird dann durch den Cache-Speicher mit dem nächsten verfügbaren Zeiger aktualisiert. Wenn die Schreibwarteschlange sechzehn Einträge aufweist, werden die Anforderungen von dem Zeigersortierer 54 nach Seitenadresse sortiert. Diese werden bei einem ersten Zugriff in den Speicher geschrieben. Dadurch wird die Anzahl von Seitenumbrüchen zum Speicher reduziert.
  • Die häufigste Art von billigem Block-RAM ist DRAM. Er ist mit Seiten und seitenübergreifenden Zugängen aufgebaut. Der Grund dafür ist, dass das Schließen der aktuellen Seite und das Öffnen einer neuen Seite Leistung kostet. Das Schreiben eines Zeigers auf dasselbe Objekt in mehrere Listen beinhaltet aber eine große Anzahl von Seitenübergängen, da jede Liste auf einer anderen Seite sein kann. Es ist aber wahrscheinlich, dass es zwischen einem ankommenden Objekt und dem nächsten Objekt eine Ähnlichkeit gibt. Das bedeutet, dass das nächste Objekt wahrscheinlich in ähnliche Objektlisten wie aktuelle und vorhergehende Objekte gesetzt wird. Bei einer Objektliste sind die Adressen im Wesentlichen sequenziell, und es ist daher erwünscht, so viele Zeiger zur gleichen Zeit in die gleiche Liste zu schreiben, wie Adressenkohärenz zwischen Zeigern vorhanden ist, was durch Speichern einer Anzahl von Zeigern (z. B. über einen Bereich von Objekten) und Sortieren dieser in Seitengruppen, bevor sie abgespeichert werden, erreicht werden kann. Dies führt zu einer starken Verringerung der Zahl der Seitenübergänge und somit zu einer Erhöhung der Effizienz des Systems.
  • Für einen bestimmten Objektdatensatz für ein Bild kann die Zahl der Objekte, die in jeder Fliese sichtbar sind, nicht ermittelt werden. Im schlimmsten Fall ist es dann notwendig, genug Speicherplatz für einen Zeiger auf jedes Objekt für jede Fliese zuzuordnen. Dies würde viel Speicherplatz erfordern und die Systemkosten anheben. Das kann reduziert werden, indem für jede Objektliste Blöcke zugeordnet werden und, wenn ein Block voll ist, ein neuer Block zugeordnet und eine Verbindung zu dem neuen Block eingefügt wird. Das bedeutet, dass der verwendete Speicherplatz näher an dem für die Objektlistenspeicherung erforderlichen Mindestbetrag liegt. Die Größe eines Blocks hängt von vielen Faktoren ab, wie z. B. der Breite des Speichers und der verfügbaren Bandbreite.
  • Um sowohl die Anzahl von Objektzeigern als auch die Größe von Objektdaten weiter zu verringern, kann ein weiterer Aspekt von Objektkohärenz benutzt werden. Da allgemein eine Gruppe von Dreiecken zum Darstellen eines größeren Objekts, wie z. B. einer Teekanne oder einer Kugel oder eines Tieres usw., verwendet wird, gibt es ein großes Maß an Gemeinsamkeit zwischen Dreiecken, d. h. die Dreiecke nutzen Scheitelpunkte zwischen sich gemeinsam. Durch Vergleichen der Scheitelpunkte miteinander können Dreiecke in Streifen umgewandelt werden. Ein Streifen nimmt weniger Speicherplatz ein, da nur ein oder zwei Scheitelpunkte benötigt werden, um ein neues Dreieck zu definieren, und dann nur ein Zeiger benötigt wird, um auf alle Objekte in dem Streifen zu zeigen. Dies verringert die Zahl der Objektzeiger noch weiter und verringert auch den nötigen Speicherplatz, wodurch eine Steigerung der Effizienz hinsichtlich Speicherplatz und eine Leistungssteigerung auf Grund von Bandbreitenoptimierungen bewirkt wird. 6 zeigt ein Dreieck und einen Eingrenzungskasten, wobei dieser der schattierte Teil ist. Wenn es mit konventionellen Verfahren bearbeitet wird, bedeckt die Region, in die es fällt, eine Matrix von 5×5 Fliesen und sie müsste 25 Mal bearbeitet werden. Wenn aber das Bild zunächst mit einem Eingrenzungskasten bearbeitet wird, um die Region zu definieren, die den von dem Dreieck benutzten x-, y-Koordinatenbereich enthält, dann lässt sich zeigen, dass das Dreieck nur 12 Mal bearbeitet werden muss, d. h. es bedeckt 12 Fliesen.
  • Wir haben ferner erkannt, dass das Dreieck tatsächlich nur in 10 der Fliesen in der 4×3-Matrix fällt. Der Bearbeitungsaufwand wird somit weiter verringert.
  • Andere Beispiele von Dreiecken, die nicht den ganzen rechteckigen Eingrenzungskasten abdecken, der für ihre Bearbeitung erforderlich ist, werden in den 7a bis 7d gezeigt. Das extremste Beispiel hierfür ist 7d, in der das gezeigte Dreieck tatsächlich nur in die in 8 abgebildeten 12 Fliesen fällt. Vorzugsweise wird zum Rendern dieses Dreiecks nur dieser Satz Fliesen bearbeitet.
  • Die Berechnung des Mindestsatzes von Fliesen zum Darstellen eines Dreiecks beginnt mit der groben Berechnung des rechteckigen Eingrenzungskastens. Wenn der Eingrenzungskasten eine Höhe oder. Breite von nur einer Fliese hat, dann ist eindeutig keine weitere Optimierung möglich. Ansonsten wird der Satz verringert, indem nacheinander jede Kante des Dreiecks betrachtet wird.
  • Erstens muss bekannt sein, ob das Dreieck von einem Punktesatz im Uhrzeigersinn (cw) oder entgegen den Uhrzeigersinn (acw) definiert wird. Sind diese Informationen nicht erhältlich, können sie leicht errechnet werden.
  • Eine Kante kann dann als eine unendlich lange Linie betrachtet werden, die den Raum in zwei Hälften teilt. Teilräume auf beiden Seiten der Kante werden unter Verwendung der oben beschriebenen Kantenprozessoren als innen- oder außenseitig von der Kante beschrieben, wobei der innenseitige Teilraum derjenige ist, der das Dreieck enthält, zu dem die Kante gehört. Die Ecken des Dreiecks sind an den Schnittstellen der Kantenlinien und die Fläche ist der Schnitt der innenseitigen Teilräume der drei Kanten.
  • Jede Fliese, die vollständig außenseitig von der Kante liegt, ist nicht Teil des Mindestsatzes, weil das Dreieck in dieser Fliese nicht sichtbar wäre. Wenn eine Kante vollständig horizontal oder vertikal ist, braucht sie nicht betrachtet zu werden, weil alle Fliesen in dem rechteckigen Eingrenzungskasten bereits ganz oder teilweise innenseitig von der Kante liegen.
  • Um zu prüfen, ob eine Fliese ganz außenseitig von einer Kante liegt, brauchen wird nur den Punkt an derjenigen Ecke der Fliese zu testen, die der Kante am nächsten ist. Wenn dieser Punkt außenseitig von der Kante ist, dann können wir sicher sein, dass auch die gesamte Fliese außenseitig von der Kante ist. Die Position dieses Testpunkts wird durch das Ausrichten der Kante, wie in der Tabelle in 9 angezeigt, ermittelt.
  • Die Kante selbst kann mit der folgenden Gleichung beschrieben werden: y = mx + c wobei x und y Koordinaten des Bildschirms sind, m die Linienneigung repräsentiert und c eine Konstante ist. Die Bewertung von mx + c an der Ecke einer Fliese ergibt einen Wert, der größer als die, kleiner als die oder gleich der y-Koordinate dieses Punktes ist. Der Vergleich der zwei Werte zeigt an, ob der Punkt innen- oder außenseitig von der Kante liegt. Die Interpretation dieses Ergebnisses hängt von der Ausrichtung der Kante gemäß der Tabelle in 9 ab.
  • Für jede Kante des Dreiecks muss jede Fliese in dem rechteckigen Eingrenzungskasten auf diese Weise bearbeitet werden, um zu entscheiden, ob sie aus dem Mindestsatz ausgeschlossen werden sollte oder nicht.
  • Es ist zu beachten, dass der Testpunkt an der Ecke einer Fliese auch der Testpunkt für einen größeren rechteckigen Satz Fliesen ist. Zu wissen, dass die Fliese, bei der der Testpunkt außenseitig von einer Kante liegt, bedeutet in 10, dass alle schattierten Fliesen ebenfalls außenseitig von dieser Kante liegen müssen. In diesem Beispiel, in dem der Testpunkt unten rechts liegt, ist es am effizientesten, die Fliesen des rechteckigen Eingrenzungskastens von rechts nach links und von unten nach oben zu bearbeiten, insgesamt gibt es eine große Zahl von Fliesen, die mit der Mindestzahl von Tests aus dem Mindestsatz ausgeschlossen werden können. Wenn der Testpunkt in einer anderen Ecke der Fliese ist, würde sich die Reihenfolge der Bearbeitung entsprechend ändern.

Claims (6)

  1. Verfahren zum Schattieren dreidimensionaler computergenerierter Bilder, umfassend die folgenden Schritte: Darstellen jedes Objekts in dem Bild mit einem Satz von flachen Polygonen, für jedes Polygon Liefern eines Satzes von Scheitelpunktdaten, die die Scheitelpunkte des Polygons definieren, zusammen mit Daten, die die Ausrichtung seiner Oberfläche definieren, Errechnen von Kantendaten anhand der Scheitelpunktdaten, wobei die Kantendaten mit Daten äquivalent sind, die eine Fläche lotrecht zu einem Blickpunkt und dem Polygon zugewandt definieren, für jedes Pixel, das zum Betrachten des Abschnitts des Bildes verwendet wird, in dem sich das Polygon befindet, Ableiten eines Tiefenwertes für jede Fläche, und Schattieren dieses Pixels, wenn die Tiefenwerte anzeigen, dass das Polygon an diesem Pixel sichtbar ist, dadurch gekennzeichnet, dass der Schritt des Ableitens eines Tiefenwertes für jede Fläche, die lotrecht zu dem Blickpunkt ist, das Verarbeiten von Kantendaten für jede Kante für jede Pixelabtastzeile zum Ableiten einer Kantenmaske für jede Kante für diese Pixelabtastzeile aufweist, wobei die Kantenmaske durch Ermitteln eines Übergangspunktes von innenseitig zu außenseitig der Kante durch Verwenden einer binären Suche auf dieser Pixelabtastzeile und Ermitteln anhand der Kantenmaske für jede Kante des Polygons, ob jede Pixelposition in der Abtastzeile innenseitig zu außenseitig des Polygons ist, abgeleitet wird.
  2. Verfahren nach Anspruch 1, bei dem eine Fläche an einem bestimmten Pixel sichtbar ist, wenn sein Tiefenwert ein positiver Wert ist und jede der Kantenflächen positive Tiefenwerte an diesem Pixel hat.
  3. Verfahren nach Anspruch 1, bei dem die Kantenmaske Zeile für Zeile für jede einer Vielzahl von rechteckigen Subregionen des Bildes abgeleitet wird.
  4. Vorrichtung zum Schattieren dreidimensionaler computergenerierter Bilder, umfassend die folgenden Schritte: Mittel zum Darstellen jedes Objekts in dem Bild mit einem Satz von flachen Polygonen; Mittel zum Liefern eines Satzes von Scheitelpunktdaten, die die Scheitelpunkte jedes Polygons definieren, zusammen mit Daten, die die Ausrichtung seiner Oberfläche definieren; Mittel zum Errechnen von Kantendaten anhand der Scheitelpunktdaten, wobei die Kantendaten mit Daten äquivalent sind, die eine Fläche lotrecht zu einem Blickpunkt und dem Polygon zugewandt definieren; Mittel, um für jedes Pixel, das zum Betrachten des Abschnitts des Bildes verwendet wird, in dem sich das Polygon befindet, einen Tiefenwert für jede Fläche abzuleiten; und Mittel zum Schattieren dieses Pixels, wenn die Tiefenwerte anzeigen, dass das Polygon an diesem Pixel sichtbar ist, dadurch gekennzeichnet, dass das Mittel zum Ableiten eines Tiefenwertes für jede Fläche, die lotrecht zu dem Blickpunkt ist, ein Mittel zum Verarbeiten von Kantendaten für jede Kante für jede Pixelabtastzeile zum Ableiten einer Kantenmaske für jede Kante für diese Pixelabtastzeile aufweist, wobei die Kantenmaske durch Ermitteln eines Übergangspunktes von innenseitig nach außenseitig der Kante durch Verwenden einer binären Suche auf dieser Pixelabtastzeile und Ermitteln anhand der Kantenmaske für jede Kante des Polygons, ob jede Pixelposition in der Abtastzeile innenseitig zu außenseitig des Polygons ist, abgeleitet wird.
  5. Vorrichtung nach Anspruch 5, bei der eine Fläche an einem bestimmten Pixel sichtbar ist, wenn sein Tiefenwert ein positiver Wert ist und jede der ihn umgebenden Kantenflächen an diesem Pixel einen positiven Tiefenwerte hat.
  6. Vorrichtung nach Anspruch 10, bei der die Kantenmaske Zeile für Zeile für jede einer Vielzahl von rechteckigen Subregionen des Bildes abgeleitet wird.
DE69908966.2T 1998-11-06 1999-11-08 Schattierung von 3-dimensionalen rechner-erzeugten bildern Expired - Lifetime DE69908966T3 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB9824412 1998-11-06
GB9824412A GB2343602B (en) 1998-11-06 1998-11-06 Shading 3-dimensional computer generated images
PCT/GB1999/003704 WO2000028480A1 (en) 1998-11-06 1999-11-08 Shading 3-dimensional computer generated images
EP99954168.3A EP1127337B2 (de) 1998-11-06 1999-11-08 Schattierung von 3-dimensionalen rechner-erzeugten bildern

Publications (3)

Publication Number Publication Date
DE69908966D1 DE69908966D1 (de) 2003-07-24
DE69908966T2 DE69908966T2 (de) 2004-05-19
DE69908966T3 true DE69908966T3 (de) 2014-09-04

Family

ID=10842016

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69908966.2T Expired - Lifetime DE69908966T3 (de) 1998-11-06 1999-11-08 Schattierung von 3-dimensionalen rechner-erzeugten bildern

Country Status (7)

Country Link
US (1) US6741247B1 (de)
EP (1) EP1127337B2 (de)
JP (1) JP4576050B2 (de)
AT (1) ATE243345T1 (de)
DE (1) DE69908966T3 (de)
GB (1) GB2343602B (de)
WO (1) WO2000028480A1 (de)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8692844B1 (en) 2000-09-28 2014-04-08 Nvidia Corporation Method and system for efficient antialiased rendering
WO2002039389A1 (en) * 2000-11-07 2002-05-16 Holographic Imaging Llc Computer generated hologram display system
GB2378108B (en) * 2001-07-24 2005-08-17 Imagination Tech Ltd Three dimensional graphics system
US7800631B2 (en) * 2003-03-18 2010-09-21 Qualcomm Incorporated Triangle rendering using direct evaluation
US8775997B2 (en) * 2003-09-15 2014-07-08 Nvidia Corporation System and method for testing and configuring semiconductor functional circuits
US8732644B1 (en) 2003-09-15 2014-05-20 Nvidia Corporation Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits
US8872833B2 (en) 2003-09-15 2014-10-28 Nvidia Corporation Integrated circuit configuration system and method
US8711161B1 (en) 2003-12-18 2014-04-29 Nvidia Corporation Functional component compensation reconfiguration system and method
US7567248B1 (en) * 2004-04-28 2009-07-28 Mark William R System and method for computing intersections between rays and surfaces
KR101140460B1 (ko) 2004-05-24 2012-04-30 에스티 에릭슨 에스에이 그래픽 시스템, 꼭지점 데이터의 타일 기반 변환 방법 및 컴퓨터 판독가능한 저장 매체
US8723231B1 (en) 2004-09-15 2014-05-13 Nvidia Corporation Semiconductor die micro electro-mechanical switch management system and method
US8711156B1 (en) 2004-09-30 2014-04-29 Nvidia Corporation Method and system for remapping processing elements in a pipeline of a graphics processing unit
US8427496B1 (en) 2005-05-13 2013-04-23 Nvidia Corporation Method and system for implementing compression across a graphics bus interconnect
US8698811B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Nested boustrophedonic patterns for rasterization
US9117309B1 (en) 2005-12-19 2015-08-25 Nvidia Corporation Method and system for rendering polygons with a bounding box in a graphics processor unit
US8390645B1 (en) 2005-12-19 2013-03-05 Nvidia Corporation Method and system for rendering connecting antialiased line segments
US8928676B2 (en) * 2006-06-23 2015-01-06 Nvidia Corporation Method for parallel fine rasterization in a raster stage of a graphics pipeline
US8477134B1 (en) 2006-06-30 2013-07-02 Nvidia Corporation Conservative triage of polygon status using low precision edge evaluation and high precision edge evaluation
US7737986B2 (en) * 2006-08-29 2010-06-15 Texas Instruments Incorporated Methods and systems for tiling video or still image data
US8427487B1 (en) 2006-11-02 2013-04-23 Nvidia Corporation Multiple tile output using interface compression in a raster stage
US8482567B1 (en) 2006-11-03 2013-07-09 Nvidia Corporation Line rasterization techniques
GB2452731B (en) * 2007-09-12 2010-01-13 Imagination Tech Ltd Methods and systems for generating 3-dimensional computer images
US8724483B2 (en) 2007-10-22 2014-05-13 Nvidia Corporation Loopback configuration for bi-directional interfaces
US8063903B2 (en) * 2007-11-09 2011-11-22 Nvidia Corporation Edge evaluation techniques for graphics hardware
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
GB0823468D0 (en) 2008-12-23 2009-01-28 Imagination Tech Ltd Display list control stream grouping in tile based 3D computer graphics systems
US20110063304A1 (en) 2009-09-16 2011-03-17 Nvidia Corporation Co-processing synchronizing techniques on heterogeneous graphics processing units
US9530189B2 (en) 2009-12-31 2016-12-27 Nvidia Corporation Alternate reduction ratios and threshold mechanisms for framebuffer compression
US9331869B2 (en) 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
US9171350B2 (en) 2010-10-28 2015-10-27 Nvidia Corporation Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up
US9591309B2 (en) 2012-12-31 2017-03-07 Nvidia Corporation Progressive lossy memory compression
US9607407B2 (en) 2012-12-31 2017-03-28 Nvidia Corporation Variable-width differential memory compression
US9710894B2 (en) 2013-06-04 2017-07-18 Nvidia Corporation System and method for enhanced multi-sample anti-aliasing
US9832388B2 (en) 2014-08-04 2017-11-28 Nvidia Corporation Deinterleaving interleaved high dynamic range image by using YUV interpolation
US10249092B2 (en) * 2016-11-23 2019-04-02 Simbionix Ltd. System and method for rendering complex data in a virtual reality or augmented reality environment
US10430983B2 (en) 2017-06-05 2019-10-01 Microsoft Technology Licensing, Llc Vertex pixel buffer

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0821085B2 (ja) * 1989-06-05 1996-03-04 松下電器産業株式会社 クリッピング回路
CA2026527A1 (en) * 1989-10-11 1991-04-12 Douglas A. Fischer Parallel polygon/pixel rendering engine
JP3092131B2 (ja) * 1989-12-28 2000-09-25 日本電気株式会社 画像生成装置
JPH04152483A (ja) * 1990-10-17 1992-05-26 Nec Corp 図形切り出し境界の抽出装置および抽出方法
EP0549183B1 (de) * 1991-12-23 2003-05-14 General Electric Company System zur Anzeige von räumlichen Einschnitten für Festkörpermodellflächen
JPH064679A (ja) * 1992-06-24 1994-01-14 Toshiba Corp イメージ処理装置
US5729672A (en) * 1993-07-30 1998-03-17 Videologic Limited Ray tracing method and apparatus for projecting rays through an object represented by a set of infinite surfaces
GB9315852D0 (en) 1993-07-30 1993-09-15 Video Logic Ltd Shading three-dimensional images
US5559937A (en) * 1993-08-28 1996-09-24 Namco Ltd. Clipping processing device, three-dimensional simulator device, and clipping processing method
AUPM704494A0 (en) * 1994-07-25 1994-08-18 Canon Information Systems Research Australia Pty Ltd Efficient methods for the interpretation of a graphical programming language
JP3203160B2 (ja) * 1995-08-09 2001-08-27 三菱電機株式会社 ボリューム・レンダリング装置及び方法

Also Published As

Publication number Publication date
EP1127337B2 (de) 2014-03-26
JP4576050B2 (ja) 2010-11-04
JP2002529868A (ja) 2002-09-10
EP1127337A1 (de) 2001-08-29
ATE243345T1 (de) 2003-07-15
GB2343602A (en) 2000-05-10
US6741247B1 (en) 2004-05-25
GB9824412D0 (en) 1998-12-30
DE69908966D1 (de) 2003-07-24
DE69908966T2 (de) 2004-05-19
WO2000028480A1 (en) 2000-05-18
GB2343602B (en) 2003-03-19
EP1127337B1 (de) 2003-06-18

Similar Documents

Publication Publication Date Title
DE69908966T3 (de) Schattierung von 3-dimensionalen rechner-erzeugten bildern
DE69916646T3 (de) Schattierung von 3-dimensionalen rechnererzeugten Bildern
DE102008034519B4 (de) Aufgeteilte Datenstruktur, und Verfahren zum Laden einer Partikel-basierten Simulation unter Verwendung der aufgeteilten Datenstruktur in GPU, usw.
DE69914355T2 (de) Bildverarbeitungsgerät
DE3854543T2 (de) Prioritätsverwaltung eines Tiefendatenpuffers für Echtzeitrechnersysteme zur Bilderzeugung.
DE69032932T2 (de) System und Verfahren zum unverfälschten Polygonenzeichnen
DE69130123T2 (de) Anzeigegerät und Verfahren zum Betreiben eines solchen Geräts
DE68927471T2 (de) Verfahren zur Schattierung eines graphischen Bildes
DE3855231T2 (de) Prioritätsauflösungssystem zwischen Polygonen mit Antialiasing
DE69233717T2 (de) Verbesserungen in sichtbarkeit-berechnungen fuer 3d-rechner
DE60033250T2 (de) System und Verfahren zur Darstellung mit Strahlverfolgung
DE3407983C2 (de) Mehrprozessorrechnersystem zum Erzeugen von Bildpunktinformationen aus in einer hierarchischen Datenstruktur definierten Objektelementen
DE3650129T2 (de) Verfahren zur Kantenglättung für Rechnerbilderzeugungssystem.
DE69610341T2 (de) 3-D-Bildertexturierung und -schattierung
EP1175663B1 (de) Verfahren zur rasterisierung eines graphikgrundelements
DE69100140T2 (de) Verfahren zur Anzeige eines Bildteiles einer physikalischen Struktur.
DE3689271T2 (de) Verfahren zur Bildanzeige.
DE69836924T2 (de) Block- und bandorientierter durchlauf in dreidimensionaler dreieckswiedergabe
DE69716877T2 (de) System und Verfahren zur genauen Gradientberechnung für die Texturabbildung in einem Computergraphiksystem
DE3751981T2 (de) Verfahren und Vorrichtung zur Gewinnung von Strahlungsbildern unter Verwendung eines Licht-Pufferspeichers
DE69609534T2 (de) Rechnerbasierte 3D-Darstellungsverfahren und -System
DE69329572T2 (de) Bilderzeugungsgerät
DE69120407T2 (de) Bildgenerator
DE19806985B4 (de) Organisationsverfahren für volumetrische Daten, das effiziente Cache-Aufbereitungsbeschleunigungen und einen effizienten Graphik-Hardwareentwurf ermöglicht
DE69631718T2 (de) Verfahren und Gerät zur leistungsfähigen Graphikdarstellung dreidimensionaler Szenen

Legal Events

Date Code Title Description
8363 Opposition against the patent