-
Die vorliegende Erfindung bezieht
sich auf ein Verfahren zur Bildverarbeitung und auf eine Bildverarbeitungsanordnung.
Insbesondere bezieht sich die vorliegende Erfindung auf das Rendern
von Bildern, zusammengesetzt aus einer Anzahl diskreter polygonaler
Flächen,
bekannt als Bild-Zeichenelemente.
-
Es ist eine bekannte Technik im Bereich
der Echtzeit-Konsumentangraphik Gegenstände zu modellieren als Maschen
von Polygonen, der Einfachheit der Handling wegen insbesondere als
Dreiecke. Dies ist insbesondere der Fall für dreidimensionale Gegenstandsmodellierung,
wobei zum Erhalten eines zweidimensionalen Bildes aus dreidimensionalen
Bilddaten, die Polygone, welche die Oberfläche des Gegenstandes in dreidimensionalem
Raum bilden, in einen zweidimensionalen Raum projiziert werden und
wonach die erforderliche Berechnung oder Bezugnahme auf Nachschlagtabellen,
geeignete Pixelwerte (einschließlich
Farbe, Textur usw.) dargestellt werden an Pixelstellen innerhalb
des projizierten zweidimensionalen Polygons. Die Berechnung, die
der Übersetzung
der Polygone vom dreidimensionalen Raum in einen zweidimensionalen Raum
folgt, wird auf geeignete Art und Weise durch eine Prozessor-Pipeline
erledigt, damit der Satz von Wiedergabe-Pixelwerten geschaffen wird.
-
Ein Beispiel einer derartigen Prozessor-Pipeline
zur Vrewendung in einer 3D Graphik-Wiedergabesystem und mit einer
reihengeschalteten Kette polygoner Prozessoren ist in dem US Patent
4.855.703 (Deering/Schlumberger) beschrieben worden. Der Übersetzung
der Polygone aus drei in zwei Dimensionen folgend werden die Polygone
in Abtastreihenfolge durch Bezugnahme auf die erste Wiedergabe-Pixelzeile,
in der sie erscheinen, sortiert. Vor der Verarbeitung einer Abtastzeile wird
jedes neu eingeführtes
Polygon in einen Prozessor in der Kette geladen, wo sie ebenfalls
sortiert werden, so dass deren Beitrag zu den aufeinander folgenden
Abtastzeilen ebenfalls hergeleitet werden kann. Wenn eine Abtastzeile
erreicht wird, die nicht durch ein bestimmten Polygon bedeckt wird,
(d. h. die erste freie Zeile unter dem Bodenvertex von sagen wir
einem dreieckigen Polygon), so wird dieses Polygon aus dem Prozessor
in der Kette ausgeladen um den Weg frei zu machen für neue Polygondaten. Nach
Verarbeitung einer Abtastzeile können
die Pixel daten für
diese Zeile unmittelbar zu einer Wiedergabeanordnung gesendet werden
(wie einer Elektronenstrahlröhrenanordnung)
oder sie können
in einem Bildpuffer zum späteren
Zugriff gespeichert werden.
-
Bevor die Verarbeitung der Abtastzeile
anfangen kann gibt es den Vorbereitungsprozess der Vorbereitung
der zweidimensionalen Polygone, der nebst anderen Aktionen die Berechnung
von Schulterneigungen erfordert, wobei dieser Vorbereitungsprozess
oft genügend
Rechenaufwand konsumiert um die Gesamtleistung des Systems zu begrenzen. Eine
Technik, die versucht, diese Stufe etwas zu vereinfachen, ist in
dem US Patent 4.930.091 (Schroeder & Deering/Schlumberger) beschrieben
worden, wobei diese Technik auf das System des obengenannten US
Patentes 4.855.703 angewandt wird. In der Technik wird eine Dreieck-Klassifizierung
eingeführt,
wodurch eine Anzahl Parameter eines Dreiecks aus den zugelieferten
Koordinaten der Scheitelpunkte berechnet werden. Diese Parameter
werden danach benutzt zum Adressieren einer Nachschlagtabelle mit
einer Dreieck-Klassifizierung,
wobei alle möglichen
Dreieckformen durch die variierenden Kombinationen von Parametern
bedeckt werden: wobei die Klassifizierung, wenn sie einmal aus der Nachschlagtabelle
ausgelesen worden ist, bestimmt, wie dieses Dreieck in der Pipeline
verarbeitet werden soll. In dem Fall degenerierter Dreiecke, wobei
alle drei die Scheitelpunkte auf eine Linie liegen (so dass das
Dreieck selber wie eine Linie ist) oder wo sie so nahe beieinander
sind, dass das Dreieck nicht ein Pixel einschließt (und folglich in dem wiedergegebenen Bild
nicht auftritt) wird keine weitere Verarbeitung unternommen.
-
Während
die Erkenntnis dieser Degenerationsfälle eine unnötige Verarbeitung
eines Bildes vermeidet, haben wir erkannt, dass weitere Einsparungen
erwünscht
sind und es ist daher u. a. eine Aufgabe der vorliegenden Erfindung
die Effizienz des Graphik-Rendering-Prozesses
zu verbesser.
-
Nach der vorliegenden Erfindung wird
ein Verfahren zur Bildverarbeitung geschaffen zum Rendern eines
zweidimensionalen Pixelbildes, zusammengestellt aus einer Anzahl
polygonaler Bild-Zeichenelemente, wobei dieses Verfahren die nachfolgenden
Verfahrensschritte umfasst:
- (a) das Sortieren
der Bild-Zeichenelemente im Zusammenhang mit ihrer Lage innerhalb
des kompletten zweidimensionalen Pixelbildes und das Erzeugen einer
geordneten Liste der genannten Zeichenelemente;
- (b) das Bestimmen von Bild-Zeichenelementen mit einer maximalen
horizontalen oder ma ximalen vertikalen Größe eines einzigen Pixels als
degeneriert und das Entfernen der genannten degenerierten Zeichenelemente
aus der Liste, und zwar vor dem Rendern;
- (c) das Bestimmen von Bild-Zeichenelementen mit einer maximalen
horizontalen oder maximalen vertikalen Größe zweier Pixel als Spezial-Zeichenelemente,
das Klassifizieren der genannten Spezial-Zeichenelemente entsprechend
deren Gliederung von Scheitelpunkten und das Identifizieren der
genannten Spezial-Zeichenelemente in der Liste; und
- (d) das Rendern des Bildes, wobei diese Spezial-Zeichenelemente,
identifiziert in dem Schritt (c), entsprechend deren betreffender
Klassifikation verarbeitet werden, und für jedes andere Zeichenelemente
der Liste für
jede Abtastzeile, die durch dieses Zeichenelemente gekreuzt wird,
das Ignorieren des Beitrags der Zeichenelemente zu einem Endpixel
dieses Teils jeder derartigen Abtastzeile, die durch das Bild-Zeichenelement
gekreuzt wird, zusammen mit allen Pixeln einer vorbestimmten Zeile
der obersten und untersten Pixelzeilen, die durch das Bild-Zeichenelement
gekreuzt werden.
-
Die vorliegende Erfindung benutzt
die Erkenntnis, dass in bestimmten Fällen andere als die Ausgangs-Degenerations-Bild-Zeichenelemente,
die komplette Berechnung nicht erforderlich ist. Durch Erkennung
dieser Fälle
und durch Anwendung einer vereinfachten Berechnung entsprechend
der Zeichenelementklassifizierung in dem obenstehenden Schritt (e),
haben wir erkannt, dass es möglich
ist, wesentliche Verarbeitungszeit zu sparen, wobei es viele kleine
Polygone in der Szene gibt, wie diese wahrscheinlich auftreten,
wo Gegenstände
in einem wesentlichen Abstand gesichtet wurden (so dass jedes Polygon
klein ist zu der Zeit, in der es auf den 2D-Schirm projiziert wird)
und für
die Wiedergabe von Gegenständen,
die aus einer Vielzahl kleiner Polygone zusammengesetzt sind zum
Simulieren einer Fläche
mit geschmeidigen Rundungen.
-
Aus den Je Zeichen-Pixel-Beiträgen, die
ignoriert werden sollen, werden auf geeignete Weise das Pixel auf
der rechten Seite jedes Abtastzeilenteils, bedeckt durch ein Bild-Zeichenelement,
und die unterste Pixelzeile selektiert: dies hilft dabei, Rendering-Probleme an den Grenzen
der Bild-Zeichenelemente zu vermeiden. Die Spezial-Bild-Zeichenelemente lassen
sich in eine Anzahl Kategorien aufteilen, und zwar je nach ihrer
Anordnung. Jede Klasse von Spezial-Bild-Zeichenelementen hat eine
gemeinsame Rendering-Technik, die in den beiliegenden Patentansprüchen genannt
wird, und aus der nachfolgenden Beschreibung von Ausführungsformen
der vorliegenden Erfindung klar werden dürfte.
-
Der Ausgangsschritt der Sortierung
der Bild-Zeichenelemente kann mehr als nur die x,y-Stelle der Scheitelpunkte
berücksichtigen.
Dort, wo beispielsweise jedes Bild-Zeichenelement einen assoziierten Tiefenwert
hat, kann der Schritt der Sortierung weiterhin das Sortieren der
Bild-Zeichenelemente nach ihren betreffenden Tiefenwerten. Auf alternative Weise
oder zusätzlich
kann dort, wo jedes Bild-Zeichenelement einen zugeordneten Transparenzwert hat,
der Schritt der Sortierung weiterhin das Streichen derjenigen Bild-Zeichenelemente aus
der Liste, die durch ein oder mehrere undurchsichtige Bild-Zeichenelemente völlig bedeckt
sind: auf diese Weise wird keine Zeit verschwendet um zu versuchen
degenerierte oder eingeschlossene Bild-Zeichenelemente zu rendern.
-
Auch wird nach der vorliegenden Erfindung eine
Bildverarbeitungsanordnung mit einem Datenprozessor geschaffen,
der mit einem ersten und einem zweiten Speicher gekoppelt ist, wobei
der erste Speicher Bild-Zeichenelementdaten zum Verarbeiten festhält und wobei
der zweite Speicher ein Operationsprogramm für den Datenprozessor festhält, wenn der
Prozessor entsprechend dem Arbeitsprogramm arbeitet, wobei der Datenprozessor
Folgendes umfasst:
- – Mittel zum Sortieren der
Bild-Zeichenelemente auf Basis der Daten in dem ersten Speicher
und in Bezug auf deren Stellen innerhalb eines kompletten zweidimensionalen
Bildes und zum Erzeugen einer geordneten Liste der genannten Zeichenelemente;
- – Mittel
zum Bestimmen von Bild-Zeichenelementen mit einer maximalen horizontalen
oder maximalen vertikalen Größe eines
einzigen Pixels als degeneriert und zum Entfernen der genannten
degenerierten Zeichenelemente aus der Liste, und zwar vor dem Rendern;
- – Mittel
zum Bestimmen von Bild-Zeichenelementen mit einer maximalen horizontalen
oder maximalen vertikalen Größe zweier
Pixel als Spezial-Zeichenelemente, und zum Klassifizieren der genannten
Spezial-Zeichenelemente entsprechend deren Gliederung von Scheitelpunkten
und zum Identifizieren der genannten Spezial-Zeichenelemente in
der Liste; und
- – Mittel
zum Rendern eines Bildes aus den Daten in dem ersten Speicher, wobei
diejenigen Bild-Zeichenelemente die als spezial bezeichnet sind, entsprechend
deren speziellen Klassifikation behandelt und für jedes andere Zeichenelement
der Liste für
jede Abtastzeile, die durch dieses Zeichenelement gekreuzt wird,
konfiguriert sind zum Ignorieren des Beitrags der Zeichenelemente
zu einem Endpixel dieses Teils jeder derartigen Abtastzeile, die
durch das Bild-Zeichenelement gekreuzt wird, zusammen mit allen
Pixeln einer vorbestimmten Zeile der obersten und untersten Pixelzeilen,
die durch das Bild-Zeichenelement gekreuzt werden.
-
Die vorliegende Erfindung wird nun
als Beispiel beschrieben, und zwar in Termen eines dreieckigen Bild-Zeichenelement-Systems,
obschon es erkannt sein dürfte,
dass die nachstehend beschriebenen Prinzipien auch anwendbar sind
auf polygonale Bild-Zeichenelemente
mit mehr als drei Scheitelpunkten.
-
Ausführungsbeispiele der Erfindung
sind in der Zeichnung dargestellt und werden im vorliegenden Fall
näher beschrieben.
Es zeigen:
-
1 ein
Blockschaltbild eines Bildverarbeitungssystems, geeignet zum Implementieren
der vorliegenden Erfindung,
-
2 eine
Darstellung einer herkömmlichen Abtastzeilenanordnung
für Pixel
in einem dreieckigen Bild-Zeichenelement,
-
3 bis 8 je eine Darstellung beitragender und
nicht beitragender Pixel in verschiedenen Spezialfall-Bild-Zeichenelementen;
und
-
9 ein
Flussdiagramm, das einen Prozess der Sortierung von Bild-Zeichenelementen
und der Klassifizierung darstellt, nach der vorliegenden Erfindung.
-
Ein Datenverarbeitungssystem, konfiguriert als
eine Bildverarbeitungsanordnung ist in 1 dargestellt. Das System hat eine Verarbeitungseinheit CPU 10,
vorgesehen zum Verarbeiten dreidimensionaler Bilddaten zum Erzeugen
zur Wiedergabe eines zweidimensionalen Bildes von Gegenständen, modelliert
in einer virtuellen dreidimensionalen Welt. Die CPU 10 ist über einen
Daten- und Adressenbus 12 mit dem RAM 14 mit beliebigem
Zugriff und mit dem ROM 16 und auch, über eine geeignete Schnittstelle 18,
mit einem weiteren (Off-Line) Datenspeicher OLS 20. Der
OLS 20 schafft auf geeignete, Art und Weise die Quelle
dreidimensionaler Daten und Instruktion, welche die Wirkung der
CPU 10 steuert, aus einer Festwertspeicheranordnung, wie
einer Magnetplatte, einer optischen Platte, einer magnetisch optischen Platte
oder einem anderen geeigneten Speichermedium. Die Hauptbedingung
für den
OLS ist, dass er imstande sein soll, mit der erforderlichen Rate
der CPU 10 Daten zu liefern, und zwar über die Schnittstelle 18 und
den Bus 12.
-
Mit dem Bus 12 ist ebenfalls
verbunden, ein Framepuffer und eine Wiedergabetreiberstufe 22, vorgesehen
zum Erzeugen von Videobildern an einem verbundenen Video-Monitor
VDU 24. Um eine Steuerung durch den Benutzer oder einen
Beitrag für den Bilderzeugungsprozess
zu ermöglichen
ist eine Schnittstelle 26 für eine Benutzereingangsanordnung mit
dem Bus 12 verbunden, wobei Eingangsanordnungen, wie ein
Tastenfeld 28 und eine Maus 30 mit der Schnittstelle
verbunden sind.
-
Dreidimensionale Daten werden als
Definitionen der Position von Vielflach-Scheitelpunkten in einem dreidimensionalen
Koordinatensystem gespeichert. Das zweidimensionale Bild der in
der VDU 24 erzeugten dreidimensionalen Daten auf einer
Frame-zu-Frame-Basis,
wird dadurch erzeugt, dass die Scheitelpunkte als durch gerade Linien
miteinander verbunden betrachtet werden, wodurch ein Netz von flachen
Polygonen definiert wird. Ein Bild wird dadurch gerendert, dass
jedes Polygon an sich betrachtet wird, möglicherweise nach Durchführung von Back-Face-Culling
usw., zum Entfernen von Poly gonen, die von dem bestimmten betreffenden
Gesichtspunkt aus nicht sichtbar sind. Danach kann eine Liste von
Polygonen definiert werden, die gewährleistet, dass die Polygone
in der richtigen Reihenfolge gerendert werden.
-
Zur Erläuterung wird zunächst eine
herkömmliche
Technik zur Polygonrendering anhand der 2 betrachtet, die ein dreieckiges Bild-Zeichenelement
zeigt. Eine übliche
Technik zum Rendern eines Dreiecks ist die, bei der oben angefangen
wird und dass danach "Überspannungen" gezogen werden,
bis das Dreieck komplett ist, wobei eine Überspannung derjenige Teil
eines Dreiecks ist, der von einer Reihe von Schirmpixeln bedeckt
wird. Die Pixel, die zu jeder Überspannung
gehören,
sind mit der Überspannungsnummer
in 2 dargestellt.
-
Die Verarbeitung startet damit, dass
die drei Scheitelpunkte in der vertikalen (y) Richtung derart sortiert
werden, dass es einen oberen, einen mittleren und einen unteren
Scheitelpunkt gibt, dargestellt als VT,
VM und VB. Wenn
dies einmal gemacht worden ist, kann das Dreieck in eine von vier
Kategorien klassifiziert werden. Wenn der obere und der mittlere Scheitelpunkt
den gleichen y-Wert haben, dann hat das Dreieck eine flache Spitze,
wenn der mittlere und der untere den gleichen y-Wert haben, dann
hat das Dreieck einen flachen Boden. Wenn alle drei die Scheitelpunkte
den gleichen y-Wert haben, dann ist das Dreieck degeneriert und,
wie nachher noch näher
erläutert
wird, braucht nicht gezeichnet zu werden. Die restlichen zwei Fälle sind
die üblichsten
für ziemlich
große
Dreiecke, obschon nicht unbedingt notwendig für kleinere, die nur einige
Pixel bedecken und die Situation beschreiben, in der die drei Scheitelpunkte
je einen anderen y-Wert haben. Der eine ist der links gespaltete
Fall (wie in 2 dargestellt), wobei
die linke Seite des Dreiecks in zwei Kanten mit dem Scheitelpunkt
VM an dem Knotenpunkt dieser zwei Kanten
aufgeteilt wird. Der rechts gespaltete Fall tritt auf, wenn die
rechte Kante aufgeteilt ist. In jedem dieser vier Fälle (wobei
der degenerierte Fall außer
Betracht gelassen wurde) werden alle Neigungen der Kanten der Bild-Zeichenelemente
berechnet. Für Dreiecke
mit einer flachen Spitze und für
Dreiecke mit einem flachen Boden gibt es zwei Neigungen, die berechnet
werden sollen, während
es für
den links / rechts gespaltenen Fall drei gibt.
-
Es ist wichtig zu bemerken, dass
Pixel nicht zweimal gerendert werden sollen, wenn sie einen Teil an
je einer Seite einer Kante enthalten, wo zwei Winkel sich treffen.
Die Vermeidung, dieser doppelten Rendering ist teilweise eine Einsparung
an Zeichenzeit, aber insbesondere das Eliminieren von Fehlern, die
auftreten können.
Insbesondere werden, wenn die Pixel durchleuchtend sind, so dass
die Wiedergabepixelfarbe/textur Beiträge von einem oder mehreren
Bild-Zeichenelementen hinter dem vordersten Bild-Zeichenelement enthält, die relativen Beiträge der vorderen
und überlagerten
Bild-Zeichenelemente falsch berechnet, wenn das Pixel zweimal betrachtet wird.
Dies könnte
dazu führen,
dass beispielsweise ein Pixel schwächer erscheint als es ist.
-
Um zu diese Überlappung zu vermeiden ist es
bekannt, das rechte Pixel jeder Überspannung
ungezeichnet zu lassen und die untere Überspannung ungezeichnet zu
lassen, so dass Pixel an der Grenze zweier Bild-Zeichenelemente
nur als eins von diesen zwei Bild-Zeichenelementen betrachtet wird.
Es ist wegen dieses Prozedurenschrittes, dass der obenstehende degenerierte
Fall überhaupt
keine Zeichenvorgänge
braucht, da er nur eine Überspannung
enthält,
welche die untere Überspannung
ist und folglich nicht näher
betrachtet wird.
-
Anmelderin hat gefunden, dass als
Ergebnis dieses Schrittes der nicht weiteren Betrachtung bestimmter
Bild-Zeichenelementbeiträge
dadurch weitere Verarbeitung eingespart werden kann, dass diejenigen
Bild-Zeichenelemente als Spezialfall. bezeichnet werden, die imstande
sind, eine vereinfachte Behandlung zu untergehen, wobei aber berücksichtigt
wird, dass diese Pixel ignoriert werden. Diese Spezialfälle und
die vereinfachte Behandlung, die sie je erhalten, sind in den Pixel-Layout-Diagrammen nach
den 3 bis 8 dargestellt, wobei eine
0 ein Pixel darstellt, das durch das Bild-Zeichenelement bedeckt
ist, das aber nicht gezeichnet wird (aus dem oben genannten Grund),
wobei eine 1 ein Pixel darstellt, das gezeichnet werden soll und
wobei die Indizes "max", "mid" und "min" Maxi malwert, Zwischenwert
bzw. Minimalwert bedeuten, wenn angewandt auf die Schirmkoordinaten
an den Dreieckscheitelpunkten.
-
Der erste Spezialfall sind diejenigen
Bild-Zeichenelemente, die eine horizontale Spitze (zwei Scheitelpunkte
mit ymax) und einen vertikalen Umfang (ymax – ymin) von 2 Pixeln haben. Wenn die Spitzenweite
(xmax – xmin in dieser Instanz) 2 Pixel beträgt, erfordert
die resultierende Rendering nur ein einziges Pixel an der Stelle
des Scheitelpunktes, wie in 3 dargestellt.
Wenn die Spitzenweite größer ist
als 2 Pixel, ist eine einfache horizontale Zeile von Pixeln erforderlich,
wie in 4 dargestellt.
Wenn der rechte Pixelbeitrag in allen Fällen fallen gelassen wird,
ist die Prozedur für
flach gespitzte Dreiecke mit einer Höhe von 2 Pixeln und einer Breite
von N Pixeln, eine horizontale Zeile von (N-1) Pixeln aus dem linken Scheitelpunkt
zu zeichnen.
-
Der nächste Fall ist, der eines Flachboden-Bild-Zeichenelementes
(zwei Scheitelpunkte bei ymin) mit einer
Höhe von
2 Pixeln und mit jeder beliebigen Breite. In der inversen Form des
vorhergehenden Falles ist die horizontale Zeile mit Pixeln nun die untere
Zeile des Bild-Zeichenelementes und wird deswegen nicht gezeichnet,
während
das einzige obere Pixel als die rechte Seite einer Überspannung betrachtet
werden soll und ebenfalls nicht gezeichnet wird, wie in 5 angegeben. Das Ergebnis
ist für diesen
Fall: nichts zeichen.
-
Der folgende Fall ist Bild-Zeichenelemente mit
einer Breite von 2 Pixeln und jeder beliebigen Höhe mit einer flachen Spitze
(6) oder einem flachen
Boden ( 7): es sei bemerkt,
dass Höhe
sich hier auf das Gebiet bezieht, das durch das Bild-Zeichenelement bedeckt
wird und nicht einen horizontalen Umfang hat (xmax – xmin). In diesem Fall soll ein Vektor (d.
h. eine einzige Zeile mit Pixeln) gezeichnet werden wobei nur eine
Neigung zusammen mit der Länge
des zu zeichnenden Vektors berechnet zu werden braucht. In diesem
Fall gibt es keine Notwendigkeit einer horizontalen Neigungsberechnung
aus beispielsweise Texturwerten.
-
Der letzte Fall hat eine Breite (wieder
keinen horizontalen Umfang) von 2 Pixeln und jede beliebige Höhe, ist
aber weder mit flacher Spitze, noch mit flachen Boden, wie in 8 dargestellt. In diesem
Fall soll die Neigung der drei Kanten berechnet werden, aber auch
hier gibt es wieder eine Einsparung, herrührend aus der Tatsache, dass
das resultierende Pixelmuster eine einfache Linie sein wird, für die keine Berechnungen
der Horizontalneigung erforderlich sind.
-
Ein verallgemeinerter Selektionsprozess zum
Sortieren der Bild-Zeichenelemente ist in dem Flussdiagramm nach 9 dargestellt. Von dem Anfang 40 ist
ein etwaiger erster Test in dem Schritt 42, ob das Bild-Zeichenelement
eingeschlossen ist oder nicht, beispielsweise zur Entfernung einer
versteckten Fläche.
Es dürfte
einleuchten, dass die Frage der Einschließung mehr als eine einfache
Ja/Nein-Test ist, abhängig
von der totalen oder teilweisen Transparenz der überlappenden Bild-Zeichenelemente und
kann einen rekursiven Schleifentest enthalten, da zusätzliche
Bild-Zeichenelemente einem Bild hinzugefügt werden, wie in dem durchaus
bekannten z-Pufferalgorithmus, obschon dies nach dem Prozess nach 8 auftreten wird. Wenn der
Test im Schritt 42 eingeschlossen ist und angibt, dass
das Bild-Zeichenelement eingeschlossen werden soll, wird das Bild-Zeichenelement weggeworfen
(bei 44), sonst geht es bei Schritt 46 weiter.
-
Beim Schritt 46 wird die
vertikale Höhe
(ymax – ymin) überprüft und falls
gleich einem Pixel (d. h. wenn ymax – ymin) wird das Bild-Zeichenelement degeneriert
und weggeworfen. Auf ähnliche
Weise überprüft der Schritt 48 den
horizontalen Umfang von dem meist linken zu dem meist rechten der
Scheitelpunkte (xmax – xmin)
und wieder, wenn gleich einem Pixel, wird das Bild-Zeichenelement
degeneriert und wird weggeworfen.
-
In dem Schritt 50 wird eine Überprüfung angestellt,
ob der vertikale Umfang zwei Pixeln entspricht (wie man sich erinnern
kann, sind die Bild-Zeichenelemente mit einer Höhe von weniger als oder gleich
einem Pixel bereits als degeneriert weggeworfen). Sollte dies der
Fall sein, so überprüft der Schritt 52,
ob es einen flachen Boden hat (wie in 5)
und wenn ja, so wird es weggeworfen. Wenn die Überprüfung in dem Schritt 52 negativ
ist, wird eine weitere Überprüfung in
dem Schritt 54 angestellt, ob das Bild-Zeichenelement eine flache Spitze hat
(wie in 3 und 4) und wenn ja, so wird das
Bild-Zeichenelement
auf die Rendering-Liste bei 56 eingetragen mit dem Identifizierer,
dass nur eine horizontale Linie gezogen zu werden braucht, von dem
oberen linken Scheitelpunkt mit mit einer Länge von (VT – VM – 1)
Pixeln. Wenn die Prüfung 54 ebenfalls
negativ ist, so hat das Bild-Zeichenelement keine horizontale Kante und
wird auf die Rendering-Liste bei 58 eingetragen mit dem Identifizierer,
dass keine horizontale Neigungsberechnung erforderlich ist.
-
Wenn der Schritt 50 negativ
ist, d. h. wenn der vertikale Umfang größer ist als zwei Pixel, wird der
horizontale Umfang in dem Schritt 60 überprüft und wenn ebenfalls größer als
zwei Pixel, so bildet das Bild-Zeichenelement einen der Spezialfälle. Auf ent sprechende
Weise wird das Pixel in die Rendering-Liste bei 62 eingetragen,
ohne einen Identifizierer, der eine Spezialbehandlung angibt.
-
Wenn der horizontale Umfang kleiner
ist als oder gleich zwei Pixeln, überprüfen die zwei nachfolgenden
Schritte 64, 66, ob es mit flacher Spitze ist (wie
in 6) oder mit einem
flachen Boden (7). Wenn
einer der Tests positiv ist, so wird das Bild-Zeichenelement in die Rendering-Liste
bei 68 mit dem Identifizierer eingetragen, dass eine einzige.
Neigung und Länge
berechnet werden sollen, wie oben bereits beschrieben. Wenn das
Bild-Zeichenelement weder eine flache Spitze hat, noch einen flachen
Boden, so wird es in die Rendering-Liste bei 58 mit den
anderen Bild-Zeichenelementen eingetragen, die als Speizialfall
identifiziert sind, aber ohne eine horizontale Kante.
-
Der Vorteil der vorliegenden Erfindung
ist, die Verarbeitungsnotwendigkeit in diesen Situationen reduziert
wird. Die vorliegende Erfindung kann benutzt werden um die Anwendung
eines weniger aufwendigen Renderingsystems zu ermöglichen,
um die Verwendung realistischerer/interessanterer 3D-Modelle zu
erlauben, oder um es zu ermöglichen,
dass mehr Gegenstände
in dem Abstand gesehen werden können
als sonst möglich
wäre.
-
Aus der Lektüre der vorliegenden Beschreibung
dürften
dem Fachmann andere Abwandlungen einfallen. Solche Abwandlungen
können
andere Merkmale betreffen, die im Entwurf, in der Herstellung und
in der Verwendung von Bildverarbeitungsanordnungen und Bestandteile
derselben bekannt sind und statt der oder zusätzlich zu den hier bereits beschriebenen
Merkmalen verwendbar sind.
-
Text in der Zeichnung.
-
9
- 40
- Start
- 42
- eingeschlossen
- 44
- wegwerfen
- 68
- Winkel
und Zeile (1 Neigung)
- 58
- Winkel
und Zeile (3 Neigungen)
- 56
- Zeile
(0 Neigungen)