DE69609534T2 - Rechnerbasierte 3D-Darstellungsverfahren und -System - Google Patents
Rechnerbasierte 3D-Darstellungsverfahren und -SystemInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 17
- 230000001419 dependent effect Effects 0.000 claims 2
- 238000012545 processing Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 8
- 239000000872 buffer Substances 0.000 description 6
- 238000009877 rendering Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000012805 post-processing Methods 0.000 description 5
- 230000006872 improvement Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 235000006679 Mentha X verticillata Nutrition 0.000 description 3
- 235000002899 Mentha suaveolens Nutrition 0.000 description 3
- 235000001636 Mentha x rotundifolia Nutrition 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000001795 light effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting 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.
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)
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)
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 |
-
1995
- 1995-01-31 GB GB9918181A patent/GB2336982B/en not_active Expired - Lifetime
- 1995-01-31 GB GB9918187A patent/GB2336983B/en not_active Expired - Lifetime
- 1995-01-31 GB GB9501834A patent/GB2298111B/en not_active Expired - Lifetime
-
1996
- 1996-01-30 DE DE1996609534 patent/DE69609534T2/de not_active Expired - Lifetime
- 1996-01-30 JP JP1419196A patent/JPH08255262A/ja active Pending
- 1996-01-30 EP EP19960300624 patent/EP0725367B1/de not_active Expired - Lifetime
- 1996-01-30 ES ES96300624T patent/ES2150071T3/es not_active Expired - Lifetime
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 |