DE69609534T2 - Rechnerbasierte 3D-Darstellungsverfahren und -System - Google Patents

Rechnerbasierte 3D-Darstellungsverfahren und -System

Info

Publication number
DE69609534T2
DE69609534T2 DE1996609534 DE69609534T DE69609534T2 DE 69609534 T2 DE69609534 T2 DE 69609534T2 DE 1996609534 DE1996609534 DE 1996609534 DE 69609534 T DE69609534 T DE 69609534T DE 69609534 T2 DE69609534 T2 DE 69609534T2
Authority
DE
Germany
Prior art keywords
subregions
image
display
area
region
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
DE1996609534
Other languages
English (en)
Other versions
DE69609534D1 (de
Inventor
Martin Ashton
Simon James Fenney
Hossein Yassaie
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
Application filed by Imagination Technologies Ltd filed Critical Imagination Technologies Ltd
Publication of DE69609534D1 publication Critical patent/DE69609534D1/de
Application granted granted Critical
Publication of DE69609534T2 publication Critical patent/DE69609534T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects

Landscapes

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

Description

  • Die vorliegende Erfindung betrifft 3D-Rendering- Computersysteme der Art, die in unserer britischen Patentanmeldung Nr. 9414834.3 (Veröffentlichungsnummer GB- A-2 281 682) beschrieben sind.
  • Die britische Patentanmeldung Nr. 9414834.3 beschreibt ein 3D-Renderingsystem, bei dem ein Objekt in einer zu betrachtenden Szene als ein Satz von infiniten Flächen definiert wird. Durch jeden Elementarbereich eines Bildschirms, auf dem ein Bild angezeigt werden soll, wird ein Stahl von einem Blickpunkt in die dreidimensionale Szene projiziert. Dann wird der Schnittpunkt des projizierten Strahls mit jeder Fläche ermittelt. Anhand dieser Schnittpunkte kann dann ermittelt werden, ob eine neue geschnittene Fläche in diesem Elementarbereich sichtbar ist. Der Elementarbereich wird dann je nach dem Ergebnis der Ermittlung zur Anzeige schattiert dargestellt.
  • Das System wird in einem Vektorprozessor ausgeführt, der eine Reihe von Zellen umfasst, die jeweils eine Schnittpunktberechnung mit einer Fläche durchführen können. So kann eine große Zahl von Flächenschnittpunkten gleichzeitig errechnet werden. In jeder Zelle wird ein Satz von Koeffizienten geladen, die die Fläche definieren, für die der Schnittpunkttest durchgeführt werden soll.
  • Das System kann Schatten generieren, indem es Volumen im Schatten auf dieselbe Weise definiert wie feste Objekte, d. h. sie werden als ein Satz von infiniten Flächen definiert. Diese Schattenobjekte werden dann auf dieselbe Weise verarbeitet wie feste Objekte. Wenn alle Schatten- und Nicht-Schattenobjekte verarbeitet sind, kann auf einfache Weise ermittelt werden, ob die an einem bestimmten Bildpunkt sichtbare Fläche im Schatten liegt, indem die Position der sichtbaren Fläche mit der entferntesten nach vorne zeigenden Fläche und der nächsten nach hinten zeigenden Fläche des Schattenobjektes verglichen und geprüft wird, ob die sichtbare Fläche innerhalb dieses Bereiches liegt. Ist dies der Fall, dann wird ein Flag in Verbindung mit dieser Fläche gesetzt, um anzuzeigen, dass eine Änderung an ihrem Schatten oder ihrer Farbe notwendig ist, um den Effekt der Schattenbildung zu simulieren.
  • Bevorzugte Ausgestaltungen der vorliegenden Erfindung sollen die Leistung des in der britischen Patentanmeldung Nr. 9414834.3 beschriebenen Vektorprozessors verbessern, indem eine Szene in eine Reihe von Subregionen zur Verarbeitung unterteilt wird. Diese Subregionen sind vorzugsweise rechteckige Felder.
  • Eine weitere Ausgestaltung der vorliegenden Erfindung stellt ein System bereit, bei dem Lichtpunkteffekte innerhalb einer Szene generiert werden können.
  • Die Erfindung ist genauer in den beiliegenden Ansprüchen definiert, auf die nunmehr Bezug genommen werden sollte.
  • Bevorzugte Ausgestaltungen der Erfindung werden nachfolgend ausführlich beispielhaft unter Bezugnahme auf die Begleitzeichnungen beschrieben. Dabei zeigt:
  • Fig. 1 eine schematische Darstellung eines zu modellierenden Lichtpunkttyps;
  • Fig. 2A, 2B und 2C die Art und Weise, in der konkave Objekte von dem System behandelt werden;
  • Fig. 3 eine schematische Darstellung eines rechteckigen Feldes, das vier Objekte enthält, die von dem System zu verarbeiten sind;
  • Fig. 4 eine schematische Darstellung desselben Feldes, das zur Verarbeitung in vier Subfelder unterteilt ist;
  • Fig. 5 weitere Unterteilungen von Feldern;
  • Fig. 6 eine Anordnung mit veränderlicher Feldgröße;
  • Fig. 7 eine schematische Darstellung der Anordnung zur Verarbeitung von Elementen des Systems des Standes der Technik;
  • Fig. 8 eine alternative Anordnung für das System des Standes der Technik;
  • Fig. 9 eine Anordnung von Feldern mit einer unterschiedlichen Zahl von Flächen pro Feld für eine Mischverarbeitung gemäß einer Ausgestaltung der Erfindung;
  • Fig. 10 ein Blockdiagramm eines Vektorprozessors gemäß der Erfindung;
  • Fig. 11 die Art und Weise, in der Flächendaten aus dem Speicher zur Verwendung in einer Ausgestaltung der Erfindung eingelesen werden; und
  • Fig. 12 eine Mehrzahl von Vektorprozessoren gemäß einem anderen Aspekt der Erfindung.
  • Um computergenerierte dreidimensionale Bilder realistischer zu machen, ist es wichtig, den Effekt eines Lichtpunktes in einer Nachtszene simulieren zu können. So ist es beispielsweise dankbar, dass Dinge wie Autoscheinwerfer, Suchlichter und Landelichter simuliert werden sollen. Die Art des Effekts ist in Fig. 1 illustriert, wo eine Lichtquelle 2 ein kegelförmiges Lichtvolumen 4 ausleuchtet, das auf eine Fläche 6 projiziert wird. Ein auf der Fläche befindliches Objekt 8 wird vom Lichtkegel 4 beleuchtet.
  • Das kegelförmige Volumen 4 wird als Lichtvolumen bezeichnet. Dies ist im Grunde das Gegenteil zu den Schattenvolumen, die im britischen Patent Nr. 9414834.3 beschrieben sind. Ein Lichtvolumen ist eine Raumregion, deren Form durch die Eigenschaften der Lichtquelle bestimmt wird. Alle Objekte oder Teile von Objekten, die außerhalb dieses Bereiches liegen, liegen in bezug auf die Lichtquelle im Schatten.
  • Um die Szene darzustellen, wird das Objekt 8 als ein Satz von Flächen definiert, wie das Lichtvolumen 4. In dem Fall, in dem dreidimensionale Formen konkav sind, wird bevorzugt, wie auch in der britischen Patentanmeldung Nr. 9414834.3, das Objekt als eine Ansammlung konvexer Objekte zu modellieren. Dies ist in den Fig. 2A, 2B und 2C illustriert. Die Fig. 2A und 2B zeigen zwei konkave Objekte, die so angeordnet sind, dass sie sich zur Erzeugung eines Objektes mit Konkavitäten schneiden. Fig. 2C zeigt, wie ein Objekt mit Konkavitäten in zwei konvexe Objekte unterteilt werden kann.
  • Wie in der britischen Patentanmeldung Nr. 9414834.3 beschrieben, haben wir, nachdem alle konvexen Nicht- Schattenobjekte bearbeitet wurden, in jedem Bildpunkt den Abstand zur sichtbaren Fläche an diesem Punkt. Um also herauszufinden, ob sich die Fläche an diesem Bildpunkt in einem Lichtobjekt befindet, müssen wir die Flächen bearbeiten, die das Lichtvolumen 4 definieren, um die entfernteste nach vorne zeigende Fläche und die nächste nach hinten zeigende Fläche des Lichtobjektes zu ermitteln. Wenn die entfernteste nach vorne zeigende Fläche näher am Blickpunkt ist als die nächste nach hinten zeigende Fläche und die sichtbare Fläche liegt dazwischen, dann liegt diese sichtbare Fläche innerhalb des Lichtvolumens. Wenn die entfernteste nach vorne zeigende Fläche näher am Blickpunkt ist als die nächste nach hinten zeigende Fläche und die sichtbare Fläche liegt dazwischen, dann liegt die Fläche des Objektes innerhalb des Lichtvolumens, und ein Flag in Verbindung damit wird gesetzt, um anzuzeigen, dass seine Farbe modifiziert werden muss, um den Effekt von Licht zu simulieren. Wenn die entfernteste nach vorne zeigende Fläche weiter vom Blickpunkt entfernt ist als die nächste nach hinten zeigende Fläche, dann liegt das Objekt außerhalb des Lichtvolumens, und es muss ein Flag gesetzt werden, um anzuzeigen, dass diese Farbe modifiziert werden muss, um den Schatteneffekt zu simulieren.
  • Lichtvolumen werden vor den Schattenvolumen der GB 9414834.3 bearbeitet. Wenn eine Fläche eines Bildpunktes außerhalb des Lichtvolumens liegt, wird der Schattenflag in Verbindung mit der Fläche gesetzt. Im Falle von Flächen, die in das Lichtvolumen fallen, werden Schattenvolumen innerhalb des Lichtvolumens generiert, um Schatten zu simulieren, die von der Lichtquelle geworfen werden, und so werfen Objekte innerhalb des Lichtvolumens Schatten.
  • Lichtvolumen erfordern keinerlei Zusätze zur Architektur des Patentes Nr. 9414834.3. Die einzige Änderung, die erforderlich ist, ist die, dass der Operationscode in Verbindung mit jeder Ebene so erweitert werden muss, dass Ebenen als Lichtvolumenobjekte klassifiziert werden können, wie es derzeit auch einen Operationscode gibt, um Schattenvolumenobjekte anzuzeigen. Das Lichtvolumenobjekt benutzt dieselbe Logik wie das Schattenvolumenobjekt, mit der Ausnahme, dass der Ausgang zum Schattenflag umgekehrt wird, wenn die Fläche eine Lichtvolumenfläche ist.
  • Wir betrachten nunmehr Möglichkeiten, die Leistung des Renderingsystems zu verbessern. Es wurde vorgeschlagen, den Bildschirm in eine Reihe von Subregionen oder Feldern zu unterteilen. Dann werden für jedes Feld nur die Objekte innerhalb des Feldes bearbeitet. Dadurch wird die durchschnittliche Zahl der zu bearbeitenden Flächen verringert, wenn ermittelt wird, welche Fläche an einem bestimmten Bildpunkt sichtbar ist.
  • Zunächst kann mit einem groben Eliminierungsprozess, z. B. indem komplexe Objekte mit Begrenzungsvolumen umgeben werden, getestet werden, welche Objekte zu der gerade dargestellten Region gehören. Das Begrenzungsvolumen wird definiert, indem die Bereiche gefunden werden, zu denen bestimmte Objekte gehören. Die Subregionen können im allgemeinen jede beliebige Form haben. Die einfachste Technik besteht jedoch darin, den Bildschirm in rechteckige Felder zu unterteilen.
  • Alle Begrenzungsvolumen von Objekten werden auf einen Bildschirmraum projiziert (die die Bildebene definierende Anordnung von Bildpunkten) und werden anhand der Ecken der Felder getestet. Diejenigen Begrenzungsvolumen von Objekten, die vollkommen außerhalb des Feldes liegen, werden für dieses Feld verworfen. Somit wird die Anzahl von Flächen, die pro Bildpunkt innerhalb eines Feldes bearbeitet werden müssen, geringer, so dass die Gesamtzeit zum Darstellen eines Bildes reduziert wird, da die Gesamtbearbeitungszeit für alle Felder reduziert wird.
  • Fig. 3 zeigt die Begrenzungsvolumen von vier Objekten, die auf eine Matrix von 20 Bildpunkten · 20 Bildpunkten projiziert wird. Wenn jedes Objekt durch zehn Flächen definiert wird, beträgt die Gesamtzeit zur Darstellung von Fig. 3 400 Bildpunkte · 40 Flächen, d. h. 16.000 Zyklen. Fig. 4 zeigt jedoch einen Bereich von 20 · 20 Bildpunkten, unterteilt in vier Submatrizen von 10 · 10 Bildpunkten. Somit wird die Zeit zur Darstellung der Objekte in Fig. 4 durch die Zeit zur Darstellung des Objektes im Endfeld aus 10 · 10 Bildpunkten definiert. Dies ergibt 100 Bildpunkte · 10 Flächen, was 1000 Zyklen entspricht. Somit erfordert die Darstellung der gesamten 20 · 20 Matrix eine Zeit von 4000 Zyklen. Dies ergibt eine Ersparnis von 75% Bearbeitungszeit mit dieser Anordnung.
  • Die Objekte des Bildes sind jedoch normalerweise nicht gleichmäßig über den gesamten Bildschirm verteilt. Somit kann durch die Verwendung von Feldern mit veränderlichen Größen dieselbe Leistungsverbesserung mit weniger Feldern erzielt werden, oder es kann eine bessere Leistung mit derselben Anzahl von Feldern erreicht werden. Dies ist in den Fig. 5 und 6 dargestellt.
  • In Fig. 5 gibt es insgesamt sieben Objekte und 16 Felder mit jeweils 5 Bildpunkten · 5 Bildpunkten. Somit beträgt die Zeit zum Darstellen einer Szene 16 · 25 · 10, was 4000 Zyklen entspricht.
  • In Fig. 6 wird die Anzahl der Felder dadurch reduziert, dass drei Felder von 10 Bildpunkten · 10 Bildpunkten vorhanden sind, die die größeren Objekte umgeben, und vier Felder von 5 Bildpunkten · 5 Bildpunkten vorhanden sind, die die kleineren Objekte umgeben. Die Zeit zur Bearbeitung der Felder mit 10 · 10 Bildpunkten beträgt 100 Bildpunkte · 10 Flächen · 3 Felder, was 3000 Zyklen entspricht. Die Zeit zum Bearbeiten der 5 Bildpunkte · 5 Bildpunkte Felder beträgt 25 Bildpunkte · 10 Flächen · 4 Felder, was 1000 Zyklen entspricht. Somit beträgt die Gesamtzeit zur Darstellung von Fig. 6 4000 Zyklen, dieselbe Zeit, die auch die Darstellung von Fig. 5 erfordern würde. Fig. 6 hat jedoch nur 7 Felder, im Gegensatz zu den 16 Feldern von Fig. 5. Somit ergibt sich eine Ersparnis bei der Unterteilung der Szene in Felder.
  • In einer bevorzugten Ausgestaltung der Erfindung werden Projektionstechniken angewendet, die Begrenzungskästen um komplexe Objekte projizieren. Zunächst wird die Verteilung von Objekten um den sichtbaren Schirm ermittelt, so dass geeignete Feldgrößen in Abhängigkeit von dieser Verteilung definiert werden können.
  • Die Flächen, die die verschiedenen Objekte definieren, sind in einer zusammenhängenden Liste gemäß Beschreibung im Patent Nr. 9414834.3 gespeichert. Für jedes Feld (ein unterteilter Bereich des Bildschirms) gibt es jedoch eine weitere Liste von Objektzeigern, die auf die einzelnen Objekte zeigen, die sich in diesem Feld befinden. Damit soll die Speicherung identischer Flächen für jedes Feld vermieden werden, da ein aus vielen Flächen bestehendes Objekt in einer Reihe von Feldern vorkommen könnte. Dies ist in Fig. 11 illustriert. Zu Beginn der Objektzeigerliste gibt es eine x,y-Startposition und eine x,y-Größe. Damit werden die linke obere Position sowie Breite und Höhe des Feldes in Bildpunkten angegeben. Auf diese Weise werden veränderliche Feldgrößen berücksichtigt.
  • Zu Beginn der Darstellung wird die Zeigerliste durchsucht, und die x,y-Position und x,y-Größe werden gelesen. Die x,y-Position wird im Register 44 von Fig. 10 gespeichert. Dies ist die Ausgangsposition für die Darstellung. Während die einzelnen Zeiger gelesen werden, werden auch die entsprechenden Flächen, auf die gezeigt wird, gelesen und im internen Speicher gespeichert. Wenn alle Zeiger gelesen sind, dann enthält der interne Speicher alle zu bearbeitenden Objekte. Die Objekte werden wie normal bearbeitet. Nach der Darstellung des Feldes wird die nächste Objektzeigerliste wie oben beschrieben durchsucht, und der interne Speicher enthält alle Objekte für das nächste Feld. Dies wird so lange fortgesetzt, bis alle Felder fertig sind.
  • Eine weitere Verbesserung zur Unterteilung des Bildschirms in Subregionen (Felder) wird dadurch erzielt, dass die Möglichkeit besteht, die Felder nicht-sequentiell zu bearbeiten.
  • Das in der britischen Patentanmeldung Nr. 9414834.3 beschriebene System benutzt mehrere Verarbeitungselemente, die jeweils an einer Gruppe benachbarter Bildpunkte arbeiten. Besteht beispielsweise ein Feld aus N · M Bildpunkten, dann gibt es möglicherweise eine N-Element- Parallelbearbeitungsmaschine, die für jede Eingangsebene jeweils eine Reihe des Feldes bearbeitet. Die Bearbeitungszeit pro Reihe im Sinne von Taktzyklen ist gleich der Anzahl von Ebenen in oder in Verbindung mit diesem Feld. Eine solche Anordnung ist in Fig. 7 dargestellt. Wenn es Felder gibt, die eine sehr kleine Zahl von Ebenen haben, dann müssen die parallelen Bearbeitungselemente möglicherweise im Ruhezustand bleiben, während die zuletzt bearbeitete Reihe von Bildpunkten von einem Post-Processing-System 20 nachbearbeitet wird (z. B. Hinzufügen von Textur und Schattierung). Dadurch werden Bildpunktdaten von den N Verarbeitungselementen 22 über einen N-Stufen-Puffer 24 erhalten. Die Geschwindigkeit wird durch die Geschwindigkeit der Post-Processing-Einheit 20 begrenzt.
  • Eine Möglichkeit zur Überwindung dieser Geschwindigkeitsineffizienz besteht darin zu gewährleisten, dass die Nachbearbeitungseinheit 20 die Spitzenleistung der N Verarbeitungselemente 22 für eine geringe Zahl von Flächen erreichen kann. Dies würde die Nachbearbeitungseinheit komplexer und kostspieliger machen. Eine weitere Lösung bestünde darin, einen Rahmenpuffer 26 zwischen den N-Stufen-Puffer 24 und die Nachbearbeitungseinheit 20 wie in Fig. 8 gezeigt zu schalten. Dieser Rahmenpuffer würde vorzugsweise dieselbe Anzahl von Bildpunkten aufnehmen wie das Display. Dies würde jedoch wieder zu zusätzlichen Kosten führen.
  • Eine bevorzugte Ausgestaltung der vorliegenden Erfindung löst dieses Problem auf effiziente und kostenarme Weise, indem die Verarbeitung von Reihen von Feldern so vermischt wird, dass Reihen von Feldern mit einer kleineren Anzahl von darin enthaltenen Ebenen mit Reihen von Feldern mit einer größeren Zahl von Ebenen verschachtelt wird.
  • So zeigt beispielsweise Fig. 9 Felder A, B, C und D jeweils mit unterschiedlichen Zahlen von Flächen, die darin befindliche Objekte definieren. Wenn Felder nacheinander in der Reihenfolge A, B, C, D verarbeitet werden, verbringt die N-Element-Parallelverarbeitungsmatrix 22 während der Bearbeitung der ersten beiden Felder Ruhezeit, da nur eine geringe Anzahl von Ebenen bearbeitet zu werden braucht. Aber durch Bearbeiten einer Reihe von Feld A gefolgt von einer Reihe von Feld C, mit der eine größere Zahl von Ebenen assoziiert ist, kann dann die durchschnittliche Ausgaberate von Daten von den N Bearbeitungselementen 22 reduziert werden. Somit ist die einzige benötigte Pufferung der in Fig. 7 gezeigte N-Stufen-Puffer.
  • Die Flächen werden genau wie oben erläutert gespeichert. Aber anstatt eine Liste von Objekten für nur ein Feld in den internen Speicher einzulesen, werden zwei benachbarte Objektlisten gelesen und im internen Speicher gespeichert. Der erste Satz von Flächen wird für eine Zeile des ersten Feldes bearbeitet, darauf folgt dann die Bearbeitung des zweiten Satzes von Flächen für das zweite Feld. Die x,y-Position der Felder wird in zwei Registern gespeichert, die in Fig. 10 mit 42 nummeriert sind. Diese werden untereinander ausgetauscht, während Zeilen von den beiden verschiedenen Feldern bearbeitet werden. Die Objektlisten von Feldern, die zusammen bearbeitet werden, müssen im externen Speicher benachbart sein. Im obigen Beispiel unter Bezugnahme auf Fig. 11 wäre Feld 1 Feld A, und Feld 2 wäre Feld C.
  • Fig. 10 zeigt eine Ausführung eines Systems des in der britischen Patentanmeldung Nr. 9414834.3 beschriebenen Typs auf der Basis einer Matrix von Vektorprozessorzellen 40, einer Vorrecheneinheit 40, 46, 50, 48 und eines Speichers 42. Der Speicher speichert eine Liste von Befehlswörtern, die Flächenparameter (ABC), Steuerbits und Flächenattribute umfassen. Die praktische und kostengünstige VLSI-Ausführung eines solchen Systems verlangt, dass Befehlswörter in einem chipinternen Cache-Speicher gespeichert werden. Hierfür gibt es zwei Gründe. Zunächst ist das Format von Befehlswörtern sehr lang (typischerweise 96 Bits), und daher würde die gemeinsame Nutzung von externem Speicher mit beispielsweise einem 32-Bit-Prozessor mehrere Buszyklen pro Befehlsworteinholung beinhalten. Zweitens ist die Versandrate von Befehlswörtern direkt proportional zur Flächenbearbeitungsleistung des Systems. Zusammen genommen weisen diese Punkte darauf hin, dass jede externe Speicherlösung einen sehr schnellen, breiten und dedizierten Speicher erfordern würde.
  • Durch den Einsatz einer Cache-Ausführung dieses Systems wird die Tatsache ausgenutzt, dass während der Bearbeitung einer bestimmten Szene viele Querverweise auf dasselbe Befehlswort für die Bearbeitung einer bestimmten Fläche gemacht werden. Bei der oben vorgestellten Verbesserung in Verbindung mit veränderlichen Feldgrößen kann die Feldgröße so optimiert werden, dass alle Felder eine etwa konstante Anzahl von Flächen und somit eine etwa konstante Anzahl von Befehlswörtern enthalten. Wenn die Cache-Größe größer ist als dieser Wert, passen alle Befehlswörter für ein bestimmtes Feld in den Cache. Unter diesen Bedingungen kann der zeitliche Vorteil wie folgt angegeben werden:
  • Zeit zur Bearbeitung eines Feldes von externem Speicher = PC · I · MEXT
  • Zeit zur Bearbeitung eines Feldes von Cache-Speicher = I · (MEXT+) PC - 1) · MINT)
  • Prozentuale Verbesserung = 1 - (MEXT + (PC - 1) · MINT))/(PC · MEXT), wobei T = Feldgröße, PE = Anzahl Vektorelemente, PC = Anzahl Vektorzyklen = T/PE, I = Anzahl Befehlswörter pro Feld, MEXT = Zugriffszeit auf externen Speicher, MINT = Cache-Speicher-Zugriffszeit.
  • Mit zunehmender Komplexität der Szene diktieren praktische Grenzen der Cache-Größe, dass nicht alle Befehlswörter in diesem Feld gecached werden können.
  • Das Problem der Skalierbarkeit der Speicherkapazität in einer Mehrchip-Ausführung des in der Patentanmeldung 9414834.3 beschriebenen Systems lässt sich durch eine weitere Ausgestaltung der Erfindung lösen.
  • Eine Ausführung eines 3D-Renderingsystems besteht aus N 3D-Bearbeitungseinheiten (nachfolgend als ISP bezeichnet), einem Systemprozessor und einem Systemspeicher, wie in Fig. 12 gezeigt wird. Jeder ISP 52 enthält einen M-Befehlswort-Speicher, der wie oben beschrieben funktioniert. Bei einer solchen Konfiguration arbeiten alle ISPs auf einer anderen Ausgangszeile desselben Feldes und arbeiten somit zu einem bestimmten Zeitpunkt alle an demselben Befehlswort. Für die Zwecke der vorliegenden Beschreibung wird der an einer Feldzeile n arbeitende ISP als Master bezeichnet, der an der Feldzeile (n+1) arbeitende ISP wird als slave_1 bezeichnet, und der an der Befehlszeile (n+m) arbeitende ISP wird als slave m bezeichnet, usw. Die Speicher-Controller aller ISPs sind durch einen Speicherverbindungsbus 50 miteinander verbunden, der aus den folgenden Elementen besteht:
  • 1) Datenbus 50: Breite des Befehlsworts: bidirektional.
  • 2) Load In / Load Out 54: Synchrone Kaskadensignale, die einen Cache-Masterchip-Transfer andeuten: Eingang / Ausgang.
  • 3) Terminal-Wort 56: Zeigt an, dass das aktuelle Befehlswort das letzte in der Liste ist - angesteuert durch den Chip, der derzeit Daten überträgt.
  • 4) Daten gültig 58: Gesteuert vom aktuellen Sender zum Qualifizieren von Daten auf dem Datenbus.
  • Der Master ISP 52 ist dadurch gekennzeichnet, dass sein load_in Eingang bei Reset auf '1' festgelegt ist. Der Master ist verantwortlich für die Einhaltung einer hierarchischen Liste von Zeigern, die letztendlich Befehlswörter referenzieren. Zu Beginn eines bestimmten Feldes beginnt eine Speicherladephase, in der der Master ISP damit beginnt, Befehlswörter aus dem Systemspeicher 60 zu holen, die Wörter intern zusammenzusetzen und sie auf synchronisierte Weise zu drei Zielorten zu senden: dem Master-Internspeicher 68, dem Master-Bearbeitungsvektor und dem Speicherdatenbus 50. An dieser Stelle speichert lediglich der Master Befehle in seinem Speicher. Das Daten- Gültig-Signal ist in solchen Systemen notwendig, bei denen dem Master der Zugriff auf den Systemspeicher für bestimmte Zeitperioden verweigert werden kann. Es dient auch zum Anzeigen eines Datenbus-Ablaufzyklus, der dann auftritt, wenn sich die Eigentümerschaft des Speicherdatenbusses ändert.
  • Beim Transferzyklus bringt, wenn der Master-Speicher voll ist, der Master load_in von slave_1 auf '1', was bedeutet, dass slave_1 mit der Speicherung von Befehlswörtern in seinem Speicher beginnen muss. Dieser Prozess wird in der Folge von Slave-ISPs so lange fortgesetzt, bis das letzte Befehlswort vom Master ausgegeben wurde. An dieser Stelle wird terminal_word auf '1' gesetzt, und der Slave, der derzeit seinen Speicher lädt, rastet den Wert der Terminal-Speicheradresse. Damit ist die Speicherladephase abgeschlossen.
  • Es folgt eine Reihe von Speicherlesephasen, die so lange fortgesetzt werden, bis die aktuelle Feldverarbeitung abgeschlossen ist. Die Speicherlesung beginnt damit, dass der Master-ISP seine Befehlswortliste ausliest und die Werte zu seinem Verarbeitungsvektor und zum Speicherdatenbus weitergibt. Nach dem letzten Zugriff bringt der Master load_in von slave_1 auf '1', was bedeutet, dass slave_1 mit dem Lesen von Befehlswörtern aus seinem Speicher beginnen muss. Dieser Prozess wird in der Folge von Slave-ISPs so lange fortgesetzt, bis das letzte Befehlswort vom letzten Slave ausgegeben ist. An dieser Stelle wird terminal_word auf '1' gesetzt, und der Prozess wird vom Master wiederholt. Man beachte, dass es nach jeder Änderung der Datenbus-Mastership einen verlorenen Zyklus geben kann, um die Umlaufzeit der Puffer zu berücksichtigen.

Claims (10)

1. Verfahren zum Schattieren eines dreidimensionalen Bildes für die Anzeige auf einem Bildschirm, umfassend die folgenden Schritte: Zuführen von Daten, die eine Gruppe von infiniten Oberflächen definieren, die jeweils ein Objekt in dem Bild repräsentieren, Erzeugen von Tiefenwerten für jede Fläche für jeden Elementarbereich der Anzeige in Abhängigkeit von der Entfernung dieser Fläche von einer Bildebene, Bestimmen, ob eine Fläche in diesem Elementarbereich sichtbar ist, wobei das genannte Verfahren durch die folgenden weiteren Schritte gekennzeichnet ist: Bezeichnen eines Objektes, das durch eine Gruppe von Flächen als ein Lichtvolumen (4) repräsentiert wird, das eine Raumregion ist, deren Form von einer Lichtquelle bestimmt wird, und so, daß alle Objekte oder Teile davon außerhalb dieser Region nicht von der Lichtquelle beleuchtet werden, Bestimmen eines Tiefenwertes für jede Fläche des Lichtvolumens für jeden Elementarbereich der Anzeige in Abhängigkeit von der Entfernung dieser Fläche von der Bildebene, und Modifizieren der Farbe dieses Elementarbereiches in Abhängigkeit von dem Ort einer sichtbaren Objektfläche in bezug auf die bestimmte Tiefe der Lichtvolumenfläche.
2. Verfahren nach Anspruch 1, umfassend den Schritt des Bestimmens eines Begrenzungsvolumens für jedes auf den Anzeigebildschirm projizierte Objekt, und Unterteilen der Anzeige in eine Mehrzahl von Subregionen, wobei die Größe der Subregionen abhängig ist von der Komplexität des Bildes in jedem Bereich des Bildschirms, und wobei der Schritt des Erzeugens von Tiefenwerten für jede Fläche dies für jede Fläche in jeder Subregion tut.
3. Verfahren zum Schattieren nach Anspruch 2, umfassend den Schritt des Verschachtelns der Bestimmung von Tiefenwerten für Gruppen von Bildpunkten in einer Subregion mit der Bestimmung von Tiefenwerten für Gruppen von Bildpunkten in anderen Subregionen.
4. Verfahren zum Schattieren nach Anspruch 3, bei dem die Bildpunktgruppen Bildpunktlinien in den Subregionen umfassen.
5. Verfahren zum Schattieren nach Anspruch 3 oder 4, bei dem die Bildpunktgruppen von Subregionen in weniger komplexen Teilen des Bildes mit Bildpunktgruppen von Subregionen in komplexeren Teilen des Bildes verschachtelt werden.
6. Vorrichtung zum Schattieren eines dreidimensionalen Bildes für die Anzeige auf einem Bildschirm, umfassend ein Mittel (42) zum Zuführen von Daten, die eine Gruppe von infiniten Flächen definieren, die jedes Objekt in dem Bild definieren, Mittel (44, 46, 48) zum Erzeugen eines Tiefenwertes für jede Fläche für jeden Elementarbereich der Anzeige in Abhängigkeit von der Entfernung dieser Fläche von einer Bildebene, ein Mittel (40) zum Bestimmen, ob eine Fläche in diesem Elementarbereich sichtbar ist, wobei die genannte Vorrichtung dadurch gekennzeichnet ist, daß sie ferner folgendes umfaßt: ein Mittel zum Bezeichnen eines Objektes, das durch eine Gruppe von Flächen als ein Lichtvolumen (4) repräsentiert wird, das eine Raumregion ist, deren Form von einer Lichtquelle bestimmt wird, und so, daß alle Objekte oder Teile davon außerhalb dieser Region nicht von der Lichtquelle beleuchtet werden, ein Mittel zum Bestimmen eines Tiefenwertes für jede Fläche des Lichtvolumens für jeden Elementarbereich der Anzeige in Abhängigkeit von der Entfernung dieser Fläche von der Bildebene, und ein Mittel zum Modifizieren der Farbe dieses Elementarbereiches in Abhängigkeit von dem Ort einer sichtbaren Objektfläche in bezug auf die bestimmte Tiefe der Lichtvolumenfläche.
7. Vorrichtung nach Anspruch 6, umfassend ein Mittel zum Bestimmen eines Begrenzungsvolumens für jedes auf den Anzeigebildschirm projizierte Objekt, ein Mittel zum Unterteilen des Anzeigebildschirms in eine Mehrzahl von Subregionen, wobei die Größe der Subregionen abhängig ist von der Komplexität des Bildes in jedem Bereich des Bildschirms, und wobei das Mittel zum Erzeugen eines Tiefenwertes den Wert für jede Fläche für jeden Bildpunkt jeder Subregion in Abhängigkeit von der Entfernung dieser Fläche von einer Bildebene erzeugt.
8. Vorrichtung nach Anspruch 7, umfassend ein Mittel zum Verschachteln der Bestimmung von Tiefenwerten für Flächen für Bildpunktgruppen in einer Subregion mit der Bestimmung von Tiefenwerten für Flächen für Bildpunktgruppen in einer Subregion mit der Bestimmung von Tiefenwerten für Flächen für Bildpunktgruppen in anderen Subregionen.
9. Vorrichtung zum Schattieren nach Anspruch 8, bei der die Bildpunktgruppen Bildpunktlinien in den Subregionen umfassen.
10. Vorrichtung zum Schattieren nach Anspruch 8 oder 9, bei der Bildpunktgruppen in Subregionen in weniger komplexen Teilen des Bildes mit Bildpunktgruppen in Subregionen in komplexeren Teilen des Bildes verschachtelt sind.
DE1996609534 1995-01-31 1996-01-30 Rechnerbasierte 3D-Darstellungsverfahren und -System Expired - Lifetime DE69609534T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9501834A GB2298111B (en) 1995-01-31 1995-01-31 Improvements relating to computer 3d rendering systems

Publications (2)

Publication Number Publication Date
DE69609534D1 DE69609534D1 (de) 2000-09-07
DE69609534T2 true DE69609534T2 (de) 2000-12-07

Family

ID=10768840

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1996609534 Expired - Lifetime DE69609534T2 (de) 1995-01-31 1996-01-30 Rechnerbasierte 3D-Darstellungsverfahren und -System

Country Status (5)

Country Link
EP (1) EP0725367B1 (de)
JP (1) JPH08255262A (de)
DE (1) DE69609534T2 (de)
ES (1) ES2150071T3 (de)
GB (3) GB2336982B (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2343603B (en) * 1998-11-06 2003-04-02 Videologic Ltd Shading 3-dimensional computer generated images
JP2000163601A (ja) * 1998-11-24 2000-06-16 Sega Enterp Ltd 画像処理装置、画像処理方法および記録媒体
GB9904901D0 (en) * 1999-03-03 1999-04-28 Canon Kk Computer graphics apparatus
JP3599268B2 (ja) 1999-03-08 2004-12-08 株式会社ソニー・コンピュータエンタテインメント 画像処理方法、画像処理装置及び記録媒体
US7009626B2 (en) * 2000-04-14 2006-03-07 Picsel Technologies Limited Systems and methods for generating visual representations of graphical data and digital document processing
IL136430A0 (en) * 2000-05-29 2001-06-14 Zviaguina Natalia Ray tracing method and system for determining visible parts of surfaces of three-dimensional objects and their parameters of shading accounting for light and shadow volumes
WO2001095257A1 (en) 2000-06-08 2001-12-13 Imagination Technologies Limited Tiling and compression for rendering 3d images
GB2378108B (en) 2001-07-24 2005-08-17 Imagination Tech Ltd Three dimensional graphics system
GB0307095D0 (en) 2003-03-27 2003-04-30 Imagination Tech Ltd Improvements to a tiling system for 3d rendered graphics
US7477256B1 (en) * 2004-11-17 2009-01-13 Nvidia Corporation Connecting graphics adapters for scalable performance
JP4699036B2 (ja) * 2005-01-31 2011-06-08 三菱電機株式会社 グラフィクスハードウェア
GB0519597D0 (en) * 2005-09-26 2005-11-02 Imagination Tech Ltd Scalable multi-threaded media processing architecture
GB0524804D0 (en) 2005-12-05 2006-01-11 Falanx Microsystems As Method of and apparatus for processing graphics
GB2442266B (en) 2006-09-29 2008-10-22 Imagination Tech Ltd Improvements in memory management for systems for generating 3-dimensional computer images
US9965886B2 (en) 2006-12-04 2018-05-08 Arm Norway As Method of and apparatus for processing graphics
GB2452731B (en) 2007-09-12 2010-01-13 Imagination Tech Ltd Methods and systems for generating 3-dimensional computer images
GB0823254D0 (en) 2008-12-19 2009-01-28 Imagination Tech Ltd Multi level display control list in tile based 3D computer graphics system
GB0900700D0 (en) 2009-01-15 2009-03-04 Advanced Risc Mach Ltd Methods of and apparatus for processing graphics
GB201004673D0 (en) * 2010-03-19 2010-05-05 Imagination Tech Ltd Processing of 3D computer graphics data on multiple shading engines
GB201004675D0 (en) 2010-03-19 2010-05-05 Imagination Tech Ltd Memory management system
US9317948B2 (en) 2012-11-16 2016-04-19 Arm Limited Method of and apparatus for processing graphics
US10204391B2 (en) 2013-06-04 2019-02-12 Arm Limited Method of and apparatus for processing graphics
KR102197067B1 (ko) * 2014-04-02 2020-12-30 삼성전자 주식회사 멀티 프레임들의 동일한 영역을 연속으로 렌더링하는 방법 및 장치
CN106813568B (zh) * 2015-11-27 2019-10-29 菜鸟智能物流控股有限公司 物体测量方法及装置
GB2553744B (en) 2016-04-29 2018-09-05 Advanced Risc Mach Ltd Graphics processing systems

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2246057A (en) * 1990-07-03 1992-01-15 Rank Cintel Ltd Shading a 3-dimensional computer generated image
US5305430A (en) * 1990-12-26 1994-04-19 Xerox Corporation Object-local sampling histories for efficient path tracing
JPH06223201A (ja) * 1993-01-22 1994-08-12 Matsushita Electric Ind Co Ltd 並列画像生成装置
GB9301661D0 (en) * 1993-01-28 1993-03-17 Philips Electronics Uk Ltd Rendering an image

Also Published As

Publication number Publication date
GB9918187D0 (en) 1999-10-06
GB9918181D0 (en) 1999-10-06
GB2336982A (en) 1999-11-03
ES2150071T3 (es) 2000-11-16
EP0725367B1 (de) 2000-08-02
GB2298111B (en) 2000-01-19
DE69609534D1 (de) 2000-09-07
GB2336983A (en) 1999-11-03
EP0725367A1 (de) 1996-08-07
JPH08255262A (ja) 1996-10-01
GB2298111A (en) 1996-08-21
GB2336982B (en) 2000-01-19
GB9501834D0 (en) 1995-03-22
GB2336983B (en) 2000-01-19

Similar Documents

Publication Publication Date Title
DE69609534T2 (de) Rechnerbasierte 3D-Darstellungsverfahren und -System
DE3407983C2 (de) Mehrprozessorrechnersystem zum Erzeugen von Bildpunktinformationen aus in einer hierarchischen Datenstruktur definierten Objektelementen
DE69624868T2 (de) Computergraphiksystem mit leistungsfähiger Vorverarbeitung des Clippings von Primitiven
DE3853393T2 (de) Verfahren und Vorrichtung zur zweidimensionalen Bilderstellung.
DE69130123T2 (de) Anzeigegerät und Verfahren zum Betreiben eines solchen Geräts
DE69908966T2 (de) Schattierung von 3-dimensionalen rechner-erzeugten bildern
DE3751720T2 (de) Schaltung für die bildschirmwiedergabe von computern
DE69128731T2 (de) Schaltungsanordnung für die Konvertierung von pyramidenförmigen Texturkoordinaten und diese enthaltendes Anzeigegerät
DE69916646T3 (de) Schattierung von 3-dimensionalen rechnererzeugten Bildern
DE3854543T2 (de) Prioritätsverwaltung eines Tiefendatenpuffers für Echtzeitrechnersysteme zur Bilderzeugung.
DE60127253T2 (de) Bildkachelung und -kompression für die 3D-Bilddarstellung
DE69602728T2 (de) Vorrichtung zur bildmanipulation und -generation
DE19709220B4 (de) System und Verfahren für eine beschleunigte Verdeckungsauslese
DE68927471T2 (de) Verfahren zur Schattierung eines graphischen Bildes
DE69127915T2 (de) System und Verfahren von Prioritätsfarbabbildung
EP1227444B1 (de) Verfahren zur Rasterisierung eines Graphikgrundelements
DE69122557T2 (de) Bilderzeugung
DE10053439B4 (de) Grafik-Beschleuniger mit Interpolationsfunktion
DE69725057T2 (de) Gleitkommaprozessor für einen dreidimensionalen graphischen Beschleuniger
DE69127516T2 (de) Verfahren und Gerät zur Bilderzeugung
DE60019516T2 (de) Programmierbarer Aufbau zur Visualisierung von Abtastdaten und geometrischen Daten
DE69914355T2 (de) Bildverarbeitungsgerät
DE102015107869A1 (de) Vergabe von Primitiven an Primitiv-Blöcke
DE69120407T2 (de) Bildgenerator
DE69029987T2 (de) Verfahren und Gerät zur parallelen Wiedergabe von Polygonen und Pixeln

Legal Events

Date Code Title Description
8364 No opposition during term of opposition