DE10242640A1 - Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwerts von Texeln für einen Footprint - Google Patents

Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwerts von Texeln für einen Footprint Download PDF

Info

Publication number
DE10242640A1
DE10242640A1 DE10242640A DE10242640A DE10242640A1 DE 10242640 A1 DE10242640 A1 DE 10242640A1 DE 10242640 A DE10242640 A DE 10242640A DE 10242640 A DE10242640 A DE 10242640A DE 10242640 A1 DE10242640 A1 DE 10242640A1
Authority
DE
Germany
Prior art keywords
edge
footprint
texel
edges
block
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.)
Withdrawn
Application number
DE10242640A
Other languages
English (en)
Inventor
Thomas Haaker
Roland Richter
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.)
SP3D Chip Design GmbH
Original Assignee
SP3D Chip Design GmbH
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=31895971&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE10242640(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by SP3D Chip Design GmbH filed Critical SP3D Chip Design GmbH
Priority to DE10242640A priority Critical patent/DE10242640A1/de
Priority to AU2003264284A priority patent/AU2003264284A1/en
Priority to DE50302209T priority patent/DE50302209D1/de
Priority to JP2004540606A priority patent/JP4009289B2/ja
Priority to KR1020047010790A priority patent/KR100623327B1/ko
Priority to EP03798898A priority patent/EP1537538B1/de
Priority to PCT/EP2003/010017 priority patent/WO2004032062A1/de
Priority to AT03798898T priority patent/ATE315813T1/de
Priority to CNB038023881A priority patent/CN1295657C/zh
Priority to TW092125206A priority patent/TWI282520B/zh
Publication of DE10242640A1 publication Critical patent/DE10242640A1/de
Priority to US10/916,983 priority patent/US7379072B2/en
Priority to US11/690,071 priority patent/US7924289B2/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Adhesives Or Adhesive Processes (AREA)
  • Glass Compositions (AREA)
  • Paints Or Removers (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

Bei einem Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwertes von Texeln für einen Footprint, der eine Mehrzahl von Texeln in einem Texel-Gitter überdeckt, in einem Graphiksystem, wird zunächst die Forminformation des Footprints bestimmt. Dann werden die Kanten des Footprints bestimmt, und die so bestimmten Kanten werden durch eine Treppenfunktion angenähert. Die Texel des Texel-Gitters, die durch die Treppenfunktion berührt werden, werden bestimmt, und ein Gewichtungsfaktor wird für jedes Texel, das einen Abschnitt der Treppenfunktion enthält, bestimmt, abhängig von der durch den Footprint überdeckten Teilfläche des jeweiligen Texels.

Description

  • Die vorliegende Erfindung bezieht sich allgemein auf ein Verfahren zur Anzeige von Bildern auf einem durch einen Computer gesteuerten Rasteranzeigesystem. Insbesondere bezieht sich die vorliegende Erfindung auf einen anisotropen Filtermechanismus und eine entsprechende Vorrichtung, die erforderlich ist, um abgespeicherte, diskrete Bilder, die nachfolgend auch als Texturen bezeichnet werden, mit hoher Qualität auf der Rasteranzeige zu rekonstruieren, zu skalieren oder einer perspektivischen Projektion zu unterziehen. Insbesondere bezieht sich die vorliegende Erfindung auf ein Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwertes von Texeln für einen Footprint.
  • Im Stand der Technik sind anisotrope Filterverfahren bekannt, z. B. die sogenannte Flächenabtastung „area sampling", um einem Footprint eine Textur zuzuordnen. Im Stand der Technik sind sogenannte gewichtete Flächenabtastungen als auch ungewichtete Flächenabtastungen bekannt wobei ein Nachteil der im Stand der Technik bekannten Verfahren darin besteht, dass hier bei einem Übergang zwischen einer gewichteten und einer ungewichteten Abtastung Diskontinuitäten in dem dargestellten Bild mit wahrnehmbaren Artefakten erzeugt werden.
  • Ein „Footprint" ist die perspektivische Projektion eines Bildelements (Pixel) eines Objekts auf eine gebogene Oberfläche. Ein „Footprint" kann eine konvexe vierseitige Darstellung sein, die das angenäherte Ergebnis der perspektivischen Projektion auf ein reguläres Texel-Gitter (Texturelement-Gitter) eines quadratischen Bildelements (Pixel) eines Objekts auf eine gebogene Oberfläche wiedergibt.
  • Ausgehend von diesem Stand der Technik liegt der vorliegenden Erfindung die Aufgabe zugrunde, ein verbessertes Verfahren zu schaffen, das bei einer Erzeugung von Gewichtungen für Texel eines Footprints auf einfache und schnelle Art die Bestimmung von Texeln unter den Kanten des Footprints ermöglicht.
  • Diese Aufgabe wird durch ein Verfahren nach Anspruch 1 gelöst.
  • Die vorliegende Erfindung schafft ein Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwertes von Texeln für einen Footprint, der eine Mehrzahl von Texeln in einem Texel-Gitter überdeckt, in einem Graphiksystem, mit folgenden Schritten:
    • (a) Bestimmen einer Forminformation des Footprints;
    • (b) Bestimmen der Kanten des Footprints;
    • (c) Annähern der im Schritt (b) bestimmten Kanten durch eine Treppenfunktion;
    • (d) Bestimmen der Texel des Texel-Gitters, die durch die Treppenfunktion berührt werden; und
    • (e) Bestimmen eines Gewichtungsfaktors für jedes Texel, das einen Abschnitt der Treppenfunktion enthält, abhängig von der durch den Footprint überdeckten Teilfläche des jeweiligen Texels.
  • Gemäß einem bevorzugten Ausführungsbeispiel wird ein durch die Treppenfunktion berührtes Texel basierend auf den Anfangspunkten und/oder Endpunkten der vertikalen Abschnitte der Treppenfunktion bestimmt.
  • Texeln des Texel-Gitters, die nicht durch die Treppenfunktion berührt werden und die von dem Footprint bedeckt werden, wird vorzugsweise ein einheitlicher Gewichtungsfaktor zugeordnet, wobei die Gewichtungsfaktoren für jedes Texel einer Datenstruktur zugeordnet werden.
  • Gemäß einem weiteren bevorzugten Ausführungsbeispiel umfaßt die Treppenfunktion für jede Kante des Footprints eine Mehrzahl von Stufen, eine Mehrzahl von horizontalen Stufenelementen und eine Mehrzahl von vertikalen Stufenelementen, wobei jede Kante eine Mehrzahl von gleichlangen, aufeinanderfolgenden Kantenabschnitten umfaßt, wobei eine horizontale Kante vorliegt, wenn die Endpunkte der Kantenabschnitte der Kante ein horizontales Stufenelement der Treppenfunktion schneiden, wobei eine vertikale Kante vorliegt, wenn die Endpunkte der Kantenabschnitte der Kante ein vertikales Stufenelement der Treppenfunktion schneiden, wobei eine horizontale Kante eine Anzahl von vertikalen Stufenelementen umfaßt, die gleich der Anzahl der Stufen der Treppenfunktion ist, wobei eine vertikale Kante eine Anzahl von vertikalen Stufenelementen umfaßt, die um eine zusätzliches vertikalen Stufenelement größer als die Anzahl der Stufen der Treppenfunktion ist, und wobei das zusätzliche vertikale Stufenelement für eine Berechnung der Gewichtungsfaktoren einer benachbarten Kante mit gleicher vertikaler Position herangezogen wird.
  • Gemäß einem anderen bevorzugten Ausführungsbeispiel ist dem Footprint eine Vergrößerungsverschiebung zugeordnet, wobei nach dem Schritt (a), basierend auf der Vergrößerungsverschiebung, der Footprint durch Verschieben der Kanten des Footprints nach außen um eine von der Vergrößerungsverschiebung abhängige Entfernung vergrößert wird, wobei im Schritt (b) die verschobene Kante bestimmt wird, wobei im Schritt (c) die verschobene Kante durch eine Treppenfunktion angenähert wird, und wobei im Schritt (e) ein Gewichtungsfaktor für jedes Texel, das eine verschobene Kante enthält, abhängig von der durch den vergrößerten Footprint überdeckten Teilfläche des jeweiligen Texels bestimmt wird.
  • Der Footprint wird dadurch vergrößert, dass die Kantenendpunkte um eine durch die Vergrößerungsverschiebung festgelegte Entfernung in horizontaler Richtung und in vertikaler Richtung verschoben werden. Vorzugsweise werden die sich einstellenden Zwischenräume durch horizontale und vertikale Kanten gefüllt, wobei anschließend weitere Gewichtungsfaktoren für jedes Texel, das eine eingebrachte vertikale Kante enthält, bestimmt werden.
  • Das erfindungsgemäße Verfahren schafft einen neuartigen Ansatz für eine anisotrope Filterung, welche es ermöglicht z. B. die bekannte Filtertechnik des Flächenabtastens „area sampling" auf vierseitige Footprints anzuwenden, welche ein perspektivisch projiziertes quadratisches Bildelement darstellen, welche ein regelmäßiges Texelgitter überlagern. Genauer gesagt wird erfindungsgemäß ein weiterer Eingangsparameter, die sogenannte Vergrößerungsverschiebung, verwendet, um Aliasing-Artefakte zu steuern. Die Vergrößerungsverschiebung bestimmt, ob eine gewichtete Flächenabtastung oder eine ungewichtete Flächenabtastung auf die Fläche des Footprints angewendet werden soll, insbesondere wird hierdurch bestimmt, wie groß der Gewichtungsbeitrag oder der Grad der Gewichtung bei der Flächenabtastung sein soll. Vorzugsweise findet die vorliegende Anmeldung auf verformte Footprints Anwendung, beispielsweise auf kleine und längliche Footprints.
  • Eine typische Charakteristik und ein wesentliches Merkmal der vorliegenden Erfindung ist darin zu sehen, dass kein Hardware-basierter Schalter, auf der Basis eines Schwellenwertes, existiert, der entscheidet wann eine gewichtete und wann eine ungewichtete Flächenabtastung durchzuführen ist, welches tatsächlich zu Diskontinuitäten mit erkennbaren Artefakten führen würde. Statt dessen wird vorzugsweise der Betrag des gewichteten Flächenabtastens zunehmend erhöht.
  • Vorzugsweise erfolgt die zunehmende Erhöhung des Gewichtungsbeitrags mit kleiner werdendem Footprint, insbesondere während der Footprint kleiner wird als die Ausdehnung eines Texels in die Breite oder in die Höhe.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein Verfahren zur Festlegung eines Gewichtungsfaktors für die Farbberechnung eines Farbwertes eines Texels für einen Footprint, der sich zumindest teilweise in das Texel erstreckt, in einem Graphiksystem geschaffen, bei dem eine Forminformation des Footprints bestimmt wird und basierend auf einer Vergrößerungsverschiebung der Footprint durch Verschieben der Kanten desselben nach außen um eine von dem Vergrößerungsverschiebung abhängige Entfernung vergrößert wird, so dass derselbe mehrere Texel überdeckt. Dann wird ein Gewichtungsfaktor für jedes Texel, das eine verschobene Kante enthält, bestimmt, abhängig von der durch den vergrößerten Footprint überdeckten Teilfläche des jeweiligen Texels.
  • Gemäß diesem Aspekt der vorliegenden Erfindung wird ermöglicht, für Footprints, welche nur eine geringe Anzahl von Texeln oder sogar nur ein Texel überdecken, die Farbbestimmung auf eine breitere Basis zu stellen, indem auch Informationen von benachbarten Texeln berücksichtigt wird, durch die Vergrößerung des Footprints. Es ist darauf hinzuweisen, das die Vergrößerung nur zur Bestimmung des Farbwertes erfolgt – der Footprint wird für die spätere Darstellung des Objekts, dem derselbe zugeordnet ist, nicht vergrößert.
  • Bevorzugte Weiterbildungen der vorliegenden Anmeldung sind in den Unteransprüchen definiert.
  • Nachfolgend werden anhand der beiliegenden Zeichnungen bevorzugte Ausführungsbeispiele der vorliegenden Erfindung näher erläutert. Es zeigen:
  • 1A und B ein Flussdiagramm eines bevorzugten Ausführungsbeispiels des erfindungsgemäßen Verfahrens;
  • 2 die Darstellung eines Footprints im Texturraum;
  • 3 eine Darstellung zur Festlegung der Kantenausrichtung eines Footprints;
  • 4A und B ein Flussdiagramm, das ein Verfahren zur Kantenberechnung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung wiedergibt;
  • 5A und B zwei Beispiele für eine Filtervergrößerung eines Footprints;
  • 6 eine Darstellung der Annäherung von Kanten des Footprints durch eine Treppenfunktion;
  • 7 eine Darstellung einer verschobenen Kante in einem Texelgitter mit den zugeordneten Gewichtungstabelleneinträgen;
  • 8A und B ein Flussdiagramm, das ein Verfahren zum Verarbeiten einer verschobenen Kante gemäß einem Ausführungsbeispiel der vorliegenden Erfindung wiedergibt;
  • 9 eine Darstellung eines Footprints und eines vergrößerten Footprints, anhand der der Stufenübertrag beschrieben wird;
  • 10A und B Darstellungen zur Verdeutlichung der Notation einer Scheitelpunktkante und eines Streifens (vertikales Stufenelement); und
  • 11A und B ein Flussdiagramm, das ein Verfahren zur Farbberechnung eines Pixels wiedergibt.
  • Nachfolgend wird anhand der 1 ein erstes Ausführungsbeispiel der vorliegenden Erfindung näher beschrieben, wobei einzelne Verfahrensschritte in der nachfolgenden Beschreibung noch detaillierter erläutert werden.
  • Hinsichtlich der weitergehenden Beschreibung wird darauf hingewiesen, dass für die Beschreibung des Footprints die mathematische Notation von Vektoren verwendet wird (im Text durch FETTDRUCK dargestellt). Die Einheitslänge aller Koordinaten und Längen ist die Breite (bzw. die Höhe) eines Texels in der Originaltextur oder in der Textur gemäß einer MipMap-Stufe, sofern vorhanden. Kantenattribute und Scheitelattribute umfassen den Index i, der von 0 bis 3 läuft, und alle Ergebnisse von Indexberechnungen, welche i = 0 bzw. i = 3 überschreiten werden auf tatsächliche Kanten zurückgerechnet. Dies bedeutet, dass ein Ergebnis von i = 4 zu i = 0 wird und ein Ergebnis von i = –1 wird zu i = 3.
  • Gemäß einem bevorzugten Ausführungsbeispiel empfängt das erfindungsgemäße Verfahren im Block 100 Eingangsdaten oder Informationen, die die Form, Position und Ausrichtung des vierseitigen Footprints wiedergeben, und die im Block 102 bereitstehen. Genauer gesagt werden im Block 102 die Footprintdaten vi in , die Drehrichtung d des Footprints und die Vergrößerungsverschiebung (Vergrößerungsoffset) r bereitgestellt. Durch den Empfang des zusätzlichen Eingangsparameters, nämlich der Vergrößerungsverschiebung r wird es ermöglicht, erfindungsgemäß den Grad des gewichteten Flächenabtastens festzulegen, der für kleine oder dünne Footprints, insbesondere kleine oder dünne vierseitige Footprints, erforderlich ist.
  • Im Block 104 erfolgt eine sogenannte Kantenberechnung. Diese Kantenberechnung umfasst das Vergrößern des Footprints durch Verschieben der Kanten desselben basierend auf der empfangenen Forminformation und dem Vergrößerungsparameter r. Im Rahmen der Kantenberechnung 104 werden anschließend vertikale Kanten in die sich aufgrund der Vergrößerung ergebenden Zwischenräume eingebracht, ein Begrenzungsrechteck wird berechnet, und alle Kanten werden im Block 104 in linke und rechte Kanten sortiert, so dass im Block 106 die Attribute für die vergrößerten Scheitelpunktkanten bereitgestellt werden, und im Block 108 die der verschobenen Kanten zugeordnete Attribute bereitgestellt werden. Genauer gesagt wird im Block 106 die Footprintinformation vi *, die Ausrichtung der einzelnen Kanten ai * und die sich einstellenden Zwischenräume gi * für den vergrößerten Footprint bereitgestellt. Im Block 108 werden die Scheitelpunktinformationen vi', eine Ausrichtung der verschobenen Kante ai' sowie entsprechende Kantenvektoren si' bereitgestellt. Die im Block 108 bereitgestellten Informationen werden dem Block 110 zugeführt, in dem eine Verarbeitung bezüglich der verschobenen Kante durchgeführt wird. Im Block 110 wird zum einen eine Stufenübertrag pi * berechnet, welcher im Block 112 bereitgestellt wird. Die im Block 106 und im Block 112 bereitgestellten Parameter werden dem Block 114 zugeführt, in dem eine Verarbeitung der Scheitelpunkt kante erfolgt.
  • Aus den Verarbeitungen der Scheitelpunktkante (Block 114) und der verschobenen Kante (Block 110) resultieren die in den Blöcken 116 und 118 (1B) bereitgestellten Gewichtungstabellen für die Scheitelpunkt-Kanten und die verschobenen Kanten.
  • Basierend auf den so erzeugten Tabellen erfolgt im Block 120 eine Farbberechnung, wobei der Block 120 zusätzlich Informationen bezüglich der Textur vom Block 122 erhält. Die Farbberechnung im Block 122 ergibt dann die Pixelfarbe, die im Block 124 bereitgestellt wird und im Block 126 ausgegeben wird.
  • Ist für den Footprint keine Vergrößerung erforderlich oder vorgesehen, so unterbleibt die Verschiebung der Kanten des Footprints. Das erfindungsgemäße Verfahren wird dann lediglich auf die ursprünglichen Kanten ausgeführt. Zusätzlich eingefügte Kanten existieren in diesem Fall nicht, bzw. sind für die Berechnung auf Null gesetzt.
  • In den Blöcken 110 bis 118 wird eine geeignete Datenstruktur für jede der Kanten des Footprints erstellt. Hierbei werden die nachfolgend erläuterten Schritte für jede Kante parallel durchgeführt. Zunächst wird eine Kante durch eine geeignete Anzahl von einfachen Treppenstufen angenähert, und alle Texel, welche durch eine Treppenfunktion einer linken Kante berührt werden, werden gesucht. Jedem aufgefundenen Texel wird dann ein Gewichtungswert zugeordnet, der den Bruchteil der verbleibenden Texelfläche, die rechts von der Stufenfunktion liegt, entspricht. Analog werden alle Texel, die unter der darzustellenden Struktur liegen, und die durch die Treppenfunktion einer rechten Kante berührt werden, gesucht. Den so aufgefundenen Texeln wird dann jeweils ein Gewichtungsfaktor zugeordnet, der dem Bruchteil der verbleibenden Fläche jedes Texels entspricht, die links von der Treppenfunktion angeordnet ist. Anschließend werden alle Koordinaten und entsprechenden Gewichtungen in einer geeigneten, einzigartigen Datenstruktur gespeichert, die der Kante des Footprints zugeordnet ist. Ferner wird allen Texeln ein Gewichtungswert von ≤ +1 bzw. von ≥ –1 zugeordnet, und zwar Texeln, die sich rechts von einer linken Kante bzw. einer rechten Kante – durch diese jedoch nicht berührt werden – und links von der rechten Kante des Begrenzungsrechtecks liegen. Diese Informationen werden zu der Datenstruktur hinzugefügt.
  • Vorzugsweise werden die so erzeugten Datenstrukturen gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung auf eine effizientere Art und Weise beurteilt, so dass jedes Texel, das durch den Footprint bedeckt wird, direkt durch die gespeicherten Koordinaten angesprochen werden kann, so dass nachfolgend dessen entsprechende Farbe mit dessen zugeordnetem Gewicht multipliziert (gewichtet) werden kann. Es wird darauf hingewiesen, dass jeder Gewichtungsfaktor die Summe der Gewichtungen derjenigen Kanten ist, welche in dem betrachteten Texel enthalten sind.
  • Im Block 120 in 1B wird eine Farbberechnung durchgeführt, wie sie im Stand der Technik an sich bekannt ist. Für diese Farbberechnung werden alle Gewichtungsfaktoren gesammelt und ebenso werden alle gewichteten Texel, welche durch den Footprint verwendet werden, gesammelt und anschließend wird die gesammelte Farbe durch die gesammelten Gewichtungsfaktoren geteilt. Das Ergebnis stellt das aus der Texturabbildung wiedergewonnene und gefilterte Bildfragment dar, welches dem Pixel zugeordnet ist, das auf das Texturbild abgebildet bzw. projiziert werden sollte.
  • Hinsichtlich der in 1 wiedergegebenen Werte vi', ai' und si' bzw. vi *, ai *, gi * wird darauf hingewiesen, dass sich die mit Apostroph versehenen Werte auf die verschobenen Kanten beziehen, wohingegen sich die mit einem Sternchen versehenen Werte auf die Scheitelpunkt-Kanten beziehen.
  • Der Vorteil der vorliegenden Erfindung besteht darin, dass das erfindungsgemäße Verfahren inhärent die Möglichkeit schafft, einen hohen Grad von Parallelität bei dessen Ausführungen in einer konkreten Hardware-Implementierung zu verwenden. Ferner ermöglicht das erfindungsgemäße Verfahren dessen Implementierung in einer Hardware-Pipeline, so dass gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung die oben beschriebenen Verfahrensschritte hardwaremäßig in unterschiedlichen Pipeline-Stufen realisiert sind. Vorzugsweise sind diejenigen Verfahrensschritte, die oben beschrieben wurden und die die Datenstruktur für jede Kante erzeugen, typischerweise als Hardwaremodul implementiert, und werden für jede Kante parallel instantiiert (aufgerufen). Diese parallel instantiierten Module stellen selbst wieder eine Pipeline-Stufe der gesamten Hardware-Pipeline dar.
  • Der grundsätzliche Prozess zur Wiedergewinnung der Pixelfarbe von einem Texel-Array, welches durch einen vierseitigen Footprint bedeckt wird, besteht darin, eine nicht-gewichtete Flächenabtastung bezüglich dieses Footprints durchzuführen. Dies bedeutet, dass die Farbkomponenten des Texels zunächst über den Footprint integriert werden, und anschließend das Ergebnis durch die summierte Fläche des Footprints geteilt wird. Das Berechnen des Integrals erfordert das vorherige Multiplizieren jedes Texels durch einen geeigneten Gewichtungsfaktor. Der Gewichtungsfaktor beträgt 1,0 für diejenigen Texel, welche vollständig unterhalb des Footprints angeordnet sind. Erfindungsgemäß wird jedes Texel, welches nur teilweise durch den Footprint bedeckt wird, also am Rand des Footprints liegt, ein Gewichtungsfaktor zugeordnet, welcher proportional zur Größe der bedeckten Fläche ist.
  • Somit erfüllt das erfindungsgemäße Verfahren die folgenden zwei Aufgaben, die bisher beschrieben wurden, nämlich die Identifizierung aller Texel, welche vollständig oder teilweise durch den vierseitigen Footprint bedeckt sind, und die Berechnung eines Gewichtes für jedes Texel und die Zuordnung dieses Gewichtungsfaktors zu dem entsprechenden Texel.
  • Ferner wird erfindungsgemäß ein Überblenden realisiert, welches durch den zusätzlichen Parameter, den Vergrößerungsparameter r gesteuert wird, um ein Überblenden von einer ungewichteten in eine gewichtete Flächenabtastung durchzuführen.
  • Der Hintergrund des gerade beschriebenen Aspekt ist darin zu sehen, dass eine ungewichtete Flächenabtastung in dem wiedergewonnenen Bild dann erkennbare Aliasing-Artefakte erzeugt, wenn der Footprint stark verformt, z. B. Formen aufweist, welche lediglich sehr dünne und sehr längliche Flächen umfassen. Dies ist ebenfalls der Fall, wenn die Fläche, welche durch den Footprint bedeckt wird, wesentlich kleiner wird als die Fläche eines quadratischen Texels des Texelgitters.
  • Um die gerade erwähnten Artefakte in diesen Fällen zu vermeiden, wird erfindungsgemäß die Fläche des Footprints durch Verschieben der vier Kanten, welche die Grenze des Footprints wiedergeben, erweitert. In den oben beschriebenen Fällen nähert dies einen Footprint an, welcher als die Projektion eines Filterkernels interpretiert werden kann, der die Charakteristik eines gewichteten Flächenabtastens erfüllt, wobei der Filterkernel seine Nachbarn überlappt und eine bilinear ähnliche Verteilung aufweist.
  • Bei der oben dargelegten Beschreibung des bevorzugten Ausführungsbeispiels der vorliegenden Erfindung gemäß 1 wird darauf hingewiesen, dass das erfindungsgemäße Verfahren im wesentlichen die Blöcke 100 bis 118 umfasst, welche dann die erforderlichen Daten für eine im wesentlichen herkömmliche Farbberechnung bereitstellen. Ferner wird hinsichtlich der 1 angemerkt, dass alle rechteckigen Blöcke die Hauptverarbeitungsschritte wiedergeben, welche nachfolgend für bevorzugte Ausführungsbeispiel der vorliegenden Erfindung im Detail beschrieben werden. Die Ergebnisse der Verarbeitungsschritte sind in Datenstrukturen gespeichert, die in 1 in den parallelogrammförmigen Blöcken wiedergegeben sind. Diese Ergebnisse werden als Eingänge für die nächsten Verarbeitungsstufen herangezogen.
  • Die in 1 im Block 100 eingegebenen Daten und im Block 102 bereitgestellten Daten umfassen die Informationen bezüglich des Footprints vi in, welcher gemäß einem bevorzugten Ausführungsbeispiel konvex ist und bei dem die Höhe und die Breite keiner der Kanten einen vorbestimmten maximalen Wert Emax überschreiten darf. Ferner wird eine Drehrichtung d für den Footprint eingegeben, wobei d = +1 für eine Drehrichtung im Uhrzeigersinn und d = –1 für eine Drehrichtung entgegen dem Uhrzeigersinn steht. d wird auf 0 gesetzt, wenn die Drehung aufgrund der Verformung des Footprints nicht mehr festgestellt werden kann. Ferner wird die Vergrößerungsverschiebung r eingegeben, welche vorzugsweise auf einen Wert zwischen 0,0 und 0,5 beschränkt ist.
  • Bei der oben erwähnten maximalen Kantenlänge Emax handelt es sich vorzugsweise um einen Hardware-codierten Wert, der eine Potenz von 2 sein sollte, wobei hier der Wert 8 bevorzugt wird. Höhere Werte werden den Rasterprozess, also die Verarbeitungsgeschwindigkeit des Graphiksystems, signifikant verlangsamen und die erforderlichen Datenstrukturen deutlich vergrößern. Würde keine 2er Potenz verwendet, wären die mit Emax verbundenen Berechnungen in Hardware nur aufwendig zu realisieren.
  • 2 zeigt ein Beispiel für eine Darstellung eines Footprints im Texturraum. Der Texturraum ist bei dem dargestellten Beispiel durch die Koordinaten x und y aufgespannt. Der Footprint ist durch die vier Scheitelpunktvektoren v0 bis v3 sowie die vier Kantenvektoren s0 bis s3 definiert. Ferner ist durch die Richtung der Kantenvektoren so bis s3 die Drehrichtung d des Footprints festgelegt. 2 zeigt die typische Form eines Footprints in dem Texturraum. Der Footprint ist durch dessen Umgrenzung definiert, die wiederum aus den vier Kanten s0 bis s3 besteht, und daher oft auch als vierseitiges Element bezeichnet wird. Die vier Scheitelpunkte v0 bis v3, die durch die vier in 2 gezeigten Vektoren im Texturraum positioniert sind, definieren die Kanten s0 bis s3.
  • Wie nachfolgend noch näher beschrieben wird, besteht ein Hauptaspekt der vorliegenden Erfindung darin, dass horizontale und vertikale Stufenfunktionen angewandt werden, um jede der Kanten anzunähern. Um jedoch einen konsistenten und einzigartigen Gewichtungsalgorithmus zu erhalten, der für alle Kanten s0 bis s3 parallel abgearbeitet werden kann, wird für die weitergehende Berechnung angenommen, dass die Kanten lediglich Beiträge zu denjenigen Texeln liefern, welche rechts von einer Kante angeordnet sind. So mit werden Werte von linksseitigen Kanten zu dem effektiven Gewichtungsfaktor, der sich für alle Kanten ergibt, addiert, und Werte von rechtsseitigen Kanten werden von dem effektiven Gewichtungsfaktor, der von allen Kanten resultiert abgezogen. Die Kantenattribute links, rechts, unten und oben sind in 3 dargestellt.
  • Wie ferner aus 3 zu entnehmen ist, werden Kanten, die als unten links bzw. oben rechts liegend eingestuft werden, durch vertikale Stufenelemente angenähert, wohingegen Kanten, welche als unten rechts bzw. oben links liegend angesehen werden durch horizontale Stufenelemente angenähert werden. Die gerade beschriebenen horizontalen und vertikalen Stufen werden nachfolgend noch detaillierter beschrieben.
  • Zunächst wird anhand der 4 ein erster Hauptverarbeitungsschritt des erfindungsgemäßen Verfahrens nach einem bevorzugten Ausführungsbeispiel näher erläutert, nämlich die in 1A im Block 104 allgemein angegebene Kantenberechnung. Im Block 128 empfängt das Verfahren zur Kantenberechnung die hierfür erforderlichen Daten, nämlich die Footprintdaten vi in und die Vergrößerungsverschiebung r, welche in den Blöcken 130 und 132 der weiteren Verarbeitung bereitgestellt wird. Die Kantenberechnung erzeugt die angenäherte Fläche des Footprints, wobei eine positive Filtervergrößerung, angezeigt durch den Vergrößerungsverschiebung r, mit r ≥ 0, mit einbezogen wird. Jede Kante des ursprünglichen Footprints wird von dem Mittelpunkt weg bewegt, durch Hinzufügen einer Verschiebung mit der Größe r. Diese Kanten werden im weiteren als verschobene Kanten bezeichnet. Als ein Ergebnis dieser „Explosion" ergeben sich horizontale und vertikale Zwischenräume zwischen den ursprünglichen Scheitelpunkten des Footprints. Horizontale Zwischenräume können bei dem erfindungsgemäßen Verfahren gemäß dem beschriebenen Ausführungsbeispiel ignoriert werden, vertikale Zwischenräume werden jedoch einfach durch verti kale Kanten, die sogenannten Scheitelpunkt kanten aufgefüllt.
  • Um die Berechnung der Kanten- und Scheitelpunktattribute zu vereinfachen und hinsichtlich der erforderlichen Hardware-Implementierung weniger aufwendig zu gestalten, werden im Block 134 Footprints, welche eine Drehrichtung entgegen dem Uhrzeigersinn aufweisen, stets in Footprints mit einer Drehrichtung im Uhrzeigersinn umgewandelt (siehe 2). Die Umwandlung erfolgt gemäß der nachfolgend wiedergegebenen Berechnungsvorschrift:
    Figure 00150001
    v0,1,2,3 in = im Block 128 empfangene Eingangsdaten.
  • Die gemäß der obigen Berechnungsvorschrift erhaltenen Footprintdaten v0,1,2,3 werden im Block 136 zur weiteren Verarbeitung bereitgestellt.
  • Basierend auf der im Block 136 bereitgestellten Footprintinformationen vi ergeben sich die Kantenvektoren gemäß der nachfolgenden Berechnungsvorschrift:
    Figure 00150002
  • Ferner werden die sogenannten Ausrichtungsvektoren ai für die Kanten berechnet, um die entsprechenden Kanten in linke/rechte und obere/untere Kanten zu klassifizieren. Basierend auf der in 3 gezeigten Einteilung wird für jede Kante bestimmt, in welchem Quadrat dieselbe liegt. In der nachfolgenden Tabelle sind die Werte für die zwei Komponenten des Kantenorientierungsvektors ai, nämlich für die Komponenten ai,x und ai,y wiedergegeben für verschiedene Vorzeichen der Komponenten si,x bzw. si,y des Kantenvektors si.
  • Figure 00160001
  • In der obigen Tabelle zeigt ein Wert von +1 eine Ausrichtung nach rechts entlang der x-Achse und nach unten in Richtung der y-Achse in dem in 3 aufgespannten Texturraum wieder. Ein Wert von –1 zeigt eine Ausrichtung nach links in Richtung der x-Achse und eine Ausrichtung nach oben in Richtung der y-Achse. Horizontale Kanten und vertikale Kanten werden die gerade genannten Werte zugeordnet. Eine „0-Kante" (in einem Punkt verformte Kante) resultiert zu einem Vektor a = 0 bzw. zu einem Wert für a = 0.
  • Die in der Tabelle wiedergegebenen Orientierungen werden verwendet, um die Richtung einer Vergrößerungsverschiebung festzustellen. Der Footprint wird auf vier verschobenen Kanten vi', si' erweitert, abhängig von der Größe des beschränkten Vergrößerungsparameters r. Tatsächlich wird jeder der ursprünglichen Scheitelpunkte auf die in 5A und 5B beschriebene und wiedergegebene Art und Weise um den Vergrößerungsparameter r verschoben, wodurch sich die verschobenen Kanten si' einstellen. Nachdem alle Kanten von links nach rechts abgetastet werden sollten, müssen der Startpunkt und der Endpunkt für diejenigen Kanten, welche als unten liegend festgestellt wurden, vertauscht werden, was gemäß der nachfolgend wiedergegebenen Berechnungsvorschrift durchgeführt wird:
    Figure 00160002
  • Die gerade beschriebenen Berechnungen erfolgen in 4A zum einen im Block 138, worauf sich die Kantenvektoren si ergeben, die im Block 140 bereitgestellt werden. Basierend auf diesen Informationen werden im Block 142a die verschobenen Kantenvektoren si' berechnet und im Block 142b für die Ausgabe im Block 150 bereitgestellt. Basierend auf diesen Informationen wird im Block 142 die Ausrichtung der Kanten berechnet, und anschließend im Block 144 (4B) zur weiteren Verarbeitung bereitgestellt. Im Block 146 werden basierend auf den im Block 144 bereitgestellten Ausrichtungen ai', basierend auf den im Block 136 bereitgestellten Footprintdaten vi sowie basierend auf dem im Block 132 bereitgestellten Vergrößerungsparameter r die Verschiebung für die verschobenen Kanten berechnet, so dass im Block 148 die verschobenen Kanteninformationen vi' bereitgestellt werden und im Block 150 ausgegeben werden.
  • Zwischenräume, die sich aufgrund der Verschiebung jedes Scheitelpunkts des Footprints ergeben, werden durch die vertikalen Scheitelpunkt-Kanten gehandhabt. Die Verschiebung dieser Kanten hängt von der Ausrichtung der zwei benachbarten Kanten, die eine Länge von größer 0 aufweisen ab. Diese Kanten werden mit j± indiziert, abhängig von dem Scheitelpunktindex i, gemäß der nachfolgend wiedergegebenen Berechnungsvorschrift:
    Figure 00170001
  • Unter Verwendung dieser Indexübersetzung ergibt sich der modifizierte Ausrichtungsvektor ai * und die Zwischenraumflag ϑi * wie folgt:
    Figure 00180001
  • X steht für einen Wert, der keine Auswirkungen auf folgende Berechnungen hat und daher beliebig sein kann. Der Basispunkt für die Scheitelpunktkante und die Größe des Vergrößerungszwischenraums ergibt sich dann gemäß der nachfolgend wiedergegebenen Berechnungsvorschrift:
    Figure 00180002
  • Die Bedingung ai = 0, woraus folgt gi * = 0, stellt sicher, dass eine „0-Kante", die zwei benachbarte und auch identische Scheitelpunkte mit den gleichen Attributen aufweist, lediglich eine Zwischenraumkante für die nachfolgende Texelgewichtung erzeugt. Die oben beschriebenen Berechnungsschritte erfolgen zunächst im Block 152, in dem basierend auf der im Block 144 bereitgestellten Ausrichtung ai' und basierend auf dem Vergrößerungsparameter r eine Ausrichtung der Scheitelpunkt-Kanten berechnet wird, die dann im Block 154 bereitgestellt wird. Ferner wird der Vergrößerungszwischenraum gi * im Block 156 bereitgestellt, der ebenfalls durch die Berechnung im Block 152 erzeugt wurde.
  • Basierend auf den Ausrichtungen ai *, die im Block 154 bereitgestellt wurden, erfolgt im Block 156 die Berechnung der Verschiebung für die Scheitelpunkt kanten vi *, die dann im Block 158 bereitgestellt werden. Im Block 150 werden dann die verschobenen Scheitelpunkt kanten vi *, die Ausrichtungen ai *, der Vergrößerungszwischenraum gi', die im Block 144 bereitgestellte Ausrichtung ai', die verschobenen Kantenvektoren si' sowie die verschobenen Scheitelpunktinformationen vi' ausgegeben, wie dies in 1A in den Blöcken 106 und 108 wiedergegeben ist.
  • Basierend auf den ausgegebenen Attributen vi', si' und ai' erfolgt nachfolgend in einem zweiten Hauptverarbeitungsschritt die Verarbeitung der verschobenen Kanten, welche in 1A im Block 110 angegeben ist. Für die Verarbeitung der verschobenen Kanten werden dieselben durch eine Anzahl von Stufen approximiert, wobei die Anzahl der Stufen von der Größe der verschobenen Kante abhängt. An dieser Stelle sei darauf hingewiesen, dass 0-Kanten mit einem Wert ai = 0 ausgelassen werden. Ferner soll die Breite und die Höhe einer Stufe einen Wert von 1,0 nicht überschreiten. Zunächst muss also die Anzahl der Schritte nStufe pro Kante bestimmt werden. Dies erfolgt gemäß der nachfolgenden Berechnungsvorschrift:
    Figure 00190001
  • Bevorzugt wird das mit 2) bezeichnete Berechnungsverfahren, da dieses durch den hartcodierten Maximalwert für die Kantenlängen Emax signifikant vereinfacht werden kann und ferner aufwendige Teiler durch einfache Schiebeoperationen in der nachfolgenden Berechnung der Stufenvektoren qi. ersetzt. Die Stufenvektoren qi. berechnen sich gemäß der nachfolgend wiedergegebenen Berechnungsvorschrift:
    Figure 00200001
  • Um das gleiche Gewichtungsverfahren bei allen Scheitelpunkten zu erhalten, sind zwei unterschiedliche Stufen-Verfahren erforderlich. Die Stufenausrichtung ϑi' ist 0, also horizontal, für oben rechts liegende Kanten und unten links liegende Kanten. Die Stufenausrichtung ϑi' ist 1, ist also vertikal, für oben links liegende Stufen und für unten rechts liegende Stufen. Horizontale Stufen beziehen sich auf horizontale Schnittpunkte einer Treppenfunktion mit der entsprechenden Kante am Ende des Stufenvektors qi. Ebenso beziehen sich vertikale Stufen auf vertikale Schnittstellen der Stufenfunktion mit der jeweiligen Kante am Ende des Stufenvektors qi, wie dies aus 6 zu entnehmen ist. Ein Streifen ist ein vertikales Stufenelement, welches verwendet wird, um die Gewichtungen der Texel zu bestimmen. Für die Stufenausrichtung ϑi' gilt die folgende Berechnungsvorschrift:
    Figure 00200002
  • Nachdem die Kanten mit einer Stufenausrichtung ϑi' gleich 1 ein vertikales Element mehr aufweisen als die Anzahl der Stufen ni,Stufe, wäre ein zusätzlicher Gewichtungszyklus erforderlich. Statt dessen kann dieser jedoch auf die Verarbeitung einer benachbarten Scheitelpunkt-Kante mit derselben x Position verschoben werden, was im Zusammenhang mit der vorliegenden Erfindung als Stufenübertrag (step propagation) bezeichnet wird, und nachfolgend anhand der 9 noch näher erläutert wird.
  • Eine Streifenverarbeitungsschleife ist für jede Kante vorgesehen, und verarbeitet eine Streife pro Zyklus, wie dies nachfolgend noch detaillierter anhand der 8 beschrieben wird. Jeder Zyklus kann ein oder zwei Texel gewichten, wobei die Eingangsparameter für die Verarbeitungsschleife v', q, nStufe, a'y und ?' sind. Die Schleife erzeugt eine Datenstruktur und füllt diese mit entsprechenden Daten, die in der nachfolgenden Tabelle wiedergegeben sind:
    Figure 00210001
  • In 7 sind die in der obigen Tabelle wiedergegebenen Einträge graphisch dargestellt. Der höchstmögliche Wert für k und 1 hängt bei dem bevorzugten Ausführungsbeispiel von der maximal zulässigen Kantenerstreckung Emax ab, so dass gilt: k = 0,..., Emax, und 1 = 0 ,..., 2 Emax
  • Für den Stufenübertrag gilt die folgende Berechnungsvorschrift:
    Figure 00210002
  • Anhand der 8 wird nachfolgend ein bevorzugtes Ausführungsbeispiel der oben erwähnten Streifenverarbeitungsschleife näher erläutert.
  • Hinsichtlich der nachfolgenden Beschreibung einer Streifenverarbeitungsschleife in 8 wird darauf hingewiesen, dass hier auf die explizite Angabe des Index i verzichtet wurde, da dieser bei allen Werten auftauchen würde. Beschrieben wird lediglich der Vorgang für eine Kante, wobei das anhand der 8 beschriebene Verfahren dann im Regelfall für alle Kanten parallel durchgeführt wird. In 8 ist ferner der Index 1 angegeben, der für die Verarbeitung der Streifen lediglich die Anzahl der durch eine Kante getroffenen Texel (siehe 7) zählt.
  • In einem anfänglichen Abschnitt 160 werden die Koordinaten für den ersten Streifen (Slice), siehe auch die Vektoren ui,0 in 9, initialisiert. In dem Block 162 werden die Koordinaten des Anfangspunktes ux, uy0 sowie die Höhe duy (siehe 10B) festgelegt, wobei die tatsächlichen Koordinaten des ersten Streifen vom Beginn der betrachteten Kante, was durch den entsprechenden Anfangsscheitelpunkt v angezeigt ist, und von der Orientierung der Kante, was durch ϑ' bzw. ay angezeigt wird, abhängen. Daher wird zur Festlegung des tatsächlichen Anfangspunktes zunächst im Block 164 bestimmt, ob für den betrachteten, im Block 162 festgelegten Punkt eine horizontale Stufenausrichtung ?' existiert oder nicht. Ist die Stufenorientierung horizontal, so geht das Verfahren zum Block 166, in dem die Koordinate ux des Anfangspunktes um den Wert qx/2 erhöht wird. Die übrigen im Block 162 festgelegten Koordinaten bzw. Parameter bleiben gleich.
  • Handelt es sich bei der im Block 164 festgestellten Stufenausrichtung nicht um eine horizontale sondern um eine vertikale Ausrichtung, so geht das Verfahren zum Block 168, in dem zunächst die Ausrichtung ay der betrachteten Kante bestimmt wird. Handelt es sich bei der betrachteten Kante um eine obere Kante, so geht das Verfahren zum Block 170, in dem der Koordinatenwert ux um den Wert qx erhöht wird. Ebenso wird im Block 170 der Koordinatenwert uy0 um den Wert qy/2 erhöht.
  • Wird im Block 168 festgestellt, dass die betrachtete Kante eine untere Kante ist, so geht das Verfahren zum Block 172, in dem die Höhe duy halbiert wird.
  • Die so festgelegten Anfangskoordinaten für den betrachteten Streifen werden dann dem Block 174 bereitgestellt. Im Block 174 werden zunächst die verwendeten Indizes initialisiert, wobei k die Texelreihen zählt, 1 die Texel insgesamt zählt, und n die Streifen/Slices zählt. Die Koordinate der ersten Texelreihe y'ofs entspricht dem Texel unter dem Slice-Anfangspunkt, wobei in der zweiten Zeile im Block 174 bezüglich des Anfangskoordinatenwertes uy0 die sogenannte Floor-Funktion angezeigt ist, welche den nächsten ganzzahligen Wert in Richtung –∞ ausgehend von dem angegebenen Wert für uy0 wiedergibt.
  • Die Anzahl der betroffenen Reihen und der betroffenen Texel bei der Bearbeitung des Streifens wird in der ersten Reihe aus 1 initialisiert, wie dies durch y'num = x'num [0] = 1 wiedergegeben ist. Ferner wird die x Koordinate x'ofs des Beginns der ersten Reihe gleich der Slice-Position ux sein, wobei hier wieder der nächste ganzzahlige Wert ausgehend von ux in Richtung –∞ gewählt wird. Ferner wird die Gewichtungsinformation w'o fx für die erste Reihe und das erste Texel zum Wert 0 initialisiert.
  • Basierend auf den im Block 174 initialisierten Werten fährt das Verfahren bei Block 176 in 8B fort. Im Block 176 wird überprüft, inwieweit sich die zur Zeit betrachtete x-Position aufgrund späterer Berechnungen geändert hat. Ausgehend vom Block 174 wird festgestellt, dass die zwei im Block 176 angegebenen Parameter gleich sind, so dass das Verfahren in diesem Fall zum Block 178 weiter geht, in dem das erste Texel gewichtet wird. Im Block 178 erfolgt eine Bestimmung der Gewichtungen für das erste von dem Streifen getroffene Texel, was gemäß den im Block 178 wiedergegebenen Berechnungsvorschriften bestimmt wird. Im Block 178 wird zunächst der Streifen-Endpunkt uy1 berechnet, und anschließend die dazugehörige ganzzahlige Texel-Koordinate y1int, basierend auf dem nächsten ganzzahligen Wert von uy1 in Richtung –∞. Anschließend wird der Texel-Bruchteil wx berechnet, der sich durch den vertikalen Schnitt ergibt, wie dies in 7 dargestellt ist. Ferner wird der Bruchteil wy0 berechnet, der sich durch den horizontalen Schnitt ergibt. Die angegebene Fallunterscheidung berücksichtigt, welche Richtung der Streifen aufweist (siehe 10B) und ob ein oder zwei Texel getroffen sind.
  • Basierend auf den so bestimmten Informationen betreffend die Bruchteile des horizontalen und vertikalen Schnittes wird im Block 178 der Gewichtungsbeitrag w'tex[l] des Streifens zum aktuellen Texel bestimmt, in dem der existierende Wert um das Produkt aus wx mal wy0 erhöht wird. Abschließend wird noch der an das rechts liegende Texel weitergegebene Gewichtungsbeitrag w'prop bestimmt, in dem der existierende Wert für w'prop um den Wert wy0 erhöht wird.
  • Wurde im Block 176 festgestellt, dass sich die x Position durch eine spätere Berechnung geändert hat, also ein neues Texel in der gleichen Reihe betrachtet wird, so werden zunächst der Index 1 und die Anzahl der bereits bearbeiteten Texel in dieser Reihe x'nu m inkrementiert. Ferner wird die Gewichtung für das neue Texel w'tex [l] auf w'prop[k] gesetzt, so dass die Gewichtungsbeiträge der vorhergehenden Texel weitergegeben werden.
  • Vom Block 180 geht das Verfahren dann zu Block 178, in dem. dann eine entsprechende Gewichtung des neuen Texels auf die oben beschriebene Art und Weise durchgeführt wird.
  • Wurde die Berechnung der Gewichtung eines Texels im Block 178 abgeschlossen, so geht das Verfahren zu Block 182 in dem festgestellt wird, ob der Endpunkt des Streifens in einer anderen Reihe liegt als der Anfangspunkt. Ist dies der Fall, so geht das Verfahren zum Block 184 in dem ein neues Texel in einer neuen Reihe festgelegt wird, also verfahrenstechnisch in die nächste zu betrachtende Reihe gesprungen wird, so dass zunächst die Reihenanzahl y'num, der Reihenindex k und der Texelindex 1 inkrementiert werden. Ferner wird die Texelanzahl x'nu m[k] neu auf den Wert 1 initialisiert und die Koordinate des ersten Texels in der neuen Reihe x'ofs wird bestimmt. Zusätzlich wird der Index für das wtex-Array, bei dem das Gewicht für das erste Texel dieser Reihe gespeichert ist, festgelegt.
  • Vom Block 184 geht das Verfahren zum Block 186, in dem die Gewichtung für das zweite von dem Streifen getroffene Texel berechnet wird, ähnlich wie im Block 178, so dass auf die dortige Beschreibung verwiesen wird.
  • Nach dem Block 186 geht das Verfahren zum Block 188 in dem die x-Position der gerade betrachtete Streifen gespeichert wird und der Index n inkrementiert wird, um zum nächsten Streifen zu gelangen. Im Block 190 wird bestimmt, ob der Wert n kleiner ist als der Wert nStufe, und wenn dies nicht der Fall ist, wird festgestellt, dass der letzte Streifen überarbeitet wurde. In diesem Fall endet das Verfahren. Wird jedoch festgestellt, dass noch nicht der letzte Streifen bearbeitet wurde, geht das Verfahren zum Block 192, in dem die Koordinaten für den nächsten Streifen berechnet werden. Hierfür wird die Koordinate ux um den Wert qx erhöht, und ebenso wird die Koordinate uyo um den Wert qy erhöht. Die Fallunterscheidung bei der Betrachtung von duy berücksichtigt den in 9 bezüglich der Kanten s2 und s3 gezeigten Fall, gemäß dem der letzte Streifen nur die halbe Länge aufweist. Bei den Kanten so und s1 ist dies bereits der erste Streifen, was bereits bei der anfänglichen Initialisierung im Block 160 berücksichtigt wurde.
  • Basierend auf den im Block 192 festgelegten Daten werden im Block 194 die Texelkoordinaten des Anfangspunkts neu berechnet, und dann ein neuer Gewichtungsberechnungsdurchlauf für diesen Streifen durchgeführt.
  • Nachfolgend wird die in 1A im Block 114 angegebene Scheitelpunkt-Kanten-Verarbeitung näher beschrieben, welche die vertikalen Kanten behandelt, die hinzugefügt werden, um die vertikalen Zwischenräume auszufüllen.
  • Grundsätzlich stellen die Gewichtungstabellen für die Scheitelpunkt-Kanten die gleichen Parameter bereit, wie sie für die verschobenen Kanten herangezogen werden. Die Implementierung dieser Gewichtungstabellen ist jedoch weniger aufwendig, da die Anzahl der möglichen Reihen wesentlich niedriger ist, und die Indizierung der Gewichtungen und Reihen sich nicht unterscheiden, nachdem die Ausrichtung der betrachteten Kanten stets vertikal ist.
  • Die nachfolgende Tabelle gibt die Gewichtungen für die Scheitelpunkt-Kanten wieder.
  • Figure 00260001
  • Der Vergrößerungszwischenraum g und der Stufenübertrag p werden zu der Gesamtlänge einer Scheitelpunkt-Kante addiert, wie dies in 10A dargestellt ist, so dass die Koordinaten (Anfangspunkt und Endpunkt) einer Scheitelpunkt-Kante gemäß der nachfolgenden Berechnungsvorschrift ergeben:
    Figure 00270001
  • Die Kantenlänge ist g + p = 2·r + p, mit max. Wert für r und p = 0,5. Aus der obigen Berechnungsvorschrift ergibt sich eine maximale Länge von 0,5·1,0 + 2·0,5 = 1,5, was die Anzahl von Texelreihen auf 3 begrenzt. Die Tabellenelemente für k = 0, 1, 2 für eine Scheitelpunkt-Kante i werden gemäß der nachfolgenden Berechnungsvorschrift bestimmt:
    Figure 00270002
  • Nachdem nun alle Gewichtungstabellen für die entsprechenden Kanten, also die Scheitelpunkt-Kanten und die verschobenen Kanten bestimmt wurden, und gemäß 1B in den Blöcken 116 und 118 bereitgestellt werden, kann nun die abschließende Farbberechnung gemäß Block 120 in 1B erfolgen. Nachfolgend wird ein Beispiel für den letzten, verbleibenden Verarbeitungsschritt aus 1, nämlich den Block 120 näher beschrieben. Diese Farbberechnung besteht hauptsächlich aus einer Schleife, welche die Datenstrukturen, welche auf die oben beschriebene Art und Weise für jede verschobene Kante und jede vertikale Kante erzeugt und gespeichert wurden, beurteilt. Genauer gesagt wird bei dieser Farbberechnung auf alle Texel Bezug genommen, welche durch den vergrößerten Footprint berührt oder überdeckt werden, für jedes dieser Texel wird eine Gewichtung bestimmt. Für ein Texel (x, y) berechnet sich der Gewichtungsfaktor w Σ [0,0, 1.0] zu der Summe aller Kantenbeiträge, die aus den Gewich tungstabellen ausgelesen werden. Der Prozess zur Berechnung der sich ergebenden Pixelfarbe hängt im Detail von der das Pixel umgebenden Region ab, z. B. von der Organisation des Zugriffs auf den Texturspeicher. Nachfolgend wird ein funktionelles Beispiel für die Farbberechnungsprozedur anhand der 11 näher erläutert, wobei die in 11 dargestellte Prozedur eine Schleife ist, welche mehrfach durchlaufen wird, um alle betroffenen Texel abzuarbeiten. Hinsichtlich der 11 wird darauf hingewiesen, dass der Index i die Parallelität der angegebenen Rechnungen für vier Kanten beschreibt. Gleichungen, in denen i auf beiden Seiten des Gleichheitszeichens vorkommt, beschreiben vier Gleichungen, eine für jede Kante (i = 0, 1, 2, 3). i-indizierte Werte als Funktionsargument beschreiben vier Argumente. Der Index 1 gibt die durch eine Kante getroffenen Texel innerhalb einer Reihe an.
  • In 11A werden im Block 200 zunächst alle Farbkomponenten und die Summe aller Texelgewichte auf 0 initialisiert. Bei den Farbkomponenten handelt es sich im allgemeinen um RGB-Komponenten und die α-Komponente, wobei die Gleichungen eine Berechnung nur für eine abstrakte Komponenten Farbepix zeigen. Nachfolgend zu der Initialisierung der Farbkomponenten und der Summe aller Texelgewichte wird im Block 202 eine unterste und eine oberste Texelreihe bestimmt, wobei die kleinste und die größte y-Koordinate aller Texel, die durch die Werte in den oben beschriebenen zwei Tabellen beschrieben werden, ermittelt werden muss. Zunächst werden ein minimaler und ein maximaler Wert jeweils einer Kante (y'i,min und y'i,max) bestimmt, und zwar aus der oben wiedergegebenen Tabelle betreffend die verschobenen Kanten. Durch die angegebene Gleichung werden acht Gleichungen beschrieben, nämlich für die Bestimmung von ymin und ymax für jeweils vier Kanten. Die angegebene Fallunterscheidung in der Zuweisung berücksichtigt, ob die Tabelle in Richtung steigender oder fallender y-Koordinaten aufgebaut wurde.
  • Ferner wird im Block 202 basierend auf der oben genannten Tabelle für die Scheitelpunkt-Kantenverarbeitung die minimalen und die maximalen Werte einer Kante y* i,min und y* i,max bestimmt. Anschließend wird aus den für die Scheitelpunkt-Kanten und die verschobenen Kanten bestimmten minimalen Werten acht minimale Werte ymin bestimmt, und ebenso werden aus den bestimmten maximalen Werten für die verschobenen Kanten und die Scheitelpunkt-Kanten acht Maximalwerte ymax bestimmt. Nachdem die Bestimmung der untersten und der obersten Texelreihe auf diese Art und Weise durchgeführt wurde, geht das Verfahren zum Block 204, in dem der Schleifenwert y, welcher eine Texel-Reihe beschreibt, auf den Wert ym in initialisiert wird. Die Schleife wird für y Werte von ymin bis ymax durchlaufen.
  • Anschließend werden im Block 206 die in den oben beschriebenen Tabellen angegebenen Werte herangezogen, um die in diesen enthaltene Verschiebung zu kompensieren. So wird zunächst der Schleifenparameter k'i festgelegt, der für die verschobenen Kanten gilt. Die Werte der entsprechenden Tabelle enthalten lediglich Werte für xnum Reihen, beginnend bei der ganzzahligen y Koordinate der Texelreihe 0 (yofs). Diese Verschiebung wird von dem Schleifenwert abgezogen, um den Reihenindex k'i innerhalb der Tabelle für die verschobenen Kanten zu erhalten. Ähnlich wie oben bezüglich des Blocks 202 beschrieben wurde, muss auch hier berücksichtigt werden, ob die zugrundeliegende Tabelle die y Koordinaten in aufsteigender oder absteigender Reihenfolge enthält.
  • Anschließend erfolgt eine entsprechende Entfernung der Verschiebung für die Werte aus der Scheitelpunkt-Kantentabelle, um so den Reihenindex k* i zu erhalten. Ferner werden die Werte der Flags Δ'i und Δ* i bestimmt, welche anzeigen, ob eine betrachtete Kante über dem aktuellen y liegt, also einem Beitrag zu den Texel-Gewichten liefern wird.
  • Anschließend werden im Block 208 das am meisten links liegende und das am meisten rechts liegende Texel in der betrachteten Reihe bestimmt. Für die aktuelle Reihe wird nun die kleinste und größte x-Koordinate aller Texel bestimmt, die durch die Tabellen gewichtet werden, also die x Koordinaten x'i,min und x'i,max für die verschobenen Kanten und die Koordinaten x* i,m in und x* i,max für die Scheitelpunkt-Kanten. Kanten, die keinen Beitrag liefern, für die also die im Block 206 festgelegte Flag Δ* i oder Δ'i 0 sind, werden bei der entsprechenden Bestimmung der minimalen und maximalen x Werte nicht berücksichtigt, was durch die ±-∞-Beiträge formal beschrieben ist.
  • Aus den für die verschobenen Kanten und die Scheitelpunkt-Kanten bestimmten minimalen x-Koordinaten wird dann der minimale Wert xm in ausgewählt. Ebenso wird aus den für die verschobenen Kanten und die Scheitelpunkt-Kanten bestimmten maximalen x Koordinaten der maximale Wert xmax ausgewählt. Anschließend geht das Verfahren zum Block 210 (11B). Im Block 210 wird der Schleifenwert x, welcher ein Texel innerhalb der betrachteten Reihe angibt auf den Wert xmi n initialisiert. Dieser Schleifenwert läuft von xmi n bis xmax. Anschließend geht das Verfahren zum Block 212 in dem aus den bereitgestellten Tabellen die Gewichtungsbeiträge für die verschobenen Kanten ausgelesen werden. Hier werden die Beiträge aller acht Kanten zur Gewichtung des Texels bei den Koordinaten x, y bestimmt.
  • Zunächst wird der Index li des Texels innerhalb der Reihe für eine entsprechende Kante betrachtet (siehe 7). Anschließend wird der Gewichtungsbeitrag w'i für die Verschobene-Kante betrachtet, wobei hier für jede Kante vier Fälle zu unterscheiden sind. Das Texel kann entweder oberhalb oder unterhalb der Kante liegen, wobei in diesem Fall der Wert Δ'i 0 ist, so dass das betreffende Texel keinen Beitrag liefert. Ferner kann das Texel links von der Kante liegen, wobei in diesem Fall der Index 1 kleiner als 0 ist, und in diesem Fall auch kein Beitrag des Texels zu der Ge samtgewichtung geliefert wird. Liegt das Texel jedoch rechts von der Kante, also dass 1 ≥ xnum ist, so wird der in der entsprechenden Tabelle bereitgestellte Wert w'prop gewählt. Liegt das Texel auf der Kante, so wird der in der Tabelle bereitgestellte Wert w'tex bereitgestellt. Der Faktor a'i,x negiert das Ergebnis für rechte Kanten.
  • Parallel zum Block 212 wird im Block 214 eine entsprechende Auslesung der Tabellen hinsichtlich der Gewichtungsbeiträge der Scheitelpunkt-Kanten durchgeführt, wobei auch hier der entsprechende Beitrag w* i bestimmt wird. Wie im Block 212 gilt auch hier dass vier Fälle zu unterscheiden sind. Im ersten Fall liegt das Texel oberhalb oder unterhalb der Kante, der entsprechende Wert Δ* i ist somit 0. In diesem Fall liefert das Texel keinen Beitrag zur Gesamtgewichtung. Liegt das Texel links von der Kante, so trägt dieses ebenfalls nicht zur Gewichtung bei. Ist das Texel rechts von der Kante, x > x* i,ofs, so wird der in der Tabelle betreffend die Scheitelpunkt-Kanten festgelegte Wert w* prop ausgewählt. Liegt das Texel auf der Kante, so wird der entsprechende Wert w* tex ausgewählt. Auch hier wird das Ergebnis für rechte Kanten mittels des Faktors a* i,x negiert.
  • Nachdem in den Blöcken 212 und 214 die jeweiligen Beiträge für die verschobenen Kanten und die Scheitelpunkt-Kanten zur Gewichtung bestimmt wurden, geht das Verfahren zum Block 216, in dem alle Beiträge summiert werden, und die Texelfarbe gewichtet wird. Zunächst werden die in den Blöcken 212 und 214 berechneten acht Beiträge aufsummiert, um den summierten Gewichtungswert w zu erhalten. Der so erhaltene Gewichtungswert w wird mit den Farbkomponenten Farbe-tex(x,y) des Texels multipliziert und zur Farbe des Pixels Farbepix addiert. Für eine spätere Normalisierung der Farbe wird ferner die Gesamtsumme wsum, der Texelgewichtungen durchgeführt. Genauer gesagt wird der Wert wsum um den im Block 216 bestimmten Wert w erhöht.
  • Anschließend geht das Verfahren zum Block 218, in dem zum einen der Schleifenwert x um 1 inkrementiert wird und ferner bestimmt wird, ob der Wert x den maximalen Wert xm ax überschreitet. Ist dies nicht der Fall, so sind noch zu bearbeitende Texel in der betrachteten Reihe enthalten, und das Verfahren geht vom Block 218 zurück zu den Blöcken 212 und 214. Es erfolgt folglich ein Sprung um ein Texel nach rechts, und eine entsprechende Überarbeitung bezüglich dieses Texels wird durchgeführt. Wird im Block 218 bestimmt, dass alle Texel einer Reihe abgearbeitet wurden, so geht das Verfahren zum Block 220, in dem der Schleifenwert y und 1 inkrementiert wird und überprüft wird, ob der Schleifenwert y den maximalen y Wert ymax übersteigt. Ist dies nicht der Fall, so wird in die nächste Reihe gesprungen, und das Verfahren geht zurück zum Block 206. Wird festgestellt, dass die letzte Texelreihe bearbeitet wurde, so geht das Verfahren vom Block 220 zum Block 222. Im Block 222 wird dann die tatsächliche Farbe des Pixels Farbepix bestimmt, wobei für den Fall, dass eine Gewichtung existiert, also wsum ungleich 0 ist, was anzeigt, dass zumindest ein Texel durch die betrachtete Kante berührt wurde, der Farbpixelwert basierend auf der summierten Gewichtung wsum normalisiert wird, also Farbepix/sum festgelegt wird. Bei einer sogenannten Nullgewichtung, wenn also der Footprint zu einem. Punkt entartet und eine Vergrößerungsverschiebung einen Wert von 0 aufweist wird die Farbe des Texels unter dem Scheitelpunkt 0 des Footprints unverändert übernommen (nächstliegendes Filter). Dies bedeutet, dass das Texel was am nächsten zu den Punktkoordinaten liegt ausgewählt wird und eine konstante Gewichtung von 1,0 zugeordnet bekommt.
  • Obwohl die vorliegende Erfindung bei der obigen Beschreibung der bevorzugten Ausführungsbeispiele auf der Grundlage eines Footprints mit vier Seiten beschrieben wurde, kann der erfindungsgemäße Ansatz grundsätzlich auf beliebige Footprints erweitert werden.
  • Ferner wird darauf hingewiesen, dass die vorliegende Erfindung nicht auf die obigen Ausführungsbeispiele beschränkt ist, bei denen eine anfängliche Vergrößerung des Footprints durchgeführt wurde. Ist keine solche Vergrößerung erwünscht, ist dem empfangenen Footprint z.B. keine Vergrößerungsverschiebung zugeordnet, so arbeitet das erfindungsgemäße Verfahren bezüglich des ursprünglichen Footprints und führt bei diesem zu einer beschleunigten Verarbeitung desselben, aufgrund der erfindungsgemäßen Schritte zur Auffindung von Texeln unter Kanten.

Claims (12)

  1. Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwertes (Farbepix) von Texeln für einen Footprint, der eine Mehrzahl von Texeln in einem Texel-Gitter überdeckt, in einem Graphiksystem, mit folgenden Schritten: (a) Bestimmen einer Forminformation (vi) des Footprints; (b) Bestimmen der Kanten (si) des Footprints; (c) Annähern der im Schritt (b) bestimmten Kanten (si) durch eine Treppenfunktion; (d) Bestimmen der Texel des Texel-Gitters, die durch die Treppenfunktion berührt werden; und (e) Bestimmen eines Gewichtungsfaktors (w'tex, w'prop) für jedes Texel, das einen Abschnitt der Treppenfunktion enthält, abhängig von der durch den Footprint überdeckten Teilfläche des jeweiligen Texels.
  2. Verfahren nach Anspruch 1, bei dem im Schritt (d) ein durch die Treppenfunktion berührtes Texel basierend auf den Anfangspunkten und/oder Endpunkten der vertikalen Abschnitte der Treppenfunktion bestimmt werden.
  3. Verfahren nach Anspruch 1 oder 2, bei dem im Schritt (e) den Texeln des Texel-Gitters, die nicht durch die Treppenfunktion berührt werden und die von dem Footprint bedeckt werden, ein einheitlicher Gewichtungswert zugeordnet werden.
  4. Verfahren nach einem der Ansprüche 1 bis 4, bei dem im Schritt (e) die Gewichtungsfaktoren für jedes Texel einer Datenstruktur zugeordnet werden.
  5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem die Treppenfunktion für jede Kante des Footprints eine Mehrzahl von Stufen (ni,Stufe) , eine Mehrzahl von horizontalen Stufenelementen und eine Mehrzahl von vertikalen Stufenelementen umfaßt, wobei jede Kante eine Mehrzahl von gleichlangen, aufeinanderfolgenden Kantenabschnitten (qi) umfaßt; wobei eine horizontale Kante vorliegt, wenn die Endpunkte der Kantenabschnitte (qi) der Kante ein horizontales Stufenelement der Treppenfunktion schneiden; wobei eine vertikale Kante vorliegt, wenn die Endpunkte der Kantenabschnitte (qi) der Kante ein vertikales Stufenelement der Treppenfunktion schneiden; wobei eine horizontale Kante eine Anzahl von vertikalen Stufenelementen umfaßt, die gleich der Anzahl der Stufen (ni,Stufe) der Treppenfunktion ist; wobei eine vertikale Kante eine Anzahl von vertikalen Stufenelementen umfaßt, die um eine zusätzliches vertikalen Stufenelement größer als die Anzahl der Stufen (ni,Stufe) der Treppenfunktion ist; und wobei das zusätzliche vertikale Stufenelement für eine Berechnung der Gewichtungsfaktoren einer benachbarten Kante mit gleicher vertikaler Position herangezogen wird.
  6. Verfahren nach einem der Ansprüche 1 bis 5, bei dem das Bestimmen der Teilfläche eines Texels nach Schritt (e) das Bestimmen der durch die Treppenfunktion festgeleg ten und von dem Footprint überdeckten Texelteilfläche umfasst.
  7. Verfahren nach Anspruch 6, bei dem der im Schritt (d) bestimmte Gewichtungsfaktor (w'tex, w'prop, w* tex, w* prop) durch das Verhältnis der Texelteilfläche zu der Texelgesamtfläche bestimmt ist.
  8. Verfahren nach einem der Ansprüche 1 bis 7, bei dem dem Footprint eine Vergrößerungsverschiebung (r) zugeordnet ist, wobei nach dem Schritt (a), basierend auf der Vergrößerungsverschiebung (r), der Footprint durch Verschieben der Kanten (si) des Footprints nach außen um eine von der Vergrößerungsverschiebung (r) abhängige Entfernung vergrößert wird; wobei im Schritt (b) die verschobene Kante (s'i) bestimmt wird; wobei im Schritt (c) die verschobene Kante (s'i) durch eine Treppenfunktion angenähert wird; und wobei im Schritt (e) ein Gewichtungsfaktors (w'tex, w'prop) für jedes Texel, das eine verschobene Kante (s'i) enthält, abhängig von der durch den vergrößerten Footprint überdeckten Teilfläche des jeweiligen Texels bestimmt wird.
  9. Verfahren nach Anspruch 8, bei dem die sich aufgrund der Vergrößerung des Footprints einstellenden Zwischenräume (g* i) durch horizontale und vertikale Kanten gefüllt werden.
  10. Verfahren nach Anspruch 9, bei dem im Schritt (e) ferner Gewichtungsfaktoren (w* tex, w* prop) für jedes Texel, das eine eingebrachte vertikale Kante enthält, bestimmt werden, abhängig von einem durch den vergrößerten Footprint überdeckten Teilbereich des jeweiligen Texels.
  11. Verfahren nach einem der Ansprüche 8 bis 10, bei dem das Vergrößern des Footprints das Verschieben der Kantenendpunkte (vi) um durch die Vergrößerungsverschiebung (r) festgelegte gleiche Entfernungen in horizontaler Richtung und in vertikaler Richtung umfasst.
  12. Verfahren nach einem der Ansprüche 1 bis 11, bei dem die Gewichtungsfaktoren für alle Kanten des Footprints parallel erzeugt werden.
DE10242640A 2002-09-13 2002-09-13 Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwerts von Texeln für einen Footprint Withdrawn DE10242640A1 (de)

Priority Applications (12)

Application Number Priority Date Filing Date Title
DE10242640A DE10242640A1 (de) 2002-09-13 2002-09-13 Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwerts von Texeln für einen Footprint
CNB038023881A CN1295657C (zh) 2002-09-13 2003-09-09 确定用于足印的纹素色彩值的色彩计算的方法
PCT/EP2003/010017 WO2004032062A1 (de) 2002-09-13 2003-09-09 Verfahren zur festlegung von gewichtungsfaktoren für die farbberechnung eines farbwerts von texeln für einen footprint
DE50302209T DE50302209D1 (de) 2002-09-13 2003-09-09 Verfahren zur festlegung von gewichtungsfaktoren für die farbberechnung eines farbwerts von texeln für einen footprint
JP2004540606A JP4009289B2 (ja) 2002-09-13 2003-09-09 フットプリントに係るテクセルのカラー値をカラー計算するための重み付けファクタを決定する方法
KR1020047010790A KR100623327B1 (ko) 2002-09-13 2003-09-09 풋프린트에 대한 텍셀의 컬러값의 컬러계산을 위한가중계수를 결정하는 방법
EP03798898A EP1537538B1 (de) 2002-09-13 2003-09-09 Verfahren zur festlegung von gewichtungsfaktoren für die farbberechnung eines farbwerts von texeln für einen footprint
AU2003264284A AU2003264284A1 (en) 2002-09-13 2003-09-09 Method for determination of weighting factors for the colour calculation of a colour value for texels in a footprint
AT03798898T ATE315813T1 (de) 2002-09-13 2003-09-09 Verfahren zur festlegung von gewichtungsfaktoren für die farbberechnung eines farbwerts von texeln für einen footprint
TW092125206A TWI282520B (en) 2002-09-13 2003-09-12 Method for determining weighting factors for the color calculation of a color value of texels for a footprint
US10/916,983 US7379072B2 (en) 2002-09-13 2004-08-11 Method for determining weighting factors for the color calculation of a color value of texels for a footprint
US11/690,071 US7924289B2 (en) 2002-09-13 2007-03-22 Method for determining weighting factors for the color calculation of a color value of texels for a footprint

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10242640A DE10242640A1 (de) 2002-09-13 2002-09-13 Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwerts von Texeln für einen Footprint

Publications (1)

Publication Number Publication Date
DE10242640A1 true DE10242640A1 (de) 2004-03-25

Family

ID=31895971

Family Applications (2)

Application Number Title Priority Date Filing Date
DE10242640A Withdrawn DE10242640A1 (de) 2002-09-13 2002-09-13 Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwerts von Texeln für einen Footprint
DE50302209T Expired - Lifetime DE50302209D1 (de) 2002-09-13 2003-09-09 Verfahren zur festlegung von gewichtungsfaktoren für die farbberechnung eines farbwerts von texeln für einen footprint

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE50302209T Expired - Lifetime DE50302209D1 (de) 2002-09-13 2003-09-09 Verfahren zur festlegung von gewichtungsfaktoren für die farbberechnung eines farbwerts von texeln für einen footprint

Country Status (10)

Country Link
US (2) US7379072B2 (de)
EP (1) EP1537538B1 (de)
JP (1) JP4009289B2 (de)
KR (1) KR100623327B1 (de)
CN (1) CN1295657C (de)
AT (1) ATE315813T1 (de)
AU (1) AU2003264284A1 (de)
DE (2) DE10242640A1 (de)
TW (1) TWI282520B (de)
WO (1) WO2004032062A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7737988B1 (en) * 2005-11-14 2010-06-15 Nvidia Corporation Using font filtering engines for texture blitting
US7924290B2 (en) * 2007-05-30 2011-04-12 Nvidia Corporation Method and system for processing texture samples with programmable offset positions
US9990748B2 (en) * 2015-03-18 2018-06-05 Intel Corporation Corner texel addressing mode
KR102477265B1 (ko) * 2015-09-24 2022-12-13 삼성전자주식회사 그래픽스 프로세싱 장치 및 그래픽스 파이프라인의 텍스쳐링을 위한 LOD(level of detail)를 결정하는 방법
US10657699B1 (en) * 2018-12-08 2020-05-19 Arm Limited Performing texturing operations for sets of plural execution threads in graphics processing systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5651104A (en) * 1995-04-25 1997-07-22 Evans & Sutherland Computer Corporation Computer graphics system and process for adaptive supersampling
US6097397A (en) * 1997-11-20 2000-08-01 Real 3D, Inc. Anisotropic texture mapping using silhouette/footprint analysis in a computer image generation system
US6184893B1 (en) * 1998-01-08 2001-02-06 Cirrus Logic, Inc. Method and system for filtering texture map data for improved image quality in a graphics computer system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1309198C (en) * 1987-12-10 1992-10-20 Carlo J. Evangelisti Parallel rendering of smoothly shaded color triangles with anti-aliased edges for a three dimensional color display
JPH09147125A (ja) 1995-11-22 1997-06-06 Oki Data:Kk 輪郭線抽出方法と抽出装置
US6191793B1 (en) * 1998-04-01 2001-02-20 Real 3D, Inc. Method and apparatus for texture level of detail dithering
JP4021058B2 (ja) 1998-06-17 2007-12-12 新潟精密株式会社 データ補間方式
US6292193B1 (en) * 1998-07-30 2001-09-18 Compaq Computer Corporation Techniques for anisotropic texture mapping using multiple space-invariant filtering operations per pixel
US6700672B1 (en) 1999-07-30 2004-03-02 Mitsubishi Electric Research Labs, Inc. Anti-aliasing with line samples
JP3367509B2 (ja) 1999-12-16 2003-01-14 株式会社セガ 画像生成方法及びこれを用いた画像生成装置
US6509902B1 (en) * 2000-02-28 2003-01-21 Mitsubishi Electric Research Laboratories, Inc. Texture filtering for surface elements

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5651104A (en) * 1995-04-25 1997-07-22 Evans & Sutherland Computer Corporation Computer graphics system and process for adaptive supersampling
US6097397A (en) * 1997-11-20 2000-08-01 Real 3D, Inc. Anisotropic texture mapping using silhouette/footprint analysis in a computer image generation system
US6184893B1 (en) * 1998-01-08 2001-02-06 Cirrus Logic, Inc. Method and system for filtering texture map data for improved image quality in a graphics computer system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FELLNER,W.-D.: Computer-Grafik. BI-Wissenschafts- verlag, 1988, S. 351-353 *
SHIN,H.-C. et al: SPAF: Sub-texel Precision Anisotropic Filtering. Eurographics/SIGGRAPH Workshop on Graphics Hardware 2001, Aug. 2001. [rech. am 28.07.03]. Im Internet:<URLhttp://mvls. kaist.ac.kr/paper/sig_hardware_2001_hc.pdf>] *

Also Published As

Publication number Publication date
TWI282520B (en) 2007-06-11
CN1618085A (zh) 2005-05-18
ATE315813T1 (de) 2006-02-15
TW200412546A (en) 2004-07-16
DE50302209D1 (de) 2006-04-06
US7379072B2 (en) 2008-05-27
KR20050027210A (ko) 2005-03-18
US7924289B2 (en) 2011-04-12
AU2003264284A1 (en) 2004-04-23
CN1295657C (zh) 2007-01-17
EP1537538A1 (de) 2005-06-08
US20050007380A1 (en) 2005-01-13
JP2006502475A (ja) 2006-01-19
KR100623327B1 (ko) 2006-09-13
US20070296731A1 (en) 2007-12-27
WO2004032062A1 (de) 2004-04-15
JP4009289B2 (ja) 2007-11-14
EP1537538B1 (de) 2006-01-11

Similar Documents

Publication Publication Date Title
DE69534331T2 (de) Verfahren und Vorrichtung zur Hervorhebung der Einzelheit einer Baumstruktur
DE19827726B4 (de) Verfahren und Vorrichtung zum Liefern von Polygonpixelunterabtastinformationen unter Verwendung einer Inkrementaleinrichtung
DE69816824T2 (de) Texturabbildung in 3-d-rechnergraphik
DE10317917B4 (de) System und Verfahren zum Umgrenzen und Klassifizieren von Regionen innerhalb einer graphischen Abbildung
DE69720131T2 (de) System und Verfahren zur Perspektivetransformation
DE4211385A1 (de) Daten-projektionssystem
DE102005050846A1 (de) Perspektiveneditierwerkzeuge für 2-D Bilder
DE3022454A1 (de) Optisches abbildesystem mit computererzeugtem bild fuer einen bodenfesten flugsimulator
DE19715491A1 (de) Interpolationsverfahren und -vorrichtung zur schnellen Bildvergrößerung
DE19806985B4 (de) Organisationsverfahren für volumetrische Daten, das effiziente Cache-Aufbereitungsbeschleunigungen und einen effizienten Graphik-Hardwareentwurf ermöglicht
DE102012210521A1 (de) Unbeschnittene Zeit- und Linsen-Begrenzungen für verbesserte Probentest- Effizienz bei Bild-Rendering
DE102010046507A1 (de) Berechnung der Detailstufe für die anisotrope Filterung
DE60122333T2 (de) Verfahren und System zur kachelweisen Bildwiedergabe
DE19531392C1 (de) Verfahren zur Erzeugung einer Graphrepräsentation von Bildvorlagen
DE112011105126T5 (de) Texturkartierungsvorrichtung
DE102018008064A1 (de) Herunterskalieren von Bildern mit Pixelsätzen, die durch eine für blaues Rauschen gegebene Abtastung ausgewählt werden
DE10242640A1 (de) Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwerts von Texeln für einen Footprint
WO2002089059A2 (de) Bildverarbeitungsverfahren
DE60317455T2 (de) Segmentierung eines zusammengesetzten Bildes mittels Basis-Rechtecken
EP2893510B1 (de) Verfahren und bildverarbeitungsanlage zum entfernen eines visuellen objektes aus einem bild
DE69817633T2 (de) Faltung von Zeilenrasterdarstellungen
DE60305027T2 (de) Verfahren zur Bereitstellung eines Vektorbildes mit entfernten versteckten Linien
DE10242639A1 (de) Verfahren zur Analyse und Modifikation eines Footprints
DE19948060A1 (de) Vorrichtung zur Bildverarbeitung und Verfahren zur Kantenverarbeitung
DE19703004A1 (de) Verfahren zum Abbilden eines Quellenpixelbilds auf einen Zielpixelraum

Legal Events

Date Code Title Description
ON Later submitted papers
OP8 Request for examination as to paragraph 44 patent law
8130 Withdrawal