DE69816237T2 - Schnelle verarbeitung von bildprimitiven - Google Patents

Schnelle verarbeitung von bildprimitiven Download PDF

Info

Publication number
DE69816237T2
DE69816237T2 DE69816237T DE69816237T DE69816237T2 DE 69816237 T2 DE69816237 T2 DE 69816237T2 DE 69816237 T DE69816237 T DE 69816237T DE 69816237 T DE69816237 T DE 69816237T DE 69816237 T2 DE69816237 T2 DE 69816237T2
Authority
DE
Germany
Prior art keywords
image
drawing elements
elements
pixels
character
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 - Fee Related
Application number
DE69816237T
Other languages
English (en)
Other versions
DE69816237D1 (de
Inventor
Edward David PENNA
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of DE69816237D1 publication Critical patent/DE69816237D1/de
Application granted granted Critical
Publication of DE69816237T2 publication Critical patent/DE69816237T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture

Description

  • 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)

Claims (9)

  1. Verfahren zur Bildverarbeitung 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 (46, 48) von Bild-Zeichenelementen mit einer maximalen horizontalen oder maximalen 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 (50, 60) 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 zweidimensionalen Pixelbildes, wobei diese Spezial-Zeichenelemente, identifiziert in dem Schritt (c), entsprechend deren betreffender Klassifikation (56, 58, 68) 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 Zeichenelementen 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 Fixelzeilen, die durch das Bild-Zeichenelement gekreuzt werden.
  2. Verfahren nach Anspruch 1, wobei von dem rechten Pixel jedes Abtastzeilenteils, der durch ein Zeichenelement bedeckt wird, und von der untersten Pixelzeile deren betreffende Zeichenelementbeiträge in dem Schritt (d) ignoriert werden.
  3. Verfahren nach Anspruch 1 oder 2, wobei die Spezial-Zeichenelemente, die in dem Verfahrensschritt (c) als eine vertikale Ausdehnung von zwei Pixeln und einen oberen Rand mit einer Breite von N Pixeln aufweisend klassifiziert worden sind, als eine einzi ge Pixelzeile mit einer Breite von N-1 Pixeln gerendert werden.
  4. Verfahren nach Anspruch 1 oder 2, wobei Spezial-Zeichenelemente, die in dem Verfahrensschritt (c) als eine vertikale Ausdehnung von zwei Pixeln und einen horizontalen Unterrand aufweisend klassifiziert worden sind, nicht gerendert werden.
  5. Verfahren nach Anspruch 1 oder 2, wobei Spezial-Zeichenelemente, die in dem Verfahrensschritt (c)als eine maximale horizontale Ausdehnung von zwei Pixeln und eine vertikale Ausdehnung größer als zwei Pixel aufweisen klassifiziert worden sind, als eine geneigte Linie mit der Breite von nur einem Pixel gerendert werden.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei jedes Bild-Zeichenelement einen zugeordneten Tiefenwert hat und der Verfahrensschritt (a) weiterhin das Sortieren der Bild-Zeichenelemente entsprechend deren betreffenden Tiefenwerten umfasst.
  7. Verfahren nach Anspruch 6, wobei jedes Bild-Zeichenelement einen zugeordneten Transparenzwert hat und der Verfahrensschritt (a) weiterhin das Löschen derjenigen Zeichenelement von der Liste umfasst, die durch ein oder mehrere undurchsichtige Zeichenelemente völlig bedeckt werden.
  8. Bildverarbeitungsgerät mit einem Datenprozessor, der mit einem ersten und einem zweiten Speicher gekoppelt ist, wobei der erste Speicher Bild-Zeichenelementdaten enthält zum Verarbeiten und der zweite Speicher ein Operationsprogramm für den Datenprozessor enthält, wobei der Datenprozessor, wenn er entsprechend dem Operationsprogramm funktioniert, 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 Pixelbildes und zum Erzeugen einer geordneten Liste der genannten Zeichenelemente; – Mittel zum Bestimmen (46, 48) 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 (50, 60) 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 – Bildrendering-Mittel, vorgesehen zum Rendern eines zweidimensionalen Pixelbildes aus den Daten in dem ersten Speicher, wobei diese als Spezial-Zeichenelemente identifiziert Bild-Zeichenelemente, entsprechend deren betreffender Klassifikation (56, 58, 68) verarbeitet werden, und für jedes andere Zeichenelement der Liste für jede Abtastzeile, die durch dieses Zeichenelement gekreuzt wird, 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.
  9. Bildverarbeitungsgerät nach Anspruch 8, das weiterhin eine Wiedergabeanordnung aufweist, die Daten empfängt, die das gerenderte Bild aus dem genannten Bildprozessor definieren und wobei das Gerät vorgesehen ist das auf diese Weise definierte Bild wiederzugeben.
DE69816237T 1997-06-18 1998-04-02 Schnelle verarbeitung von bildprimitiven Expired - Fee Related DE69816237T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9712684 1997-06-18
GBGB9712684.1A GB9712684D0 (en) 1997-06-18 1997-06-18 Fast processing of image primitives
PCT/IB1998/000479 WO1998058352A1 (en) 1997-06-18 1998-04-02 Fast processing of image primitives

Publications (2)

Publication Number Publication Date
DE69816237D1 DE69816237D1 (de) 2003-08-14
DE69816237T2 true DE69816237T2 (de) 2004-04-22

Family

ID=10814401

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69816237T Expired - Fee Related DE69816237T2 (de) 1997-06-18 1998-04-02 Schnelle verarbeitung von bildprimitiven

Country Status (7)

Country Link
US (1) US6222556B1 (de)
EP (1) EP0919044B1 (de)
JP (1) JP2000516747A (de)
KR (1) KR100544803B1 (de)
DE (1) DE69816237T2 (de)
GB (1) GB9712684D0 (de)
WO (1) WO1998058352A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9915012D0 (en) 1999-06-29 1999-08-25 Koninkl Philips Electronics Nv Z-buffering graphics system
US6937236B2 (en) * 2001-06-25 2005-08-30 Micron Technology, Inc. Methods and apparatus for culling sorted, back facing graphics data
US7619624B2 (en) * 2001-06-25 2009-11-17 Micron Technology, Inc. Methods and apparatus for rendering or preparing digital objects or portions thereof for subsequent processing
US7307630B2 (en) * 2005-08-26 2007-12-11 Barco Nv Volume rendering apparatus and method
KR102059578B1 (ko) * 2012-11-29 2019-12-27 삼성전자주식회사 3차원 그래픽스 렌더링 시스템에서 프리미티브 처리 장치 및 방법
US10580209B2 (en) 2018-03-06 2020-03-03 Qualcomm Incorporated Removal of degenerated sub-primitives in tessellation

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4885703A (en) 1987-11-04 1989-12-05 Schlumberger Systems, Inc. 3-D graphics display system using triangle processor pipeline
US4930091A (en) * 1987-11-04 1990-05-29 Schlumberger Systems, Inc. Triangle classification setup method and apparatus for 3-D graphics display system
US5590248A (en) * 1992-01-02 1996-12-31 General Electric Company Method for reducing the complexity of a polygonal mesh
US5428718A (en) 1993-01-22 1995-06-27 Taligent, Inc. Tessellation system
GB2278524B (en) * 1993-05-28 1997-12-10 Nihon Unisys Ltd Method and apparatus for rendering visual images employing area calculation and blending of fractional pixel lists for anti-aliasing and transparency
GB9324638D0 (en) 1993-12-01 1994-01-19 Philips Electronics Uk Ltd Image processing
US5689577A (en) * 1994-10-14 1997-11-18 Picker International, Inc. Procedure for the simplification of triangular surface meshes for more efficient processing
US5805868A (en) * 1995-03-24 1998-09-08 3Dlabs Inc. Ltd. Graphics subsystem with fast clear capability

Also Published As

Publication number Publication date
WO1998058352A1 (en) 1998-12-23
US6222556B1 (en) 2001-04-24
DE69816237D1 (de) 2003-08-14
JP2000516747A (ja) 2000-12-12
KR100544803B1 (ko) 2006-01-24
EP0919044A1 (de) 1999-06-02
GB9712684D0 (en) 1997-08-20
EP0919044B1 (de) 2003-07-09
KR20000068191A (ko) 2000-11-25

Similar Documents

Publication Publication Date Title
DE60003032T2 (de) Verfahren zur bildsegmentation
DE69830767T2 (de) Verfahren und Vorrichtung zum Zusammensetzen geschichteter synthetischer graphischer Filter
DE60012917T2 (de) Verfahren und vorrichtung für eine antialiasing-operation auf impliziten kanten
DE10296401B4 (de) Verbund-Rendering von 3-D-Graphikobjekten
DE69919145T2 (de) Stochastiches detailniveau in einer rechneranimation
DE3335162C2 (de) Vorrichtung und Verfahren für graphische Darstellungen mittels Computer
DE69831385T2 (de) Verfahren und Anordnung zum Mischen von graphischen Objekten mit Planarkarten
DE112007002991B4 (de) Computergraphikschattenvolumen unter Verwendung von hierarchischem Okklusions-Culling
DE69826044T2 (de) Vektorkartenplanarisierung und -einfang
DE60115034T2 (de) Verfeinerung von dreidimensionalen polygonalen gitterdaten
DE69914355T2 (de) Bildverarbeitungsgerät
DE10043460C2 (de) Auffinden von Körperpartien durch Auswerten von Kantenrichtungsinformation
DE19709220A1 (de) System und Verfahren für eine beschleunigte Verdeckungsauslese
DE3315148C2 (de)
DE102005050846A1 (de) Perspektiveneditierwerkzeuge für 2-D Bilder
DE4022384A1 (de) Anzeige zur vorausbestimmung eines graphikpfades
DE60122333T2 (de) Verfahren und System zur kachelweisen Bildwiedergabe
DE69835340T2 (de) Verfahren zum mischen von bildern sowie anzeigevorrichtung
EP0862141A2 (de) Bilddarstellungsverfahren und Vorrichtung zur Durchführung des Verfahrens
DE60024117T2 (de) Tiefenbasierte mischung mit 3d aufrasterungsgerät
DE69830766T2 (de) Verfahren und Vorrichtung zum Bestimmen des Anwendungsumfangs geschichteter synthetischer graphischer Filter
DE69816237T2 (de) Schnelle verarbeitung von bildprimitiven
DE4100691B4 (de) Verfahren zur Darstellung eines dreidimensionalen Modells
DE69813992T2 (de) Bilderzeugungsgerät, -Verfahren und -Programaufzeichnungsmedium, Bildkompositionsgerät, -Verfahren und -Programmaufzeichnungsmedium
DE3941550C2 (de) Schaltungsanordnung zum Zerlegen einer auf einem Computer-Ausgabedisplay anzuzeigenden Graphikfigur

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee