DE69830766T2 - Verfahren und Vorrichtung zum Bestimmen des Anwendungsumfangs geschichteter synthetischer graphischer Filter - Google Patents

Verfahren und Vorrichtung zum Bestimmen des Anwendungsumfangs geschichteter synthetischer graphischer Filter Download PDF

Info

Publication number
DE69830766T2
DE69830766T2 DE69830766T DE69830766T DE69830766T2 DE 69830766 T2 DE69830766 T2 DE 69830766T2 DE 69830766 T DE69830766 T DE 69830766T DE 69830766 T DE69830766 T DE 69830766T DE 69830766 T2 DE69830766 T2 DE 69830766T2
Authority
DE
Germany
Prior art keywords
lens
shapes
list
scene
cluster
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 - Lifetime
Application number
DE69830766T
Other languages
English (en)
Other versions
DE69830766D1 (de
Inventor
Eric A. Bier
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.)
Xerox Corp
Original Assignee
Xerox Corp
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 Xerox Corp filed Critical Xerox Corp
Publication of DE69830766D1 publication Critical patent/DE69830766D1/de
Application granted granted Critical
Publication of DE69830766T2 publication Critical patent/DE69830766T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)

Description

  • Die vorliegende Erfidung betrifft im allgemeinen ein Verfahren und einen Apparat zum Ausbilden eines Bildes mit einem computergestützten bilddarstellenden System und, genauer gesagt, ein Verfahren und eine Vorrichtung zum Zusammensetzen geschichteter synthetischer grafischer Filter, welche andere Objekte in einer Szene überlagern.
  • Im allgemeinen stellen computergestützte zweidimensionale bilddarstellende Systeme den Graphikern Werkzeuge zum Konstruieren eines Designs durch Schichten von grafischen Objekten, während ihre Eigenschaften spezifiziert werden, zur Verfügung. Beispiele von kommerziellen computergestützten zweidimensionalen bilddarstellenden Systemen sind CorelDrawTM von der Coral Corporation FreeHandTM von der MacroMedia Corporation und Adobe Illustrator® von der Adobe Corporation. In solchen bilddarstellenden Systemen können die Eigenschaften eines grafischen Objektes variieren abhängend vom speziellen grafischen Objekt, das gerade entwickelt wird. Beispielsweise stellen begrenzte geometrische Formen grafische Objekte dar mit Eigenschaften, welche die Linienbreite, die Füllfarbe und die Transparenz einschließen, wohingegen Liniensegmente grafische Objekte darstellen, mit Eigenschaften, welche die Linienbreite und die Linienfarbe darstellen.
  • Ein Charakteristikum von bilddarstellenden Systemen ist, dass sie die Eigenschaft eines jeden grafischen Objekts eng mit der Art und Weise, in der ein jedes Objekt konstruiert wird, in Verbindung bringen. Diese enge Verbindung macht die Erzeugung von komplexen visuellen Effekten unter Verwendung dieser bilddarstellenden Systeme schwierig. Die folgenden Beispiele illustrieren die enge Verbindung zwischen der Konstruktion eines grafischen Objekts und dessen Eigenschaften. Zuerst müssen die gefüllten Regionen explizit konstruiert und abgeschlossen werden. Zum Zweiten müssen die Linien- und Fülleigenschaften angewandt werden, um die Umrandungen zu vervollständigen bzw. die Liniensegmente zu vervollständigen. Schließlich können Transformationen nur angewandt werden auf vollständige Objekte oder Gruppen von Objekten. Diese Eigenschaft von bilddarstellenden Systemen ist für den Grafiker mühsam hinsichtlich der Erzeugung von visuellen Effekten, welche über Objektbegrenzungen hinweg auftreten. Um einen visuellen Effekt zu erzeugen, welcher über die Grenzen eines Objekts hinweg er scheint, muss ein Grafiker typischerweise Extraformen und Begrenzungen in ein Design einfügen. Als ein Ergebnis sind den Grafikern, welche diese Systeme bedienen, Grenzen auferlegt, da sie Objekt-Grenzlinien erzeugen müssen, welche das Ausmaß eines jeden visuellen Effekts definieren.
  • Räumlich gebundene synthetische grafische (im Folgenden abgekürzt "SG") Filter oder Linsen ermöglichen es einem Designer, ein grafisches Objekt mit linien- oder vektorgrafischen Eigenschaften zu definieren, welche sich in Abhängigkeit von den speziellen Objekten in der Szene, in welcher sie definiert werden, verändern. SG-Filter (oder Linsen) wurden entwickelt, um den Effekt der engen Verknüpfung zwischen den Eigenschaften eines grafischen Objekts und der Art und Weise, in welcher das Objekt konstruiert wird, zu minimieren. Anders als grafische Nicht-Linsen-Objekte, die ein Erscheinungsbild aufweisen, das sich nicht verändert, sobald es einmal definiert worden ist (d.h. statisch ist), verändern begrenzte Linsen das Erscheinungsbild von Objekten, welche durch ihr Inneres zu sehen sind. Diese begrenzten Linsen zeigen folglich ein Erscheinungsbild in einer Szene, das dynamisch" ist. Anders als statische Objekte weisen dynamische grafische Objekte Eigenschaften auf, welche sich verändern, wenn Objekte zu einer begrenzten Region der Linse hinzugefügt werden oder von dieser entfernt werden. Als Resultat davon ermöglichen es die räumlich begrenzten Linsen, dass Effekte sich über Grenzen von Objekten hinaus ausdehnen, die zugleich unabhängig von den Grenzen aller der darunter liegenden Objekte sind.
  • Beispiele von räumlich begrenzten Linsen (oder SG-Filtern) sind in den US-Patenten 5,596,690, 5,467,441 und 5,479,603 offenbart, welche auf den gleichen Rechtsnachfolger übertragen wurden wie die vorliegende Anmeldung und hier per Verweis eingeschlossen sind. Speziell sei hier verwiesen auf US-Patent Nr. 5,479,603, welche ein Verfahren beschreibt zum Zusammenstellen von sich überlappenden Linsen und einem Originalbild. Das Verfahren beschrieben in US-Patent Nr. 5,479,603 stellt die Funktion oder die vielerlei Ansichtsoperationen zusammen bzw. kombiniert sie, welche auf einer Modell-Daten-Struktur arbeiten, um ein einzelnes zusammengesetztes Bild dargestellt im Zusammenhang eines Originalbildes zu erzeugen. Auch kommerzielle bilddarstellende Systeme, wie z.B. Adobe Illustrator, MacroMiedia FreeHand und CorelDraw unterstützen einen reichen Satz an Werkzeugen zum Konstruieren und Füllen von Umrandungen. Im speziellen enthält die CorelDraw-Software eine Vielzahl von Linsen (oder SG-Filtern), die in einem Abschnitt mit dem Titel "Linsen" im CorelDrawTM-Benutzerhandbuch (User's Manual-Vol. 1-Version 5.0, Corel Corporation, 1994, pp. 274-297) beschrieben werden.
  • Verwandt zu räumlich begrenzten Filtern sind planare Kartierungen und Werkzeuge, die streng auf Raster-Bildern arbeiten. Planare Kartierungen, die von "SIGGRAPH,89 (Boston, MA, August), Computer Graphics, Vol. 23, No. 3, Seiten 345-354 offenbart werden, wurden verwendet, um einen Weg zur Verfügung zu stellen, um eine existierende Szenen-Geometrie in Regionen zu unterteilen, die gefüllt werden können. Einige der Effekte offenbart von Gangnet et al. können ähnlich zu Linsen erscheinen. Der Unterschied zwischen Linsen und planaren Kartierungen ist, dass planare Kartierungen das Partitionieren von Objekten einfach machen. Linsen jedoch machen die Unterteilung (Partitionierung) unnötig. Desweiteren können Linsen auch Effekte erzeugen, die über diejenigen hinausgehen, die von planaren Kartierungen zur Verfügung gestellt werden und zwar durch Hinzufügen oder Entfernen von Objekten und Durchführen von affinen Transformationen. Auch Werkzeuge, die streng an Rastern orientiert arbeiten, können linsenartige Effekte auf Rasterobjekte ausüben, jedoch sind diese Rasterwerkzeuge nicht in der Lage, an geometrischen Objekten zu arbeiten.
  • Die oben genannten Systeme erzeugen jedoch keine Objekte in einer Szene, die als Linsen (oder SG-Filter) in verschiedenen Reihenfolgen definiert sind, die von einem Linsentyp identifiziert für jede Linse abhängen. Geht man davon aus, dass jede Linse einen eigenen Linsentyp aufweist, so kann eine sortierte Liste von Objekten in einer Szene entweder in einer von vorne nach hinten oder in einer von hinten nach vorne Reihenfolge zusammengesetzt werden. Solch eine Möglichkeit würde die Erzeugung einer größeren Vielzahl an Szenen im Hinblick auf jede Linse ermöglichen. Dementsprechend wäre es wünschenswert, ein generisches System für die effiziente Zusammenstellung von Linsen (oder SG-Filtern) zur Verfügung zu stellen, welches entweder in Form Von-Vornenach-Hinten oder Von-Hinten-nach-Vorne-Linsen definiert ist, die mit anderen Objekten in einer Szene überlagern.
  • In Übereinstimmung mit der Erfindung und wie durch die beigefügten Ansprüche definiert, wird ein Verfahren zur Verfügung gestellt sowie ein computergestütztes bilddarstellendes System dafür zur Vereinfachung der Zusammenstellung von Objekten in einem Bild, welche als räumlich gebundene synthetische grafische Filter oder Linsen definiert werden. Die Objekte in dem Bild definieren eine Szene, in welcher die Objekte in einer Liste sortiert sind.
  • In Übereinstimmung mit einem anderen Aspekt der Erfindung wird eine Linse und zumindest eine andere Form in der Liste ausgewählt, um einen Cluster von Formen auszu bilden. Der Cluster von Formen kann eine Vielzahl von Gruppierungstypen darstellen. In einem ersten Gruppierungstyp ist der Operations-Umfang der Linse limitiert durch Ausschließen derjenigen Formen, die unterhalb der Linse geschichtet sind und außerhalb des Clusters von Formen liegen, von der Modifizierung durch die Filterfunktion der Linse. In einem zweiten Gruppierungstyp ist der Operations-Umfang der Linse limitiert durch Ausschließen derjenigen Formen, die unterhalb der Linse geschichtet sind und innerhalb des Clusters von Formen liegen, von der Modifizierung durch die Filterfunktion der Linse.
  • Diese und andere Aspekte der Erfindung werden offensichtlich aus der folgenden Beschreibung, wenn sie im Zusammenhang mit den beigefügten Zeichnungen gelesen wird, wobei die gleichen Referenznummern für ähnliche Teile verwendet wurden und in welcher:
  • 1 ein computergestütztes zweidimensionales bilddarstellendes System zum Durchführen der vorliegenden Erfindung darstellt;
  • 2 ein Flussdiagramm darstellt, welches die Schritte zum Durchführen eines Werkzeugs einer Benutzeroberfläche zum Erzeugen einer Szene und zum Spezifizieren, dass das Objekt in der Szene die Eigenschaften einer Linse aufweist, darstellt;
  • 3 ein Beispiel einer nicht-zusammengesetzten Szene ist, die erzeugt wird gemäß den Schritten, wie in 2 dargelegt;
  • 4 eine Szenen-Liste illustriert, welche die Reihenfolge spezifiziert, in welcher die Formen sich in der Szene überlagern;
  • 5 eine zusammengesetzte Szene illustriert, der nicht-zusammengesetzten Szene, wie in 3 dargestellt;
  • 6A ein Flussdiagramm ist, welches die Schritte zum Durchführen der Operationen darstellt, welche eine Szene von Formen mit überlappenden Linsen zusammenstellen;
  • 6B ein Flussdiagramm ist, das die Schritte zum Durchführen von Schritt 624, wie in 6A gezeigt, darstellt;
  • 6C ein Flussdiagramm ist, das die Schritte zum Durchführen von Schritt 620, wie in 6B gezeigt, darstellt;
  • 6D ein Flussdiagramm ist, das die Schritte zum Durchführen von Schritt 621, wie in 6C gezeigt, darstellt;
  • 6E ein Flussdiagramm ist, das die Schritte zum Durchführen von Schritt 642, wie in 6D gezeigt, darstellt;
  • 6F ein Flussdiagramm ist, das die Schritte zum Durchführen von Schritt 664, wie in 6E gezeigt, darstellt;
  • 6G ein Flussdiagramm ist, das die Schritte zum Durchführen von Schritt 643, wie in 6D gezeigt, darstellt;
  • 7 eine generische Datenstruktur eines Schneide-Clusters illustriert;
  • 8 den Beginn einer Sequenz von Bildern illustriert, um die zusammengesetzte Szene, wie in 5 dargestellt, zu erzeugen;
  • 9 die Unter-Liste für die Zyanblaue-Linse 304 illustriert;
  • 10 die Liste von Formen illustriert, nachdem die Eigenschaft der zyanblauen Linse auf die zyanblaue Unter-Liste angewandt wurde;
  • 11 die Sequenz in Bildern von 8 fortführt, um die zyanblaue Linse zusammenzusetzen;
  • 12 die Unter-Liste illustriert für die gelbe Linse 306 berechnet;
  • 13 die Liste von Formen illustriert, nachdem die Linsen in der gelben Unter-Liste eingefroren wurden und die Eigenschaft der gelben Linse auf die gelbe Unter-Liste angewandt wurde;
  • 14 die Szene des Bildes in 8 und 11 fortführt, um die gelbe Linse zusammenzusetzen;
  • 15 die Unter-Liste berechnet für die mangentarote Linse 308 illustriert;
  • 16 die Liste der Formen illustriert, nachdem die Linsen in der mangentaroten Unter-Liste eingefroren wurden und die Eigenschaft der Mangentalinse auf die mangentarote Unter-Liste angewandt worden ist;
  • 17 die Sequenz der Bilder in 8, 11 und 14 fortführt, um die mangentarote Linse zusammenzusetzen;
  • 18 eine nicht-zusammengesetzte Szene illustriert, welche eine Hintergrundform von vier geometrische Formen enthält;
  • 19 eine Szenen-Liste von Formen illustriert in der nicht-zusammengesetzten Szene, dargestellt in 18;
  • 20 eine zusammengesetzt Szene der nicht-zusammengesetzten Szene dargestellt in 18 illustriert, wenn die rechteckige vergrößernde Linse in der Von-Vornenach-Hinten-Reihenfolge zusammengesetzt ist;
  • 21 die Unter-Liste der Hexagon-förmigen Linse illustriert;
  • 22 die linsifizierte Formen-Liste der Hexagon-förmigen Linse illustriert;
  • 23 die Unter-Liste der rechtwinkligen vergrößernden Linse illustriert;
  • 24 die linsifizierte Formen-Liste der rechtwinkligen Linse illustriert;
  • 25 eine zusammengesetzte Szene der nicht zusammengesetzten Szene, in 18 illustriert, wenn die rechtwinklige vergrößernde Linse in die von-Hinten-nach-Vorne-Reihenfolge zusammengesetzt ist;
  • 26 ein Beispiel des Werkzeuges 128 der Benutzeroberfläche, dargestellt in 1 illustriert;
  • 27 eine Linse mit multiplen Regionen und einem begrenzten Umfang an Operationen illustriert;
  • 28 ein Beispiel illustriert, das die Linse, dargestellt in 26 verwendet, um ein Damebrett-Muster auszubilden;
  • 29 eine Szenen-Liste illustriert zum Ausbilden des Bildes, dargestellt in 31 und 32;
  • 30 die Szenen-Liste dargestellt in 29 illustriert, wie sie entlang der Sichtlinie 30-30 in den Bildern, dargestellt in 31 und 32 zu sehen ist;
  • 31 die Art und Weise illustriert, in welcher die Szenen-Liste, dargestellt in den 29 und 30 sich mit einem Linsen in & out-Cluster zusammensetzt;
  • 32 die Art und Weise illustriert, in welcher die Szenen-Liste, dargestellt in 29 und 30 sich mit einem Linsen-in-Cluster zusammensetzt;
  • 33 eine Szenen-Liste illustriert, in welcher ein Linsen-in-Cluster und Linsen-out-Cluster spezifiziert ist; und
  • 34 ein zusammengesetztes Bild der Szenen-Liste, dargestellt in 33, illustriert wie sie entlang der Sichtlinie 33-33 zu sehen ist.
  • A. System-Übersicht
  • Im Folgenden wird nun auf die Zeichnungen Bezug genommen, wobei die Darstellung zum Zwecke der Beschreibung der Erfindung erfolgt und nicht zu deren Begrenzung; dabei illustriert 1 ein computergestütztes zweidimensionales bilddarstellendes System 108 zur Durchführung der vorliegenden Erfindung. Das bilddarstellende System 108 ist eine Computer Arbeitsstation od. dgl., die adaptiert ist, um elektronische Bilder zu speichern und zu verarbeiten, um sie für einen Anwender (oder einen grafischen Designer) abzubilden. Das bilddarstellende System 108 schließt einen Prozessor 110 ein, einen Speicher 112, einen Bildschirm 114, einen Datenspeicher 116 und ein Eingabegerät für den Anwender 119, wie z.B. eine Maus 118 und eine Tastatur 120. Alternative Eingabegeräte 119 schließen einen Touch-Screen, eine Rollkugel (track ball), ein integriertes Berührungsfeld (touch pad) oder eine Griffelmaus (pen mouse) (nicht gezeigt) ein. Der Speicher 112 wird zum Speichern verschiedener Anwendungs-Programme sowie von elektronischen Bildern zur Verfügung gestellt. Eines der Anwender-Programme des bilddarstellenden Systems ist ein bilddarstellendes Programm 122. Bilder erzeugt unter Verwendung des bilddarstellenden Programms 122 werden im Datenspeicher 116 gespeichert, welcher eine Langzeitspeicherung für elektronische Darstellungen zur Verfügung stellt. Der Bildschirm 114 wird verwendet, um die elektronischen Darstellungen, die von einem Anwender mit dem bilddarstellenden Programm 122 entwickelt werden, darzustellen. Der Prozessor 110 empfängt die Befehle vom Eingabegerät 119, um dadurch die Anwendungs-Software im Speicher 112 aufzurufen und dadurch Bilder mit dem bilddarstellenden Programm 122 zu erzeugen und auf dem Bildschirm 114 darzustellen.
  • Das bilddarstellende Programm 122, das vom Prozessor 110 ausgeführt wird, wird verwendet, um grafische Darstellungen zu entwickeln, welche auf dem Bildschirm 114 zu sehen sind. Darüber hinaus können Ausdrucke von Bildern erzeugt unter Verwendung des bilddarstellenden Programms 122 erzeugt werden unter Verwendung des Scan/Druck-Systems 124, das mit dem darstellenden System 108 durch das Netzwerk 126 verbunden ist. Das bilddarstellende Programm 122 erleichtert das Design der grafischen Darstellungen mit einem Benutzeroberflächen-Werkzeug 128, welches einem Anwender auf dem Bildschirm 114 präsentiert wird. Einmal erzeugt werden diese grafischen Darstellungen elektronisch auf dem Datenspeicher 116 gespeichert, um später wieder aufgerufen werden zu können. Grafische Darstellungen können aus Bilder bestehen, die eingescannt wurden unter Verwendung des Scan/Druck-Systems 124 oder aus Beschreibungen von Bildern erzeugt unter Verwendung von Anwendungs-Software des Anwenders gespeichert im Speicher 112. Im allgemeinen stellt das bilddarstellende Programm 122 Beschreibungen von Bildern zur Verfügung, welche ein elektronisches Dokument unter Verwendung von Primitiven auf höchster Ebene definiert durch eine Seiten-Beschreibungs-Sprache (Page Description Language, PDL) definieren.
  • Die Eingabegeräte 119 werden verwendet, um Bildelemente zu definieren, welche verwendet werden, um eine elektronische Darstellung zu erzeugen. Bildelemente schließen geometrische Formen, Raster und Zeichen ein. Geometrische Formen werden unter Verwendung von beispielsweise Linien- oder Vektor-Grafiken definiert. Bildelemente, die von einem Anwender definiert werden, werden durch das bilddarstellende Programm 122 manipuliert. Das bilddarstellende Programm 122 erzeugt Darstellungen unter Verwendung einer PDL, wie z.B. Postscript®, wie sie beschrieben wird in "PostScript Lan guage Reference Manual", Second Edition, Addison-Wesley Publishing Co., 1990. Ein weiteres Beispiel einer PDL ist InterpressTM, die beschrieben wird in "Interpress: The Source Book", by Harrington et al., Simon & Schuster, Inc., New York, New York, 1988. Eine jede dieser PDLs stellt einen Satz von Befehlen zur Verfügung, die verwendet wer den, um verschiedene Grafik- und Text-enthaltende Bildelemente, die ein Bild ausbilden, zu beschreiben. Beispielsweise kann eine PDL ein Rechteck in einem Bild durch die Angabe von Koordinaten seiner Ecken beschreiben, die Dicke der Kanten, sein Füll-Muster, seine Farbe, wie auch von anderen Attributen. Die PDL kann auch verwendet werden, um in dem Eingabebild ein Raster-Bild oder eine Referenz zu einem oder mehreren Raster-Bildern zu enthalten.
  • B. Apparat zum Erzeugen einer Szene mit sich überlagernden Linsen
  • Die vorliegende Erfindung betrifft eine Zusammensetzung von Linsen (oder SG-Filtern), die einen Teil der grafischen Komponente einer elektronischen Darstellung ausbilden. Der Effekt einer Liste ist nur sichtbar innerhalb der Grenzen des Objektes, welches die Linse spezifiziert. Der Effekt einer Linse kann unabhängig von den Grenzen des Objektes, das durch die Linse gesehen wird, manipuliert werden. Das bilddarstellende Programm 122, das im Speicher 112 des darstellenden Systems 108 arbeitet, erzeugt und manipuliert Bildobjekte.
  • Genauer gesagt, ist das bilddarstellende Programm 122 so adaptiert, dass es eine Eigenschaft eines Bildobjekts so spezifiziert, dass es eine Linse darstellt. Eine Linse (oder ein SG-Filter) ist hier im Folgenden als eine Farbeigenschaft eines Bildobjektes mit einem Satz von gebundenen Regionen definiert, dessen Bildeigenschaften eher einen Operator als eine Konstante darstellen. Ein Operator einer Linse (im Folgenden hier Linsen-Operator") führt eine Filteroperation auf diejenigen Objekte durch, die darunter in einer Szene geschichtet sind. Es wird von den Fachleuten auf dem Gebiet wohl verstanden werden, dass ein Linsenoperator jegliche Art von Prozedur darstellen kann, welche einen Satz von Objekten in einer Szene in eine andere Szene transformieren kann. Beispiele von Linsen-Operatoren sind ein Färbe-Operator, ein Vergrößerungs-Operator, ein Operator, welcher die Reihenfolge verändert, in welcher Objekte in einer Szene übereinanderliegen und ein Operator, welcher eine Transformation (beispielsweise eine affine Transformation) auf die Objekte, die unterhalb der Linse liegen, anwendet.
  • Viele der verschiedenen Linsen (oder SG-Filter) verlangen, dass bestimmte Parameter, wie z.B. Farbe (für färbende Linsen) oder Größenordnungen (für skalierende Linsen) durch einen Anwender spezifiziert werden. Einige Linsen verlangen, dass Sätze von Parametern durch einen Anweder spezifiziert werden. Beispielsweise haben Eigenschafteneinstellende Linsen viele Parameter, die eingestellt werden können einschließend Füll-Farbe, Linien-Farbe, Strich-Muster oder Hintergrundfarbe. Diese stellen die gleichen Arten von Parametern dar, die auf Objekte definiert in einer Szene angewandt werden können, welche nicht so spezifiziert worden sind, als dass sie die Eigenschaften einer Linse aufweisen.
  • Um eine Möglichkeit zur Verfügung zu stellen, um interaktiv diese Parameter von verschiedenen Linsen zu manipulieren, weist das darstellende System 108 einen Systemweiten Modus mit Namen „bearbeite Linse" (Edit Lens) auf. In diesem systemweiten Modus werden alle der Eigenschaften einstellenden Befehle in dem Oberflächenwerkzeug 128 auf die Parameter einer ausgewählten Linse anstelle einer ausgewählten Form angewandt. Zur Vervollständigung gibt es ein Password-basiertes Textformat zum Spezifizieren der Linsen (oder SG-Filter)-Parameter. Ein Menü-Punkt, welcher die aktuelle Linsenbeschreibung in ein Manuskript überschreibt, erleichtert die Verwendung des Password-basierten Textformats. Folglich vereinfacht die Verwendung eines Menüpunktes den Schritt der Modifizierung der Beschreibung sowie des umgekehrten erneuten Einlesens.
  • Das bilddarstellende Programm 122 erzeugt manipulierte Linsen in einer ähnlichen Art und Weise, wie andere grafische Objekte. Die Grenzen der Objekte spezfiziert als Linsen weisen Breite und Farbe auf. Desweiteren können Objekte spezfiziert als Linsen irgendwo in einer 2,5-dimensionalen Überlagerungs-Reihenfolge einer Szene liegen und können in hierarchische Gruppierungen, genannt Cluster, eingeschlossen werden. Anwender können auswählen, ob eine Linse enthalten in einem Cluster nur auf Objekte in dem Cluster zugreift, nur auf Objekte außerhalb des Clusters, oder auf beide. Das Definieren von Abgrenzungsregeln ist sinnvoll sowohl aus Gründen der Leistungsfähigkeit als auch, um eine gewisse Flexibilität des Designs zur Verfügung zu stellen.
  • C. Erzeugung einer Szene mit überlagernden Linsen
  • Das bilddarstellende Programm 122 die Art und Weise zur Verfügung, in welcher ein Objekt spezifiziert werden kann, so dass es eine Linseneigenschaft aufweist. 2 ist ein Flussdiagramm, welches die Schritte zum Bedienen des Werkzeugs der Anwender-Benutzeroberfläche 128 (dargestellt in 1 und 26) zum Erzeugen einer Szene darstellt, wie auch das Spezifizieren, dass die Objekte in der Szene die Eigenschaften einer Linse (oder eines SG-Filters) aufweisen. Anfangs empfängt im Schritt 200 der Prozessor 110 des bilddarstellenden Systems 108 Befehle des Anwenders von den Eingabegeräten 119, welche Umrissgrenzen von Objekten spezifizieren. Diese Objekte werden verwendet, um eine Szene in einer Darstellung zu erzeugen. Die Befehle sind die Eingaben für das bilddarstellende System 108 über das Werkzeug der Benutzeroberfläche des Anwenders 128, das auf den Bildschirm 114 dargestellt ist.
  • Genauer gesagt, schließen die Befehle empfangen durch das bilddarstellende System 108 im Schritt 200 Anwenderbefehle ein, welche überlagernde Objekte erzeugen. Diese überlagernden Objekte, welche eine Szene definieren, werden in Datenstrukturen im Speicher 112 gespeichert. Wenn ein Bild auf den Bildschirm 114 dargestellt wird, oder auf einem Aufzeichnungsmedium durch den Drucker 124 gedruckt wird, verwendet das bilddarstellende Programm 122 die Interpress- oder Postscript darstellenden Formate, wie oben beschrieben, um die Datenstrukturen gespeichert im Speicher 112 in eine ausdruckbare Form überzuführen. Diese Formate definieren Befehle zum Spezifizieren von Objekten als Formen, welche durch Linien- und keilförmige Kurven in einer Geräteunabhängigen Art und Weise begrenzt werden. Darüber hinaus definieren diese Formate, wie Formen mit einer Farbe oder Musterung in einer Geräte-unabhängigen Weise gefüllt werden können.
  • Im Schritt 202 werden zusätzliche Befehle des Anwenders durch das bilddarstellende System empfangen, welche die Eigenschaften von zumindest einigen der überlagernden Objekte in einer Szene spezifizieren, so dass sie Linsen (oder SG-Filter) sind. Der Schritt des Spezifizierens eines Objektes, so dass dies eine Linse darstellt, schließt die Aktion des Auswählens eines Linsen-Typus aus einem Menü von Linsen-Typen spezfiziert in dem Werkzeug der Anwender-Benutzeroberfläche 128 ein. Das Menü von Linsentypen schließt färbende (einschließlich diejenigen, welche Formen hinzufügen), vergrößernde, transformierende und die Reihenfolge sortierende Linsentypen ein. Objekte spezifiziert mittels Anwender-Befehlen im Schritt 202 können in einer ähnlichen Art und Weise ausgewählt werden und manipuliert werden, wie diejenigen Objekte dargestellt auf dem Bildschirm 114. Im Schritt 204 wird die Szene von Objekten spezifiziert durch die Befehle des Anwenders in den Schritten 200 und 202 zusammengesetzt und in Übereinstimmung mit den Eigenschaften der Objekte spezifiziert als Linsen in der Szene erstellt. Eine Szene wird in Schritt 204 zusammengestellt, sobald das bilddarstellende Programm 122 Objekte erkennt, welche als Linsen in den Schritten 200 und 202 spezifiziert wurden, welche überlagernd sind. Eine Szene wird zusammengestellt im Postscriptformat und zur Darstellung auf dem Bildschirm 114 oder einem Aufzeichnungsmedium unter Verwendung eines Druckers 124 erstellt. Alternativ können Szenen, die zusammengestellt werden, in einem Datenspeicher 116 gespeichert werden für späteren Zugriff durch einen Anwender.
  • 3 ist ein Beispiel einer nicht-zusammengestellten Szene 300, die erzeugt wird gemäß den Schritten, wie in 2 dargelegt. Im Schritt 200 wird die nichtzusammengestellte Szene 300 definiert unter Verwendung des Hintergrundrechtecks 302 und von drei Rechtecksformen 304, 306 und 308. Im Schritt 202 wird die Füllfarbe einer jeden rechteckigen Form 304, 306 und 308 als eine färbende Linse mit den färbenden Farben Zyanblau, Gelb bzw. Magentarot (wobei jede Farbe in 3 unter Verwendung verschiedener Füllmuster repräsentiert wird) spezifiziert. Die Reihenfolge, in welcher die Formen überlagern, wird durch eine Szenen-Liste 400, welche in 4 illustriert ist, spezifiziert. Der Pfeil 402 deutet die Reihenfolge an, in welcher die Objekte in der Szene in einer von-Hinten-nach-Vorne-Reihenfolge geschichtet sind. 4 illustriert jede Form, die so definiert ist, dass sie Eigenschaft einer Linse aufweist, mit einer kleinen Lupe.
  • Bei Auswahl einer Linseneigenschaft in Schritt 202 in 2 weist die Linse abhängig vom Typus der Linse (beispielsweise färbende, vergrößernde etc.) eine oder zwei vordefinierte Zusammenstellungs-Reihenfolgen auf. Jede Linse stellt sich entweder in einer Von-Vorne-nach-Hinten oder einer Von-Hinten-nach-Vorne-Reihenfolge zusammen. In einer alternativen Ausführungsform kann die Reihenfolge, in welcher sich eine Linse zusammensetzt (d.h. Von-Vorne-nach-Hinten oder Von-Hinten-nach-Vorne) unabhängig für jede Linse mit Hilfe des Werkzeugs des Anwender-Benutzeroberfläche 128 eingestellt werden. Die Reihenfolge, in welche sich eine Linse zusammensetzt (d.h. die Zusammenseznungsreihenfolge einer jeder Linse) ist unabhängig und zu unterscheiden von der Reihenfolge, in welcher die Objekte in der Szenen-Liste 400 geschichtet sind. Die Zusammensetzungsreihenfolge einer Linse ist eine Eigenschaft einer Linse, welche signfikant das letztendliche Erscheinungsbild einer Szene, nachdem diese im Schritt 204 zusammengestellt ist, verändern kann.
  • Im Schritt 204 wird eine Szene, welche in den Schritten 200 und 202 definiert worden ist, zusammengesetzt und fertiggestellt. Eine Szene, welche durch eine Liste von Formen definiert ist, wird zusammengesetzt wenn die Liste von Formen auf ein Bild beschrieben in einem Geräte-unabhängigen Format, wie z.B. Postscript, reduziert worden ist. Eine Szene wird fertiggestellt, wenn das Bild der Szene, beschrieben durch irgendein PDL in ein Geräte-abhängiges Format zur Anzeige oder zur Reproduktion auf einem Aufzeichnungsmedium reduziert worden ist. Beispielsweise illustriert 5 die zusammengesetzte Szene 500 der nicht-zusammengesetzten Szene 300, dargestellt in 3. Im allgemeinen setzen Objekte, definiert als Linsen durch ihre Überlagerung mit anderen Objekten zusammen. Die Lösung der Zusammensetzung einer Szene wird komplex, sobald als zwei oder mehrere Linsen in einer Szene sich überlagern. Beispielsweise weist die zusammengesetzte Szene 500 der nicht-zusammengesetzten Szene 300, definiert in 3 nun insgesamt acht verschiedene Regionen (einschließlich des Hintergrundes) auf, wobei jede Region eine unterschiedliche Farbe aufweist, wie durch die unterschiedlichen Füllmuster in 5 illustriert wird. Die überlagernden Regionen, angezeigt durch die Referenz- Nrn. 502, 504 und 506 werden durch zwei Linsen gefärbt, wobei die überlagernde Region angezeigt durch die Referenz- Nr. 508 durch drei Linsen gefärbt wird.
  • D. Zusammensetzen einer Szene mit sich überlagernden Linsen
  • Die vorliegende Erfindung betrifft das Zusammensetzen einer Szene mit überlagernden Objekten, wobei mehr als eines der Objekte als eine Linse spezfiziert wird (oder als ein SG-Filter). Jede Linse weist einen Linsen-Operator mit einer vordefinierten Zusammensetzungsreihenfolge auf (d.h. Von-Hinten-nach-Vorne oder Von-Vorne-nach-Hinten). Wenn eine Szene fertiggestellt wird zur Anzeige auf einem Bildschirm, wird jedes Objekt angeordnet in einer Szenen-Liste zusammengesetzt (falls notwendig) und in einer Von-Hinten-nach-Vorne-Reihenfolge geschichtet. Wenn ein Objekt spezfiziert als eine Linse zusammengesetzt wird, wird der Linsen-Operator der Linse auf alle der Objekte in einer Szene, geschichtet dahinter, oder darunter angewandt. Das Ergebnis der Zusammensetzung wird durch Linsen-Begrenzungen abgeschnitten und in das Bild auf dem Bildschirm 114 gezogen. Abhängig vom Typus der Linse setzen sich zwei Linsen, welche sich überlagern, entweder in einer Reihenfolge Von-Hinten-nach-Vorne oder Von-Vorne-nach-Hinten zusammen. Jedes Objekt in der Szenen-Liste, das als eine Linse spezifiziert ist, wird eingefroren, wenn es von einem anderen Objekt überlagert wird, das als eine Linse spezifiziert ist. Die Überprüfung, wann eine Linse eingefroren ist, bestimmt die Reihenfolge, in welcher jedes Objekt in einer Szene zusammengesetzt wird.
  • 6A-6G sind Flussdiagramme, welche die Schritte zur Durchführung der Operationen darstellen, welche eine Szene von Formen mit sich überlagernden Linsen im Schritt 204 in 2 zusammensetzen. Jedes Flussdiagramm, dargestellt in 6A, 6B, 6C, 6D, 6E, 6F und 6G wird hier im Folgenden dargestellt unter Verwendung des Pseudo-Codes in den Tabellen 1, 3, 4, 5, 6, 7 bzw. 8. Darüber hinaus stellt die Tabelle 2 den Schritt 610 in 6A in einem Pseudo-Code dar. Linsen werden zusammengesetzt unter Verwendung eines Form-in-Form-aus-Verfahren zur Durchführung (model-in-model-out-method). Wenn eine Szene zusammengesetzt wird mit einem Form-in-Form-aus-Verfahren zur Durchführung wird eine Form einer Szene einer Linse unterzogen und eine neue Form einer Szene wird erzeugt, wie sie durch die Linse wahrgenommen wird.
  • Das Flussdiagramm in 6A, welches im Pseudo-Code in Tabelle 1 dargestellt ist, beginnt am Schritt 600. Vor der Durchführung des Schrittes 600, werden alle Formen in einer elektronischen Darstellung (d.h. eine Szene) im Speicher 112 in einer sortierten Liste gespeichert, welche hier als Szenen-Liste definiert wird. Ein Beispiel einer Szenen-Liste ist die Szenen-Liste 400, dargestellt in 4. Eine Szenen-Liste wird beschrieben in dem bilddarstellende Programm 122 als ein Cluster (ein nicht-schneidender Cluster) mit Tochter-Formen. Die Tochter-Formen eines Clusters schließen ein Hintergrundrechteck ein, welches eine Hintergrundfarbe aufweist. Darüber hinaus schließen die Tochter-Formen die anderen Formen ein, welche eine Szene definieren. Sobald jedes der Objekte (oder Formen) verwendet, um eine Szene zu definieren, in eine Reihenfolge gebracht worden ist, um einen Cluster auszubilden, wird jedes der Objekte in diesem Cluster in einer Von-Hinten-nach-Vorne-Reihenfolge im Schritt 602 im Postscript-Format zur Anzeige auf dem Bildschirm 114 oder fertig zum Drucken auf einem Aufzeichnungsmedium an Drucker 124 erstellt.
  • Tabelle 1
    Figure 00140001
  • Figure 00150001
  • 7 illustriert eine generische Datenstruktur eines schneidender Clusters 700. Der schneidende Cluster 700 ist eine Gruppierung von individuellen Objekten ähnlich zu einem Cluster (d.h. einem nicht-schneidenden Cluster). Anders als ein nicht-schneidender Cluster enthält ein Objekt, das als schneidender Cluster definiert wird, eine schneidende Region 702. Darüber hinaus enthält ein schneidender Cluster eine sortierte Liste von Tochter-Formen 704 ähnlich zu einem Cluster (d.h. einem nicht-schneidenden Cluster).
  • Jede der Tochter-Formen eines schneidenden Clusters 700 oder eines nicht-schneidenden Clusters können entweder eine einfache Form, einen Cluster oder einen schneidenden Cluster darstellen. Die schneidende Region 702 eines schneidenden Clusters wird erzeugt unter Verwendung der Erstellungsprozedur, dargestellt in einer Klasse von Prozeduren 706. Die Tochter-Formen des schneidenden Clusters werden in einer Von-Hinten-nach-Vorne-Reihenfolge gezeichnet, gefolgt von einem Grenzmuster der letzten Form, falls dies notwendig ist.
  • Bezug nehmend erneut auf 6A, wird der "Zeichne den Cluster"-Schritt 602 durchgeführt für entweder Cluster oder schneidende Cluster durch Durchschreiten einer Szenen-Liste (oder einer Formen-Liste), um jedes Objekt in einem Cluster in einer Von-Hintennach-Vorne-Reihenfolge zu zeichnen. Der Schritt 602 des Zeichnens eines Clusters wird entweder durch den "Zeichne Szene"-Schritt 600 oder die Schritte 609 oder 628 aufgerufen, welche unten diskutiert werden. Im Schritt 600 wird ein Befehl empfangen, eine Szene zu zeichnen. In diesem Schritt durchläuft die Szenen-Liste, welche eine Szene definiert, den „Zeichne Cluster"-Schritt 602 als eine Liste von Formen (d.h. eine Formen-Liste). Es sollte festgehalten werden, dass die Szenen-Liste, die als ein Cluster repräsentiert wird, Objekte enthalten kann, welche Cluster oder schneidende Cluster darstellen. Schritt 602 beginnt durch Bestimmung, ob die Liste von Formen, welche ihm unterzogen wird, einen schneidenden Cluster darstellt. Falls die Liste von Formen einen schneidenden Cluster darstellt, dann werden die Schritte 616 und 604 durchgeführt; andernfalls wird Schritt 605 durchgeführt. Im Schritt 616 werden Postscript-Befehle erzeugt, um den derzeitigen Grafikzustand der Szene, die zu erstellen ist, zu speichern. Ein grafischer Zustand speichert die laufenden grafischen Steuerparameter, welche das globale System definieren, in welchem Operatoren eines PDL-darstellenden Formats ausgeführt werden. Durch Speichern der laufenden grafischen Zustände wird die laufende schneidende Region gespeichert. Im Schritt 604 wird die schneidende Region des Clusters, der zu zeichnen ist, so eingestellt, um den Pfad des schneidenden Clusters zu schneiden. Zusammen mit der Operation von PDLs, wie z.B. Postscript, verstärkt dieser schneidende Pfad jeden schneiden Pfad, der bereits als Teil des grafischen Zustandes in Kraft ist, was in einer kombinierten schneidenden Region resultiert, die so klein oder kleiner ist, wie/als die frühere schneidende Region. Im Schritt 605 wird eine "Tochter"-Variable gesetzt, um die erste Form in der Liste von Formen abzugleichen, welche den Zeichne den Cluster"-Schritt 602 passiert hat. Im Schritt 606, wird, falls die Tochter-Variable als eine Linse bestimmt wird, Schritt 607 durchgeführt; andernfalls wird Schritt 608 durchgeführt. Im Schritt 607 wird die Linse, identifiziert im Schritt 606, im Schritt 624 (dargestellt in 6B) eingefroren und die Tochter-Variable wird gleich dem neuen Cluster gesetzt, welchen der Schritt 624 zurückführt. Im Schritt 608 wird dann, falls die Tochter-Variable als ein Cluster bestimmt wird, Schritt 609 durchgeführt; andernfalls wird Schritt 610 durchgeführt. Im Schritt 609 wird Schritt 602 rekursiv durchgeführt, um einen Cluster für den Cluster, identifiziert im Schritt 608, zu zeichnen.
  • Im Schritt 610 wird eine einfache Form einer Szene gezeichnet, deren Details in Tabelle 2 dargestellt sind. Eine einfache Form wird gezeichnet unter Verwendung der Operatoren eines darstellenden PDL-Formats, wie z.B. Postscript. Diese Operatoren werden verwendet, um die Form des Objektes in einem Geräte-unabhängigen Format zu definieren. Beispielsweise wird die Umrisslinie in einfacher Form in Bits oder anderen Geräte-un abhängigen Formate erstellt durch Emittieren und anschließendes Ausführen von Postscript-Befehlen, wie z.B. moveto, lineto, arcto, oder curveto. Darüber hinaus kann eine einfache Form eine Füll-Farbe aufweisen, welche die Farbe der Region, definiert durch die Umrisslinie der einfachen Form, darstellt. Schließlich wird nach Erstellen der Umrisslinie und der Befüllung einer einfachen Form die Grenze der Form unter Verwendung des Postscript-Befehls "stroke" erzeugt, falls dies notwendig ist.
  • Tabelle 2
    Figure 00170001
  • Beim Schritt 611 wird, falls die Tochtervariable die letzte Form in der Liste von Formen ist, der Schritt 613 durchgeführt; andernfalls wird der Schritt 612 durchgeführt. Beim Schritt 612 wird die Tochtervariable gleich der nächsten Form in der Liste von Formen gesetzt und Schritt 606 wird wiederholt. Beim Schritt 613 werden, falls der Cluster ein schneidender Cluster ist, dann die Schritte 617 und 614 durchgeführt; andernfalls wird Schritt 615 durchgeführt. Beim Schritt 617 wird Postscript emittiert, um den grafischen Zustand der zu erstellenden Szene wieder herzustellen. Beim Schritt 614 wird der Pfad des schneidenden Clusters gestrichelt. Ein Pfad wird gestrichelt, wenn eine Linie einer gewissen Dicke entlang eines Pfades, gebildet unter Verwendung von Konstruktionsoperatoren (beispielsweise moveto, lineto, closepath), gezogen wird. Beim Schritt 615 endet der Schritt 602 und kehrt zu irgendeinem der Schritte 609, 600 oder 628 zurück.
  • Beim Schritt 624, dargestellt in 6B wird ein Objekt, (beispielsweise eine Form), das als ein Linsenfilter definiert ist, eingefroren. Die Schritte in 6B werden im Pseudocode in Tabelle 3 dargestellt. Wie oben dargestellt, wird, wenn ein Linsenfilter eingefroren wird, er in einem schneidenden Cluster umgewandelt. Im allgemeinen wird eine Linse eingefroren, wenn sie ersetzt wird mit einem Cluster an Formen, die unabhängig von anderen Formen ausgebildet werden. Schritt 624, welcher drei Schritte enthält, wird entweder von Schritt 654 (6E), Schritt 607 (6A) oder Schritt 669 (6F) aufgerufen. Anfangs wird im Schritt 620 eine Unter-Liste von Formen berechnet, deren Details in 6C dargestellt sind. Die Unter-Liste von Formen definiert den Teil der Szene, der unterhalb der Linse liegt. Anschließend wird im Schritt 621 die Unter-Liste, berechnet am Schritt 620, durch die Linse gefiltert, die eingefroren werden soll, um eine neue Szene zu erzeugen. Details des Schrittes 622 sind in 6D dargestellt. Die neue Szene (d.h. die linsifizierte Formen-Liste) muss keinerlei Formen aufweisen, die von anderen Formen hinsichtlich ihrer Definition (d.h. Linsen) abhängig sind. Letztendlich wird am Schritt 622 ein schneidender Cluster erzeugt für die Linse, mit den Elementen in der neuen Szene (berechnet am Schritt 621) als Töchtern und die Linsenform als ein schneidender Rahmen (Clipper). Nach Erzeugen eines schneidenden Clusters im Schritt 622 wird der Schritt 623 durchgeführt, welcher den neu erzeugten schneidenden Cluster zu einem der Aufrufer an den Schritten 654, 607 oder 669 zurückführt.
  • Tabelle 3
    Figure 00180001
  • 6C stellt im Detail die Schritte zum Berechnen einer Unter-Liste am Schritt 620 in 6B dar. Darüber hinaus stellt die Tabelle 4 die Schritte, dargestellt in 6C in Pseudocode dar. Schritt 620 wird entweder von Schritt 628 oder Schritt 606 aufgerufen, wobei diese Schritte eine laufende Form und eine laufende Liste von Formen (d.h. eine Formen-Liste) passieren, die verwendet werden soll zum Berechnen einer Unter-Liste für die laufende Form. Im Schritt 625 wird eine Bestimmung durchgeführt, ob die laufende Form, für die eine Unter-Liste für die laufende Formen-Liste berechnet werden soll, einen Teil der laufenden Formen-Liste ausbildet oder nicht. Falls die laufende Form ein Element der laufenden Formen-Liste ist, dann wird Schritt 619 durchgeführt; andernfalls wird einer der Schritte 626 bis 638 durchgeführt. Im Schritt 619 wird eine Unter-Liste berechnet für die laufende Form durch Identifizieren von allen der Elemente in der laufenden Formen-Liste, bis hin zu, jedoch nicht einschließend der laufenden Form (beispielsweise Linse), sortiert in einer Reihenfolge von Hinten nach Vorne.
  • Die Schritte 626 bis 638 in 6C betreffen die Berechnung eines eine Unter-Liste ausbildenden Teiles von einer von drei Cluster-Gruppierungen, welche im Detail in 26, unten beschrieben werden. Kurz gesagt, schließen die verschiedenen Cluster-Gruppierungen einen Linsen-in&aus-Cluster, einen Linsen-in-Cluster und einen Linsen-aus-Cluster ein. Im Schritt 626 wird eine "Eltern-Cluster"-Variable gleich dem Cluster gesetzt, in welchem die Form eine Tochter in der laufenden Formen-Liste darstellt. Beim Schritt 627 werden diejenigen Formen von hinten nach vorne in der laufenden Formen-Liste bis hin zu, jedoch nicht einschließend der laufenden Form in dem Eltern-Cluster gleich einem Linse-in-Cluster gesetzt (d.h. einer In-Liste). Die laufende Form ist dann gleich zu dem Eltern-Cluster am Schritt 628. Beim Schritt 629 wird Schritt 620 rekursiv aufgerufen. Im Schritt 630 wird die berechnete Unter-Liste, zurückerhalten vom Schritt 629, gleich einem Linsen-aus-Cluster gesetzt (d.h. Aus-Liste).
  • Falls der Cluster-Gruppierungs-Typ der laufenden Linse ein Linsen-aus-Cluster am Schritt 631 ist, dann wird der Schritt 632 durchgeführt; andernfalls wird der Schritt 633 durchgeführt. Am Schritt 632 wird die berechnete Unter-Liste gleich dem Linsen-aus-Cluster, berechnet am Schritt 629, gesetzt. Falls der Cluster-Gruppierungs-Typ der laufenden Linse ein Linsen-in-Cluster am Schritt 633 ist, dann wird der Schritt 634 durchgeführt; andernfalls wird der Schritt 635 durchgeführt. Am Schritt 634 wird die berechnete Unter-Liste dem Linsen-in-Cluster, berechnet am Schritt 630, gleichgesetzt. Am Schritt 635 wird die berechnete Unter-Liste gleich dem Linsen-aus-Cluster gesetzt, gefolgt von dem Linsen-in-Cluster, um einen Linsen-in&aus-Cluster zu definieren. Falls die erste Form der Unter-Liste eine Hintergrundform am Schritt 636 ist, dann wird der Schritt 637 durchgeführt; andernfalls wird der Schritt 639 durchgeführt. Falls die erste Form der Liste von Formen (d.h. der Formen-Liste) eine Hintergrundform am Schritt 637 aufweist, dann wird Schritt 639 durchgeführt; andernfalls wird der Schritt 638 durchgeführt. Am Schritt 638 wird die Hintergrundform der Liste von Formen als die erste Form der Unter-Liste eingefügt. Am Schritt 639 wird die berechnete Unter-Liste am Schritt 630 zu einem der Aufrufer an den Schritten 628 oder 606 zurückgeführt.
  • Tabelle 4
    Figure 00190001
  • Figure 00200001
  • 6D stellt die Schritte zum Filtern einer Unter-Liste durch eine laufende Linse dar, um eine neue Szene im Schritt 621 in 6B zu erzeugen. Darüber hinaus stellt die Tabelle 5 die Schritte, gezeigt in 6 in Pseudocode dar. Anfangs werden am Schritt 640 die Formen in der Unter-Liste (d.h. Formen-Liste), berechnet am Schritt 620, kopiert. Am Schritt 641 wird eine Bestimmung durchgeführt, ob die laufende Linse, die eingefroren werden soll, am Schritt 624, eine Linse vom Typ Von-Hinten-nach-Vorne oder eine vom Typ von-Vorne-nach-Hinten darstellt. Abhängig vom Typ der Linse, der am Schritt 624 eingefroren werden soll, werden die Schritte 642 und 643 durchgeführt in verschiedenen Reihenfolgen. Falls der Linsentyp eine Linse von der Art einer Linse Von-Hintennach-Vorne ist, dann wird der Schritt des Einfrierens 642 durchgeführt, gefolgt von einem modfizierenden Schritt 643, wie durch die Schritte 644 bzw. 645 angezeigt. Andernfalls, folgt die Linse einer Linse von der Art einer Von-Vorne-nach-Hinten Linse, dann wird der modifizierende Schritt 643 durchgeführt, gefolgt von einem Schritt des Einfrierens 642, wie er durch die Schritte 646 bzw. 647 angezeigt wird. Kurz gesagt, friert der Schritt 643 irgendwelche Linsen, geschichtet unterhalb der laufenden Linse, die eingefroren werden soll, ein, wohingegen der Schritt 643 jede Form unterhalb der laufenden Linse in Übereinstimmung mit dem Operator der laufenden Linse (d.h. der Filterfunktion) modfiziert. Die Ausgabe von Schritt 621 ist eine linsfizierte Formen-Liste, die eine Repräsentation einer Szene, definiert durch eine Unter-Liste durch eine Linse, darstellt. Die linsfizierte Formen-Liste zeigt keinerlei Formen, die von anderen auszubildenden Formen abhängig sind.
  • Tabelle 5
    Figure 00210001
  • 6E stellt die Schritte zum Durchführen der Schritte 642, wie in 6D dargestellt, dar. Darüber hinaus stellt die Tabelle 6 den Schritt 642 im Pseudocode dar. Im allgemeinen friert der Schritt 642 Formen in der Unter-Liste einer laufenden Linse (d.h. Tochter) ein, durch Ersetzen einer jeden Linse in der Unter-Liste mit einem Cluster von Formen, die unabhängig voneinander ausgebildet werden. Wie in 6D gezeigt, wird der Schritt 642 aufgerufen entweder von den Schritten 644 oder 647. Schritt 642 durchläuft eine laufende Linse und eine Unter-Liste, wenn er aufgenufen wird. Am Schritt 649 wird eine neue Liste definiert, und gleich einer leeren Liste gesetzt. Am Schritt 650 wird eine "Tochter"-Variable gesetzt, um die erste Form in der Unter-Liste zu identifizieren. Falls die Form, welche die Tochter-Variable identifiziert, ein Cluster vom Schritt 651 ist, dann wird der Schritt 652 durchgeführt; andernfalls wird der Schritt 653 durchgeführt. Am Schritt 652 wird der Cluster am Schritt 664, wie in 6F gezeigt, eingefroren. Das heißt, jegliche Formen, die Linsen darstellen, werden entfernt und ersetzt mit einem Cluster von Formen, welche unabhängig voneinander ausgebildet werden. Anschließend wird im Schritt 655 eine neue Form definiert, um den eingefrorenen Cluster bestimmt am Schritt 652 darzustellen. Falls die Form, welche die Tochter-Variable identifiziert, eine Linse am Schritt 653 ist, dann wird der Schritt 654 durchgeführt, andernfalls wird der Schritt 657 durchgeführt. Am Schritt 654 wird der Schritt 624 durchgeführt, um die Linse einzufrieren, welche durch die Tochter-Variable identifiziert wird. Anschließend wird am Schritt 656 eine neue Form definiert, die dann die eingefrorene Linse zurückführt. Am Schritt 657 wird eine neue Form definiert durch die Form, welche die Tochter Variable identfziert. Am Schritt 658 wird die neue Form hinzugeführt, um einen Teil einer neuen Liste auszubilden. Falls die Tochter-Variable eine neue Form identifiziert, welche gleich zur letzten Form in der Unter-Liste am Schritt 649 ist, dann wird der Schritt 661 durchgeführt. Andernfalls wird der Schritt 660 durchgeführt. Am Schritt 660 wird die Tochter- Variable gesetzt, um die nächste Form in der Unter-Liste zu identifizieren. Schließlich wird am Schritt 661 die neue Liste definiert am Schritt 658 zum Aufrufer an den Schritten 644 oder 647 zurückgeführt.
  • Tabelle 6
    Figure 00220001
  • 6F stellt die Schritte zum Durchführen des Schritts 652, dargestellt in 6E dar. Darüber hinaus stellt die Tabelle 7 den Schritt 652 im Pseudocode dar. Im allgemeinen friert der Schritt 643, welcher entweder durch die Schritt 667 oder 652 aufgerufen wird, einen dort hingeführten Cluster ein. Das Einfrieren eines Clusters friert diejenigen Linsen ein, welche die Teile des Clusters ausbilden. Genauer gesagt, beginnt der Schritt 664 durch Definieren einer neuen Liste und deren Gleichsetzen mit einer leeren Liste am Schritt 663. Am Schritt 665 wird eine Tochter-Variable gesetzt, um die erste Form in der sortierten Liste des Clusters zu identifizieren. Falls die Tochter-Variable dann einen Cluster am Schritt 666 identfizier, dann wird Schritt 667 durchgeführt; andernfalls wird der Schritt 668 durchgeführt. Am Schritt 667, wird der Schritt 652 rekursiv aufgerufen. Anschließend wird der eingefrorene Cluster zurückgeführt zum Schritt 667 gleich einer neuen Form gesetzt. Falls die Tochter-Variable eine Linse am Schritt 668 identifiziert, dann wird der Schritt 669 durchgeführt; andernfalls wird der Schritt 672 durchgeführt. Am Schritt 669 wird der Schritt 624 aufgerufen, welcher die Linse identifiziert am Schritt 668 einfriert. Das Ergebnis der eingefrorenen Linse wird gleich einer neuem Form am Schritt 671 gesetzt. Am Schritt 672 wird die Form identifiziert durch die Tochter-Variable gleich einer neuen Form gesetzt. Anschließend wird die neue Form definiert entweder durch die Schritte 670, 671 oder 672 zu einer neuen Liste hinzugefügt. Falls die Tochter-Variable die letzte Form in der sortierten Liste des Clusters darstellt, wird am Schritt 674 dann der Schritte 676 durchgeführt; andernfalls wird der Schritt 675 durchgeführt. Am Schritt 675 wird die Tochter-Variable gesetzt, um die nächste Form in der sortierten Liste des Clusters zu identifizieren. Falls der Cluster ein schneidender Cluster am Schritt 676 ist, dann wird der Schritt 678 durchgeführt; andernfalls wird der Schritt 677 durchgeführt. Am Schritt 678 wird die schneidende Region des Clusters gleich zu derjenigen eines neuen Clippers gesetzt. Am Schritt 678 wird kein Clipper dem neuen Clipper zugeordnet. Am Schritt 679 wird ein neuer Cluster mit einer neuen Liste, gebildet vom Schritt 673, und einem neuen Schneidwerkzeug, definiert entweder an den Schritt 677 oder 678, erzeugt. Ebenfalls am Schritt 679 wird der neue Cluster dem gleichen schneidenden Cluster und den Cluster-Gruppierungs-Attributen des Clusters zugeordnet. Der neue Cluster wird dann zurückgeführt zu seinem Aufrufer am Schritt 680.
  • Tabelle 7
    Figure 00230001
  • 6G stellt die Schritte zum Durchführen des Schritts 643, gezeigt in 6D dar. Darüber hinaus stellt die Tabelle 8 den Schritt 643 im Pseudo-Code dar. Im allgemeinen modfiziert der Schritt 643 diejenigen Formen unter einer Linse durch Anwenden der Filter-Funktion (d.h. des Linsen-Operators) der Linsen aufs selbige. Schritt 643 wird entweder vom Schritt 645 oder vom Schritt 646 aufgerufen mit einer Linse und einer Liste von Formen, welche unter der Linse sich befinden (d.h. Formen-Liste). Die Liste von Formen unter der Linse kann Linsen einschließen, weil der modifizierende Schritt 643 aufgerufen worden sein kann vor dem einfrierenden Schritt 642. Die Linse passiert den Schritt 643 und wird verwendet, um die Filterfunktion zu identifizieren, die auf jede Form in der Liste von Formen angewandt wird. Falls die Filterfunktion der Linse die Hintergrundfarbe einer Szene am Schritt 690 modifiziert, dann wird die Füllfarbe des ersten Elementes in der Liste von Formen unter der Linse modifiziert durch die Hintergrund-Filterfunktion der Linse am Schritt 691. Wie oben dargestellt, kann eine Filterfunktion einer Linse das Färben, Skalieren etc. einschließen. Im Anschluss wird am Schritt 692 eine Tochter-Variable gesetzt, um die zweite Form in der Liste von Formen (d.h. Formen-Liste) zu identifizieren. Am Schritt 693 wird die Form, identifiziert in der Liste von Formen unter der Linse durch die Tochter-Variable, modifiziert durch die Filterfunktion der Linse. Es wird sich für den Fachmann auf dem Gebiet verstehen, dass der modifizierende Schritt 693 für Formen identifiziert durch die Tochter-Variable gilt, welche Cluster darstellen, und zwar durch rekursives Modifizieren einer jeden der Tochterformen eines Clusters mit einer geeigneten Filterfunktion der Linse. Falls die Form identifiziert durch die Tochter-Variable nicht die letzte Form in der Liste von Formen unter der Linse am Schritt 694 darstellt, dann wird der Schritt 695 durchgeführt, andernfalls wird der Schritt 696 durchgeführt.
  • Am Schritt 695 wird die Tochter-Variable gesetzt, um die nächste Form in der Unter-Liste zu identifizieren. Am Schritt 696 endet der Schritt 643 durch Rückkehr entweder zum Schritt 645 oder zum Schritt 646.
  • Tabelle 8
    Figure 00240001
  • Es wird sich für den Fachmann auf dem Gebiet verstehen, dass die 6A bis 6G einen Überblick der Schritte zum Durchführen der vorliegenden Erfindung darstellen und dass mehrere verschiedene Permutationen möglich sein könnten. Die unterschiedliche Art und Weise, in welcher die Schritte, dargestellt in den 6A bis 6G, durchgeführt werden könnten, hängt von der besonderen Form in der Szene (beispielsweise dem Cluster, der einfachen Form oder der Linse) ab und von der speziellen Art und Weise, in welcher die Formen in der Szenen-Liste angeordnet sind.
  • E. Illustration des Zusammensetzens einer Szene mit sich überlagernden Linsen
  • Die Szene der rechtwinkligen Objekte 304, 306 und 308 geschichtet, oben auf dem Hintergrundrechteck 302, dargestellt in 3 ist in Form von Linsen definiert, welche die darunter liegenden Objekte Zyanblau, Gelb bzw. Magentarot färben. Beispielsweise wird ein Objekt, das mit einer zyanblauen Farbe gefüllt ist, das unterhalb einer gelben Linse geschichtet ist, grün eingefärbt. Die folgende Beschreibung schreitet durch das Flussdiagramm, dargestellt in den 6A bis 6G, um die Art und Weise zu illustrieren, in welcher die Szene 300 definiert in 3 als die Szene 500, dargestellt in 5 zusammengesetzt wird.
  • Am Schritt 600 wird jedes Objekt in der Szenen-Liste 400, dargestellt in 4 zusammengesetzt in einer Reihenfolge von hinten nach vorne (in der Richtung des Pfeils 402) und fertiggestellt entweder auf einem Bildschirm oder auf einem Aufzeichnungsmedium. Die erste Form in der Szenen-Liste 400 ist das Hintergrundrechteck 302. Da das weiße Hintergrundrechteck 302 eine einfache Form darstellt, wird es gezeichnet durch Durchführen des Schrittes 610, dessen Ergebnis in Szene 800, dargestellt in 8 gezeigt ist.
  • Nach dem Hintergrund-Rechteck 302 ist das zyanblaue Rechteck 304 das nächste Element in der Szenen-Liste 400. Um das zyanblaue Rechteck 304 zu zeichnen, wird der Schritt 607 durchgeführt für Formen, welche Linsen darstellen. Vor dem Zeichnen der Linse als eine einfache Form im Schritt 610 wird eine Unter-Liste 900, die in 9 dargestellt ist, das Rechteck 304 am Schritt 620 berechnet. Wie in 9 dargestellt, besteht die Unter-Liste 900 nur aus dem weißen Hintergurndrecheck 302. Nach Durchführen des Schrittes 620 wird die Szene definiert durch die Unter-Liste 900 durch die Linse gefiltert spezifiziert durch das Rechteck 304 am Schritt 621. Da die Linse eine Linse von der Art von hinten nach vorne ist, wird der einfrierende Schritt 644 durchgeführt, gefolgt vom modfizierenden Schritt 645, um eine linsifizierte Formen-Liste zu berechnen. Da nur eine einfache Form unter der Linse 304 vorliegt (nämlich das Hintergrundrechteck 302), werden keine Linsen eingefroren und das Hintergrundrechteck 302 wird zyanblau gefüllt, um eine linsifizierte Formen-Liste 1000, welche in 10 gezeigt ist, zu erzeugen. Die linsfizierte Formen-Liste 1000 ist dann die Ausgabe von Schritt 621.
  • Unter Verwendung der linsifizierten Formen-Liste 1000, dargestellt in 10, wird ein schneidender Cluster am Schritt 622 erzeugt. Ein Teil des Zeichnens eines schneiden den Clusters ist es, den Pfad des Rechtecks 304 zu setzen, so dass es eine schneidende Region der Szene im Schritt 604 darstellt. Die Formen in der linsifizierten Formen-Liste 1000, welche erzeugt werden, um einen Cluster zu erzeugen, werden im Schritt 610 gezeichnet, nämlich als Hintergrund-Rechteck mit einer zyanblauen Farbfüllung 1002. Schließlich wird der Schritt 614 durchgeführt, um die Grenzen des Rechteckes 304 zu stricheln. Diese Schritte sind auf dem Bildschirm 314, wie in 11 gezeigt, repräsentiert durch anfängliches Zeichnen der Zyanlinse 304, illustriert durch Szene 1100 und dann durch Zeichnen der Grenze der Zyanlinse 304, illustriert durch Szene 1102.
  • Nach Zeichnen der zyanblauen Linse 304 wird die gelbe Linse 306 gezeichnet, zunächst durch Einfrieren der Linse am Schritt 607. Ähnlich wie bei der zyanblauen Linse wird eine Unter-Liste 1200, welche in 12 gezeigt ist, am Schritt 620 für die gelbe Linse 306 berechnet. Die Unter-Liste 1200 schließt das Hintergrundrechteck 302 und die zyanblaue Linse 304 ein. Anschließend werden jegliche Linsen in der Unter-Liste 1200 am Schritt 644 eingefroren. 13 illustriert eine linsifizierte Formen-Liste 1300, welche das Ergebnis des Einfrierens der gelben Linse am Schritt 644 darstellt. Die linsifizierte Formen-Liste 1300 wird ausgebildet durch Filtern der Unter-Liste 1200 durch die Linse, um eine neue Szene 645 zu erzeugen.
  • Die Details zum Erzeugen der linsifizierten Formen-Liste in 13 sind dargestellt in 6D. Anfangs am Schritt 640 werden die Formen unter der gelben Linse 306 (d.h. die Unter-Liste) kopiert. Anschließend wird jede kopierte Form, welche eine Linse darstellt, am Schritt 642 eingefroren. In diesem Fall wird die zyanblaue Linse 304 eingefroren. Die eingefrorene zyanblaue Linse 304 wird repräsentiert durch den schneidenden Cluster 1302. Sobald die Formen in der Unter-Liste 1200 kopiert und eingefroren sind, werden die eingefrorenen Formen modfiziert unter Verwendung der Filterfunktion der Linse am Schritt 643.
  • 14 iliustriert die Sequenz, in welcher die gelbe Linse 306 gezeichnet ist. Zunächst wird die Hintergrundfarbe der gelben Linse 306 wie illustriert durch die Szene 1400 gezeichnet. Anschließend wird ein Teil der zyanblauen Linse 502, welche durch die gelbe Linse 306 grün gefärbt wird, gezeichnet, wie durch Szene 1402 illustriert wird. Um die Zeichnung der gelben Linse 306 zu vervollständigen, werden die Grenzen um die zyanblaue Linse 304 und die gelbe Linse 306 gezeichnet, wie durch die Szenen 1404 bzw. 1406 illustriert.
  • Nach Zeichnen der gelben Linse 306 (oder des Rechtecks 306) wird die magentarote Linse 308 gezeichnet. Um die magentarote Linse 308 zu zeichnen (oder das Rechteck 308) müssen die Formen unter der Linse am Schritt 607 eingefroren werden. Nach Durchführen des Schrittes 620 wird eine Unter-Liste 1500, dargestellt in 15 für die magentarote Linse 308 berechnet. Am Schritt 621 wird die Unter-Liste 1500 durch die magentarote Linse 308 gefiltert, um eine linsifizierte Formen-Liste 1600, dargestellt in 16 zu erzeugen. Die linsifizierte Formen-Liste 1600 enthält einen zyanblauen schneidenden Cluster 1600 und einen gelben schneidenden Cluster 1604. Darüber hinaus enthält ein Teil des gelben schneidenden Clusters 1604 einen zyanblauen schneidenden Cluster 1606.
  • Genauer gesagt, um die linsifizierte Formen-Liste 1600 zu berechnen, wird jede Linse in der Formen-Liste 1500 eingefroren. Nach Einfrieren jeder Linse am Schritt 642 wird die Funktion der laufenden Linse, die es zu zeichnen gilt (d.h. die magentarote Linse 308) auf die eingefrorenen Formen der Unter-Liste 1500 am Schritt 643 angewandt. Die erste modifizierte Form ist das Hintergrund-Rechteck, welches magentarot eingefärbt wird, um ein magentarotes Hintergrund-Rechteck 1608 zu definieren. Als zweites wird der zyanblaue schneidende Cluster 1602 magentarot eingefärbt, um ein blaues Hintergrundrechteck 1610 (d.h. zyanblau gefärbtes magentarot) zu definieren. Als drittes wird das Hintergrund-Rechteck des gelben schneidenden Clusters 1604 magentarot eingefärbt, um ein rotes Hintergrund-Rechteck 1612 zu erhalten. Schließlich wird das Hintergrund-Rechteck des zyanblauen schneidenden Clusters 1606, welche einen Teil des gelben schneidenden Clusters 1604 ausbildet, magentarot und gelb eingefärbt, um ein schwarzes Hintergrund-Rechteck 1614 zu erzielen.
  • 17 illustriert eine Sequenz von Szenen, angegeben durch Referenznummern 1700 bis 1707, in welcher die magentarote Linse 308 gezeichnet wird. In Szene 1700 wird die Hintergrundfarbe der magentaroten Linse 308 gezeichnet. Rekursiv werden Teile der zyanblauen Linse 304, welche geschnitten werden durch und gefärbt werden durch die magentarote Linse 306 gezeichnet. Als erstes wird die überlagernde Fläche 504 (d.h. die überlagernde Fläche zwischen der zyanblauen Linse 304 und der magentaroten Linse 304 und der magentaroten Linse 308) in Szene 1701 gezeichnet, nach welcher die Grenze um die zyanblaue Linse 304 in Szene 1702 gezeichnet wird. In Szene 1703 wird die überlagernde Fläche 506 zwischen der gelben Linse 304 und der magentaroten Linse 306 gezeichnet. Anschließend wird die überlagernde Fläche 508 (d.h. die überlagernde Fläche zwischen den zyanblauen, gelben und magentaroten Linsen 304, 306 bzw. 308) in Szene 1704 gezeichnet. Anschließend wird die Grenze um die zyanblaue Linse 304 gezeichnet, um die gelbe Linse 306 und um die magentarote Linse 308 und zwar in den Szenen 1705, 1706 bzw. 1707.
  • F. Von-Vorne-nach-Hinten-versus von Hinten-nach-Vorne-Linsen
  • Überlagernde Linsen setzen ihre Operatoren entweder in einer Reihenfolge von vorne nach hinten oder von hinten nach vorne zusammen. Ob die Zusammensetzungs-Reihenfolge einer Linse eine vom vorne nach hinten oder eine von hinten nach vorne ist, bestimmt, wann die Unter-Liste einer Linse eingefroren wird. Das Steuern, wann Linsen eingefroren werden, bestimmt die Zusammensetzungs-Reihenfolge einer Szene. Während die meisten Operatoren von Linsen sich von hinten nach vorne zusammensetzen (d.h. der Operator im Hintergrund der Überlagerungs-Reihenfolge wird zuerst angewandt), setzen sich andere Operatoren von Linsen natürlicherweise eher von vorne nach hinten zusammen. Als eine allgemeine Regel setzen sich Linsen, welche Szenenobjekte hinzufügen, löschen oder umgruppieren, natürlicherweise eher von vorne nach hinten zusammen, während alle anderen Linsen sich natürlicherweise eher von hinten nach vorne zusammensetzen. Ein Beispiel, welches diese beiden unterschiedlichen Verfahren zum Zusammensetzen einer Szene illustriert, wird unten beschrieben.
  • 18 illustriert eine nicht zusammengesetzte Szene 1800, welche eine Hintergrundform 1801 enthält und drei andere Formen, angegeben durch die Referenz-Nummern 1802, 1804, 1806 und 1808. Die Formen, gezeigt in 18, überlagern sich in der Reihenfolge, welche durch ihre Referenz-Nummern gegeben wird (d.h. die am niedrigsten sortierte Referenz-Nummer ist die erste gezeichnete Form). Die Formen 1806 und 1808 sind die einzigen Formen in 18, die als Linsen definiert sind. Genauer gesagt weist die Form 1806, die eine rote (angedeutet durch das vertikale Füllmuster) wabenartige Form darstellt, die Eigenschaften einer Linse auf, welche Objekte anfärbt, die durch sie gesehen, rot erscheinen. Die Form 1808, welche eine klare rechtwinklige Form darstellt, weist den Effekt des Skalierens von Objekten um ihre eigenen Zentren auf, welche unterhalb positioniert sind. In 18 ist die rechtwinklige Linse 1808 eine Linse, welche die drei Objekte 1802, 1804 und 1806 um ihre Zentren herum skaliert und dabei bewirkt, dass die drei Objekte innerhalb der begrenzten Fläche der Linse 1808 sich überlagern, wenn sie, wie in 20 gezeigt, zusammengesetzt werden.
  • 19 illustriert eine Szenen-Liste 1900 der Formen in der nicht zusammengesetzten Szene 1800. Die Formen in der Szenen-Liste 1900 sind in einer Reihenfolge von hinten nach vorne geschichtet, wie durch einen Pfeil angegeben, der durch die Referenz-Nummer 1902 illustriert ist. Wie in der Szenen-Liste 1900 gezeigt, sind die Formen 1802 und 1804 einfache Formen, wohingegen die Formen 1806 und 1808 Formen sind, welche als Linsen definiert sind. Jedoch anders als die beispielhafte Szenen-Liste 400, illustriert in 4, enthält die Szenen-Liste 1900 eine vergrößernde Linse 1808, welche sich in einer Reihenfolge von vorne nach hinten zusammensetzt. Um in korrekter Art und Weise die Szene 2000 mit der von vorne nach hinten gelagerten Linse 1800 zusammenzusetzen, wird benötigt, dass die Skalierungs-Operation der Linse 1808 durchgeführt wird, bevor die Färbeoperation der Linse 1806 durchgeführt wird, wenn die Form 1808 gezeichnet wird.
  • 20 illustriert eine zusammengesetzte Szene 2000 der Szenen-Liste 1900. Die Szene 2000 enthält zwei sich überlagernde Flächen 2002 und 2004, welche durch die anfärbende Linse 1806 angefärbt werden. Die zusammengesetzte Szene 2000 wird ausgebildet zunächst durch Zeichen des Hintergrundrechteckes 1801. Anschließend werden die Formen angezeigt durch die Referenz-Nummern 1802 und 1804 gezeichnet. Um die Linse 1806 zu zeichnen, wird die Erzeugung einer Unter-Liste 2010 dargestellt in 21 benötigt. Da keine Linsen in der Unter-Liste 2100 vorliegen, ist keine der Formen in der Unter-Liste 2100 eingefroren. Darüber hinaus, da die Linse 1804 eine Linse im Stil von hinten nach vorne ist, wird der Schritt des Einfrierens 644 durchgeführt, gefolgt vom modfizierenden Schritt 645, dargestellt in 6D. Das Durchführen des einfrierenden Schrittes 644 verlangt, dass die Linsenformen in der Unter-Liste 2100 eingefroren werden an Schritt 642. Anschließend wird, um den modfizierenden Schritt 645 durchzuführen, die Linsen-Funktion der Linsen 1806 auf all die Elemente angewandt, die darunter geschichtet sind, wie in 22 gezeigt, um eine linsfizierte Formen-Liste 2200 auszubilden am Schritt 643. Da die schneidende Region gleich der Größe der Form 1806 gesetzt wird, ist die Färbung, welche auf jegliche andere Form in der Szene 2000 (beispielsweise Formen 1802 und 1804) angewandt wird, nicht sichtbar.
  • Nach Zeichnen der färbenden Linse 1806 wird die vergrößernde Linse 1808 gezeichnet. 23 illustriert eine Unter-Liste 2300, berechnet für die vergrößernde Linse 1808. Da die Zusammensetzungsreihenfolge der Linse 1806 von vorne nach hinten verläuft, wird der modifizierende Schritt 646 durchgeführt, gefolgt vom einfrierenden Schritt 647 in 6D. Der modifizierende Schritt 646 verlangt, dass die Linsenfunktion der laufenden Linse 1808 auf diejenigen kopierten Formen angewandt wird, die unter der laufenden Linse 1808 geschichtet sind. Anschließend wird der einfrierende Schritt 647 durchgeführt, welcher alle die Linsen unterhalb der laufenden Linse 1808 einfriert. Beim Durchführen des modfizierenden Schritts 646 werden alle der Formen in der Szenen-Liste 1900 in Übereinstimmung mit den Spezifikationen der Funktion der Linse 1808 vergrößert. Nach Vervollständigung des modifizierenden Schrittes 646 wird eine jede der Formen unter der Linse 1808 vergrößert, einschließend die Form der Linse 1806. Nach dem modfizierenden Schritt 646 wird der einfrierende Schritt 647 durchgeführt, welcher alle die Formen unter der laufenden Linse 1808 einfriert. Dieser einfrierende Schritt überführt die Linse 1806 in einen schneidenden Cluster 2402 in der resultierenden linsifizierten Formen-Liste 2400, dargestellt in 24. Da die Linse 1806 oberhalb den Formen 1804 und 1802 in der Szenen-Liste 1900 geschichtet ist, wird die färbende Funktion auf jede der vergrößerten Formen 1802 und 1804 angewandt, um die gefärbten Regionen 2002 und 2004, dargestellt in 20 zu definieren.
  • 25 illustriert die Szene 2000, dargestellt in 20, wenn die vergrößerte Linse 1808, gezeigt in 18, eine Szene 2500 in einer Reihenfolge zusammensetzt, die von hinten nach vorne verläuft. Wie in 6 dargestellt, werden, wenn die Zusammensetzungsreihenfolge einer Linse von hinten nach vorne verläuft, die Formen in einer UnterListe von Linsen eingefroren am Schritt 642, bevor die Funktion der Linse auf die Formen in der Unter-Liste am Schritt 643 angewandt wird. Wenn eine Linse eingefroren wird, bevor die Formen unter der Linse modifiziert werden, wird die färbende Operation durchgeführt, bevor der skalierenden Operation in der Szene 1800, gezeigt in 18 durchgeführt wird. Als ein Ergebnis werden die gefärbten Regionen 2002 und 2004, gezeigt in 20, nicht ausgebildet, wenn die vergrößernde Linse 1808 in einer von hinten nach vorne verlaufenden Reihenfolge zusammengesetzt wird, wie dies in Szene 2500 gezeigt ist.
  • G. Limitierung des Umfangs der Operation einer Linse
  • Der folgende Abschnitt betrifft das Minimieren des Umfangs der Operation einer Linse, um die Berechnungs-Komplexität beim Zusammensetzen einer Szene mit Linsen zu reduzieren und zusätzlich visuelle Effekte zu erreichen. Der Umfang der Operation einer Linse schließt diejenigen Teile einer Szene ein, auf welche eine Linse wirkt. Wann immer ein Anwender eine Linse zu einer Darstellung hinzufügt, verdoppelt sich die Anzahl von Formen in einem letztendlichen Bild potentiell, da jede Form unter einer Linse kopiert wird, wenn ein Bild zusammengesetzt wird. Jede Form, die zuvor in einer Szene erschien, kann nun sowohl in ihrer ursprünglichen Form außerhalb der Linse und in ihrer modfizierten Form innerhalb der Linse (siehe Schritte 620-637 in 6C) erscheinen. Als ein Ergebnis kann die Komplexität eines Bildes, welches eine Szene repräsentiert, bis zu 2nfach (oder exponentiell) anwachsen, wobei "n" die Anzahl an Linsen in einer Szene darstellt. Diese Komplexität kann durch Identifizieren derjenigen Formen in einer Szene reduziert werden, die unterhalb einer speziellen Linse geschichtet sind, jedoch nicht von dieser Linse angesteuert werden. Das heißt, die Anzahl der Operationen benötigt zum Zusammensetzen einer Szene kann reduziert werden durch Minimieren des Umfangs der Operation einer Linse in der Szene. Das Minimieren des Umfangs der Operation einer Linse begrenzt die Anzahl von Formen in einer Szene, die von der Linse angesprochen werden kann. Ein erstes und ein zweites Verfahren zum Begrenzen des Umfangs der Operation einer Linse werden in Abschnitten G.1 bzw. G.2 diskutiert.
  • G.1 Anwenderdefinierte Umfangsbegrenzung
  • 26 illustriert ein Beispiel des Benutzer-Oberflächen-Werkzeugs 128, dargestellt in 4. Das Benutzer-Oberflächen-Werkzeug 128, dargestellt in 26, enthält eine Befehlsfläche 2600 und eine Szene-Entwicklungs-Fläche 2602. Im allgemeinen wählt ein Anwender, der eines der Eingabe-Geräte 119 (dargestellt in 1) einsetzt, Befehle in der Befehlsfläche 2600 aus, um Formen in der Entwicklungsfläche 2602 zu entwickeln. Die Formen werden verwendet, um eine Szene in einer Szenen-Entwicklungs-Fläche 2602 zu entwickeln und können Umrisslinien, Linien und Texte enthalten. Sobald eine Form definiert wurde, werden ihre Eigenschaften unter Verwendung des Eigenschaften-Menüs 2604 gesetzt. Einige der Eigenschaften, welche gesetzt werden können und welche in dem Eigenschaften-Menü 2604 gezeigt sind, schließen die Füllfarbe 2006, die Linienfarbe 2608, die Linienbreite 2610, das Objektmuster 2612 und die Hintergrundfarbe 2614 ein.
  • Um eine der Formen entwickelt in einer Szenen-Entwicklungsfläche 2602 als eine Linse zu spezfizieren, wählt ein Anwender zuerst eine Form oder Formen aus und anschließend wählt er einen Linsen-Typ aus einem Menü von Linsen-Typen 2618. Das Menü von Linsen erhält eine färbende Linse 2620, eine skalierende Linse 2622, eine transfor mierende Linse 2624, eine die Reihenfolge verändernde Linse 2626 und eine die Eigenschaft einstellende Linse 2628. Nach Auswählen des Typs einer Linse aus dem Menü von Linsentypen 2618, kann der Anwender einen systemweiten Modus bearbeite Linse" ("edit lense") eingeben durch Auswählen eines "bearbeite Linse" – Menüpunktes 2630. Sobald er in dem "bearbeite Linse"-Modus sich befindet, kann der Anwender Eigenschaften aus dem Eigenschaftsmenü 2604 auswählen. Irgendeine Eigenschaft ausgewählt an diesem Punkt wird eine Eigenschaft, welche die Objekte, die unterhalb der Linse liegen, betreffen. Beispielsweise kann, falls ein Anwender eine färbende Linse aus dem Menü von Linsentypen 2618 auswählt und den systemweiten "bearbeite Linse"-Modus eingibt, der Anwender anschließend eine Füllfarbe 2606 aus dem Eigenschaftsmenü auswählen, um die färbende Farbe der Linse zu definieren.
  • Ein weiteres Menü verfügbar für einen Anwender auf dem Benutzer-Oberflächen-Werkzeug 128, dargestellt in 26, ist ein Gruppierungsmenü 2632. Das Gruppierungsmenü enthält einen Cluster-Befehl 2634, einen Linsen-in&aus-Cluster-Befehl 2636, einen Linsen-in-Cluster-Befehl 2638, einen Linsen-aus-Cluster-Befehl 2640 und einen schneidenden Cluster-Befehl 2642, deren Details unten erläutert werden. Der Fachmann auf dem Gebiet wird verstehen, dass die Anzahl von Elementen dargestellt in jedem Menü 2604, 2618 und 2632 in 26 nicht alle möglichen Elemente enthält, sondern stattdessen diese nur aus Gründen der Illustration dargestellt wird.
  • Ein erstes Verfahren zum Begrenzen des Umfangs der Operation einer Linse ermöglicht es einem Anwender verschiedene sich nicht-überlagernde Linsen in einer einzelnen Linse mit vielerlei nicht verknüpften Regionen zu kombinieren. Die Zusammensetzung der Szene wird vereinfacht, da eine einzelne Linse mit vielerlei Regionen in der gleichen Art und Weise verarbeitet wird, wie eine Linse mit einer einzelnen Region. Durch Erzeugen einer einzelnen Linse mit vielerlei Regionen wird der Bedarf, jede Region der Linse zusammenzusetzen, individuell eliminiert. Dieses erste Verfahren zum Verbessern der System-Leistungsfähigkeit reduziert die Komplexität des Zusammensetzens einer Szene von O(2n) (exponential) zu O(1) (eine Konstante), wobei n die Anzahl der Linsenregionen darstellt.
  • 27 und 28 illustrieren das erste Verfahren zum Begrenzen des Umfangs einer Linse. Das erste Verfahren ermöglicht einem Anwender eine färbende Linse 2700 zu erzeugen, welche aus drei Rechtecken besteht. Die drei vertikalen Rechtecke 2700, dargestellt in 27, sind spezifiziert, so dass sie einzelne Linsen innerhalb vielerlei Regio nen darstellen und so den Umfang der Operation dessen minimieren, was drei separate Linsen hätten darstellen können. 28 illustriert, wie die Linse 2700 sich zusammensetzt, wenn sie oben auf einem Satz von drei horizontalen Rechtecken 2802 geschichtet ist. Genauer gesagt, sind die sich überlagernden Regionen 2804, 2806 und 2808 zwischen den horizontalen Rechtecken so wie die Linse 2700 gefärbt, gemäß einer spezifizierten Färbung, die in 27 dargestellt ist, unter Verwendung verschiedener Füllmuster. Falls der Umfang der Operation der Linse 2700 nicht begrenzt wurde durch Spezifizieren einer einzelnen Linse, würde die Zusammensetzung der Szene, dargestellt in 28 es erfordert haben, dass die drei horizontalen Rechtecke sooft kopiert worden wären, wie das Hintergrundrechteck 302 in dem Beispiel, wie oben in den 4, 5 und 9 bis 17 illustriert, kopiert wurde anstelle von einmal (nämlich 8 bzw. 23).
  • Ein zweites Verfahren zum Begrenzen des Umfangs der Operation einer Linse ermöglicht es einem Anwender, Linsenklassen zu definieren, welche eine von drei verschiedenen umfangsbegrenzenden Operationen aufweisen. Unter Verwendung des Gruppierungsmenüs 2632 kann ein Anwender eine aus einer Vielzahl von Clusteroptionen auswählen. Die Clusteroption 2634 ermöglicht es einem Anwender, verschiedene Formen als eine einzelne Einheit zu gruppieren. Die Operationen können dann spezifiziert werden auf der einzelnen Einheit als ein Ganzes. Die schneidende Clusteroption 2642 erzeugt eine einzelne Einheit, schneidet aber auch die Formen, welche die einzelne Einheit bis zum Auswurf der letzten Form erstellen, gefolgt vom Zeichnen der begrenzenden Muster der letzten Form.
  • Diese Clusteroptionen wirken auch auf Formen, egal ob sie als Linsen oder nicht spezifiziert sind. Die Gruppen 2632 Menü-Punkte 2636, 2638 und 2634 wirken nur auf eine Gruppierung von Formen, welche zumindest eine Linse enthält.
  • Die Gruppen 2632 Menü-Punkte Linse-in-Cluster 2638 und Linse-aus-Cluster 2640 begrenzen den Umfang einer Gruppierung von Formen auf zwei unterschiedliche Art und Weisen. Der Linse-in&aus-Cluster 2636 erzeugt eine Gruppierung von Formen, wo die Umfang-Regeln sowohl für den Linse-in-Cluster-2638 als auch den Linse-aus-Cluster 2640 gelten. Der Linse-in-Cluster Menü-Punkt 2638 reduziert den Umfang der Operation irgendeiner Linse in einem Cluster von Formen nur durch Wirken der Filterfunktion einer jeden Linse in dem Cluster auf diejenigen Formen, die unterhalb von ihr sortiert sind, welche innerhalb des Clusters sind. Im Gegensatz dazu reduziert der Linse-aus-Cluster Menü-Punkt 2640 den Umfang der Operation einer jeden Linse in einem Cluster von Formen nur durch Anwenden der Filterfunktion einer jeden Linse in dem Cluster auf diejenigen Formen, welche unterhalb von ihr sortiert sind, welche außerhalb dem Cluster liegen.
  • Die 29 bis 32 illustrieren die Art und Weise, in welcher eine Linse 2908 in einer Szene einen limitierten Operations-Umfang auf die unterhalb von ihr geschichteten Formen durch Clusterbildung (clustering) der Linse mit anderen Formen in der Szene haben kann. 29 illustriert eine Szenen-Liste 2900 für die Szene von Formen. Die Formen in der Szenen-Liste 2900 sind geschichtet von hinten nach vorne, wie durch den Pfeil 2901 angezeigt wird. Genauer gesagt, enthält die Szenen-Liste 2900 ein Hintergrundrechteck 2902, eine rechteckige Form 2904, ein Textobjekt 2906, welche das Wort "clustering" darstellt und eine von hinten-nach-vorne-Linse 2908. Die Linse 2908 ist spezfiziert als eine Eigenschaft setzende Linse 2628 unter Verwendung des Anwender-Benutzeroberflächen-Werkzeuges 128 (dargestellt in 26). Eine Eigenschaft setzende Linse kann die Füllfarbe von Formen, geschichtet unterhalb der Linse verändern, wie auch die Hintergrundfarbe des Hintergrundrechtecks geschichtet unterhalb der Linse neben anderen Eigenschaften. Die Füllfarbe der Hintergrundfarben-Eigenschaften wird gesetzt durch die Füllfarbe 2606 und die Hintergrundfarbe 2614, jeweils aus dem Eigenschaften-Menü 2604.
  • 30 illustriert die Szenen-Liste 2900 geschichtet in der Von-Hinten-Nach-Vorne-Richtung 2901. Anders als in 29, welches die Formen der Szene angeordnet in einem Baum illustriert, illustriert 30 jede der Formen in der Szenen-Liste 2900, wie sie übereinander geschichtet erscheinen. Darüber hinaus illustriert 30 einen Linsencluster 3002. Formen, die als in dem Linsencluster 3002 identifiziert werden, schließen das Textobjekt 2906 und die Linse 2908 ein. Wie oben dargestellt, sind drei unterschiedliche Typen von Linsenclustern aus dem Gruppenmenü 2632 auswählbar. Die 31 und 32 illustrieren die Szenen-Liste 2900, dargestellt in 30 zusammengesetzt als ein Linse-in&aus-Cluster 2636 bzw. als ein Linsen-in-Cluster 2638, wie entlang der Sichtlinie 30-30 zu sehen ist. In 31 und 32 setzt sich die Linse 2908 aus zwei verschiedenen Musterungen zusammen: einer klaren Musterung, welche durch die Referenz-Nummer 3104 identifiziert wird; und einem horizontales Streifenmuster, welches durch die Referenz-Nummer 3102 identifiziert wird. Die klare Musterung 3104 identifiziert diejenigen Flächen, wo die Linse 2908 die Füllfarbe der Objekte geschichtet unter der Linse in der Szene modfiziert. Das horizontal gestreifte Muster 3102 identifiziert diejenigen Flächen, wo die Linse 2908 die Hintergrundfarbe der Szene modifiziert.
  • Genauer gesagt, Illustriert die 31, wie die Szenen-Liste 2900 sich als ein Linse-in&aus-Cluster 2636, welcher auswählbar ist unter dem Gruppen-Punkt-Menü 2632, zusammensetzt. Wie oben dargestellt, ist der Arbeitsumfang einer Linse nicht limitiert, wenn eine Linse als Linse-in&aus-Cluster 2636 zusammengesetzt ist. Wenn die Szenen-Liste 2900 sich zusammensetzt, arbeitet die Linse 2908 mit Wirkung sowohl auf das Textobjekt 2906 als auch die rechtwinklige Form 2904, da ein Linse-in&aus-Cluster auf Formen sowohl innerhalb als auch außerhalb des Clusters 3002 wirkt. Folglich werden die Füllfarbe der Teile des Textobjekts 2906 und die rechtwinklige Form 2904 positioniert unter der Linse in Übereinstimmung mit der Füllfarbe spezifiziert durch die Linse 2908 modifiziert. Diejenigen Teile der Linse, die nur dem Hintergrundrechteck 2902 ausgesetzt sind, werden in Übereinstimmung mit der Hintergrundfarbe spezifiziert durch die Linse 2908 modifiziert.
  • Anders als 31 illustriert 32 den Fall, wo der Cluster 2908 sich als ein Linse-in-Cluster 2638 zusammensetzt. Wie oben dargestellt, modifiziert ein Linsen-in-Cluster 2638 nur diejenigen Formen innerhalb des Clusters 3002. In der Szene, dargestellt in 29 bewirkt dies, dass die Linse 2908 nur auf das Textobjekt 2906 wirkt, und dabei den Effekt, wie in 32 anstelle wie in 31, erzeugt. Wenn die Szenen-Liste 2900 zusammengesetzt wird, wird die Hintergrundfarbe (horizontal gestreiftes Muster 3102) auf diejenigen Flächen unter der Linse angewandt, die keinerlei Formen aufweisen. Wiederum wird, wenn die Füllfarbe, spezifizier durch die Linse 2908, auf diejenigen Formen, welche direkt unterhalb der Linse liegen, angewandt wird, die rechtwinklige Form 2904 ignoriert, da der Cluster 3002 ein Linse-in-Cluster 2638 ist. Folglich wird die klare Füllfarbe 3104 nur auf das Textobjekt 2906 angewandt und wirkt nur auf den „ster"-Teil des Wortes „clustering".
  • Die 33 und 34 illustrieren ein weiteres Beispiel eines Linsen-Clusterings zur Minimierung des Umfangs der Operation einer Linse. 34 illustriert eine Szenen-Liste 3300 zusammengesetzt, wie sie entlang der Sichtlinie 33-33 in 33 zu sehen ist. 33 illustriert die Szenen-Liste 3300 sortiert in einer Von-Hinten-Nach-Vorne-Reihenfolge in der Richtung des Pfeils 3302. Die Formen, welche die Szene 3300 zusammensetzen, enthalten ein Hintergrundrechteck 3304 mit einer weißen Füllung, ein Rechteck 3306 mit einer gescheckten Musterung-Füllung, ein erstes horizontales Rechteck 3308 mit nach links geneigten Füll-Linien, ein zweites horizontales Rechteck 3308 mit nach rechts geneigten Füll-Linien, eine erste Linse 3312 und eine zweite Linse 3314. Die erste Linse 3312 weist eine nach links geneigte Füll-Farbe und die zweite Linse 3314 weist eine nach rechts geneigte Füllfarbe auf.
  • Wie in 33 gezeigt, sind die erste Eigenschaft einstellende Linse 3312 und die zweite Eigenschaft einstellende Linse 3314 in einem Linse-aus-Cluster 3316 gruppiert. Wie oben definiert, berücksichtigt eine Linse, welche einen Teil eines Linse-aus-Clusters ausbildet, nicht diejenigen Formen in einer Szenen-Liste, die unter ihr in dem Cluster geschichtet sind, wenn eine Szene zusammengesetzt wird. Der Zweck des Linse-aus-Clusters ist es, den Umfang der Operation einer jeden Linse zu minimieren. Genauer gesagt, fügt, wenn sich die Szene 3300 zusammensetzt, aufgrund des Linse-aus-Clusters 3316 die zweite Eigenschaft-einstellende Linse 3314 nicht die erste Eigenschaft-einstellende Linse 3312 zu ihrer Unter-Liste hinzu. Als ein Ergebnis, muss, wenn die Unter-Liste der Eigenschaft-einstellenden Linse 3314 eingefroren wird, die Unter-Liste der ersten Filterlinse 3312 nicht eingefroren werden. Dies macht die letztendliche Zusammensetzung und das Erzeugen der Szenen-Liste 3300 computertechnisch effizienter.
  • Darüber hinaus sind die erste Eigenschaft-setzende Linse 3312, die zweite Eigenschaftsetzende Linse 3314, das erste horizontale Rechteck 3308 und das zweite horizontale Rechteck 3310 in einem Linse-in-Cluster 3318 gruppiert. Wie oben dargestellt, berücksichtigt eine Linse, welche einen Teil eines Linse-in-Clusters ausbildet, nur diejenigen Formen, welche innerhalb des Clusters und unterhalb von ihr geschichtet sind, wenn die Szene zusammengesetzt wird. Folglich ist, wenn die Linse 3312 und 3314 sich zusammensetzen, das Rechteck 3306 nicht in einer Form enthalten, die in der Unter-Liste von irgendeiner der Linsen liegt. Dies bewirkt, dass die Szenen-Liste 3300 sich wie in 34 mit den Linsen 3312 und 3314 zusammensetzt, welche diejenigen Teile mit der Hintergrundfarbe einer jeden Linse einfärben, die nur das Rechteck 3306 überlappen.
  • G.2 Abgrenzungs-Box-Ausschuss
  • Zusätzlich zum anwenderdefinierten Umfang, wie oben dargestellt, kann das bilddarstellende Programm 122 einen Abgrenzungs-Box-Ausschuss erzeugen, um den Arbeitsumfang einer Linse zu minimieren. Allgemein gesprochen muss, wenn eine Linse ihre innere Erscheinung an einem gegebenen Zeitpunkt berechnet, sie nicht immer alle der Formen sortiert unter ihr in der Szenen-Liste verarbeiten. Stattdessen kann das Innere einer Linse mit nur denjenigen Formen berechnet werden in der Szenen-Liste, welche zu ihrer Erscheinung beitragen. In vielen Fällen kann das bilddarstellende zu ihrer Erscheinung beitragen. In vielen Fällen kann das bilddarstellende Programm 122 versuchen, einige Formen auszuschließen, welche die Erscheinung des Inneren einer Linse nicht beeinflussen. Dies kann stark die Erstellungs-Leistung verbessern, wenn eine Szene zusammengesetzt wird, insbesondere falls einige der Formen, welche ausgeschlossen werden, selbst wiederum Linsen sind.
  • Es ist wichtig festzuhalten, dass der Satz von Formen, welcher durch die Linsen sichtbar ist, nicht notwendigerweise limitiert ist auf diejenigen Formen, welche direkt unterhalb der Linse liegen. Beispielsweise kann eine Translationslinse einige Formen zeigen, welche seitlich zur Linse versetzt liegen. Dergleichen kann eine Linse, welche Objekte schrumpfen lässt (Skalierungsfaktor weniger als 1,0) einen Teil oder die Gesamtheit des ganzen Bildes einbringen. Als ein Ergebnis kann Abgrenzungs-Box-Ausschuss in mindestens drei verschiedenen Fällen durch das bilddarstellende Programm 122 durchgeführt werden, um automatisch Formen vom Arbeitsumfang einer Linse zu entfernen, wenn die Linse zusammengesetzt wird. In einem ersten Fall von Linsen, die weder Formen transformieren noch verändern, entfernt das bilddarstellende Programm 122 während der Zusammensetzung der Linse alle Formen, die gänzlich außerhalb des Zeichen-Rechtecks (oder der Region) der Linse liegen aus der Betrachtung. In einem zweiten Fall von Linsen, welche eine Affine-Transformation (Translation, Rotation, Skalierung oder Kippen) auf alle Formen als eine Gruppe durchführen, wendet das bilddarstellende Programm 122 die Umkehrung der affinen Transformation auf diejenigen Formen in der Szenen-Liste unter der Linse an. Das Zeichenrechteck der resultierenden Form wird dann verwendet, um den Arbeitsumfang der Linse, wie im ersten Fall oben dargestellt, zu limitieren. In einem dritten Fall von Linsen, welche Formen hinzufügen, löschen oder verändern, weist das bilddarstellende Programm 122 eine einzigartige Prozedur zum Berechnen einer Abgrenzungs-Box für jede Linse auf. Beispielsweise sollte eine Linse, welche Tropfen-Schatten unter alle Formen hinzufügt, jeden Tropfen-Schatten zeigen, welcher unter der Linse erscheint, selbst falls die Form, welche den Tropfen-Schatten erzeugt, nicht selbst unter der Linse liegt. Dies kann erzielt werden durch Beginnen mit der Abgrenzungs-Box der Tropfen-Schatten-Linse und anschließender Anreicherung um das Inverse der Tropfen-Schatten-Verteilung.
  • H. Aufnahme in den Cache-Speicher
  • Eine Szenen-Liste wird wiedergezeichnet zu jeder Zeit, zu der ein Anwender entweder eine Linse in der Szene repositioniert oder die Form unter einer Linse in der Szene repo sitioniert. In bestimmten Situationen verändert sich die zusammengesetzte Szene nicht an allen Stellen zu jeder Zeit, zu der die Szene gezeichnet wird. In diesen Situationen ist es möglich, die Ausgabe von einigen der Berechnungen wiederzuverwenden, welche zur früheren Zeit, zu der die Szene gezeichnet wurde, durchgeführt wurden. Das bilddarstellende Programm 122 verwendet frühere Ausgaben durch Speichern der zusammengesetzten Szene, erzeugt durch jede Linse, zusammen mit einer Zusammenfassung der Eingabe der nicht zusammengesetzten Szene im Speicher 112 (dargestellt in 1).
  • Die Aufnahme in den Cache-Speicher kann oft verwendet werden, selbst wenn eine Line sich innerhalb einer Szene bewegt hat. Beispielsweise, falls eine farbfüllende Linse sich, seit sie zuletzt gezeichnet worden war, bewegt hat, aber jedoch noch immer oberhalb der gleichen Objekte liegt (und diese Objekte unverändert sind), dann bleibt ihre zusammengesetzte Szene (gefärbte Versionen dieser Objekte) unverändert. Nur die Schneide-Region, die auf die Formen in der Szene angewandt werden muss, hat sich verändert. Folglich kann das frühere Resultat der Szenen-von-Szenen-Prozedur, dargestellt in Tabelle 5 verwendet werden, anstelle der Berechnung einer neuen.
  • Im allgemeinen berücksichtigt das bilddarstellende Programm 122 den Typ der Linse und entscheidet auf einer Linsen-um-Linsen-Basis, wo das in den Cache-Speicher-Aufnehmen für eine gegebene Linse verwendet werden sollte. In dem Fall einer Linse, welche affine Transformationen durchführt, wie z.B. einer Vergrößerungslinse, kann die frühere Szene verwendet werden, solange als sie, basierend auf einer neuen Position des Ursprungs (Zentrum der Skalierung oder Rotation) translatiert wird. Im Gegensatz dazu müssen Linsen erneut zusammengesetzt werden, wann immer sie sich bewegen. Beispielsweise erzeugt eine Linse, welche Formen in nicht linearer Art und Weise verzerrt, eine unterschiedliche Ausgabe an jeder Position. In einem Beispiel wird das in den Cache-Speicher aufnehmen aufrechterhalten durch Bestimmen, wann die Eingaben für eine Linse (d.h. die Parameter, welche eine Linse definieren) die gleichen, wie frühere Eingaben sind (d.h. Parameter).
  • Um die Akkuranz des in dem Cache-Speicher-Aufnehmens zu gewährleisten, aktualisiert das bilddarstellende Programm 122 einen Zeitstempel in einer Szene zu jeder Zeit, zu der eine Bearbeitung durch einen Anwender durchgeführt wurde.
  • In einer Ausführungsform wird angenommen, dass Aktionen des Anwenders, wie z.B. Ziehen (drag) und Gummiband-Erzeugen (rubberbanding) nicht als Bearbeitungen ge zählt werden, bis sie vollständig sind. Unter dieser Annahme kann eine grobe Version des in dem Cache-Speicher-Aufnehmens durchgeführt werden, durch Assoziieren des szenenweiten Zeit die nicht zusammengesetzte Szene mit der in den Cache-Speicher aufgenommenen Linsenausgabe. Falls der Zeitstempel der Szene sich nicht verändert hat seit die Linse zuletzt ihre Ausgabe berechnet hat, sich die Linsenparameter nicht verändert haben, und der Typ der Linse kompatibel für das in den Cache-Speicher-Aufnehmen ist, dann kann die in den Cache-Speicher aufgenommene Szene verwendet werden.
  • In einer alternativen Ausführungsform wird ein aggressiveres in den Cache-Speicher-Aufnahmeschema verwendet, welches jedes Objekt in der Szene mit einem Zeitstempel versieht. In dieser alternativen Ausführungsform kann, solange keine Zeitstempel von Stempeln unter der Linse sich verändern, die gecachte Szene verwendet werden.
  • I. Schlussfolgerung
  • Um zu rekapitulieren, die vorliegende Erfindung betrifft ein computergestütztes zweidimensionales bilddarstellendes System zum Zusammensetzen von geschichteten synthetischen Grafikfiltern oder Linsen als Komponenten einer Szene. In solchen bilddarstellenden Systemen erzeugen Anwender-Szenen durch Schichten von abgegrenzten geometrischen Formen und Spezifizieren von grafischen Eigenschaften, wie z.B. Linienbreite, Füllfarbe und Transparenz. Unter den meisten Umständen können die grafischen Eigenschaften von begrenzten geometrischen Formen nur auf die Gesamtheit der Formen angewandt werden. Um visuelle Effekte zu erzeugen, welche offensichtliche Formengrenzen überschreiten, muss der Anwender typischerweise Extraformen oder Grenzen in eine Szene einbringen. Eine Linse jedoch verändert die Erscheinungsform von Formen, betrachtet durch ihre innere begrenzte Region, so dass das räumliche Ausmaß des Effekts unabhängig von den Grenzen dieser Formen ist. In vorteilhafter Art und Weise können Linsen geschichtet in einer Szene zusammengesetzt werden, um einen großen Bereich von räumlich begrenzten visuellen Effekten zu erzeugen, welche die Erscheinung von gefärbtem Glas, optischen Linsen, Wasser, Leuchten, Webungen, Schatten, Röntgenstrahlen, Schottenmustern und dreidimensionalen Tiefen einschließen.
  • Das System zum Zusammensetzen geschichteter synthetischer grafischer Filter kann fertig in Software implementiert werden unter Verwendung von Software-Entwicklungs-Umgebungen, welche transportabler Quellcodes zur Verfügung stellen, die auf einer Vielzahl von Hardware-Plattformen verwendet werden können. Alternativ kann das offenbarte System teilweise oder vollständig in Hardware implementiert werden unter Verwendung von logischen Standard-Schaltkreisen. Ob Software oder Hardware verwendet wird, um das System zu implementieren, variiert in Abhängigkeit von den Geschwindigkeits-und Effizienz-Anforderungen des Systems und auch von der speziellen Funktion und den speziellen Software-oder Hardware-Systemen und dem speziellen Mikroprozessor-oder Mikrocomputer-System, das eingesetzt wird. Das System jedoch kann leicht entwickelt werden von den Fachleuten auf den anzuwendenden Gebieten, ohne übermäßige Experiment-Durchführung aus der funktionalen Beschreibung, welche hier zur Verfügung gestellt wird zusammen mit einem allgemeinen Wissen im Bereich der Computertechnologien.
  • Die Erfindung wurde unter Verweis auf eine spezielle Ausführungsform beschrieben. Die Ausführungsformen sind jedoch Beispiele und der Umfang der Erfindung ist durch die beigefügten Ansprüche definiert.

Claims (10)

  1. Ein Verfahren zum Vereinfachen der Zusammensetzung eines Bildes einer Szene mit einem computergestützten zweidimensionalen bilddarstellenden System umfassend die folgenden Schritte von: Definieren der Szene mit Formen, welche in einer Liste in einem Speicher geschichtet sind; Spezifizieren einer der Formen in der Liste als eine Linse mit einer Filter-Funktion; wobei die Filter-Funktion der Linse einen Operations-Umfang aufweist, welcher diejenigen Formen in der Liste von Formen einschließt, welche unterhalb der Linse geschichtet sind; Begrenzen des Operations-Umfangs der Linse, so dass zumindest eine der Formen geschichtet unterhalb der Linse davor ausgeschlossen wird, durch die Filter-Funktion der Linse modifiziert zu werden; durch Definieren eines Clusters von Formen, welcher die Linse in der Liste von Formen enthält und ausgewählte Formen in der Liste von Formen geschichtet unterhalb der Linse; und Zusammensetzen des Bildes der Szene mit dem begrenzten Operations-Umfang der Linse definiert durch den Cluster von Formen durch: Berechnen (620) einer Unter-Liste von Formen für die Linse: wobei die Unter-Liste von Formen Formen in der Liste von Formen identifiziert, auf welche die Filter-Funktion in der Linse angewandt werden kann; dadurch gekennzeichnet, dass besagter Zusammensetzungsschritt des weiteren umfasst: Verwendung der Unter-Liste zum Einfrieren (642) der Linse durch Ersetzen einer jeden Form spezifiziert als eine Linse in der Unter-Liste in Übereinstimmung mit ihrer Filter-Funktion mit Formen, welche keine Linsen sind, sondern stattdessen unabhängig von den anderen Formen ausgebildet werden; und Anwenden (643) der Filter-Funktion der Linse auf jede Form in der Unter-Liste von Formen.
  2. Das Verfahren gemäß Anspruch 1, worin besagter begrenzender Schritt den Operations-Umfang der Linse durch Ausschließen derjenigen Formen außerhalb des Clusters von Formen davor begrenzt, dass sie durch die Filter-Funktion und der Linse modifiziert werden.
  3. Das Verfahren gemäß Anspruch 1, worin besagter begrenzender Schritt den Arbeitsumfang der Linse durch Ausschließen derjenigen Formen innerhalb des Clusters von Formen davor begrenzt, dass sie durch die Filter-Funktion der Linse modifiziert werden.
  4. Das Verfahren gemäß Anspruch 1, worin besagter limitierender Schritt desweiteren den Schritt des Kombinierens mehrerer nicht-überlagernder Linsen zu einer einzigen Linse mit multiplen Regionen umfasst.
  5. Das Verfahren gemäß Anspruch 1, worin besagter spezifizierender Schritt die Filter-Funktion so spezifiziert, dass sie auf eine begrenzte Region der Linse wirkt.
  6. Ein computergestütztes zweidimensionales bilddarstellendes System zum Vereinfachen der Zusammensetzung eines Bildes einer Szene umfassend: eine Benutzeroberfläche (128) zum Definieren der Szene mit Formen, welche in einer Liste geschichtet sind, in einem Speicher (112); ein Benutzer-Eingabegerät (119) zum Spezifizieren einer der Formen in der Liste als eine Linse mit einer Filter-Funktion; wobei die Filter-Funktion der Linse einen Operations-Umfang aufweist, welcher diejenigen Formen in der Liste von Formen beschichtet unterhalb der Linse einschließt; und einen Prozessor (110) zum begrenzen des Operations-Umfangs der Linse, so dass zumindest die Formen geschichtet unterhalb der Linse davor ausschließt, durch die Filter-Funktion der Linse modifiziert zu werden und zwar durch Definieren eines Clusters von Formen, welche die Linse in der Liste von Formen einschließt sowie ausgewählte Formen in der Liste von Formen geschichtet unterhalb der Linse; wobei besagter Prozessor das Bild der Szene mit dem begrenzten Operations-Umfang für die Linse definiert durch den Cluster von Formen zusammensetzt durch: Berechnen (620) einer Unter-Liste von Formen für die Linse; wobei die Unter-Liste von Formen Formen in der Liste von Formen identifiziert, auf welchem die Filter-Funktion der Linse wirken kann; Verwenden der Unter-Liste zum Einfrieren (642) der Linse durch Ersetzen einer jeden Form spezifiziert als eine Linse in der Unter-Liste in Übereinstimmung mit ihrer Filter-Funktion durch Formen, welche keine Linsen sind, sondern stattdessen unabhängig von den anderen Formen ausgebildet werden; und Anwenden (643) der Filter-Funktion der Linse auf jede Form in der Unter-Liste von Formen.
  7. Das computergestützte bilddarstellende System gemäß Anspruch 6, wobei besagter Prozessor (110) den Operations-Umfang der Linse durch Ausschließen derjenigen Formen außerhalb des Clusters von Formen davor begrenzt, dass sie durch die Filter-Funktion der Linse modifiziert werden.
  8. Das computergestützte bilddarstellende System gemäß Anspruch 6, wobei besagter Prozessor (110) den Operations-Umfang der Linse durch Ausschließen derjenigen Formen innerhalb des Clusters von Formen davor begrenzt, dass sie durch die Filter-Funktion der Linse modifiziert werden.
  9. Das computergestützte bilddarstellende System gemäß Anspruch 6, wobei besagter Prozessor (110) des weiteren ein Mittel zum Zusammensetzen verschiedener nicht-überlagernder Linsen zu einer einzelnen Linse mit multiplen Regionen umfasst.
  10. Das computergestützte bilddarstellende System gemäß Anspruch 6, wobei besagter Prozessor diejenigen Formen in der Linse ausschließt, welche keinen Effekt auf das Erscheinungsbild der Linse aufweisen.
DE69830766T 1997-06-27 1998-04-30 Verfahren und Vorrichtung zum Bestimmen des Anwendungsumfangs geschichteter synthetischer graphischer Filter Expired - Lifetime DE69830766T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US883794 1986-07-08
US08/883,794 US6043824A (en) 1997-06-27 1997-06-27 Composing layered synthetic graphics filters with limited scopes of operation

Publications (2)

Publication Number Publication Date
DE69830766D1 DE69830766D1 (de) 2005-08-11
DE69830766T2 true DE69830766T2 (de) 2005-12-22

Family

ID=25383354

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69830766T Expired - Lifetime DE69830766T2 (de) 1997-06-27 1998-04-30 Verfahren und Vorrichtung zum Bestimmen des Anwendungsumfangs geschichteter synthetischer graphischer Filter

Country Status (5)

Country Link
US (1) US6043824A (de)
EP (1) EP0887770B1 (de)
JP (1) JP4100765B2 (de)
CA (1) CA2233129C (de)
DE (1) DE69830766T2 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3560447B2 (ja) * 1997-07-28 2004-09-02 シャープ株式会社 画像処理装置
EP1717679B1 (de) * 1998-01-26 2016-09-21 Apple Inc. Verfahren zur Integration von manuellen Eingaben
JPH11296666A (ja) * 1998-02-16 1999-10-29 Sony Corp 画像接続方法、画像接続装置、並びに、画像接続処理プログラムが格納された記録媒体
US6304262B1 (en) 1998-07-21 2001-10-16 Raytheon Company Information security analysis system
US6628836B1 (en) * 1999-10-05 2003-09-30 Hewlett-Packard Development Company, L.P. Sort middle, screen space, graphics geometry compression through redundancy elimination
US6894704B1 (en) 1999-11-22 2005-05-17 Adobe Systems Incorporated Processing complex regions of illustration artwork
US6720977B1 (en) * 1999-11-22 2004-04-13 Adobe Systems Incorporated Processing illustration artwork
US8665293B2 (en) * 2001-05-16 2014-03-04 Autodesk, Inc. Automatic draw order
US7439975B2 (en) 2001-09-27 2008-10-21 International Business Machines Corporation Method and system for producing dynamically determined drop shadows in a three-dimensional graphical user interface
US7602991B2 (en) * 2001-10-24 2009-10-13 Nik Software, Inc. User definable image reference regions
JP2005527880A (ja) 2001-10-24 2005-09-15 ニック マルチメディア インク ユーザ定義可能な画像参照ポイント
US7181687B2 (en) * 2002-06-27 2007-02-20 Adobe Systems Incorporated Previewing the effects of flattening transparency
US20040083430A1 (en) * 2002-10-29 2004-04-29 Boonen Paul J. J. Method and apparatus to process portable document format data containing transparency
JP2007516630A (ja) * 2003-06-23 2007-06-21 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ シーンを合成する方法及び復号器
US12118659B2 (en) * 2022-11-22 2024-10-15 Adobe Inc. Efficient rendering of clipping objects

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5133052A (en) * 1988-08-04 1992-07-21 Xerox Corporation Interactive graphical search and replace utility for computer-resident synthetic graphic image editors
US5341466A (en) * 1991-05-09 1994-08-23 New York University Fractal computer user centerface with zooming capability
US5283560A (en) * 1991-06-25 1994-02-01 Digital Equipment Corporation Computer system and method for displaying images with superimposed partially transparent menus
US5357603A (en) * 1992-06-15 1994-10-18 Microsoft Corporation Method and system for changing a shape type while maintaining existing graphic characteristics
US5425137A (en) * 1993-01-26 1995-06-13 Us Jvc Corporation System and method for processing images using computer-implemented software objects representing lenses
US5479603A (en) * 1993-07-21 1995-12-26 Xerox Corporation Method and apparatus for producing a composite second image in the spatial context of a first image
US5467441A (en) * 1993-07-21 1995-11-14 Xerox Corporation Method for operating on objects in a first image using an object-based model data structure to produce a second contextual image having added, replaced or deleted objects
US5581670A (en) * 1993-07-21 1996-12-03 Xerox Corporation User interface having movable sheet with click-through tools
US5596690A (en) * 1993-07-21 1997-01-21 Xerox Corporation Method and apparatus for operating on an object-based model data structure to produce a second image in the spatial context of a first image
JP3697276B2 (ja) * 1993-10-27 2005-09-21 ゼロックス コーポレイション 画像ディスプレイ方法及び画像ディスプレイ装置並びに画像スケーリング方法
US5566287A (en) * 1994-06-28 1996-10-15 Thomson Consumer Electronics, Inc. Method for asynchronously maintaining an image on a display device

Also Published As

Publication number Publication date
US6043824A (en) 2000-03-28
DE69830766D1 (de) 2005-08-11
EP0887770A3 (de) 2000-04-19
CA2233129C (en) 2002-02-05
JPH1166286A (ja) 1999-03-09
JP4100765B2 (ja) 2008-06-11
EP0887770A2 (de) 1998-12-30
CA2233129A1 (en) 1998-12-27
EP0887770B1 (de) 2005-07-06

Similar Documents

Publication Publication Date Title
DE69830767T2 (de) Verfahren und Vorrichtung zum Zusammensetzen geschichteter synthetischer graphischer Filter
DE69418932T2 (de) Verfahren zur automatischen Bestimmung von Farbtrennflächen zur Korrektur von Fehlüberdeckungen beim Mehrplatten-Farbdruck
DE69428491T2 (de) Bildlinse
DE69807479T2 (de) Erzeugung eines Bildes eines dreidimensionalen Objekts
DE69434370T2 (de) Strukturiertes Bildformat zur Beschreibung eines Komplexfarbrasterbilds
DE69418924T2 (de) Automatische Bestimmung von Trennlinien zwischen polygonalen Strukturelementen verschiedener Farbe innerhalb eines ebenen Bildes
DE10296401B4 (de) Verbund-Rendering von 3-D-Graphikobjekten
DE69418928T2 (de) Korrektur von Druckplatten-Fehlüberdeckungen beim Farbdruck von in einer Seitenbeschreibungssprache definierten Bildern
DE69534558T2 (de) Effizientes Verfahren, Gerät und Rechnerprogramm zur Auswertung graphischer Programmiersprache
DE69224499T2 (de) Dreidimensionale graphische Verarbeitung
DE69830766T2 (de) Verfahren und Vorrichtung zum Bestimmen des Anwendungsumfangs geschichteter synthetischer graphischer Filter
DE3854543T2 (de) Prioritätsverwaltung eines Tiefendatenpuffers für Echtzeitrechnersysteme zur Bilderzeugung.
DE69831385T2 (de) Verfahren und Anordnung zum Mischen von graphischen Objekten mit Planarkarten
DE3689271T2 (de) Verfahren zur Bildanzeige.
DE69431294T2 (de) Bildverarbeitungsverfahren und -system
DE69811849T2 (de) Verfahren und gerät zur interpolation von attributen bei 3d-grafiken
DE69715106T2 (de) Anti-Alias-Unterpixel-Zeichenpositionierung mit Grauwertmaskierungstechniken
DE68927471T2 (de) Verfahren zur Schattierung eines graphischen Bildes
DE69632578T2 (de) Computer-grafiksystem zum schaffen und verbessern von texturabbildungssystemen
DE69629447T2 (de) Benutzerinteraktion bei Bildern mit strukturiertem Bildformat
DE69526289T2 (de) Optimierungsverfahren für effiziente Bilderzeugung
DE19528596C2 (de) Verfahren und Vorrichtung zur Kolorierunterstützung
DE10202693A1 (de) Objektbasierte Anzeigeeinrichtung zur Abtastbereichsauswahl
DE69514820T2 (de) Verfahren zum steuern des levels von details in einer rechnergenerierten bildschirmanzeige einer komplexen struktur
EP2528042A1 (de) Verfahren und Vorrichtung zum Re-Meshing von 3D-Polygonmodellen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition