-
Hintergrund
und Zusammenfassung der Erfindung
-
Im
allgemeinen beinhalten Computer-Grafiksysteme die Darstellung von
Daten auf dem Schirm einer Kathodenstrahlröhre (CRT), um dynamische Bilder
zu erreichen. Typischerweise bestehen die Anzeigen aus einem rechteckigen
Feld aus Tausenden von einzelnen Bildelementen (Bildpunkte oder
Pels). Jeder Bildpunkt im Feld stellt verarbeitete Bildpunktdaten
dar, z. B. Daten, welche Farbe, Helligkeit und Tiefe darstellen.
-
Bildpunktdaten
können
der CRT von einem sogenannten "Bildspeicher" zugeführt werden,
der in der Lage ist, Daten mit hoher Geschwindigkeit zu senden oder
zu empfangen. Verschiedene Arten der Organisation und Abtastung
von Bildspeichern zur bildpunktweisen Ansteuerung von Anzeigen sind
veröffentlicht
in einem Lehrbuch mit dem Titel "Computer
Graphics: Principles And Practice", Second Edition, Foley, Van Dam, Feiner & Hughes, herausgegeben
1990 durch Addison-Wesley
Publishing Company.
-
Um
nacheinander Bildpunkte "darzustellen" oder zu "schreiben", indem man den Bildschirm
der CRT anregt, werden häufig
Rastermuster sowohl beim Fernsehen als auch im Bereich der Computergraphik
genutzt. Rastermuster-Abläufe
können
analog zum Muster der westlichen Lesemethode verstanden werden,
d. h. Bildpunkte werden wie Wörter einer
nach dem anderen, von links nach rechts und Zeile für Zeile
von oben nach unten abgetastet. Somit zeichnet der Strahl der CRT
ein Rastermuster Bildpunkt für
Bildpunkt, Zeile für
Zeile, Bild für
Bild, um eine dynamische Darstellung zu erreichen. Systeme für solche
Darstellungen sind ausführlich
im oben erwähnten
Foley-Lehrbuch beschrieben.
-
Im
allgemeinen werden, um eine dynamische Graphikanzeige zu unterstützen, dreidimensionale
Geometriedaten, die Objekte oder Primitive (z. B. Vielecke und Dreiecke)
repräsentieren,
in einem Hauptspeicher, z. B. in der Form einer Platte, gespeichert.
Die Geometriedaten (dreidimensional oder 3D) werden verarbeitet,
um ausgewählte
Daten zur Verfügung
zu stellen, die dann in zweidimensionale (2D) Anzeigedaten umgewandelt
werden, welche jeden einzelnen Bildpunkt festlegen. Somit werden
graphische Bilder aus einfachen Formen (typischerweise Dreiecke),
die Objekte definieren, erzeugt.
-
Um
Bildpunkte für
die Anzeige zu erzeugen, werden die ausgewählten Primitive unter Berücksichtigung
eines bestimmten Blickwinkels bearbeitet und werden in einem Prozess,
der "Rasterung" genannt wird, zerlegt,
um ihren Beitrag zum jeweiligen Bildpunkt zu bestimmen. Während die
Primitive verarbeitet werden, wird die Dominanz zwischen sich überdeckenden
Objekten aufgelöst.
Z. B. kann ein dominantes Objekt die Oberfläche eines verdeckten Objekts verbergen.
Somit werden die Primitive einzeln in Bezug auf die kumulative Bestimmung
der im Bildspeicher gespeicherten Bildpunkte berücksichtigt, bis alle Objekte
berücksichtigt
wurden. Gleichzeitig mit der Verarbeitung der Primitive können Texturen,
wie aus einem Texturspeicher, z. B. einem Speicher, der eine Textur
enthält,
in den Bildpunkten berücksichtigt
werden.
-
Betrachtet
man den Graphikablauf etwas genauer, so werden die Primitive typischerweise
im dreidimensionalen "Modell"- oder "Welt"-Raum, der durch
ein Koordinatensystem definiert ist, gespeichert. Der Weltraum wird
zusammen mit geometrischen Transformationen im oben erwähnten Foley-Lehrbuch in Kapitel
5 behandelt. Eine solche Transformation beinhaltet Normierung, so
dass ein Bildraum in einen kanonischen Bildraum übergeführt wird. Transformierte Primitive
werden auf den kanonischen Bildraum zugeschnitten und dann weiter
in den zweidimensionalen Bildschirmraum zur Darstellung transformiert.
Im allgemeinen werden diese ersten Arbeitsschritte in einem geometrischen
Untersystem, das häufig
als "Frontend" des graphischen
Anzeigesystems bezeichnet wird, durchgeführt. D. h., das Frontend-Untersystem
durchläuft
das Anzeigemodell und überträgt die Primitive
in den Bildschirmraum. Strukturen und Verfahren eines solchen Untersystems
werden im oben erwähnten
Foley-Lehrbuch in Kapitel 18 diskutiert. Mit den Daten aus dem Frontend-System
fortfahrend erzeugt ein sogenanntes "Backend"-Untersystem das endgültige Bild,
indem es jedes Primitive rastert, bestimmt, welches Primitive beim
jeweiligen Bildpunkt sichtbar ist und die ausgewählten Bildpunkte entsprechend
einfärbt.
Solche Verfahren werden im oben erwähnten Foley-Lehrbuch in Kapitel 18 diskutiert. Das
Dokument Pearson D.: "Texture
mapping in model-based image coding" Signal Processing. Image Communication,
Vol. 2, No. 4, 1. Dezember 1990, Seite 377–395, legt eine Methode offen,
mit der die Struktur vom Bild eines Ojbekts gespeichert wird und
anschließend
auf die Oberfläche
eines Computermodells dessel ben Objekts abgebildet wird.
-
Da
Objekte aus Vielecken gebildet werden, können Objekte in eine größere Anzahl
Vielecke, z. B. Dreiecke, aufgeteilt werden, um einen höheren Detailreichtum
in Computergraphikbildern zu erreichen. Indes haben die praktischen
Einschränkungen solcher
Aufteilungen die Entwicklung eines anderen Zugangs, bekannt als "Texturierung", veranlasst. Im wesentlichen
steht eine Textur, bestehend aus einzelnen Elementen, genannt "Texel" (von Textur-Pixel),
in einem zweidimensionalen Raum zur Verfügung, der im allgemeinen durch
rechtwinkligen Koordinaten "u" und "v" bestimmt ist. Im Wesentlichen wird
ein Primitives, wenn man die Textur darauf abbildet, strukturiert,
wie z. B. mit dem Muster von Ziegeln oder sogar einem Bild. Eine
ausführliche
Abhandlung über
Texturen und ihre Abbildung gibt es im oben erwähnten Foley-Lehrbuch in Kapitel
16.
-
Obwohl
Texturierungstechniken inzwischen weit verbreitet zum Einsatz kommen,
birgt die Erzeugung von Texturen, die sich auf dreidimensionale (3D-)Objekte
beziehen, verschiedene Probleme. Man beachte, dass, wie oben dargestellt,
das Objekt oder Modell für
ein Bild im Weltraum existiert und dreidimensional ist, während die
Textur, die auf das Modell aufgebracht werden soll, im zweidimensionalen
Texturraum existiert. Man betrachte einige Techniken, die in der
Vergangenheit eingesetzt wurden, um die Textur für eine gewünschte Darstellung zu erhalten.
-
In Übereinstimmung
mit einem früheren
Verfahren ist es üblich,
dass ein 3D-Modell von einer Person und ein 2D-Bild des zu modellierenden Objekts von
einer anderen Person geschaffen wird. Einer dritten Person wird
die Aufgabe zugeteilt, das 2D-Bild so zu verändern, dass es zu dem 3D-Modell passt, oder
umgekehrt. Da die beiden, Objekt und Bild, getrennt geschaffen wurden,
ist diese Aufgabe typischerweise schwierig und zeitaufwändig mit schlechtem
Ergebnis. Dieses Verfahren kann als Analogon dazu gesehen werden,
die Fotographie des Gesichts einer Person so zu strecken, dass sie korrekt
auf den Kopf einer Schaufensterpuppe passt.
-
In
einem anderen Ansatz wird das 3D-Modell als Graphik erstellt und
dargestellt. Die 2D-Textur wird ebenfalls dargestellt.
-
In
einem interaktiven Verfahren modifiziert ein Benutzer die 2D-Textur
und betrachtet dann die Ergebnisse, wenn diese auf das Modell aufgebracht wird.
Diese Vorgehensweise ist analog dazu, eine Orange zu schälen, die
Schale flach hinzulegen und dann eine Karte der Erde so darauf zu
malen, dass diese richtig dargestellt wird, wenn die Schale wieder auf
die Orange gelegt wird. Die Beschränkung besteht darin, dass Farbe
nur auf die Schale aufgebracht werden kann, wenn diese flach liegt.
Wiederum ist das Verfahren umständlich
und zeitaufwändig.
-
Nach
einem weiteren Ansatz wird ein 3D-Modell erzeugt und dargestellt.
Die Orientierung des Modells unter Berücksichtigung eines bestimmten
Blickwinkels wird genutzt, um es vom 3D-Modellraum in den 2D-Texturraum
abzubilden. Farbe, Transparenz und andere Daten werden direkt auf
die ausgewählte Ansicht
des 3D-Modells aufgebracht. Die Daten werden dann über die
Abbildung in die Textur umgewandelt. Das Problem bei diesem Verfahren
ist, dass es blickwinkelabhängig
ist. D. h., sobald das Modell skaliert, gedreht, verschoben oder
anderweitig bewegt wird, sind die Daten in der Textur nutzlos. Die
Abbildung vom 3D-Modellraum auf den 2D-Texturraum existiert nur
für eine
Orientierung. Außerdem
beschädigt
dieses Verfahren, wenn eine dauerhafte Abbildung bereits definiert
wurde (eine von der Orientierung unabhängige Abbildung), die vorige
Abbildung. Das physische Analogon wäre die Orange, die ihre Farbe
verliert, wenn sie bewegt wird. Insbesondere würde, wenn der Umriss der Kontinente
auf der Orangenschale als vorläufige
Struktur definiert wäre,
dieser Umriss in der Textur bei Bewegung zerstört.
-
Natürlich wurden
auch andere Verfahren vorgeschlagen, die auch Hybriden der oben
beschriebenen Verfahren beinhalten. Z. B. wurde vorgeschlagen, ein
Modell aus "Mikro-Polygon" zu verwenden, wobei
jeder Vertex eines jeden Mikro-Polygons die Texturdaten speichert.
Als Folge daraus ist das Problem der Blickwinkelabhängigkeit
gelöst;
jedoch beeinträchtigt
diese Methode die Geräteleistung.
Man beachte, dass die Daten eigentlich nicht als Texturdaten gespeichert
werden, sondern als Vieleck-Vertex-Daten. Demnach kann der Detailreichtum
eines Modells nicht durch eine einfache Vergrößerung der Textur erhöht werden.
Das System kann auch Einschränkungen
bei der Behandlung komplizierter Modelle haben.
-
Grundsätzlich ist
das System der vorliegenden Erfindung dafür vorgesehen, die Probleme
von früheren,
oben erwähnten
Systemen zu lösen.
Die Erfindung ist im Verfahrensanspruch 1 und im Systemanspruch
9 dargelegt. Insbesondere, wie unten ausführlich dargelegt, können Daten
direkt auf dem Modell angeordnet werden, so dass die Anpassung korrekt
durchgeführt
werden kann. Ebenso wird, wie unten offengelegt, das Aufbringen
neuer Daten auf die Textur existierende Abbildungen zwischen Modell und
Texturraum nicht zerstören.
Statt dessen werden die neuen oder frischen Daten entsprechend der existierenden
Abbildungen zwischen Modell- und Texturraum
auf die Textur aufgebracht. Des weiteren ist die Abtastungsauflösung der
Daten nicht durch die geometri sche oder durch Vielecke bestimmte
Auflösung
eines Modells bestimmt, sondern durch die Auflösung des Texturraums, der unabhängig von
der Modellauflösung
skaliert werden kann.
-
Gemäß der vorliegenden
Ausführungsform setzt
das System Geometriedaten für
ein 3D-Modell, z. B. einen Würfel,
einen animierten Kopf oder einen Erdball, zusammen mit einer festgelegten
Abbildung in den 2D-Texturraum, z. B. in uv-Koordinaten, voraus.
Wie offengelegt, nutzt das System die Geometriedaten, um eine Darstellung
des 3D-Modells zur Verfügung
zu stellen. Danach werden ergänzende Daten,
wie z. B. die Farbe des Modells, zur Verfügung gestellt. Neue ergänzende Daten
werden dann zur Verfügung
gestellt, z. B. indem man mit einem "Pinsel" Farbe direkt auf das dargestellte Modell
aufbringt. Zu beachten ist, dass die neuen ergänzenden Daten in der Form von
Texturdaten von einer Vielzahl an Quellen, außer von einem Pinsel, z. B.
von einer Bildverarbeitung oder einem Datenmanipulationssystem zur
Verfügung
gestellt werden können.
Ebenso ist zu beachten, dass die ergänzenden Daten und die neuen
ergänzenden
Daten nicht nur Strukturen sein können, sondern jede Art von
Phänomen
oder Information. Insbesondere können
die ergänzenden
Daten Strukturen oder sichtbare Daten (Farbe, Transparenz usw.),
Transformations- oder Deformationssysteme für 3D-Daten (wie z. B. bump maps und displacement
maps) oder Transformations- oder Deformationssysteme für 2D-Daten
(wie z. B. Systemkerne zur Bildverarbeitung) sein; ebenso ist der
Gebrauch von NURBs (nicht gleichförmige rationale B-Splines) zu beachten,
wie er auf Seite 502 des Foley-Lehrbuchs,
auf das verwiesen wurde, behandelt wird.
-
Verfolgt
man das anschauliche Beispiel des Farbauftrags oder der Farbdaten
auf dem Modell, so ist es offensichtlich, dass bestimmte ausgewählte Bildpunkte
der Anzeige betroffen sind. Dementsprechend werden die Farbdaten
von jedem dieser Bildpunkte in einem sogenannten "versteckten Bildschirm"-Raum abgespeichert.
Nachdem die Farben abgespeichert wurden, sucht sich das System die maßgeblichen
Vielecke, z. B. vorne liegende, die von den Bildpunkten berührt werden,
aus. Mit Hilfe von Transformationen werden die maßgeblichen
Vielecke schließlich
als Texel im Texturraum ausfindig gemacht. In der vorliegenden Ausführungsform
werden die Texel, um sie in die Textur hinein zu mischen, gerastert.
Insbesondere werden die Texel, wie unten ausführlich beschrieben wird, auf
die Geometriedaten zurückgeführt, um
für das
Vieleck in Verarbeitung Bildpunkte im Bildschirmraum anzugeben.
Ist ein Bildpunkt sichtbar (basierend auf dem Inhalt des Bildspeichers),
werden die neuen Daten ("Farbauftrag") in den Bildspeicher-Inhalt
hinein gemischt. Danach kann die Abbildung effektiv angewandt werden,
um zu strukturieren oder irgendwie anders Primitive, die verschieden
angeordnet und aus verschiedenen Blickwinkeln betrachtet werden,
zu behandeln.
-
Kurzbeschreibung
der Zeichnungen
-
In
den Zeichnungen, die einen Teil dieser Beschreibung bilden, sind
beispielhafte Ausführungsformen
der Erfindung dargestellt. Dabei zeigt:
-
1 ein
Blockdiagramm und eine Illustration eines Systems, das gemäß der vorliegenden
Erfindung aufgebaut ist;
-
2 eine
schematische Darstellung einer Textur, wie sie mittels des Systems
der 1 entwickelt wurde;
-
3 ein
Blockdiagramm, das eine andere Darstellung des Systems der 1 zeigt,
wobei Speicher und Verarbeitungsstrukturen detailliert dargestellt
sind;
-
4 ein
Flussdiagramm, das einen Arbeitsprozess für das System von 1 und 3 erläutert;
-
5 ein
Diagramm, das einen Ablauf des Systems von 1 und 3 erläutert;
-
6 ein
Blockdiagramm einer Komponente eines Teils des Systems, wie es in 3 erläutert wird;
und
-
Beschreibung
der bevorzugten Ausführungsform
-
Wie
oben angegeben, wird hierin ausführlich eine
veranschaulichende Ausführungsform
der vorliegenden Erfindung offengelegt. Dennoch können Bildanzeigen,
Datenprozessoren, kreative Formate, Ausgestaltungen der Anzeige
oder Bilddaten, Speicherungs- und Transformationsmethoden, ebenso wie
andere Elemente, die gemäß der vorliegenden Erfindung
genutzt werden, auf vielerlei Art verwirklicht werden, wobei einige
dieser Arten durchaus anders als das vorliegende Ausführungsbeispiel
sein können.
Folglich sind die hier offengelegten spezifischen Strukturen und
funktionalen Details lediglich dargestellt; dennoch werden sie insofern
als beste Ausführungsform
zum Zwecke der Offenlegung angesehen und stellen eine Basis für die Ansprüche dar,
welche den Geltungsbereich der vorliegenden Erfindung definieren.
-
Zunächst wird
unter Bezug auf 1 ein Erdball G auf einer graphischen
Anzeige dargestellt. Wie ausführlich
unten dargestellt, bezieht die Darstellung des Erdballs G 3D-Geometriedaten,
die eine Kugel definieren, und zweidimensionale Strukturdaten, die
die Landmassen L umreisen, mit ein. Ebenso können, wie unten ausführlich beschrieben
wird, die Strukturdaten in der Form einer zweidimensionalen Textur
M, ähnlich
wie in 2 veranschaulicht, gespeichert werden.
-
Um
einleitend die Funktion des dargestellten Ausführungsbeispiels zu betrachten,
soll angenommen werden, dass das Bedürfnis besteht, auf dem Erdball
G zu "malen" oder ihn zu kolorieren.
Um diesen Arbeitsvorgang zum Zwecke der Beschreibung zu vereinfachen,
soll in einem ersten Schritt angenommen werden, dass einfach ein
neuer blauer Punkt SL im Westen der Vereinigten Staaten platziert werden
soll, der z. B. Salt Lake City bezeichnet. Verschiedene Verfahren,
einschließlich
Malen mit einem Pinsel, sind gut bekannt, um den Punkt SL auf dem Erdball
aufzubringen. In Übereinstimmung
damit werden die Daten, sobald der Punkt SL auf dem Erdball aufgebracht
ist, verarbeitet und der Punkt SL, entsprechend der Geometriedaten
des Erdballs G skaliert, zur Textur M hinzugefügt. Entsprechend kann der Punkt
SL dann auf dem Erdball G aus verschiedenen Blickwinkeln und in
verschiedenen Positionen dargestellt werden.
-
Das
Verfahren zur Datenverarbeitung ist, wie unten offen gelegt wird,
umfangreich und würde
typischerweise wesentlich mehr Daten als nur den Punkt SL beinhalten.
Z. B. könnte
es wünschenswert
sein, den Erdball im Bereich der Meere blau "anzumalen", die einzelnen Staaten der Landmassen
L mit unterschiedlichen Farben zu versehen und alle größeren Städte durch
Punkte zu kennzeichnen. Solche Arbeitsabläufe beinhalten nur Erweiterungen
des unten beschriebenen, vereinfachten Arbeitsablaufs, um den Punkt
SL in die Textur M aufzunehmen (2).
-
Der
Verarbeitungsablauf und die Strukturen, um ausgehend vom Punkt SL
auf dem Erdball den Punkt SL in der Textur M zu erhalten, werden
unten ausführlich
behandelt. Dennoch soll zunächst
der Aufbau des Graphiksystems von 1 betrachtet werden.
Ein Datenträger
mit Geometriedaten 10 (1, oben
links) speichert echte 3D-Geometriedaten für Anzeigen. Um die Datenwege
zu kennzeichnen, ist die Platte 10 mit einem Geometrieprozessor 12 verbunden,
der als Computergraphik-Frontend (Nutzerseitiger Zwischenrechner)
vorgesehen ist. D. h., dass der Geometrieprozessor 12 ausgewählte Primitive,
z. B. Dreiecke oder NURBs, die auf der Platte 10 gespeichert
sind, in den Bildschirmraum transformiert, um die Daten auf einer
Anzeige darzustellen. Frontend-Graphikprozessoren zur Benutzung
hierin sind gut bekannt und werden in Kapitel 18 des oben erwähnten Foley-Lehrbuchs behandelt. Hinsichtlich
der Anzeige des Erdballs G, bearbeitet der Geometrieprozessor 12 diejenigen
Daten, die die Kugel G definieren.
-
Diejenigen
Daten, welche eine Kugel darstellen, werden vom Geometrieprozessor 12 an
einen Rendering-Prozessor 14 weitergegeben, der als Backend-
oder Rasterungsprozessor zur Ausgabe der Bilder in einen Bildspeicher 16,
indem er die Primitive, die die Kugel darstellen, rastert, betrachtet
werden kann. Der Vorgang beinhaltet, festzustellen, welche Primitive
zu jedem Bildpunkt beitragen, dann die Bildpunkte entsprechend zu
schattieren und zu texturieren. Zur Texturierung ist der Rendering-Prozessor 14 mit
einem Texturspeicher 18 verbunden, der Texturen, wie z.
B. die Karte M von 2 ohne den Punkt SL (neue Daten),
enthält.
Wie oben angedeutet, sind geeignete Variationen des Rendering-Prozessors 14 und
des Texturspeichers 18 aus dem Stand der Technik bekannt,
wie im erwähnten
Foley-Lehrbuch offengelegt.
-
Die
vom Rendering-Prozessor 14 an den Bildspeicher 16 weitergegebenen
Bildpunktdaten bauen ein Abbild des Bil des auf und steuern dementsprechend
eine Anzeigeeinheit 20 an, die den Erdball G bildlich darstellt.
Wie oben angedeutet, ist das System gemäß der Programmierung oder der
Bedienelemente, in der Lage, den Erdball G verschiedenartig zu bewegen
und dabei die Darstellung zu ergänzen und
den Blickwinkel des Erdballs G zu verändern. Solche Methoden sind
gut bekannt; jedoch ist das System demgemäß in der Lage, den Erdball
G zusammen mit dem Punkt SL (neue ergänzende Daten) zu texturieren
und diese Textur in den Texturspeicher 18 einzubringen,
wobei die Umrisse der Landmassen L (alte oder existierende ergänzende Daten)
zusammen mit dem Punkt SL erhalten bleiben. Vorweg werden nun einige
Erläuterungen,
die die Verarbeitung betreffen, um eine Bilddarstellung durch die
Einheit 20 zu erhalten, als angebracht erachtet.
-
Wie
oben angedeutet, entstehen die Einzelbildpunkte im Bildspeicher 16,
indem zahlreiche Dreiecke (Vielecke oder andere 3D-Primitive) darauf
getestet werden, ob sie in der Anzeige erscheinen und zum Bildpunkt
beitragen. Die endgültige
Darstellung eines jeden Bildpunktes entsteht im Bildspeicher 16, basierend
auf allen möglichen
behandelten Dreiecken. Im allgemeinen werden die Dreiecke von den Datenträgern 10 mit
Geometriedaten bezogen, im dreidimensionalen Modellraum vom Geometrieprozessor 12 vorprozessiert
und dem Rendering-Prozessor 14 vorgelegt. Dominierende
Oberflächen
der Dreiecke werden dann durch den Rendering-Prozessor 14 in den 2D-Bildschirmraumraster
konvertiert, um den Bildspeicher 16 zu laden. Bei diesem
Arbeitsablauf, der Methoden nutzt, die aus dem Stand der Technik
bekannt sind, wird die Textur M (2), die die
Landmassen L skizziert, aufgebracht. Dementsprechend steuert der
Bildspeicher 16 die Anzeigeeinheit 20 an, um das
Bild des Erdballs G ohne den Punkt SL darzustellen.
-
Wie
oben erwähnt
existieren verschiedene Vorrichtungen, um Farben wie den Punkt SL
auf dem Erdball G aufzubringen. Insbesondere ist solch einer Vorrichtung
eine Texturdatenquelle 22 zugeordnet und kann auch einen
Pinsel beinhalten, wie es in einer anhängigen US-Patentanmeldung mit
dem Titel "Real
Time Image Generation System For Simulating Physical Paint, Drawing
Media, and Feature Modelling With 3D Graphics" unter der Anmeldenummer 08/195,112
offengelegt wird.
-
Verfolgt
man das obige Beispiel weiter, so kann die Texturdatenquelle 22 verwendet
werden, um den blauen Punkt SL mit Hilfe des Prozessors 14 dem
Bildspeicher 16 zuzuführen.
Die aufgetragene Farbe (der blaue Punkt SL) wird separat in einem
versteckten Bildschirmspeicher 24 gespeichert. Insbesondere
wird die aufgetragene Rohfarbe im versteckten Bildschirmspeicher 24 für genau
bezeichnete Bildpunkte des Bildspeicherbereichs, der den blauen Punkt
SL trägt,
angegeben. Dabei ist zu beachten, dass ein "versteckter" Bildschirmspeicher nicht notwendig
ist, wenn die Daten anderweitig vorliegen.
-
Ist
der Punkt SL im versteckten Bildschirmspeicher 24 gespeichert,
im Bildspeicher 16 abgebildet und auf dem Erdball G dargestellt,
so fährt
das System fort, den Punkt SL der Textur M hinzuzumischen (2).
Dieser Arbeitsablauf wird zuerst etwas allgemein beschrieben, dann
aber mehr im Detail, wobei Bezug auf die verschiedenen betroffenen Koordinatensysteme
genommen wird (3). Zuerst schließt der Arbeitsablauf
die Verarbeitung von Vielecken oder anderen Primitiven ein.
-
Vielecke
von dem Datenträger 10 werden nacheinander
behandelt. D. h.: alle Vielecke, die zum Bild des Erdballs G beitragen,
werden auf Bedeutung für
den Punkt SL unter sucht. Insbesondere werden die Vielecke darauf
untersucht, ob sie im Bild des Erdballs G im Vordergrund liegen.
Relevante Vielecke werden dann vom 3D-Modellraum in den 2D-Bildschirmraum projiziert
und darauf überprüft, ob sie
in der Nähe
des Punktes SL liegen. Vielecke in der Nähe des Punktes SL (durch Vertices
bestimmt) werden in den Texturraum projiziert (Texturspeicher 18),
um die für
den Punkt SL wichtigen Texel zu bestimmen. Die relevanten Texel
werden dann gerastert und der Inhalt der entsprechenden Texel mit
den Farbdaten des blauen Punktes SL gemischt. Die gemischten Daten
werden dann in der Textur M (2) abgespeichert,
was eine effektive und vielfach nutzbare Beigabe zur Textur ergibt.
-
Wie
unten ausführlich
beschrieben, werden die Abläufe
zwischen den Speichereinheiten (10, 16, 18 und 24)
von den Prozessoren (12, 14 und 26) zusammenwirkend
durchgeführt.
Um die Strukturen und den Prozessablauf ausführlicher zu verfolgen, wird
nun Bezug auf 3 genommen, die die Prozessoren
in Bezug auf die Räume
der Speichereinheiten darstellt.
-
In 3 stellen
Würfel
und Blöcke
den Speicher für
die verschiedenen Raumkoordinaten dar. Insbesondere stellt ein Texturspeicherblock 30 einen 2D-Raum
für Texturen
zur Verfügung.
Ein Modellspeicherwürfel 32 stellt
einen 3D-Speicher
für Geometriedaten
zur Verfügung.
Ein Speicherwürfel
für den
normierten Raum 34 stellt einen 3D-Raum für normierte
Geometriedaten zur Verfügung,
und ein Bildschirmraum-Speicherblock 36 (Bildspeicher) stellt
einen 2D-Speicher für
die Darstellung oder Schirmdaten zur Verfügung. Zusätzlich stellt ein versteckter
Bildschirmspeicherblock 38 eine zweidimensionale Ablage
für die
aufgetragene Farbe zur Verfügung.
Dieses Verfahren funktioniert auch mit 3D- Texturräumen.
-
Als
Hilfe für
das Verständnis
werden jeder der Speicher in 3, ihr Inhalt
und die Verarbeitungsschritte alphabetisch bezeichnet. Z. B. enthält der Speicherblock 30 die
Texeldaten a (Textur) im 2D-Texturraum b. Der Speicherwürfel 32 enthält 3D-Geometriedaten
d im 3D-Modellraum e. Der Speicherwürfel 34 enthält die im
normierten 3D-Raum h enthaltenen, transformierten Objektdaten g.
Der Speicherblock 36 enthält die Bilddaten j im 2D-Bildschirmraum
k. Daten werden auch noch dem Block m bereitgestellt, abgespeichert
als Farbdaten n.
-
Die
Bewegung der Daten von einem Speicher zum anderen beinhaltet Transformationen,
wie oben allgemein beschrieben wurde. Z. B. kann die Transformationsabbildung
zwischen 2D-Texturraum b und 3D-Modellraum e entweder implizit oder
explizit erfolgen und kann oder kann nicht global umkehrbar sein.
Auf jeden Fall sind Daten fallweise umkehrbar.
-
Die
Arbeitsabläufe,
Transformationen eingeschlossen, sind ebenso alphabetisch durchnummeriert.
Insbesondere führt
der Frontend-Prozessor 12 die Transformationen c zwischen
dem Texturblock 30 und dem Modellraumwürfel 32 durch. Transformationen
zwischen dem Modellraumwürfel 32 und
dem normierten Würfel 34 sind
als f bezeichnet. Die Transformationen i erfolgen zwischen dem normierten
Raumwürfel 34 und
dem Bildschirmraumblock 36. Wie unten ausführlich beschrieben,
werden alle diese Operationen vom Abbildungsprozessor 26 kontrolliert,
der auch die Rasterung durchführt.
Dabei ist zu beachten, dass in unterschiedlichen Implementierungen
die verschiedenen Operationen unterschiedlich zugewiesen werden
können.
Im wesentlichen sind die einzelnen Operationen, wie die verschiedenen
Transformationen und die Rasterung, gut bekannt, wie es auch die
Strukturen für
ihre Ausführung sind.
Es ist die Anordnung, in der die Prozesse hiervon ausgeführt werden,
die das gewünschte
Resultat bringt.
-
Es
soll im offengelegten Ablauf zuerst die Entwicklung einer Anzeige
ins Auge gefasst werden. Die Darstellung von Vielecken (nicht dargestellt),
die wiederum ein geometrisches Kästchen 42 begrenzen (3),
werden in eine normierte Version umgewandelt, das als normiertes
Kästchen 44 durch
die Daten g im Raum h dargestellt sind. Vom normierten Raum h wird
die Kästchendarstellung 44 in
eine Kästchendarstellung 46 (Daten
j im Raum k) umgewandelt. Wiederum ist zu beachten, dass die Kästchendarstellung
aus Vielecken (Dreiecke – nicht
dargestellt) besteht, die eigentlich die transformierten Daten bilden.
-
Die
Transformationen der Daten von einem Speicher in einen anderen beinhalten
Matrizenoperationen, die aus dem Stand der Technik bekannt sind. Insbesondere
unter diesem Gesichtspunkt sei auf Kapitel 18 und den Anhang
des oben erwähnten
Foley-Lehrbuchs verwiesen. Solche Transformationen werden von den
Prozessoren 12 und 14 in Vorwärtsrichtung und von eben diesen
Prozessoren zusammen mit dem Abbildungsprozessor 26 in
Rückrichtung
durchgeführt.
Rekapitulierend stehen, in einigen Fällen jedoch nicht notwendigerweise,
Daten zur Verfügung,
die in eine Folge von Dreiecken aufgegliedert wurden. Die Daten
d, die das Kästchen 42 definieren, werden
im Normalfall vom Frontend-Prozessor 12 normiert, um die
Daten g zur Verfügung
zu stellen, die den Würfel 44 beschreiben.
Das normierte Kästchen 44 wird
dann texturiert und gerastert, um die Daten, die den Würfel 46 beschreiben,
darzustellen, wie er durch die Daten j im Raum k dargestellt wird. Somit
ist der Würfel 46 also
dargestellt, indem Daten von dem geometrischen Kästchen 42 und der
Abbildung 48 benutzt werden.
-
Angenommen,
die blaue Farbe, die den Punkt 40 bestimmt, würde auf
das Kästchen 46 mittels
der Eingabe 50 aufgebracht, wobei eine Quelle für Texturdaten
genutzt wird, wie sie hinsichtlich 1 beschrieben
ist. Im wesentlichen wird der Punkt 40 auf dem Würfel 46 dargestellt
und die Farbdaten werden im Bildschirmraum k wie in einem Bildspeicher
gespeichert. Die Farbe (oder andere gewünschte Daten) wird ebenso in
einem versteckten Bildschirmraum n als Daten m gespeichert.
-
Nachdem
ein Bild (Kästchen 46)
dargestellt und z. B. Farbe oder Farbauftrag (Punkt 40)
aufgebracht wurde, arbeitet das System daran, den Punkt 40 in
die Textur aufzunehmen, die sich im Texturspeicher 30 (3)
befindet. Von dieser Stelle können dann
die Daten des Punktes 40 zusammen mit jeder anderen Textur
gezielt auf unterschiedliche Darstellungen des Würfels 46 aufgebracht
werden.
-
Die
Operationen, um den Punkt 40 in die Textur b (Texturspeicher 30)
aufzunehmen, können bis
zu einem gewissen Grad zusammengefasst werden. Insbesondere eine
erste Operation beinhaltet, diejenigen Vielecke im Modellraum e
aufzufinden, die den Punkt enthalten. Diese Suchaufgabe kann durchgeführt werden,
indem Vielecke nacheinander vom Modellraum in den Bildschirmraum
zur Überprüfung überführt werden.
Nachdem ein ausgewähltes Vieleck
(oder Vielecke) identifiziert wurde, werden die Texel innerhalb
des Vielecks, die mit dem Bildpunkt zusammenfallen, die den Punkt 40 festlegen, ausfindig
gemacht und gerastert. Diese Operation wird nun ausführlich behandelt,
wobei gleichzeitig Bezug auf die 3 und 4 genommen
wird. In dieser Hinsicht veranschaulicht die 4 die logischen
Operationen, die durch die kooperative Betätigung des Frontend-Prozessors 12 (3),
des Backend-PROZESSORS 14 und des Abbildungsprozessors 26 durchgeführt werden.
-
Das
Verfahren, um die (für
den Punkt 40) maßgeblichen
Vielecke auszuwählen
oder zu identifizieren, beinhaltet das Überprüfen der Vielecke, wie sie im
Modellraum e gespeichert sind. Folglich, wie durch Block 60 (4)
angedeutet, wird jedes Vieleck zur Vorbereitung einer Abfrageoperation,
wie sie durch Block 62 dargestellt ist, durch die Funktion
f (Prozessor 12) von den Daten d in die Daten g übergeführt. Die
Abfrageoperation f entscheidet, ob ein zur Diskussion stehendes
Vieleck "im Vordergrund" ist oder nicht.
Im wesentlichen wird ein Vieleck, wenn es nicht "im Vordergrund" ist, nicht in der Anzeige erscheinen
und kann verworfen werden. Andernfalls muss ein Vieleck, wenn es "im Vordergrund" ist, weiterhin in
Erwägung
gezogen werden und das Verfahren wird mit Weitergabe der Daten g' zu Block 64 fortgesetzt,
wo die Operation i ausgeführt
wird.
-
Wie
in Block 64 dargestellt, werden die Daten g' (ein Beispiel für ein im
Vordergrund liegendes Vieleck) in eine Bildpunktdarstellung umgewandelt (Daten
j, gespeichert im Bildschirmraum k) (3). Zu beachten
ist, dass die Transformation auf die Polygon-Vertices angewandt
wird, um den Bereich des Vielecks im Bildschirmraum zu definieren,
wie es in Block 64 angedeutet ist. Die Daten j, die charakteristisch
für das
Vieleck sind, werden in der Form j' einer Abfrage zur Verfügung gestellt,
wie es in Block 66 (4) dargestellt
ist. Die Abfrage bestimmt insbesondere die Nähe von Bildpunkten (Daten j') zum Punkt 40,
insbesondere den aufgebrachten neuen Daten, z. B. einen Farbauftrag.
Wenn die Bildpunkte nicht im Bereich oder der Gegend des Farbauftrags sind,
kann das Vieleck verworfen werden und der Arbeitsablauf beginnt
mit dem nächsten
Vieleck von vorne. Andernfalls, wenn der Bereich des Farbauftrags
bestimmt ist, wird das Vieleck weiter bearbeitet. Insbesondere werden
die Daten j' zurücktransformiert,
um bestimmte Bildpunkte in der Textur, wie in Block 68 angedeutet,
zu identifizieren. Gemäß 3 und 4 beinhaltet
die Verarbeitung von Block 68 Rücktransformationen über die
Abläufe
i, f und c, um diejenigen Texel in einem zur Überprüfung ausgewählten Vieleck, die die aufgebrachte
Farbe tragen, zu identifizieren. Der nächste Arbeitsschritt beinhaltet im
allgemeinen die Rasterung der Vieleckdaten a', wie es Block 70 zeigt. Die
Rasterung beinhaltet die Behandlung der einzelnen Texel (als a' in Beziehung zum
Vieleck gekennzeichnet), um diese einzufärben. Folglich werden die einzelnen
Texel nacheinander entsprechend der Arbeitsschritte, die in 4 unter Block 70 veranschaulicht
sind, verarbeitet. Die Texel werden nacheinander, bis alle überprüft sind,
bearbeitet, wonach der Arbeitsablauf zur Behandlung eines neuen
Vielecks (Block 60) zurückspringt.
-
Betrachtet
man die Schritte zur Rasterung der Texel, so werden die Daten a' (die ein Texel angeben)
durch die Operation wieder mit den Geometriedaten identifiziert,
wie es Block 72 zeigt. Dieser Arbeitsschritt wird durch
den Prozessor 12 durchgeführt, wie es in 3 veranschaulicht
ist.
-
Im
wesentlichen wird das Texel umgerechnet, um Bildpunktdaten d' im Modellraum e
anzugeben. Zu beachten ist, dass diese "Bildpunktdaten", abhängig von den zuvor erwähnten Transformationen,
auch mehrere Bildpunkte oder Teile von Bildpunkten sein können. Nun
wird eine weitere Transformation durchgeführt, wie sie in Block 74 dargestellt wird.
Insbesondere werden die Daten der Bildpunkte d' in den Bildschirmraum übergeführt, wo
sie die Bildpunktdaten j''' kennzeichnen. Im Bildschirmraum k werden
die Bildpunktdaten j''' auf Sichtbarkeit überprüft, wie es im Ab frageblock 76 dargestellt
ist. Sind die Pixeldaten nicht sichtbar, so werden sie verworfen.
Andernfalls wird ein Bildpunkt identifiziert, der festlegt, dass
das ihm entsprechende Texel den Farbauftrag erhalten soll. Insbesondere
wird das existierende Texel, das Inhalt haben kann oder nicht, mit
den Daten m gemischt, die dem Farbauftrag im versteckten Bildschirmraum
n entsprechen. Der Arbeitsschritt ist in 4 durch
den Block 78 dargestellt. Demzufolge wurde der Inhalt des
Farbauftrags (die hinzugefügte
Eigenschaft) der Textur für
spätere und
eindeutige Texturierungsaufgaben hinzugefügt. Nach Beendigung dieser
Operation, schreitet der Prozess zum letzten Abfrageblock 80,
um zu überprüfen, ob
oder ob nicht das Texel das letzte des Vielecks war. Wenn dem so
ist, ist die Verarbeitung des Vielecks beendet und der Prozess springt
zurück
zu dem Arbeitsschritt, der als Block 60 dargestellt ist. Andernfalls
müssen
noch weitere Texel des Vielecks durch Rasterung verarbeitet werden,
demzufolge der Arbeitsablauf bei Block 72 mit der Behandlung
des nächsten
Texels fortgesetzt wird.
-
Als
teilweise Wiederholung sind Rasterungsmethoden im oben erwähnten Foley-Lehrbuch
beschrieben und in diesem Zusammenhang Rasterungsmethoden in Bezug
auf ein Vieleck auf Seite 884 veranschaulicht. Im Wesentlichen kann
nach der Identifizierung eines Vielecks 86 (5)
die Rasterung die sukzessive Behandlung von getrennten, in Betracht
kommenden Bildpunktbereichen 88 beinhalten. Es sei z. B.
angenommen, dass nur die Spitze 90 des Vielecks 86 in
der Anzeige sichtbar ist. Z. B. kann der untere Teil des Vielecks 86 durch
ein anderes, teilweise dargestelltes Vieleck 92 verdeckt
sein. In diesem Fall werden die dem Bildpunktbereich 88 entsprechenden
Texel identifiziert, um den aufgebrachten Farbauftrag zu erhalten.
Wie oben angedeutet, werden die Bildpunktbereiche 88 nacheinander
während
der Rasterung und anschließenden
Bestimmung, ob sie gemischt werden müssen, behandelt. Insbesondere
wird der Test, ob ein Vieleck verdeckt ist, durchgeführt, wobei
die Tiefeninformationen ("z-Buffer") beim 3D-Rendering-Prozess
beibehalten werden.
-
Die
Ausführung
des oben beschriebenen Verfahrens als, wie vorgeschlagen, kooperative
Verarbeitung, wird durch die Prozessoren 12 und 14 zusammen
mit dem Abbildungsprozess 26 erreicht. Die Aufgaben des
Frontend- 12 und Backend-Prozessors 14 sind wohl
bekannt; die Arbeitsweise des Abbildungsprozessors 26 hingegen
verdient weitere Beachtung. In diesem Zusammenhang sei darauf hingewiesen,
dass jede der großen
Zahl an Verwirklichungen dazu eingesetzt werden kann, das Verfahren
auszuführen.
Dennoch kann, wie es zum Zwecke der Erklärung und Veranschaulichung
genau beschrieben wurde, der Prozessor 26 diejenige Form annehmen,
die in 6 dargestellt ist.
-
Eine
Steuerungseinheit 100 (6) steuert die
oben ausführlich
beschriebenen Abläufe
im Umfeld eines datenverarbeitenden Systems (1). In diesem
Zusammenhang ist die Steuerungseinheit 100, wie dargestellt,
mit dem Frontend-Prozessor 12, dem Rendering- oder Backend-Prozessor 14,
dem Texturspeicher 18, dem Bildspeicher 16 und
dem versteckten Bildschirmspeicher 24 verbunden. Zusätzlich nimmt
die Steuerungseinheit bi-direktionale Anschlüsse zu einem Komparator 102 und
einer Rasterungseinheit 104 auf. Wiederum sei festgehalten, dass
diese Funktionalität
auch von Komponenten eines existierenden Prozessors ausgeführt werden können; wie
auch immer steuert die Steuerungseinheit 100, wie hier
offen gelegt, den Komparator 102, der den im Abfrageblock 66 in 4 dargestellten Test
durchführt.
Die Rasterungseinheit 104 führt entsprechend den Rasterungsprozess
durch, der in Block 70 ausführlich beschrieben ist und
die Arbeitsschritte der Blöcke 72, 75, 76, 78 und 80 enthält. Somit
wird ein ganzheitliches System erreicht, um den oben ausführlich beschriebenen,
anschaulichen Arbeitsablauf auszuführen.
-
Entsprechend
können
Modelldaten in Zusammenarbeit mit einem Computergraphiksystem verwendet
werden, um graphische Bilder, die mit Texturen belegt sind, zu entwickeln
und weiterhin können,
in Übereinstimmung
hiermit, Farbaufträge
oder andere Formen von neuen Abbildungen auf ein Bild aufgebracht
werden, um in die Textur hineingemischt zu werden. Insbesondere
beinhalten die Arbeitsschritte das Testen der Modelldaten in Beziehungen zu
den neuen Abbildungsdaten oder zum Farbauftrag, um bestimmte Modelldaten
zu ermitteln, die dann transformiert und untersucht werden, um einen bestimmten
Bildpunktbereich zu ermitteln, der dann den Farbauftrag erhält. Entsprechend
wird ein effektives und geeignetes System zur Verfügung gestellt, um
Texturen oder ähnliche
Arten von Daten in einer Abbildung zusammen zu bringen, um sie im
Zusammenhang mit graphischen Bildern zu nutzen.
-
Im
Hinblick auf die obige Beschreibung ist es offensichtlich, dass
das System der vorliegenden Erfindung tatsächlich in Computergraphiksystemen zum
Einsatz kommen kann, um effektiv und ökonomisch neue Zusatzdaten
(als Ergänzung
zu Geometriedaten in einer Anzeige) für verschiedene Zwecke zusammen
zu bringen. Obwohl die vorliegende Ausführungsform in erster Linie
für eine
Ausgestaltung oder für
ein System zur Texturierung vorgesehen ist, ist es offensichtlich,
dass das System verschiedenet ausgeführt werden kann, um verschiedenen
anderen Aufgaben, die die Vereinigung neuer Daten beinhalten, zu
genügen.
Des Weiteren ist es offensichtlich, dass, während die vorliegende Ausführungsform
sich aus besonderen Elementen und Anordnungen zusammensetzt, jegliche
Art von Struktur oder Ablaufsvaria tionen ebenso genutzt werden können. Dementsprechend
wird der Geltungsbereich hiervon als wie in den unten dargelegten
Ansprüchen
dargelegt, erachtet.