-
Hintergrund der Erfindung
-
Die
vorliegende Erfindung betrifft eine Vorrichtung zur Bildbearbeitung.
-
Die
Erfindung ist im Besonderen, wenn auch nicht ausschließlich, zur
Verwendung in Systemen für
das Echtzeit-Rendering,
-Texturieren oder -Schattieren (Shading) von dreidimensionalen (3-D-)
Bildern geeignet. Echtzeit bedeutet hier schnell genug, damit das
Bild ohne merklichen wahrnehmbaren Verzug für den Betrachter angezeigt
wird.
-
Das
beste bekannte existierende System zum Generieren von Echtzeit-3-D-Bildern
ist der z-Buffer- (oder Tiefenpuffer-) Bildgenauigkeitsalgorithmus.
Der z-Buffer-Algorithmus erfordert einen Bildwiederholspeicher,
in dem Farbwerte für
jedes Pixel (elementares Bildelement) in einem Bild gespeichert
werden. Außerdem
erfordert er einen z-Buffer mit einem Eintrag für jedes Pixel. In diesem z-Buffer wird
für jedes
Pixel ein z-Wert oder Tiefenwert gespeichert. Zum Generieren einer
3-D-Darstellung werden Polygone in beliebiger Reihenfolge in den Bildwiederholspeicher
gerendert. Beim Eingeben eines nachfolgenden Polygons in den Bildwiederholspeicher,
ersetzt, wenn ein Punkt am Polygon näher am Betrachter ist als der
bereits im Bildwiederholspeicher für diesen Pixel befindliche,
der Farb- und z-Wert
des neuen Punktes dann die zuvor gespeicherten Werte. Wenn Texturierung
oder Schattierung des Polygons gewünscht wird, wird die Texturierung oder
Schattierung auf das Polygon angewendet, bevor es in den Bildwiederholrahmen
gerendert wird. Das System wird mit einer Liste von Eckpunkten gespeist,
die die Polygone definieren, und an jedem Polygon werden Texturier-
und Schattierungsvorgänge durchgeführt, bevor
ein Tiefentest ausgeführt
wird. Die Leistung derartiger Systeme wird durch diverse Faktoren
begrenzt, einschließlich
der Eingangsdatenbandbreite, der Geschwindigkeit von Texturierung und
Schattierung und der Bandbreite der Lokalspeicherschnittstelle.
Es wurde vorgeschlagen, die Systemleistung durch die Verwendung
von Doppel-Rendering-Vorrichtungen
zu verbessern, die „abtastzeilenverschachtelt" („scan line
interleaved") sind.
Das heißt,
es gibt zwei Prozessoren, die abwechselnde Abtastzeilen des Bildrasters
bearbeiten und sich so die Bearbeitung teilen.
-
Ein
weiteres System zum Generieren von Echtzeit-3-D-Bildern wird im VideoLogic Limited übertragenen
Patent der Vereinigten Staaten US-A-5.729.672 beschrieben. Dieses
System verwendet eine „Ray-Casting"-Methode zum Rendern von
dreidimensionalen Bildern anstelle von herkömmlichen Rendering-Methoden
auf Polygonbasis. Bei diesem System werden Objekte jeweils von einem
Satz Oberflächen
dargestellt, die als Datensätze gespeichert
werden. Eine Bildebene wird als zwischen einem Betrachter und der
zu betrachtenden Szene liegend angenommen und diese Bildebene setzt
sich aus einer Mehrzahl von Pixeln zusammen. Es wird angenommen,
dass ein Strahl (Ray) vom Betrachtungspunkt durch einen Pixel auf
dem Bildschirm in die zu betrachtende Szene fällt und verschiedene Oberflächen schneidet,
die Objekte in der Szene darstellen. Durch Analysieren dieser Schnittpunkte
und ihrer Entfernungen zum Betrachter kann das System bestimmen,
ob eine Oberfläche
sichtbar ist. Wenn sie sichtbar ist, wird diese Oberfläche dann wie
gewünscht
texturiert oder schattiert. Wenn sie aber nicht sichtbar ist, dann
ist das Texturieren und Schattieren der Oberfläche nicht nötig. Ein Vorteil dieses Systems
gegenüber
dem z-Buffer ist, dass nicht sichtbare Oberflächen nicht texturiert oder schattiert
werden müssen.
-
Das
Texturieren oder Schattieren von Bildern erfordert ziemlich viel
Bearbeitungsleistung. Die mit dem System des oben erwähnten US-Patents
erzielte Bearbeitungsverringerung ist daher sehr nützlich und
kann bei bestimmten Bildtypen, insbesondere denjenigen, die viele überlappende
Polygone oder Oberflächen
haben, ziemlich dramatisch sein.
-
In
dem System des US-Patents wird angenommen, dass die ein Objekt definierenden
Oberflächen
sich über
die ganze Bildebene erstrecken, d. h. sie haben eine „unendliche" Ausdehnung. Auch
wird jede Oberfläche
als eine Vorwärtsfläche, wenn
sie sich an der Vorderseite des Objekts befindet und so dem Beobachter
zugekehrt ist, oder eine Rückwärtsfläche definiert,
wenn sie Teil der Rückseite
des Objekts bildet und somit vom Beobachter weggekehrt ist. Um zu
bestimmen, ob ein bestimmtes Objekt an einem bestimmten Pixel sichtbar
ist, wird bei der Ray-Casting-Methode ein Vergleich der Entfernungen
vom Beobachtungspunkt zu (a) dem Vorwärtsflächenschnittpunkt mit dem Strahl,
der am weitestens vom Beobachtungspunkt entfernt ist, und (b) dem Rückwärtsflächenschnittpunkt
mit dem Strahl, der dem Beobachtungspunkt am nächsten liegt, angestellt. Wenn
(a) größer als
(b) ist, dann zeigt dies an, wie im Patent veranschaulicht, dass
der Strahl dieses Objekt nicht schneidet, und somit, dass dieses
betreffende Objekt am Pixel in der Bildebene, durch das der Strahl
passiert, nicht sichtbar ist. Mit dieser Methode brauchen die Ränder der
Oberflächen
an sich nicht definiert oder berechnet zu werden; es reicht aus,
die Eckpunkte des Objekts als Ganzes zu kennen und die von den Oberflächen eingenommenen Ebenen
zu berechnen. Es ist zu beachten, dass die Methode erfordert, dass
jedes Objekt für
jedes Pixel in der Bildebene geprüft wird, um zu bestimmen, ob dieses
Objekt an dieser Stelle sichtbar ist oder nicht.
-
Wie
in diesem Patent beschrieben wird, macht die Methode es besonders
leicht, zutreffende Teile des Bildes mit Schatten zu versehen. Das
System kann auch Transparenz behandeln, die diverse Formen haben
kann.
-
Die
Methode hat zwar Vorteile gegenüber dem
z-Buffer-System,
Bearbeitungsanforderungen können
aber trotzdem immer noch eine Beschränkung bilden. Im Patent wird
vorgeschlagen, die Leistung durch Unterteilen der Bildebene oder
des Bildschirms in eine Mehrzahl von Subregionen oder „Fliesen" (Tiles) zu verbessern.
Die Fliesen sind praktischerweise viereckig (einschließlich quadratisch). Dann
werden für
jede Fliese zuerst diejenigen Objekte bestimmt, die Oberflächen haben,
die in die Fliese fallen könnten,
und nur diese Objekte in der Fliese werden bearbeitet, wodurch die
Anzahl von zu bearbeitenden Oberflächen verringert wird. Das Ermitteln, welche
Objekte zu jeder Fliese beitragen könnten, kann erzielt werden,
indem das Objekt mit einem Eingrenzungsvolumen umgeben wird, nämlich einem Quader,
der das ganze Objekt enthält,
und indem die Fliesenfläche
mit dem Eingrenzungsvolumen verglichen wird. Zu diesem Zweck werden
alle Eingrenzungsvolumen auf die Bildebene projiziert und gegen die
Ecken der Fliesen getestet. Diejenigen Objekte mit Eingrenzungsoberflächen, die
völlig
außerhalb der
Fliese sind, werden für
diese Fliese verworfen. Die Zahl der Oberflächen, die pro Pixel in einer
Fliese bearbeitet werden müssen,
werden somit weniger und daher ist die Gesamtzeit zum Rendern eines Bilds
reduziert, da die gesamte Bearbeitungszeit für alle Fliesen verkürzt ist.
-
Das
US-Patent beschreibt die Verwendung von Fliesen variabler Größe. Dies
reflektiert die Tatsache, dass Objekte normalerweise nicht gleichmäßig über den
ganzen Bildschirm verteilt sind. Wie in 1 der Zeichnungen der vorliegenden Patentanmeldung
gezeigt wird, sind drei Fliesen 3 10 Pixel im Quadrat,
um drei bestimmte Objekte aufzunehmen, und vier Fliesen 12 sind
5 Pixel im Quadrat, um vier kleinere Objekte aufzunehmen. Die Bildteile
für die mehreren
Fliesen werden pipeline-mäßig in einem Bearbeitungssystem,
wie es im Patent beschrieben wird, bearbeitet.
-
Wir
haben anerkannt, dass Bearbeitungsleistung trotz all dieser Merkmale
immer noch eine Beschränkung
sein kann, mithilfe der vorliegenden Erfindung aber verbessert werden
kann.
-
Es
wird Bezug genommen auf die folgenden Druckschriften:
- D1: Kawai T. et al: „Evaluation
of Parallel Ray Tracing Algorithm Using Screen Space Subdivision for
Image Generation System Magg" systems & computers in
Japan, US, Scripta Technia Journals New York, Band 25, Nr. 11, Oktober
1994 (1194-10), Seite 78–86,
XP000499051 ISSN: 0882-1666; und
- D2: Coppen D. et al: „A
Distributed Frame Buffer for Rapid Dynamic Changes to 3D Scenes" Computers and Graphics,
GB, Pergamon Press Ltd. Oxford, Band 19, Nr. 2, März 1995
(1995-03), Seite 247–250,
XP000546629 ISSN: 0097-8493.
-
Aus
den obigen Druckschriften sind Bildbearbeitungsvorrichtungen bekannt,
die eine Zuführeinrichtung
zum Zuführen
von Daten, die eine Gruppe von Oberflächen definieren, die jedes
Objekt in einem Bild darstellen, eine mit der Zuführeinrichtung gekoppelte
Unterteilungseinrichtung zum Unterteilen des anzuzeigenden Bilds
in eine Mehrzahl von Subregionen und zum Bestimmen, welche Oberflächen in
welche so abgeleitete Subregionen fallen, eine Mehrzahl von Rendering-Vorrichtungen,
die jeweils mit der Unterteilungseinrichtung gekoppelt sind, und eine
mit der Mehrzahl von Rendering-Vorrichtungen gekoppelte Kombiniereinrichtung
zum Erhalten und Kombinieren der jeweiligen Ausgänge der Mehrzahl von Rendering-Vorrichtungen
zum Anzeigen umfasst.
-
Zusammenfassung der Erfindung
-
Die
Erfindung in ihren verschiedenen Aspekten ist in den angefügten Ansprüchen definiert,
auf die jetzt Bezug zu nehmen ist. Bevorzugte Merkmale der Erfindung
sind in den anhängigen
Ansprüchen dargelegt.
-
Unten
wird eine bevorzugte Ausgestaltung der Erfindung mit Bezug auf die
Zeichnungen ausführlicher
beschrieben. Kurz, diese bevorzugte Ausgestaltung der Erfindung
hat die Form einer Bildverarbeitungsvorrichtung zum Rendern (d.
h. Färben, Texturieren
oder Schattieren) eines Bildes und hat eine Flieseneinrichtung,
die das Bild in Subregionen oder Fliesen aufteilt. Zwei Rendering-Vorrichtungen sind
vorgesehen und die Fliesen werden so zugeordnet, dass einige von
einer Rendering-Vorrichtung
und einige von der anderen bearbeitet werden. Oberflächen von
anzuzeigenden Objekten darstellende Polygone werden gegen die Fliesen
getestet. Wenn die Oberfläche
nur in eine Subregion fällt,
werden die Daten nur an eine Rendering-Vorrichtung gesendet. Wenn die Oberfläche andererseits
in zwei Subregionen fällt,
die von den verschiedenen Rendering-Vorrichtungen gehandhabt werden, dann
werden die Daten zu beiden Rendering-Vorrichtungen gesendet. Das
Ergebnis ist, dass ein beträchtlicher
Anteil der Daten nur zu/von einer Rendering-Vorrichtung geliefert
und bearbeitet zu werden braucht, wodurch der Betrieb der Vorrichtung
beschleunigt wird. Die Ausgänge
der zwei Rendering-Vorrichtungen werden anschließend von einer Fliesenverschachtelungs-
und Bildanzeigeschaltungsanordnung kombiniert.
-
Kurze Beschreibung der
Zeichnungen
-
Im
Folgenden wird die Erfindung nun mit Bezug auf die Begleitzeichnungen
beispielhaft ausführlicher
beschrieben. Dabei zeigt:
-
1 einen Teil einer Bildebene,
die mehrere Objekte enthält
und Fliesen unterschiedlicher Größen hat,
entnommen aus US-Patent 5.729.672;
-
2 einen Teil des Bildschirms,
der gemäß einer
Ausgestaltung der vorliegenden Erfindung Fliesen enthält;
-
3 ein Diagramm, das einen
Eingrenzungskasten um ein Objekt zeigt;
-
4 ein Ablaufdiagramm des
zum Ermitteln der Koordinaten eines Eingrenzungskastens um ein Objekt
verwendeten Verfahrens;
-
5 einen Fliesen enthaltenden
Teil des Bildschirms in einer Modifikation der Ausgestaltung von 1 und
-
6 ein schematisches Blockdiagramm von
Hardware, die in einer die Erfindung ausgestaltenden bevorzugten
Bildbearbeitungsvorrichtung verwendet wird.
-
Ausführliche Beschreibung der bevorzugten
Ausgestaltungen
-
Im
Folgenden wird nun ein Verfahren und eine Vorrichtung für die Bildbearbeitung,
im Besonderen für
die Echtzeit-Texturierung
oder -Schattierung (Shading) von dreidimensionalen (3-D-) Bildern mit
Bezug auf 2 et seq.
der Zeichnungen beschrieben.
-
Die
Einleitung oben beschreibt eine „Eingrenzungsvolumen"-Methode, bei der
Objekte, die Eingrenzungsvolumen haben, die vollkommen außerhalb
einer Fliese sind, für
diese Fliese verworfen werden. In der folgenden Beschreibung wird
eine spezifische Implementierung dieses Prinzips verwendet, es wird
nämlich
angenommen, dass Objekte auf den Bildschirm oder die Bildebene projiziert
werden, und ihre Eingrenzungsflächen,
wie sie auf dieser Ebene gesehen werden, werden mit den Fliesen
verglichen.
-
In 2, auf die zunächst Bezug
genommen wird, wird ein Teil 20 eines Bildschirms gezeigt,
der zwölf
Subregionen oder Fliesen 22 enthält, wie gezeigt. Jede Fliese
ist typisch 32 Pixel oder 64 Pixel im Quadrat, d. h. bei Verwendung
einer herkömmlichen Rasterabtastung
32 oder 64 Pixel lang und 32 bzw. 64 Zeilen hoch. Es ist zu sehen,
dass in dieser Figur zwei Objekte graphisch gezeigt werden, nämlich ein Haus 24 und
ein Fahrrad 26. Jedes dieser Objekte erstreckt sich zum
Zweck der Veranschaulichung über
zwei der Fliesen 22. Im Fall des Hauses 24 liegen
diese im Bild übereinander
und im Fall des Fahrrads nebeneinander. In beiden Fällen ist
der Vorgang der gleiche.
-
Die
Fliesen sind in zwei Gruppen von Fliesen eingeteilt. Wie gezeigt,
sind die Fliesen schachbrettartig in zwei Gruppen aufgeteilt. Wie
in 2 gezeigt wird, sind
abwechselnde Fliesen in der Figur hell oder dunkel schattiert, wobei
jede helle Fliese 22A von vier dunklen Fliesen umgeben
ist und jede dunkle Fliese 22B von vier hellen Fliesen
umgeben ist. Die hellen und dunklen Fliesen bilden so Diagonalen über den
Bildschirm.
-
Gemäß dieser
Erfindung wird das Rendering der Objekte, d. h. die Texturierung
und Schattierung der Objekte, das bisher von einem einzelnen Prozessor
gehandhabt wurde, auf zwei Prozessoren aufgeteilt, die Prozessor
A und Prozessor B genannt werden können. Jede Fliesengruppe ist
mit einem betreffenden der Prozessoren A und B assoziiert. Das heißt, alle
hellen Fliesen 22A sind mit Prozessor A assoziiert und
alls dunklen Fliesen 22B, wie in 2 gezeigt, sind mit Prozessor B assoziiert.
Sämtliche Bearbeitung
von Oberflächen,
die in einer hellen Fliese zu sehen sind, wird von Prozessor A durchgeführt, und
sämtliche
Bearbeitung von Oberflächen,
die in einer dunklen Fliese zu sehen sind, wird von Prozessor B
durchgeführt.
-
Komplexe
Objekte können
aus einer Gruppe von mehreren kleineren Polygonen zusammengesetzt
gesehen werden. Beispielsweise ist das Haus 24 aus einem
Dreieck für
das Dach 28, einem Dreieck und einem Quadrat für den Schornstein 30 und Rechtecken
für den
Hauptkörper 32 des
Hauses, die Fenster 34 und die Tür 36 zusammengesetzt.
-
Jene
Polygone, aus denen das Dach 28, der Schornstein 30 und
das im oberen Stockwerk befindliche Fenster 34 zusammengesetzt
ist, liegen völlig innerhalb
einer hellen Fliese 22A und brauchen daher nur zu Prozessor
oder Vorrichtung A gesendet zu werden. Die Tür 36 und das Fenster 34 unten
liegen völlig
innerhalb einer dunklen Fliese 22B und brauchen daher nur
zu Prozessor oder Vorrichtung B gesendet zu werden. Der Hauptkörper 32 des
Hauses überlappt
aber zwei Fliesen. Dementsprechend muss er zu beiden Prozessoren
oder Vorrichtungen gesendet werden, da er sich auf die Anzeige in
einer hellen Fliese und auch in einer dunklen Fliese auswirkt.
-
Desgleichen
werden für
das Fahrrad 26 die Polygone, aus denen das Vorderrad, die
Vorderradgabel und der Lenker zusammengesetzt sind, nur an Vorrichtung
A gesendet; das Hinterrad, die Hinterradgabel und der Sattel werden
nur an Vorrichtung B gesendet, während
der Rahmen des Fahrrads an beide Vorrichtungen gesendet wird. Größere Objekte
können
sich über
drei oder mehr Fliesen erstrecken, aber die angewendete Bearbeitung
und ihre Wirkungen sind die gleichen wie bei Objekten, die nur zwei
Fliesen überlappen.
-
Der
Umfang jedes der Polygone, aus denen das komplexe Objekt zusammengesetzt
ist, kann erreicht werden, indem ein Rechteck zum Einschließen des
gesamten Polygons gezeichnet wird und das Rechteck dann gegen die
Koordinaten der Fliesen des Bildschirms getestet wird, um den Umfang
des Polygons zu ermitteln. Dies wird in 3 illustriert, die ein arbiträres Polygon 40 zeigt.
Dieses Polygon wird als ein eingezogenes (rückspringendes) Polygon gezeigt
und kann zur Bearbeitung bequem in nicht eingezogene Polygone zerlegt
werden, wenn gewünscht,
aber das Prinzip der Einrichtung des Eingrenzungskastens ist das
gleiche. Polygondaten werden in die Rendering-Vorrichtung gespeist,
indem die Koordinaten jedes Eckpunkts des Polygons gegeben werden.
Die Koordinaten werden in einem kartesischen System mit drei orthogonalen
Achsen, x, y und z, angegeben. Es wird angenommen, dass sich der
Endbildschirm in der Ebene der x-y-Achsen befindet, während die
z-Achse die Tiefe des Objekts darstellt, wie es konventionell ist.
Das zum Ermitteln der Mindestwerte von x und y, die die Ecken 44 des
Eingrenzungskastens 42 definieren, verwendete Verfahren
wird in 4 illustriert.
-
Im
Verfahren 50 von 4 wird
in einem ersten Schritt 52 anfänglich angenommen, dass die
Eingabewerte xin, yin für den ersten
bearbeiteten Eckpunkt die gewünschten
Werte xmin, xmax,
ymin, ymax sind. Der
nächste
Eckpunkt wird dann in Schritt 54 bearbeitet. Die neuen
Eingabewerte xin, yin werden
mit den gespeicherten Werten für
xmin, xmax, ymin, ymax verglichen.
Wenn der neue Eingabewert für
x oder y kleiner als der gespeicherte Mindestwert ist, dann ersetzt er
den Mindestwert, und wenn der neue Eingabewert den Höchstwert übersteigt,
ersetzt er den Höchstwert.
Das Verfahren geht dann zu Schritt 56 über, wo eine Prüfung durchgeführt wird,
um festzustellen, ob der letzte das Polygon definierende Eckpunkt
bearbeitet wurde. Wenn nicht, kehrt das Verfahren zu Schritt 54 zurück, um den nächsten Eckpunkt
zu bearbeiten. Wenn ja, dann sind jetzt die Koordinaten des Eingrenzungskastens 42 bestimmt
und das Verfahren geht zu Schritt 58 über, wo eine Ermittlung durchgeführt wird,
um festzustellen, ob der Eingrenzungskasten die Bildschirmfliese,
die bearbeitet wird, überlappt.
Diese Ermittlung erfolgt auch durch einfachen Vergleich der xy-Koordinaten der Ecken 44 des Eingrenzungskastens 42 mit
den xy-Koordinaten der Ecken der Fliese. Die Fliesengröße hinsichtlich
der Pixelzahl wird vorzugsweise als eine Potenz von zwei gewählt, z.
B. 32 oder 64, was zur Folge hat, dass der Bildschirmfliesentest 58 auf
eine Anzahl einfacher binärer
Vergleiche reduziert wird.
-
Das
beschriebene Eingrenzungskastenverfahren verursacht gelegentlich,
dass das System anzeigt, dass eine Oberfläche innerhalb eine bestimmte Fliese
fällt,
wenn dies in Wirklichkeit nicht der Fall ist, aber das ist kein
bedeutendes Problem.
-
Wie
beschrieben, wurden die Fliesen in einem Schachbrettmuster auf die
zwei Prozessoren A und B aufgeteilt. Es können aber auch andere Verfahren
zum Aufteilen des Bildschirms verwendet werden. Das optimale Verfahren
hängt vom
Bildinhalt ab und kann bedeuten, dass mehr Fliesen von einem Prozessor
als dem anderen bearbeitet werden. 5 illustriert
eine Teilungsform, in der ein großes Rechteck 2 ein
kleines Rechteck 1 kürzerer
Höhe und
Breite enthält.
Die Vorrichtung B hat die Aufgabe, die das kleinere Rechteck 1 bildenden
Fliesen zu bearbeiten, und der Prozessor A hat die Aufgabe, was übrig ist
zu bearbeiten, d. h. Rechteck 2 ausgenommen Rechteck 1.
Rechteck 1 wird somit für
Prozessor A als ein Inklusionsrechteck und Rechteck 2 als
ein Exklusionsrechteck definiert. Das heißt, alle Polygone, die vollständig in
Rechteck 1 eingeschlossen sind, werden an Vorrichtung A
gesendet. Polygone außerhalb
von Rechteck 1, aber innerhalb von Rechteck 2 werden
an Vorrichtung B gesendet. Polygone, die die zwei Bereiche überlappen,
werden an beide Vorrichtungen gesendet.
-
Die
Teilung des Bildschirms ist dergestalt, dass eine beträchtliche
Anzahl von Oberflächen
nur an einen Prozessor gesendet werden müssen. Die Fliesen sind also
vorzugsweise im Wesentlichen rechtwinklig, wobei z. B. eine Seite
höchstens
das Zwei- oder Dreifache der Länge
in Pixeln der anderen ist, sodass eine annehmbare Wahrscheinlichkeit
besteht, dass ein guter Anteil der Oberflächen nur in eine Fliese fallen
werden. Auf diese Weise wird das Bearbeiten dadurch reduziert, dass
einige Oberflächen
nur an einen Prozessor gesendet werden müssen. Eine Aufteilung, in der
abwechselnde Abtastzeilen von verschiedenen Prozessoren bearbeitet
würden,
würde somit
keine Vorteile bieten, weil die Anzahl von Oberflächen, die
nur auf eine Abtastzeile fallen, null oder eng daran ist. Eine weitere
mögliche Aufteilung
wäre in
horizontale Bänder über den
Bildschirm, aber die Bänder
müssten
breit genug sein, z. B. könnte
der Bildschirm als Ganzes in drei oder vier Bänder aufgeteilt werden. Das
Fliesenaspektverhältnis
ist dann kleiner als sechs zu eins. Auf jeden Fall gibt es normalerweise
wenigstens drei Bildschirmbereiche, wobei wenigstens einer der Prozessoren
die Aufgabe hat, wenigstens zwei diskrete separate Bildbereiche
zu bearbeiten.
-
Die
für die
Implementierung der beschriebenen Ausgestaltung erforderliche Hardware
hat die Form der in 6 gezeigten. 6 zeigt in Form eines Blockdiagramms
die Bildbearbeitungsvorrichtung 60, die die Erfindung ausgestaltet
und eine mit einem Hauptspeicher 64 verbundene Zentraleinheit (CPU) 62 aufweist.
Die Fliesenunterteilungsvorrichtung 66 definiert die Fliesen
und kommuniziert mit einem Lokalspeicher 68 sowie der Zentraleinheit 62. Die
Fliesenunterteilungsvorrichtung hat effektiv zwei Ausgänge, an
die eine erste Texturierungs- oder Rendering-Vorrichtung 70A und
eine zweite Texturierungs- oder Rendering-Vorrichtung 70B angebracht ist.
Die Ausgänge
der zwei Rendering-Vorrichtungen 68A und 68B werden
beide an die Fliesenverschachtelungs- und Bildanzeigeschaltungsanordnung 72 angelegt.
Für die
weitere Beschreibung geeigneter Hardware kann auf unser oben erwähntes US-Patent Bezug
genommen werden, wobei der bedeutende Punkt darin liegt, dass es
zwei Rendering-Vorrichtungen 70A, 70B gibt, die
zwischen der Fliesenunterteilungsvorrichtung 66 und der
Schaltungsanordnung 72 parallel geschaltet sind.
-
In
der Praxis können
die zwei Ausgänge
der Fliesenunterteilungsvorrichtung 66 von einem einzelnen
Datenbus zusammen mit entsprechender Adressierung zum Kennzeichnen
einer gewünschten
der zwei Rendering-Vorrichtungen 70A, 70B gebildet werden.
-
Die
am Betrieb der Vorrichtung von 6 beteiligten
Schritte können
im Prinzip wie folgt beschrieben werden:
- 1.
Objekte werden vom Benutzer (Programmierer) generiert. Sie werden
durch ihre Eckpunkte und durch Texturcodes, die die Art der für jede Oberfläche erforderlichen
Texturierung anzeigen, definiert. Dazu gehören die Farbe und andere Oberflächeneffekte.
- 2. Für
jede Oberfläche
wird nach dem oben beschriebenen Verfahren ein Eingrenzungskasten generiert.
- 3. Der Eingrenzungskasten wird mit dem angewendeten Makro-Fliesenmuster verglichen,
um zu bestimmen, welche Oberflächen
in welche Fliesen fallen, und somit, welche der mehreren Rendering-Vorrichtungen
(in diesem Fall zwei) die Daten benötigen. Oberflächeneckpunkte
und Texturcodes werden dann in dem zutreffenden mit jeder Speichervorrichtung
assoziierten Lokalspeicherteil gespeichert.
- 4. An diesem Punkt wird eine Fliesenanzeigeliste für jede Rendering-Vorrichtung
generiert, sodass, wenn die Rendering-Vorrichtung in Betrieb ist,
sie nur Daten für
jede ihrer Fliesen und nicht die ganze Szenenanzeigeliste zu durchqueren
braucht.
- 5. Für
jedes Pixel der Fliese werden die Oberflächen nach Tiefe sortiert, wobei
die nächsten Oberflächen zuerst aufgelistet
werden.
- 6. Das Ray-Casting-Verfahren des oben erwähnten US-Patents wird eingesetzt,
um die vorderste opake Oberfläche
zu finden, die an diesem betreffenden Pixel zu sehen ist.
- 7. Die so ausgemachten vordersten sichtbaren Oberflächen werden
dann gerendert, um die gewünschte
Oberflächenfarbe,
Textur und Schattierung zu bieten.
- 8. Das Ergebnis wird in einem Anzeigepufferspeicher gespeichert.
-
Gemäß dieser
Erfindung werden einige der obigen Schritte von zwei parallel arbeitenden
Prozessoren ausgeführt.
Die Operationen sind wie oben beschrieben auf die zwei Prozessoren
verteilt. Das heißt,
für einige
Fliesen (die hellen Fliesen, wie oben genannt) wird Schritt 7 von
einem Prozessor erzielt und der gleiche Schritt für die anderen
(dunklen) Fliesen wird vom anderen Prozessor erzielt. Das reduziert
die für
die Bearbeitung benötigte
Zeit um einen Faktor, der kleiner als aber annähernd eine Hälfte ist. Die
Ausgänge
der zwei Prozessoren werden zum Anlegen an den Anzeigepufferspeicher
und zum anschließenden
Anzeigen auf dem Bildschirm kombiniert.
-
Es
ist daher zu sehen, dass das System durch Zuführen von Daten, die eine ein
Objekt, z. B. das Haus oder das Fahrrad in 2, darstellende Oberflächengruppe
definieren, funktioniert. Die Anzeige ist in eine große Anzahl
von Fliesen unterteilt und eine Ermittlung wird dahingehend durchgeführt, welche
Oberflächen
in welche Fliesen fallen. Die Daten werden dann in Abhängigkeit
davon, in welche Fliese die diversen Oberflächen fallen, an die zwei Rendering-Vorrichtungen
angelegt. Die Daten einiger Oberflächen werden nur an eine Rendering-Vorrichtung
gesendet und die Daten anderer Oberflächen werden an beide Rendering-Vorrichtungen
gesendet. Im Besonderen brauchen die Daten, wenn die Oberfläche nur
in eine Fliese fällt,
z. B. das Dach oder die Tür
in 2, nur an eine Rendering-
oder Texturierungs-Vorrichtung gesendet zu werden. Wenn die Oberfläche in zwei
Fliesen fällt,
die von den verschiedenen Rendering-Vorrichtungen gehandhabt werden,
müssen
die Oberflächendaten
zu beiden Rendering-Vorrichtungen gesendet werden.
-
Es
kann sein, dass die Oberfläche
in zwei Fliesen fällt,
die beide von der/dem gleichen Rendering-Vorrichtung oder Prozessor
gehandhabt werden, wobei in diesem Fall die Daten ebenfalls nur
an eine Rendering-Vorrichtung gesendet werden müssen. Bei der Fliesenanordnung
in 2 ist dies unwahrscheinlich,
es könnte
aber bei anderen Anordnungen leichter vorkommen.
-
Die
illustrierten Ausgestaltungen der Erfindung gehen davon aus, dass
es anstelle des gewöhnlich
einen zwei Prozessoren für
das Rendering (z. B. Texturieren oder Schattieren) gibt. Die Erfindung
ist aber nicht auf die Verwendung von zwei Vorrichtungen begrenzt;
falls gewünscht,
können
mehr als zwei verwendet werden, wobei in diesem Fall der Bildschirm
in eine entsprechende größere Anzahl von
Regionen aufgeteilt wird, die jeweils eine betreffende Fliesengruppe
umfassen.
-
Die
illustrierten Ausgestaltungen haben den Vorteil, dass, die Bearbeitung
normaler Bilder vorausgesetzt, die Bearbeitungszeit auf Grund der
Tatsache verkürzt
wird, dass die Prozessoren gleichzeitig parallel arbeiten können, wobei
jeder Prozessor nur einige der Oberflächen und nicht alle Oberflächen im
Bild zu bearbeiten braucht.
-
Es
ist zu beachten, dass an dem rein beispielhaft beschriebenen und
illustrierten System viele andere Modifikationen im Rahmen der Erfindung
gemäß den Ansprüchen vorgenommen
werden können.