DE3705124A1 - Anzeigeprozessor und videoverarbeitungsuntersystem fuer computergraphik - Google Patents

Anzeigeprozessor und videoverarbeitungsuntersystem fuer computergraphik

Info

Publication number
DE3705124A1
DE3705124A1 DE19873705124 DE3705124A DE3705124A1 DE 3705124 A1 DE3705124 A1 DE 3705124A1 DE 19873705124 DE19873705124 DE 19873705124 DE 3705124 A DE3705124 A DE 3705124A DE 3705124 A1 DE3705124 A1 DE 3705124A1
Authority
DE
Germany
Prior art keywords
data
register
scene
intensity
polygon
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.)
Ceased
Application number
DE19873705124
Other languages
English (en)
Inventor
David Evan Orton
Gregory Neal Stock
William Arthur Kelly
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.)
STAR TECHNOLOGIES, INC., STERLING, VA., US
Original Assignee
General Electric Co
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 General Electric Co filed Critical General Electric Co
Publication of DE3705124A1 publication Critical patent/DE3705124A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Digital Computer Display Output (AREA)

Description

Die Synthese von sichtbaren Szenen durch die Verwendung von Computern (Computergraphik) ist ein wachsender Bereich der Computerwissenschaft. Es gibt zahllose Verwendungszwecke für Computergraphik, beispielsweise computerunterstützte Entwicklung (CAD), die Synthese von Demonstrationskarten, die Erzeugung von Titeln und anderen graphischen Anzeigen für den Fernsehgebrauch und die Simulation von physikalischen Ereignissen.
Zum Erleichtern der Erzeugung einer ein Objekt oder Objekte enthaltenden Szene durch Computer besteht normalerweise der erste Schritt darin, dreidimensionale Beschreibungen der anzuzeigenden Objekte herzustellen und in mathematischer Form in einer Datenbasis zu speichern. Die Daten werden dann verarbeitet und manipuliert, so daß die Szene auf einem Bildschirm angezeigt werden kann.
Die Verarbeitung der Information aus der Datenbasis kann so aufgefaßt werden, daß sie fünf Grundfunktionen beinhaltet:
  • 1. Zerlegen der Objekte (mathematisch) in kleine Abschnitte, die bequem gehandhabt werden können. Diese Abschnitte sind üblicherweise ebene Polygone, von denen jedes einen Teil der Oberfläche eines anzuzeigenden Objekts darstellt.
  • 2. Entnehmen von Daten, die einem Abschnitt eines Objekts entsprechen, aus der Datenbasis;
  • 3. Umformen der dreidimensionalen Beschreibung in eine zweidimensionale Beschreibung in "Bildschirm"-Koordinaten;
  • 4. Wählen der Bildelemente eines Bildschirms, die aktiviert werden müssen, um den Abschnitt anzuzeigen, und Festlegen von deren Farbe und Intensität; und
  • 5. Feststellen, welche Bereiche des Abschnitts in der Szene sichtbar sind, und Anzeigen dieser Bereiche.
Die Wiederholung dieses Verfahrens für sämtliche Abschnitte von sämtlichen Objekten in der Szene wird eine Anzeige ergeben, die die gewünschte Szene darstellt.
Die Erfindung befaßt sich mit den beiden letztgenannten Verfahren. Darüber hinaus befaßt sich die Erfindung mit dem Zeichnen von Vektoren oder Strecken auf einem Bildschirm, der andere Objekte anzeigen kann oder auch nicht anzeigen kann.
Bekannte Anzeigeprozessoren sind in der Geschwindigkeit, mit der Daten verarbeitet und angezeigt werden, beschränkt. Die Beschränkung ist in gewissem Maße auf die Tendenz im Stand der Technik zurückzuführen, Mehrzweckcomputer zu benutzen, die durch Software gesteuert werden, welche die Algorithmen zum Ausführen der erforderlichen Operationen enthält. Das erfordert notwendigerweise, daß die Berechnungen seriell ausgeführt werden, so daß das Endergebnis nicht so schnell wie gewünscht erzielt werden kann.
Es ist demgemäß Aufgabe der Erfindung, einen verbesserten Anzeigeprozessor für ein Graphikverarbeitungssystem zu schaffen, der gegenüber dem Stand der Technik eine erheblich verbesserte Verarbeitungsgeschwindigkeit aufweist.
In dem Anzeigeprozessor nach der Erfindung sind zweckorientierte Hardware und Pipeline-Architektur vorgesehen, so daß viele der benötigten Berechnungen parallel ausgeführt werden, was zu einer beträchtlichen Steigerung der Arbeitsgeschwindigkeit führt. Darüber hinaus werden besondere wirksame Algorithmen benutzt, wodurch die Geschwindigkeit weiter verbessert wird.
Bei der Erfindung wird eine Rasterabtastanzeige benutzt, im Gegensatz zu einer Anzeige mit beliebiger Abtastung oder mit Punktaufzeichnung. Die Erfindung ist zur Verwendung in Verbindung mit einer externen Datenbasis und einem Geometrieprozessor vorgesehen, die Daten in Form von Datenpaketen liefern, von denen jedes ein ebenes Polygon oder eine Strecke in einem dreidimensionalen Koordinatensystem beschreibt. Der Ursprung des Koordinatensystems ist in der gegenwärtig bevorzugten Ausführungsform des Systems die obere linke Ecke des Schirms, bei Bedarf könnten aber auch andere Stellen benutzt werden. Ganzzahlige Werte von X beziehen sich auf Bildelementpositionen rechts vom Ursprung, und ganzzahlige Werte von Y beziehen sich auf Rasterliniennummern unterhalb vom oberen Rand. Tiefenwerte Z beziehen sich auf den relativen Abstand hinter dem Schirm.
Wie auf dem Gebiet der Computergraphik üblich wird jedes in der Szene anzuzeigende Objekt in eine Serie von kleinen, nicht notwendigerweise regelmäßigen, ebenen Polygonen zerlegt. Im Falle von komplexen Objekten, wie beispielsweise einem menschlichen Gesicht, werden die Polygone klein genug gemacht und ihnen werden eine derartige Form und Farbe gegeben, daß sie gemeinsam eine zufriedenstellende Darstellung des gewünschten Objekts ergeben. Einfachere Objekte, wie beispielsweise ebene Oberflächen mit ebener Beleuchtung, können durch größere Polygone zufriedenstellend dargestellt werden. Der Anzeigeprozessor nach der Erfindung ist zum Wiedergeben von Darstellungen sowohl von komplexen als auch von einfachen Objekten vorgesehen.
Es gib zwei grundlegende Betriebsarten des Anzeigeprozessors. In einer Betriebsart (als "Polygonausfüllung" bezeichnet) werden Polygone auf dem Bildschirm wiedergegeben, die so positioniert sind, daß die Wirkung von sämtlichen Polygonen gemeinsam eine Darstellung der gewünschten Objekte oder Szene ist. In dieser Betriebsart wird jedes Polygon auf dem Schirm als ein Farbbereich wiedergegeben, der durch keinen kontrastierenden Umriß begrenzt ist. Jedes Polygon ist durch eine gleichmäßige Farbe in seinem Bereich gekennzeichnet, deren Intensität sich je nach der gewünschten Schattierung ändern kann. Die Schattierung wird durch Intensitätsgradienteninformation gesteuert, welche durch einen externen Geometrieprozessor geliefert wird. Die Schattierung eines Polygons kann eben (gleichmäßig) sein oder kann sich über der Oberfläche des Polygons entweder in der X-Richtung oder in der Y-Richtung oder in beiden Richtungen linear verändern.
In einer gegenwärtig bevorzugten Ausführungsform der Erfindung werden Farb- und Intensitätsinformation für jedes Bildelement auf dem Schirm in einer einzelnen 12-Bit-Binärzahl verknüpft, die in einem Bildpuffer gespeichert wird. Die höherwertigen Bits werden benutzt, um Farbe zu bezeichnen, und die niederwertigen Bits werden benutzt, um die Intensität zu bezeichnen. Der Benutzer kann frei bestimmen, wieviel von dem Wort benutzt wird, um Farbe zu bezeichnen, und wieviel benutzt wird, um die Intensität zu bezeichnen. Zum Bilden des kombinierten Wortes werden die Ergebnisse von Intensitätsberechnungen um die Zahl von Bits "rechtsverschoben", die notwendig ist, um sie in die gewünschte Position in dem Wort zu bringen, und dann wird der verschobene Intensitätswert zu der die Farbe bezeichnenden Binärzahl, in der die die Farbe bezeichnenden Bits die höchstwertigen Positionen einnehmen, addiert.
In der Polygonausfüllbetriebsart benutzt der Anzeigeprozessor Daten, die jede Seite eines Polygons festlegen, um "Spannen" zu erzeugen, die Farb- und Intensitätsinformation enthalten, wobei jede "Spanne" Information enthält, die sich auf eine anzuzeigende Rasterzeile bezieht. Nach dem Vergleichen der Tiefenlage des Polygons an jeder Bildelementadresse mit der Tiefe von früher verarbeiteten Polygonen (durch die Verwendung eines Z- oder Tiefenpuffers), wird die Farb- und Intensitätsinformation in den Bildpuffer an der Bildelementadresse nur eingegeben, wenn der Vergleich zeigt, daß das neue Polygon näher bei dem Schirm an diesem Bildelementplatz als irgendeines der früher verarbeiteten Polygone ist. Auf diese Weise werden verborgene Oberflächen von Polygonen beseitigt und nicht angezeigt. Die Polygone, die in der Polygonausfüllbetriebsart benutzt werden, sind nicht notwendigerweise vollflächig, sondern können innere Öffnungen haben. Gemäß der Erfindung brauchen Polygone, die solche Öffnungen oder Ausschnitte haben, nicht speziell verarbeitet zu werden, sondern können auf dieselbe Weise wie normale Polygone gehandhabt werden. Es wird mehr als eine Spanne für jede Rasterlinie erzeugt, die eine Polygonöffnung schneidet, wobei aber der Systembetrieb derselbe bleibt.
In der zweiten Betriebsart, dem sogenannten "Vektorzeichnen", können gerade Strecken auf dem Schirm an gewünschten Stellen gezeichnet werden. Die Betriebsart Vektorzeichnen wird auch zur "Seitenbetonung" benutzt, d. h. zum Begrenzen eines Polygons (oder einer Gruppe von Polygonen) mit einer Linie, deren Farbe von der des Polygons selbst verschieden ist.
Bei der Betriebsart Vektorzeichnen wird Information benutzt, welche die Koordinaten jeder Ecke und die Liniensteigung (in den XY-, XZ- und YZ-Ebenen) festgelegt, um sequentiell die Bildelemente zu adressieren, die zum Zeichnen der Linie aktiviert werden müssen.
Vorkehrungen sind getroffen zum Zeichnen von Vektoren, die ein gestricheltes Aussehen haben. Das Wiederholen einer "Schrift" ("font"), die irgendein gewünschtes Muster von EIN- und AUS-Bildelementen erzeugt, kann bis zu 64 Bildelemente umfassen. Das erfolgt durch die Verwendung eines besonderen Schieberegisters mit einer kontinuierlich umlaufenden Kombination von Einsen und Nullen, die dem gewünschten Muster entspricht. Ein Ausgangssignal des Schieberegisters blockiert das Einschreiben in den Bildpuffer, wenn das Registerausgangssignal in dem "Eins"-Zustand ist. Das Schriftmerkmal kann in Verbindung mit der Polygonausfüllbetriebsart benutzt werden, um den Effekt einer texturierten Oberfläche zu erzeugen.
Ausführungsbeispiele der Erfindung werden im folgenden unter Bezugnahme auf die Zeichnungen näher beschrieben. Es zeigen
Fig. 1 ein vereinfachtes Blockschaltbild eines vollständigen Graphikverarbeitungssystems,
Fig. 2 ein Blockschaltbild des Anzeigeprozessors nach der Erfindung,
Fig. 3A und 3B gemeinsam ein Blockschaltbild des Videoverarbeitungsuntersystems nach der Erfindung,
Fig. 4 ein Beispiel eines Polygons, das bei der Erläuterung der Arbeitsweise der Erfindung in der Polygonausfüllbetriebsart benutzt wird,
Fig. 5 ein Beispiel einer Strecke, die bei der Erläuterung der Arbeitsweise der Erfindung in der Betriebsart "Vektorzeichnen" benutzt wird, und
Fig. 6 ein Blockschaltbild des Schriftmusterregisters und des Schriftlängenzählers nach der Erfindung.
Fig. 1 zeigt ein verallgemeinertes Blockschaltbild eines vollständigen Graphikverarbeitungssystems, das in Verbindung mit dem Anzeigeprozessor nach der Erfindung benutzt werden kann, wobei die Hauptuntersysteme und deren gegenseitige Verbindungen dargestellt sind. Information, die jedes Objekt oder jede Oberfläche innerhalb der anzeigenden Szene beschreibt, wird in das System über eine Benutzerschnittstelle 10 eingegeben, die beispielsweise einen Steuerknüppel, eine Maus, ein Graphiktablett, einen Wählkasten, eine Steuerkugel oder eine alphanumerische Tastatur umfassen kann.
Zum Synthetisieren einer Szene wird die Oberfläche jedes Objekts in der Szene als eine Serie von ebenen Polygonen organisiert, die gemeinsam eine enge Annäherung des Objekts oder der Objekte sind, die angezeigt werden sollen. Daten, die diese Polygone festlegen, sind in einer Datenbasis 11 gespeichert. Wenn die Szene angezeigt werden soll, werden Datenpakete, von denen jedes ein Polygon beschreibt, eines nach dem anderen in einen Geometrieprozessor 13 über einen VME-Datenbus 12 überführt. Während der Geometrieprozessor 13 an einem Datenpaket Berechnungen ausführt, bereitet die Datenbasis 11 die Überführung des nächsten Datenpaketes vor.
Für jedes anzuzeigende Polygon liefert der Geometrieprozessor 13 Daten zu dem Anzeigeprozessor 20 in Rasterkoordinaten, die jede Kante des Polygons festlegen und gewisse Daten beinhalten, die sich auf das Polygon als ganzes beziehen. Diese Daten werden ebenfalls über den VME-Datenbus 12 übertragen. Der Anzeigeprozessor 20 wandelt die empfangenen Ecken- und Polygondaten in Daten um, die die Farbe, die Intensität und die relative Tiefe jedes Bildelements in dem aktiven Raster angeben, speichert die Daten in Bild- und Z-Puffern 22 bzw. 23 und bewirkt schließlich eine Anzeige einer sichtbaren Wiedergabe der Szene auf einer Katodenstrahlröhre 21.
Der Bildpuffer 22 und der Z-Puffer 23 sind herkömmliche Vorrichtungen, die auf dem Gebiet der Computergraphik benutzt werden. In der gegenwärtig bevorzugten Ausführungsform der Erfindung umfaßt der Bildpuffer ein beliebig adressierbares Speicheruntersystem mit 1280 × 1024 Adressen, wobei jede Adresse 12 Bits speichert. Der Z-Puffer hat dieselbe Untersystemgröße, nimmt aber 16 Bits auf.
Es gibt zwei grundlegende Betriebsarten für das Verarbeiten von Daten in dem Anzeigeprozessor, was im folgenden beschrieben wird. Diese Betriebsarten sind das Wiedergeben von Polygonen in Farbe oder "Polygonausfüllen" und das Zeichnen von Wegstrecken oder "Vektorzeichnen". Darüber hinaus ermöglicht eine "Bypass"-Betriebsart, Initialisierungsbefehle zu dem Bildpuffer 22 und dem Z-Puffer 23 zu leiten, um die X- und Y-Adressen zu setzen, die als Startadressen für die Betriebsarten benutzt werden sollen.
Zu Erläuterungszwecken werden im folgenden das Koordinatensystem und die Darstellung in Fig. 4 benutzt. Fig. 4 zeigt zu Erläuterungszwecken ein ebenes Polygon 42, 43, 44, 45, das einem Koordinatengitter überlagert ist. Ein dreieckiges Loch 46, 47, 48 befindet sich im Inneren des Polygons. Das gezeigte Polygon kann eine vollständige Oberfläche an sich oder ein kleiner Abschnitt einer anzuzeigenden komplexen Oberfläche sein. Der Anzeigeprozessor behandelt beide Fälle identisch.
Ein XY-Koordinatensytem, dessen Ursprung sich in der oberen linken Ecke des Bildschirms befindet, wird benutzt. Die Rasterlinien sind nach unten hin nacheinander beziffert, und die Bildelementpositionen sind rechts von dem Ursprung nacheinander beziffert. Eine Bildelementstelle ist durch die Koordinaten der oberen linke Ecke des Quadrats festgelegt, welches das Bildelement enthält. Daher befindet sich das Bildelement, das durch die Schraffur bei 41 dargestellt ist, bei 7,3.
Jede Bildelementadresse (z. B. X t , Y t ) besteht aus einer ganzen Zahl, die durch die höchstwertigen Bits eines 12-Bit-Binärwortes dargestellt wird. Der genaue Wert von X in dem Schnittpunkt einer Seite mit einer Rasterlinie ist jedoch üblicherweise eine ganze Zahl, was durch den Punkt X u in Fig. 4 veranschaulicht ist. In einigen Fällen wird der ganzzahlige Wert einer Größe, wie beispielsweise X u , statt ihres genauen Wertes bei den Berechnungen benutzt, und in diesen Fällen wird eine Unterstreichung benutzt (z. B. X u ), um den ganzzahligen Wert zu bezeichnen. Der ganzzahlige Wert kann erhalten werden, indem einfach das Binärwort für den genauen Wert auf die Zahl von Bits gekürzt wird, die ganze Zahlen darstellen.
Die Seite 42 des Polygons 42, 43, 44 und 45 endigt in zwei Ecken 40 und 49. Ein Satz von Koordinaten X t , Y t und Z t ist durch das Bildelement festgelegt, in welchem sich die obere Ecke 40 befindet, wobei Z t den Abstand des Punkts X t , Y t hinter dem Schirm darstellt. Ein als X u bezeichneter Wert wird ebenfalls definiert als der Wert von X (mit höher Präzision) in dem Schnittpunkt der Seite mit der ersten Rasterlinie, die sie schneidet, d. h. die Rasterlinie Y t + 1, bezeichnet mit Y u .
Ebenso kann gezeigt werden, daß X d die genaue X-Koordinate des Schnittpunkts der Seite 42 mit der Rasterlinie unmittelbar oberhalb der Ecke 49 ist. X b , Y b und Z b sind die Koordinaten des Bildelements, das die Ecke 49 enthält. Die Steigungen der Seite in bezug auf die drei Achsen werden durch die Funktionen dX/dY, dZ/dX und dZ/dY bezeichnet.
Eine weitere Variable, die an der Anzeige beteiligt ist, ist die Intensität, die mit dem Buchstaben S bezeichnet wird. In Abhängigkeit von der gewünschten Schattierung des Polygons kann sich S in bezug auf irgendeine oder sämtliche Achsen verändern, was durch die Funktionen dS/dX, dS/dY und dS/dZ dargestellt wird.
In einer gegenwärtig bevorzugten Ausführungsform der Erfindung werden die Intensitätsberechnungen mit einer 27-Bit- Präzision ausgeführt, damit Abrundungsfehler die Anzeige nicht nachteilig beeinflussen. Diese Präzision ist jedoch für Anzeigezwecke viel höher als notwendig, und weniger Bits werden benutzt, um die Bildelementintensität der Katodenstrahlröhre einzustellen. Die Farb- und Intensitätsinformation für jedes Bildelement sind beide in einem einzelnen 12-Bit-Wort enthalten, das während der Verarbeitung gebildet und in dem Bildpuffer 22 an der Bildelementadresse gespeichert wird. Die Farbe wird durch die höchstwertigen Bits (MSB) angegeben, wobei der Benutzer die Zahl der Bits wählt, die benötigt werden, um die Zahl von gewünschten Farben anzugeben. Die Intensität wird durch die niedrigstwertigen Bits (LSB) angegeben. Zum Erzeugen eines 12-Bit-Wortes, das beide Arten von Informationen enthält, wird zuerst ein 12-Bit-Farbwort erzeugt (durch den Geometrieprozessor), wobei die Farbinformation die vom Benutzer zugeordnete Anzahl an höchstwertigen Bits einnimmt, während die übrigen Bits Nullen sind. Das 27-Bit-Intensitätswort wird auf 12 Bits gekürzt und zugeschnitten und dann um die Anzahl der Bits, die zum Vermeiden der Farbbits notwendig ist, nach rechts verschoben. Das Farbwort und das Intensitätswort werden dann addiert, um ein Verbundwort zu erhalten, das beide Größen enthält. Eine Begrenzungsschaltung 98 ist vorgesehen, um zu verhindern, daß das Intensitätswort in den Farbbitbereich des Wortes überläuft.
Ein vereinfachtes Blockschaltbild einer gegenwärtig bevorzugten Ausführungsform des Anzeigeprozessors 20 nach der Erfindung zeigt Fig. 2, in welcher die Hauptblöcke des Prozessors dargestellt und die vorherrschenden Daten- und Befehlswege gezeigt sind. Der Prozessor steht unter der direkten Steuerung eines Mikrosteuerwerks 26, das Befehle über den VME-Datenbus 12 aus dem Geometrieprozessor 13, der Benutzerschnittstelle 10 oder anderen Teilen des Systems empfängt. In dem Mikrosteuerwert 26 befinden sich ein schreibbarer Steuerspeicher (ein wahlfrei adressierbares Speicheruntersystem), das in dem gegenwärtig bevorzugten System 8 K Wörter × 60 Bits aufnehmen kann. Nach der Initialisierung wird das Mikroprogramm zum Steuern des Anzeigeprozessors 20 über den VME-Datenbus 12 in den schreibbaren Steuerspeicherteil des Mikrosteuerwerks 26 geladen. Im Betrieb erzeugt das Mikrosteuerwerk 26 eine Sequenz von Adressen, und Programmbefehle werden an diese Adressen durch den schreibbaren Steuerspeicher abgegeben. Befehle an einen Mikroprozessor 27 werden über einen Bus 39 geleitet, und Befehle an eine Videoverarbeitungseinrichtung 30 werden über einen Bus 34 geleitet. Bezugnahmen in der Beschreibung auf das Mikrosteuerwerk 26 sollen sich sowohl auf das Mikrosteuerwerk als auch auf den schreibbaren Steuerspeicher beziehen.
Wie oben erwähnt empfängt der Anzeigeprozessor 20 Daten aus dem Geometrieprozessor 13 und manipuliert sie, so daß sich die gewünschte Anzeige ergibt. Daten, die aus dem Geometrieprozessor 13 ankommen, werden in einen von zwei identischen Eingangsspeichern 24, 25 eingegeben. Die Eingangsspeicher 24, 25 bestehen jeweils aus Bustorsteuerung, Eingangs- und Ausgangsregistern, einem Adreßzähler/Register und einem Speicheruntersystem mit wahlfreiem Zugriff. Zu irgendeiner gegebenen Zeit wird einer dieser Speicher mit dem VME-Datenbus 12 und der andere mit den Y- und D- Bussen des Anzeigeprozessors 20 verbunden. Daher kann ein Speicher Eingangsdaten über die externe Schnittstelle empfangen, während mit früher empfangenen Daten, die in dem anderen Speicher gespeichert sind, gearbeitet wird. Befehle aus dem schreibbaren Steuerspeicher 26 steuern die Eingangsspeicherfunktionswahl.
Das Adressieren der Speicher kann entweder sequentiell oder wahlfrei unter Mikroprogrammsteuerung erfolgen. Wenn eine Leseoperation ausgeführt wird, werden die Daten in das Ausgangsregister des Speichers geladen und zur geeigneten Zeit dem D-Bus zugeführt. Für Schreiboperationen werden Daten von dem Y-Bus in das Speichereingangsregister und dann in das Speicheruntersystem selbst unter Mikroprogrammsteuerung geladen. Während der Verarbeitung eines Blocks von Eingangsdaten kann der Eingangsspeicher benutzt werden, um unmittelbare Ergebnisse zu speichern.
Die arithmetischen Verarbeitungselemente und Datenpuffer (Mikroprozessor 27, Multiplizierer 28 und zugeordnete Register) führen 16-Bit-parallele arithmetische und logische Operationen aus. Die arithmetischen Operationen bestehen aus Addition, Subtraktion, Multiplikation, Division, Inkrementieren, Dekrementieren, Summieren, Einzel- und Mehrfachverschiebungen und Vergleichen. Alle üblichen logischen Funktionen können ausgeführt werden, einschließlich und, oder, exklusiv-oder, logischen Inversionen und anderen.
Die Multiplikation wird in dem Hochgeschwindigkeitsmultiplizierer 28 ausgeführt, der zwei 16-Bit-Operanden von dem Y-Bus empfängt und ein 32-Bit-Produkt auf dem D-Bus (in zwei Zyklen) abgibt. Durch Hindurchleiten eines der Operanden durch eine Kehrwerttabelle, die zu Erläuterungszwecken als innerhalb des Multiplizierers 28 befindlich angesehen werden kann, erfolgt die Division.
Sämtliche arithmetischen Operationen mit Ausnahme der Multiplikation und der Division und sämtliche logischen Operationen werden in dem mikroprogrammierbaren Mikroprozessor 27 ausgeführt, der in einer gegenwärtig bevorzugten Ausführungsform aus einer voll-16-Bit-parallelen Arithmetisch-logischen- Einheit, einem 16-Bit-parallel-Verschieber, zweiunddreißig 16-Bit-Registern und zugeordneter Logik besteht. Ausgangsdaten und/oder Zwischendaten können vorübergehend in den Eingangsspeichern 24, 25 oder in einem Zwischenspeicher 31 gespeichert werden.
Das Ausgangssignal der Verarbeitungsfunktion wird normalerweise in einem "64 Wort × 18 Bit"-Silo- oder FIFO-Speicher 29 eingegeben, der für eine lose Datenkopplung mit dem Videoverarbeitungsuntersystem (VPS) 30 sorgt.
Die Information, die dem Anzeigeprozessor 20 zugeführt wird, hängt von der gewünschten Betriebsart, Polygonausfüllen oder Vektorzeichnen, ab. Je nach dem, welche Betriebsart gewählt wird, wird die Information in Paketen geliefert, wobei ein Paket in der Polygonausfüllbetriebsart ein Polygon und in der Betriebsart Vektorzeichnen eine Strecke beschreibt.
In der Polygonausfüllbetriebsart enthält ein Paket Information, die jede Seite des Polygon definiert, und Information, die sich auf das Polygon als ganzes bezieht. Für jede Seite werden folgende Daten (als "Seitenpaket" bezeichnet) geliefert:
PTR - ein Identifizierungszeiger, der Zugriff auf die polygonbezogenen Daten gestattet;
HOR - ein Flag, das anzeigt, ob die Seite horizontal ist oder nicht;
SSF - ein Start/Stop-Flag, das anzeigt, ob das Polygoninnere links oder rechts von der Seite ist;
X t ;
Y t ;
Z t ;
X u ;
S u+;
Y b ;
dX/dY; und
dS/dY.
Für das Polygon als ganzes wird folgendes geliefert:
Farbe der Polygonoberfläche;
dZ/dX; und
dZ/dY.
Nachdem die obige Information für ein vollständiges Polygon in einem der Eingangsspeicher 24, 25 empfangen worden ist, verbindet das Mikrosteuerwerk 26 diesen Speicher mit den D- und Y-Bussen und leitet die Berechnung ein, um festzustellen, welche Bildelemente in dem Raster aktiviert werden müssen, um das Polygon anzuzeigen. Zu Erläuterungszwecken wird die Arbeitsweise des Systems unter Bezugnahme auf das in Fig. 4 zur Veranschaulichung dargestellte Polygon beschrieben. Es sei beachtet, daß die Bildelementgröße, die in Fig. 4 gezeigt ist, im Verhältnis zu der Polygongröße sehr groß ist, so daß die angezeigte Darstellung des Polygons nach Fig. 4 beträchtlich verzerrt sein würde. Die Prinzipien der Erfindung lassen sich jedoch leichter erläutern, wenn auf relativ große Bildelemente Bezug genommen wird.
Allgemein gesagt, der Mikroprozessor 27 und der Multiplizierer 28 sowie die ihnen zugeordneten Komponenten nehmen die Seiten- und Polygondaten, die in die Eingangsspeicher 24, 25 eingegeben worden sind, und liefern für jede aktive Rasterlinie des Polygons Daten zu dem Videoverarbeitungsuntersystem (VPS) 30, die die Start- und Stopbildelemente auf der Linie und die Z- und S-Werte für die Startbildelemente bezeichnen. VPS 30 nimmt diese Daten zusammen mit Gradientendaten, die ihm zugeführt werden, und berechnet die Intensitäts- und Z-Werte für jedes Bildelement zwischen den Start- und Stopbildelementen. Die Z-Werte werden zum Beseitigen von verborgener Oberfläche benutzt und in dem Z-Puffer 23 gespeichert, wogegen die Intensitätswerte für die Oberflächen, die nicht verborgen sind, in dem Bildpuffer 22 zur späteren Anzeige durch die Katodenstrahlröhre 21 gespeichert werden.
Wenn die Berechnung eingeleitet wird, wird eine Liste von Eingangsspeicheradressen (als "geordnete Y t -Liste" bezeichnet) gebildet und in dem Zwischenspeicher 31 abgespeichert. Die Adressen in der Liste beziehen sich auf Plätze in dem aktiven Eingangsspeicher (24 und 25), die die Seitenpaketdaten enthalten, welche sich auf die betreffenden Seiten des Polygons beziehen, das verarbeitet wird. Die Liste wird in der Reihenfolge der Rasterlinie aufrechterhalten, die die obere Spitze jeder Seite, d. h. Y t , enthält. Eine bestimmte Eingabe in der geordneten Y t -Liste kann die Adressen von mehrals einem Satz Seitenpaketdaten beinhalten. Die geordnete Y t -Liste für das einfache Polygon, das in Fig. 4 gezeigt ist, würde Adressen zum Festlegen der Seitenpaketdaten in folgender Reihenfolge enthalten:
Eingabe Nr.Seitenpaketadresse 142, 43 246, 47 344 445
Es ist zu erkennen, daß die Seite 48 in der obigen Liste nicht erscheint. Der Grund dafür ist, daß die Seite 48 eine horizontale Seite ist und daher nicht irgendwelche inneren Bildelemente begrenzt. Das Horizontalseitenflag HOR verhindert, daß horizontale Seiten verarbeitet werden. Die Verwendung der geordneten Y t -Liste vergrößert die Geschwindigkeit des Anzeigeprozessors, da sie das sequentielle Verarbeiten der Rasterlinien gestattet, welche jede Seite schneiden, ohne daß es notwendig ist, Rasterlinien oberhalb oder unterhalb der Endpunkte der Seiten zu verarbeiten. Mit anderen Worten, bei Verwendung des in Fig. 4 als Beispiel dargestellten Polygons gestattet die geordnete Y t -Liste, das Verarbeiten der Daten bei der Rasterlinie zu beginnen, die der oberen Ecke des zweiten Pakets zugeordnet ist, das den Seiten 42 und 43 zugeordnet ist, d. h. der Linie 1 und nicht der Linie 0. Weiter unten wird sich zeigen, daß wegen der Art und Weise, auf die die Daten verarbeitet werden, die Rasterlinie Y t + 1, d. h. Y u (oder die Rasterlinie 2 in dem Fall der Seiten 42 und 43), in Wirklichkeit die erste Rasterlinie sein wird, die aktive Bildelemente hat.
Nachdem die geordnete Y t -Liste vollständig ist, geht die Berechnung durch den Anzeigeprozessor 20 weiter, um eine Reihe von "Spannen" zu erzeugen, die gemeinsam bewirken werden, daß auf dem Schirm der Katodenstrahlröhre 21 ein Polygon erscheint, daß die gewünschte Farbe hat. Eine "Spanne" sind die Daten, die den Zustand jedes Bildelements längs einer Rasterlinie festlegen, welche durch zwei Seiten des Polygons begrenzt wird. Im Falle von einigen Polygonen kann es mehr als eine Spanne auf einer Rasterlinie geben. Beispielsweise wird in Fig. 4 die Rasterlinie 6 zwei Spannen enthalten. Die Spannen werden eine nach der anderen erzeugt, und zwar beginnend mit der Spanne, die die Rasterlinie mit der niedrigsten Zahl beinhaltet, welche durch das Polygon geschnitten wird (was durch Bezugnahme auf die geordnete Y t -Liste bestimmt wird). Zum Erleichtern der Verarbeitung wird eine "aktive Seitenliste" erzeugt und aufrechterhalten. Die aktive Seitenliste enthält die Adressen der Seitenpaketdaten, welche jeder Seite entsprechen, die die Rasterlinie schneidet, welche gegenwärtig verarbeitet wird.
Die Erzeugung der Spannen wird in zwei Schritten beschrieben, erstens den Berechnungen, die durch den Mikroprozessor 27 und den Multiplizierer 28 und deren zugeordnete Komponenten ausgeführt werden, und zweitens die Operationen, die in dem Videoverarbeitungsuntersystem 30 ausgeführt werden.
Die geordnete Y t -Liste für das als Beispiel gewählte Polygon in Fig. 4 zeigt, daß die aktiven Seiten, die der ersten zu verarbeitenden Rasterlinie entsprechen, die Seiten 42 und 43 sind. Die aktive Seitenliste wird dann die Seitenpaketadressen für die Seiten 42 und 43 enthalten. Das Seitenpaket für die Seite 42 wird ein Startflag enthalten, während das Seitenpaket für die Seite 43 ein Stopflag enthalten wird.
In Verbindung mit der gegenwärtig bevorzugten Ausführungsform der Erfindung ist eine willkürliche Regel benutzt worden, die festlegt, daß ein Bildelement nicht als Teil eines Polygons betrachtet wird, sofern nicht die Koordinaten des Bildelements (die obere linke Ecke des Bildelementraums) innerhalb der Grenzen des Polygons ist. Gemäß dieser Regel ist daher das erste aktive Bildelement in dem Polygon in Fig. 4 das Bildelement 5, 2. Die Start- und Stopbildelemente längs einer Rasterlinie können durch folgende Gleichungen bestimmt werden:
Für eine Startseite:
X 1 = X i + 1
und für eine Stopseite:
X 2 = X i
wobei X 1 die X-Koordinate des Startbildelements der Spanne ist,
X 2 die X-Koordinate des letzten Bildelements der Spanne ist, und
X i der ganzzahlige Wert des tatsächlichen Schnittpunkts der Seite und der Y-Koordinate der Spanne ist.
Für die erste Spanne (Y = 2), X i für die Seite 42 ist X u , d. h. 4; für die Seite 43 ist X i gleich 6.
Vor dem Ausführen der obigen Berechnungen müssen die X-Koordinaten der Start- und Stopseiten für die Rasterlinie geordnet und gepaart werden. In Verbindung mit der Paarbildungsberechnung wird ein Test ausgeführt, um alle scheinbaren Spannweiten auszuschließen, bei denen das Stopbildelement eine niedrigere Adresse als das Startbildelement hat. Eine solche Anomalie kann auftreten, wenn ein Teil eines Polygons weniger als einem Bildelement gegenüberliegt oder wenn ein Berechnungsabrundungsfehler die Seiten etwa aus der Reihenfolge herausbringt. In jedem Fall werden diese Daten nicht verarbeitet. Die Paarbildung und das Ordnen erfolgen durch den Mikroprozessor 27 unter der Steuerung des Programms in dem schreibbaren Steuerspeicher 26. Eine Konsequenz des Ordnens der Start/Stop-Koordinaten und des Nichtverarbeitens von Paaren, bei denen das Stopbildelement eine niedrigere Adresse als das Starbildelement hat, besteht darin, daß Löcher in einer Oberfläche automatisch als Löcher erscheinen und keine spezielle Bearbeitung zum Berücksichtigen derselben erforderlich ist.
Der Wert von Z 1 (die Z-Koordinate des ersten aktiven Bildelements) für die erste Rasterlinie (Y u ) wird aus Z t und den durch den Geometrieprozessor 13 gelieferten Z-Gradienten folgendermaßen berechnet:
Z 1 = Z t + ( X u - X t ) (dZ/dX) + dZ/dY
wobei X u der ganzzahlige Wert von X u ist.
Für die Y u folgenden Rasterlinien gilt die Gleichung:
Z 1 = Z 1(prev) + ( X i - (prev) (dZ/dX) + dZ/dY
wobei Z 1(prev) das Z 1 der vorherigen Rasterlinie ist,
X i der ganzzahlige Wert des tatsächlichen Schnittpunkts der Seite und der Y-Koordinate auf der gegenwärtigen Rasterlinie ist und X i (prev) das X i der vorherigen Rasterlinie ist.
Die Daten, die durch den Geometrieprozessor 13 geliefert werden, beinhalten S u+1, die Intensität des ersten aktiven Bildelements der Rasterlinie Y u (d. h. X u + 1). Für die anschließenden Rasterlinien wird folgende Gleichung benutzt:
S 1 = S 1(prev) + dS/dY
wobei S 1(prev) das S 1 der vorherigen Rasterlinie ist.
Die Endintensität für jede Rasterlinie (S 2) wird ebenfalls auf ähnliche Weise unter Verwendung des Startwerts S und des Gradienten für die obere Seite der Spanne berechnet.
Der Gradient dS/dX für die Spanne wird dann berechnet:
Die zusätzliche 1 im Nenner berücksichtigt die Tatsache, daß S 2 wie berechnet nicht wirklich in Beziehung zu dem letzten Bildelement in der Spanne steht, sondern zu dem Bildelement jenseits des letzten Punkts.
Es kann mehr als eine Spanne in einer gegebenen Rasterlinie geben, beispielsweise in dem Gebiet des Polygons nach Fig. 4, das ein Loch enthält. Jede Seite des Loches wird als eine Polygonseite behandelt, und, wenn die Seiten gepaart sind, wird sich zeigen, daß das Stopflag, das die Seite 46 begleitet, dem Startflag vorangeht, welches die Seite 47 begleitet. Das Gebiet der Rasterlinie zwischen den Seiten 46 und 47 wird daher nicht verarbeitet. Die obigen Berechnungen müssen in bezug auf jedes Paar aktiver Seiten ausgeführt werden. Bei Abschluß sämtlicher Spannenberechnungen für eine Rasterlinie wird Y b für sämtliche aktiven Seiten mit der laufenden Rasterlinienadresse verglichen. Wenn Y b für irgendeine Seite erreicht worden ist, wird diese Seite nicht länger verarbeitet. Außerdem wird auf das Seitenpaket, das der nächsten Eintragung in der geordneten Y t -Liste entspricht, zugegriffen, um festzustellen, ob Y t für eine neue Seite erreicht worden ist. Wenn das eine oder andere eingetreten ist, sind die Seitenpaarungen geeignet eingestellt. Wenn das letzte Y b vorbei ist, werden die Berechnungen für dieses Polygon beendet und die Berechnung für das nächste Polygon eingeleitet.
Beispielsweise für das in Fig. 4 dargestellte Polygon enthält die aktive Seitenliste anfänglich die Adressen für die Seitenpakete, welche die Seiten 42 und 43 beschreiben. Nachdem die Rasterlinie 3 verarbeitet worden ist, werden die Seiten 46 und 47 der aktiven Seitenliste hinzugefügt, und die Seitenpaarungen werden aktualisiert auf: 42, 46 und 47, 43. Nach der Rasterlinie 4 wird, da Y b für die Seite 43 und Y t für die Seite 44 erreicht worden sind, die Seite 43 gelöscht und die Seite 44 zu der aktiven Seitenliste hinzugefügt. Die Paarbildungen werden geeignet eingestellt.
Wenn die Spannenberechnungen abgeschlossen sind, werden die Ergebnisse in das FIFO-Register 29 geladen, und sie fließen dann in die geeigneten Register des Videoverarbeitungsunterabschnitts 30 über Pufferregister 33, wenn es der Videoverarbeitungsunterabschnitt 30 verlangt. Das FIFO-Register 29 gestattet dem Videoverarbeitungsunterabschnitt 30, mit einem Satz von Spanndaten zu arbeiten, während ein weiterer Satz Daten in das FIFO-Register geladen wird. Um diese Überlappung zu gestatten, wird bevorzugt, daß das FIFO-Register 29 "tief" genug ist, um wenigstens zwei vollständige Sätze von Spanndaten aufzunehmen.
Die Daten, die zu dem VPS 30 in der Polygonausfüllbetriebsart übertragen werden, sind folgende: (Die Bezugnahme auf eine Anzahl von Bits im Anschluß an jede Eintragung bezieht sich auf die Anzahl von Bits, die in der gegenwärtigen bevorzugten Ausführungsform der Erfindung gesendet werden, auf welche hier zu Erläuterungszwecken Bezug genommen wird. Es sei angemerkt, daß der benutzte Datenbus nur 16 Bits aufnehmen kann, so daß einige Datenwerte zwei Maschinenzyklen benötigen, um vollständig übertragen zu werden.)
Polygondaten:
dZ/dX - 30 Bits
Y 1 - 1 (die Adresse der Rasterlinie oberhalb des ersten Y u des Polygons) - 12 Bits
Farbe - 12 Bits
Intensitätsverschiebung - 4 Bits
Schriftmuster - 64 Bits (alles Nullen)
Schriftlänge - 6 Bits (alles Einsen)
Spannendaten:
X 1 - 12 Bits,
X 2 - 12 Bits,
Z 1 - 30 Bits;
S 1 - 27 Bits;
Y inc -  1 Bit
Zusätzlich zu Obigem wird der Gradient dS/dX übertragen. In Abhängigkeit von dem Typ der gewünschten Schattierung kann dS/dX eine polygonbezogene Größe oder eine spannenbezogene Größe sein. Das Flag Y inc wird mit der ersten Spanne auf einer gegebenen Rasterlinie als ein Signal zum VPS 30 gesendet, um das Y-Register in VPS 30 und den Bild- und den Z-Puffer auf die nächste Rasterlinie vor dem Verarbeiten der Spannendaten zu inkrementieren. Die Bedeutung der Schriftsignale wird unten in Verbindung mit der Betriebsart Vektorzeichnen erläutert.
Wie in Verbindung mit der Polygonausfüllbetriebsart (alles Nullen in dem Schriftmusterregister und alles Einsen in dem Schriftlängenregister) beschrieben ist die Schriftfunktion inaktiv. Nach dem Lesen der Erläuterung der Schrift in der Betriebsart Vektorzeichnen wird jedoch klar sein, daß die Schriftfunktion in der Polygonausfüllbetriebsart benutzt werden kann, um eine Texturierung der angezeigten Oberfläche zu erzielen.
Die Fig. 3A und 3B beinhalten ein Blockschaltbild des VPS 30 (d. h. des Videoverarbeitungsuntersystems, wobei 30 A die Datenhandhabungselemente sind und 30 B die Steuereinheit ist, die die Datenverarbeitungsfunktionen des VPS steuert. Die Pfeile "C" in Fig. 3A beziehen sich auf eine Verbindung mit der Steuereinheit 30 B. Die Steuerleitungen von der Steuereinheit 30 B zu den verschiedenen Registern, Multiplexern, Addierern und Komparatoren sind der Übersichtlichkeit halber nicht dargestellt worden.
Nach Empfang eines Befehls über die Leitung 34 leitet das VPS 30 das Laden von Daten in seine Datenregister über die Leitung 35 ein. Die Daten werden in die folgenden Register in einer vorbestimmten Folge unter der Steuerung des Mikrosteuerwerks 26 über das Y-Busregister 31 und das Pufferregister 32 über die Leitung 35 geladen:
GrößeRegister dZ/dX dZ/dX, 52 Y 1Bildpuffer 22 und Z-Puffer 23 FarbeFarbe, 54 IntensitätsverschiebungIntensitätsverschiebung, 55 SchriftmusterSchieberegister 56 (alles Nullen) SchriftlängeSchriftlänge 57, (alles Einsen)
Nachdem die vorstehend polygonbezogenen Größen geladen worden sind, werden die folgenden spannenbezogenen Größen aus dem FIFO-Register 29 durch das Pufferregister 33 über die Leitung 35 geladen:
GrößeRegister X 1 X 1, 58 X 2 X 2, 59 S 1 S, 61 Z 1 Z, 60 Y inc Bildpuffer 22 und Z-Puffer 23
Wenn X 1 in das X 1-Register 58 geladen wird, werden die X- Adreßregister des Bildpuffers 22 und des Z-Puffers 23 ebenfalls auf X 1 gesetzt. Y inc begleitet nur die erste Spanne auf einer Rasterlinie.
Die gegenwärtig bevorzugte Ausführungsform der Erfindung arbeitet mit einer Taktfrequenz von 10 MHz, so daß jede -röße, die 16 Bits oder weniger hat, in einem Maschinenzyklus von 100 ns geladen werden kann, wogegen diejenigen, die mehr als 16 Bits haben, in zwei Maschinenzyklen geladen werden. Nachdem das Laden beendet ist, beginnt das Verarbeiten der Spannendaten für die erste Spanne. Die Berechnungen für die verschiedenen Parameter erfolgen parallel mit der Taktgeschwindigkeit von 100 ns. Die Z- und S-Berechnungen werden mit hoher Präzision gemacht (30 bzw. 27 Bits), aber nur 16 bzw. 12 Bits werden in den Z- und Bildpuffern gehalten. Das erfolgt, um zu verhindern, daß ein Aufsummieren von Abrundungsfehlern den Betrieb des Systems nachteilig beeinflußt. Das Kürzen auf 16 bzw. 12 Bits ist in dem Blockschaltbild in Fig. 3 mit "TRUNC" bezeichnet. Die Größe der Daten wird ebenfalls begrenzt, so daß sie innerhalb zulässiger Bereiche sind. Dieses Begrenzen ist in Fig. 3A mit "LIMIT" bezeichnet.
Wenn die Berechnungen für die erste Spanne begonnen werden, bewirkt Y inc , daß die Y-Adreßregister der Bild- und Z-Puffer 22, 23 um 1 erhöht werden, wodurch die Adressen auf den Wert Y u für die erste Rasterlinie des Polygons gebracht werden.
Gleichzeitig wird der Z-Wert in dem Z-Puffer 23 an dem Platz X 1, Y 1 über das Register 62 dem Komparator (CMP) 63 zugeführt, wo er mit dem Inhalt des Z-Registers 60 (gekürzt auf 16 Bits) verglichen wird. Wenn der Wert aus dem Register 60 gleich dem oder kleiner als der Wert in dem Z-Puffer ist, wird der gekürzte Wert in dem Z-Register 60 über Multiplexer 64 und 66 an den Z-Puffer angelegt und anstelle des alten Z-Werts eingeschrieben. Wenn der Inhalt des Registers 60 größer als der alte Z-Pufferwert ist, wird der alte Wert wieder in den Z-Puffer eingeschrieben. Auf diese Weise behält der Z-Puffer eine Aufzeichnung des Z-Wertes des Objekts, das sich an jeder Adresse dem Schirm an nächsten befindet. Die Ergebnisse des Vergleichs in dem Komparator 63 zusammen mit einem Signal aus dem Schriftmusterregister 56 signalisieren über ein UND-Gatter 65 der Steuereinheit 30 B, ob das Einschreiben in den Bildpuffer 22 an dieser Adresse freizugeben ist. Zu Erläuterungszwecken wird angenommen, daß das Ausgangssignal des Schriftmusterregisters 56 so ist, daß das UND-Gatter 65 freigegeben wird, so daß es nur der Z-Wert- Vergleich ist, der bestimmt, ob ein neuer Wert in den Bildpuffer 22 eingeschrieben wird. Die Schriftmerkmale werden weiter unten erläutert. Es ist zu erkennen, daß der Z-Wert- Vergleich das Beseitigen von verborgener Oberfläche bewirkt, indem er bewirkt, daß der Bildpuffer 22 nur Information bezüglich des nahesten Objekts enthält.
Gleichzeitig wird der Inhalt des dZ/dX-Registers 52 zu dem Inhalt des Z-Registers 60 in dem Addierer 67 addiert, und das Ergebnis wird über einen Multiplexer 68 zu dem Z-Register 60 rückgekoppelt. Der neue Inhalt des Z-Registers 60 ist der Z-Wert, der dem Bildelementplatz X 1 + 1 (Z 1 + dZ/dX) entspricht.
Parallel zu den vorgenannten Berechnungen wirkt der Inhalt eines Intensitätsschieberregisters 55 auf eine Verschiebungseinheit 75 ein, um den gekürzten Inhalt des S-Registers 61 um eine vorbestimmte Anzahl von Bits nach rechts zu verschieben, wobei der sich ergebende Wert zu dem Inhalt des Farbregisters 54 in dem Addierer 76 addiert wird. Eine Begrenzungsschaltung 98 ist vorgesehen, um sicherzustellen, daß der Intensitätswert, der zu dem Inhalt des Farbregisters 54 addiert wird, nicht die Farbbits stört. Die so gebildete Summe legt eine Farbe und eine Intensität fest, wie es oben beschrieben worden ist. Das Ausgangssignal des Addierers 76 wird über einen Mulitplexer 77 und ein Bilddatenregister 78 an den Bildpuffer 22 angelegt. Wenn bei dem Z-Vergleich festgestellt wird, daß das Polygon, das verarbeitet wird, an dieser Adresse näher bei dem Schirm als früher verarbeitete Polygone ist, wird das Einschreiben dieses Werts in den Bildpuffer freigegeben, wie es oben erläutert worden ist.
Außerdem wird gleichzeitig der Inhalt eines dS/d X-Registers 85 zu dem Inhalt des S-Registers 61 in einem Addierer 86 addiert, was zu einem neuen Intensitätswert führt, der zu dem S-Register 61 über einen Multiplexer 87 rückgekoppelt wird. Das wird der Wert von S sein, der für das Bildelement X 1 + 1 (S 1 + dS/dX) benutzt wird.
Schließlich wird ein Vergleich des X 1-Registers 58 und des X 2-Registers 59 in einem Komparator 90 gemacht. Wenn die Registerinhalte nicht gleich sind, werden das X 1-Register und die X-Adressregister in dem Bild-Puffer 22 und dem Z- Puffer 23 alle um 1 erhöht, und die obigen Berechnungen werden für das Bildelement X 1 + 1 wiederholt. Das Inkrementieren des X 1-Registers erfolgt durch Addieren von Eins zu dem Inhalt des Registers in einem Addierer 93 und Wiedereinschreiben des Ergebnisses in das Register. Dieser Prozeß wird fortgesetzt, bis der Inhalt des X 1-Registers 58 gleich dem Inhalt des X 2-Registers 59 ist, zu welcher der Komparator 90 bewirkt, daß die Steuereinheit 30 B ein "Getan"- Signal von einem Bit über die Leitung 36 zu dem Mikrosteuergerät 26 sendet. Bei Empfang des "Getan"-Signals, was bedeutet, daß VPS 30 die Berechnungen für eine Spanne beendet hat, bewirkt das Mikrosteuergerät 26, daß der FIFO-Speicher 29 die Register von VPS 30 mit Daten für die nächste Spanne zu füllen beginnt. Dieser Vorgang setzt sich fort, bis sämtliche Spannen für ein bestimmtes Polygon abgeschlossen sind. woran anschließend entweder ein weiteres Polygon begonnen oder eine Strecke in der Betriebsart Vektorzeichnen gezeichnet werden kann.
Wenn die nächste auszuführende Funktion das Zeichnen eines Vektors oder das Zeichnen der Seite eines Polygons in einer Schattierung, die anders als die Schattierung der Fläche ist (Seitenhervorhebung), werden der Bild- und der Z-Puffer gefüllt, indem ein anderer Verarbeitungsalgorithmus als oben beschrieben benutzt wird. Die Information, die an den Eingangsspeichern 24, 25 in der Betriebsart Vektorzeichnen benutzt wird, ist ähnlich, aber etwas anders als die in der Polygonausfüllbetriebsart empfangene. Als Beispiel wird sich die folgende Erläuterung des Zeichnens einer Strecke in der Betriebsart Vektorzeichnen auf die Strecke beziehen, die in Fig. 5 dargestellt ist. Die Strecke hat eine obere Spitze innerhalb des Bildelementraums 9, 1 und eine untere Spitze in dem Raum 1, 5. Die Bezeichnung ist dieselbe wie die in Verbindung mit der Polygonausfüllbetriebsart benutzte. Zu Erläuterungszwecken sind die Bildelementbereiche, die aktiviert werden, wenn die angenommene Strecke gezeichnet wird, schraffiert dargestellt (unter der Annahme, daß die gezeichnete Gerade das dem Bildschirm nächstgelegene Objekt ist).
Für den Vektor werden folgende Größen durch den Geometrieprozessor 13 über den VME-Datenbus 12 gesendet:
X t (X 1)
Y t (Y 1)
X b (X 2)
Y b (Y 2)
Z t oder stattdessen Z b ;
X u oder stattdessen X v ;
dX/dY;
dZ/dX;
dZ/dY;
Farbe (einschließlich Intensität);
Schriftmuster;
Schriftlänge;
Die Reihenfolge, in der X t , Y t und X b , Y b gesendet werden, legt fest, ob die Strecke von oben nach unten oder von unten nach oben gezeichnet wird. Die Reihenfolge in der vorstehenden Liste wird zum Zeichnen nach unten führen. Durch Senden von X b , Y b in den X 1, Y 1-Positionen, X t , Y t in den X 2, Y 2-Postionen und durch Senden der alternativen Größen Z b und X v erfolgt das Zeichnen nach oben. Die folgende Erläuterung gilt für Zeichnen nach unten.
Die Zeichenrichtung wird durch zwei Flags SBX und SBY festgelegt. Diese Flags werden durch den Mikroprozessor 26 als Ergebnis des Vergleichens von X 1 mit X 2 und Y 1 mit Y 2 erzeugt. Wenn X 1 größer als X 2 ist, SBX = 1, und wenn Y 1 größer als Y 2 ist, SBY = 1. Diese Flags legen fest, ob die X 1- und/oder Y 1-Register (58 und 95) in VPS 30 während der Zeichensequenz zu inkrementieren oder zu dekrementieren sind. Wenn ein SB-Flag gesetzt wird (1), wird das zugeordnete Register auf Dekrementieren gesetzt, wogegen, wenn das Flag nicht gesetzt wird (0), es inkrementiert wird. Wenn das X 1-Register 58 dekrementiert wird (SBX = 1), und wenn das Y 1-Register 95 inkrementiert wird (SBY = 0), wird der Vektor abwärts und nach links gezeichnet. Wenn SBX auf 0 gesetzt wird, wird das X 1-Register inkrementiert, und der Vektor geht nach rechts. Wenn SBY gleich 1 ist, wird der Vektor aufwärts gezeichnet. Das Inkrementieren oder Dekrementieren der X 1 und Y 1-Register erfolgt durch Addierer 93 und 94, die von dem Inhalt des zugeordneten Registers Eins addieren oder subtrahieren und die Ergebnisse wieder zurück in das Register einschreiben.
Wie in der Polygonausfüllbetriebsart werden die zum Zeichnen einer Strecke erforderlichen Daten an VPS 30 über einen von zwei Wegen angelegt: über den FIFO-Speicher 29 und das Pufferregister 33 oder über das Y-Busregister 31 und das Pufferregister 32. Folgende Register werden geladen:
DatenRegister X 1 X 1 (58) Y t Y 1 (95) Z t Z (60) X u X u (61) X b X 2 (59) Y b Y 2 (96) dX/dY dX/dY (85) dZ/dX dZ/dX (52) dZ/dY dZ/dY (97) FarbeFarbe (54) SchriftmusterSchriftmuster (56) SchriftlängeSchriftlänge (57) HORSteuereinheit 30 B SBXSteuereinheit 30 B SBYSteuereinheit 30 B
Die Adreßregister des Bildpuffers 22 und des Z-Puffers 23 werden über die Leitungen 70 und 71 auf X t bzw. Y t gesetzt.
Nachdem die Daten in die Register von VPS 30 geladen worden sind, wird die Zeichenfolge durch einen Befehl aus dem Mikrosteuergerät 26 gestartet. Ein Vergleich des Inhalts des Z-Registers 60 (gekürzt auf dieselbe Zahl von Bits wie in dem Z-Puffer (16)) mit dem vorherigen Inhalt des Z-Puffers wird auf gleich Weise wie oben für die Polygonausfüllbetriebsart beschrieben ausgeführt, mit der Ausnahme, daß nach jeder Berechnung das Z-Register 60 nicht nur um dZ/dX jedesmal dann inkrementiert wird, wenn die X-Adresse inkrementiert wird, sondern auch um dZ/dY aus dem dZ/dY-Register 97 jedesmal dann inkrementiert wird, wenn die Y-Adresse inkrementiert wird. Wenn der gekürzte Inhalt des Z-Registers 60 bei irgendeinem Vergleich gleich dem oder kleiner als der Inhalt des Z-Puffers 23 an dieser Adresse ist, wird der neue Wert von Z in den Z-Puffer eingeschrieben, und der Inhalt des Farbregisters 54 wird über den Multiplexer 77 und das Bilddatenregister 78 dem Bildpuffer 22 auf dieselbe Weise zugeführt, wie es oben beschrieben worden ist.
Die Anfangsbildelementadresse ist X t , Y t , wie oben erwähnt. Bei Verwendung des Vektors, der in Fig. 5 zu Erläuterungszwecken dargestellt ist, ist zu erkennen, daß X t , Y t die Koordinaten 9, 1 haben. Da X 1 größer als X 2 und Y 2 größer als Y 1 ist, gilt SBX = 1 und SBY = 0. Das X 1-Register 58 wird deshalb dekrementiert und das Y 1-Register 95 wird inkrementiert, wenn das Vektorzeichen vonstatten geht.
Bevor irgendein Register inkrementiert oder dekrementiert wird, wird Y 1 mit Y 2 verglichen (Komparator 91), X 1 wird mit X 2 verglichen (Komparator 92), und X 1 wird mit X u verglichen (dem Inhalt des X u -Registers 61, gekürzt auf 12 Bits (Komparator 90)). In dem besonderen Beispiel der Strecke, die in Fig. 5 dargestellt ist, gilt Y 1 = 1, Y 2 = 5, X 1 = 9, X 2 = 1 und X u = 8. Wenn keiner der Vergleiche Gleichheit ergibt, was bei dem gewählten Beispiel der Fall ist, wird das X 1-Register 58 um einen Bildelementraum dekrementiert, ebenso wie die X-Adreßregister des Bild- und des Z-Puffers. Die Operation des Z-Vergleichs und des Einschreibens in den Z- und den Bildpuffer wird dann für das Bildelement wiederholt, nun adressiert: 8, 1. Wenn die X- und Y-Vergleiche dieses Mal gemacht werden, ist zu erkennen, daß X u gleich dem Inhalt des X 1-Registers 58 sein wird. Wenn das der Fall ist, gibt der Komparator 92 die Steuereinheit 30 B frei, um das Register Y 1 und die Y-Adreßregister des Bild- und des Z-Puffers 22, 23 zu inkrementieren. Gleichzeitig wird der Inhalt des dX/dY-Registers 85 zu dem Inhalt des X u -Registers 61 addiert. Der Inhalt des X u -Registers 61 wird dann die exakte Koordinate des Schnittpunkts des Vektors mit Y = 3 sein. Es sei angemerkt, daß die Schnittpunkte des Vektors mit den Y-Bildelement-Koordinaten mit 27-Bit-Genauigkeit berechnet werden und daß die Werte später gekürzt werden, um integrale X-Koordinatenadressen darzustellen. Der Grund dafür ist, daß, wenn der Vektor zum Zwecke der Seitenhervorhebung gezeichnet wird, der Vektor genau auf der Seite des Polygons erscheinen wird und es keine Bildelemente der Polygonfarbe geben wird, die sich über die hervorgehobene Seite hinauserstrecken werden.
Nach einer Wiederholung der Z-Vergleichs- und Einschreiboperation an den Adressen des Bildelements 8, 3, werden die drei X-Vergleiche durchgeführt, die keine Gleichheiten ergeben. Das hat zur Folge, daß das X 1-Register 58 und die X-Adreßregister des Z- und des Bildpuffers um eine Adresse dekrementiert werden. Diese Prozedur wird bei jedem Taktzyklus wiederholt, bis es eine Gleichheit zwischen dem X 1- Register 58 und dem X 2-Register 59 oder dem Y 1-Register 95 und dem Y 2-Register 96 oder beides gibt. Nachdem X 1 (58) gleich X 2 (59) ist, werden die X-Register nicht länger dekrementiert, und nachdem Y 1 (95) gleich Y 2 (96) ist, werden die Y-Register nicht länger inkrementiert. Wenn beide Gleichheiten auftreten, ist der Vektor vollendet, und die Steuereinheit 30 B sendet ein "Getan"-Signal über die Leitung 36 zu dem Mikrosteuergerät 26.
Es ist klar, daß Gebiete des Vektors, in denen der in dem Z-Puffer 23 gespeicherte Z-Wert kleiner als der Z-Wert des Vektors an dieser Adresse ist, nicht gezeichnet werden, sondern daß das früher in diesem Gebiet eingegebene Objekt in den Puffern bleiben und in der endgültigen Szene gezeigt wird. Ebenso werden anschließende Polygone oder Linien, der Z-Werte anzeigen, daß sie näher bei der Frontseite der Szene als der gezeichnete Vektor an irgendeiner Bildelementadresse ist, den Vektor an dieser Adresse verdrängen.
Die vorstehende Erläuterung des Zeichnens wurde ohne Berücksichtigung der Möglichkeit des "Schriftsetzens" des Systems gegeben.
Der Begriff "Schriftsetzen" ("fonting"), wie er hier benutzt wird, bezieht sich auf die Fähigkeit des Systems, intermittierende Linien, beispielsweise gestrichelte Linien, zu erzeugen. Eine Vielfalt von Kombinationen oder Schriftmustern ist möglich unter Verwendung des Schriftmusterregisters 56 und des Schriftlängenregisters 57 zum Steuern, ob ein besonderes Bildelement eines Vektors aktiviert wird.
Das Schriftmusterregister 56 ist ein Umlaufschieberegister mit 64-Bit-Paralleleingabe und serieller Ausgabe, das mit vier sequentiellen 16-Bit-Wörtern zu der Zeit geladen wird, zu der die Vektorzeichendaten in VPS 30 geladen werden. Darüber hinaus wird ein 6-Bit-Wort in den Schriftlängenzähler 57 geladen. Das 6-Bit-Wort in dem Schriftlängenregister 57 steuert die Betriebslänge des Schriftmusterregisters 56, so daß, obgleich maximal 64 Stufen verfügbar sind, das Register als ein kürzeres Register arbeiten kann, je nach dem Inhalt des Schriftlängenzählers 57. Wenn die Wiederholung des Schriftmusters 40 Bildelemente beträgt, würde das Schriftlängenregister 57 so eingestellt, daß es bewirkt, daß das Schriftmusterregister 56 als ein 40-Stufen-Umlaufschieberegister arbeitet.
Das mit einer Länge von 64 Bit programmierbare Schriftmusterregister 56 ist auf besondere Weise so ausgelegt worden, daß die Gatterzahl und die Fläche minimal sind. Ein typisches Schieberegister ist mit einem Flipflopspeicherelement und einem Multiplexer für jede Zelle versehen. Ein 2 : 1-Multiplexer wählt entweder den vorherigen Zellenwert oder den Buswert, je nach dem Verschieben/Laden-Signal. Zusätzliche Komplexität ergibt sich für den Multiplexer und die Wähllogik dadurch, daß das Schieberegister eine programmierbare Länge von 1 bis 64 erfordert. Der Multplexer wird in diesem Fall zu einem 3 : 1-Selektor. Die drei Eingangssignale sind der voreingestellte oder ladbare Wert, der am nächsten gelegene Nachbar in der Verschiebungsbetriebsart und das Umlaufbit zum Wählen der programmierbaren Länge.
Die besondere Realisierung des Schriftmusterregisters 56 bei der Erfindung hat die Gatterzahl von der eines typischen Entwurfs, der über 600 äquivalente Gatter mit zwei Eingängen erfordert, auf etwa 400 Gatter reduziert. Um das zu erreichen, sind erstens die Speicherzellen in D-Speicherglieder oder -Flipflops geändert worden, wodurch die Gatterzahl von 6 auf 3,5 Gatter pro Zelle reduziert worden ist. Das ist möglich, da das Register die Daten nicht von Zelle zu Zelle verschiebt, sondern vielmehr die Ausgangsverbindung multiplexiert ist. Das Verschieben des Ausgangssignals erfolgt durch einen dreistufigen 4 : 1-Multiplexer. Die erste Stufe reduziert die 64 Bits auf 16, die zweite Stufe wählt 4 von 16 und die dritte Stufe wählt ein einzelnes Bit unter den verbleibenden 4 Bits aus. Die Folgesteuerung durch die 64 Flipflops über die drei Stufen von Multiplexern erfolgt durch den 6-Bit-Schriftlängenzähler 57. Die Zählerausgangssignale steuern die Multiplexerwählleitungen. Nach dem Erreichen der programmierten Länge wird der Zähler rückgesetzt und beginnt wieder zu zählen. Insgesamt wird die Zahl der Gatter um einen Faktor von einem Drittel bei vergleichbarer Leistung und Vielseitigkeit im Vergleich zum Stand der Technik reduziert.
Ein Blockschaltbild des Schriftlängenzählers 57 und des Schriftmusterregisters 56 ist in Fig. 6 gezeigt. Vierundsechzig D-Flipflops 101 sind verbunden mit 4-16-Bit-Eingangsregistern 105 gezeigt. Die Eingangsdaten, die das Schriftmuster angeben und auf der Leitung 35 ankommen, werden in vier sequentiellen 16-Bit-Wörtern durch ein Eingangsregister 105-1, -2, -3 und -4 zu den 64 D-Registern 105-1 bis 105-64 geleitet. Das Q-Ausgangssignal jedes Flipflops wird in Gruppen von vier zu 16 Multiplexern 102-1 bis 102-16 geleitet. Ebenso wird das Ausgangssignal jeder Gruppe von vier Multiplexern 102 zu einem von vier Multiplexern 103-1 bis 103-4 geleitet. Schließlich werden die Ausgangssignale der vier Multiplexer 103 dem letzten Multiplexer 104 zugeführt.
Der Schriftlängenzähler 57 empfängt ein 6-Bit-Signal über die Leitung 35, welches ihn setzt, so daß er vorwärts bis zu der Zahl der Wiederholung in dem Schriftmuster zählt und dann wieder beginnt. Das Ausgangssignal des Schriftlängenzählers 57 wählt eines der 64 Flipflops 101 aus, das mit dem Ausgang des Schriftmusterregisters 56 zu verbinden ist, und zwar über die Multiplexer 102, 103 und 104, je nach dem Zählwert in dem Zähler. Wenn sich der Zählwert des Schriftlängenzählers 57 ändert, tastet das Ausgangssignal des Multplexers 104 die Flipflops 101 der Reihe nach ab. Auf diese Weise wird das Schriftmusterregister 56 veranlaßt, als ein Schieberegister programmierbarer Länge mit parallelem Eingang und seriellem Ausgang zu arbeiten.
Zur Veranschaulichung der Arbeitsweise des Schriftsetzmerkmals der Erfindung in der Betriebsart Vektorschreiben wird als Beispiel angenommen, daß es erwünscht ist, einen Vektor mit einem Strichelungseffekt von 15 Bildelementen EIN, 5 Bildelementen AUS, 5 Bildelementen EIN, 5 Bildelementen AUS, 5 Bildelementen EIN und schließlich 5 Bildelementen AUS zu zeichnen. Mit anderen Worten, mit einem längeren Strich gefolgt von zwei kurzen Strichen. Die Schriftlänge würde durch den Schriftlängenzähler 57 auf 40 Bildelemente gesetzt werden, da das die Gesamtzahl von Bildelementen in der Wiederholung ist. Das Schriftmusterregister 56 würde dann so arbeiten, als wäre es ein Schieberegister mit 40 Stufen, wobei das Ausgangssignal der 40. Stufe zur Stufe 1 zurückgeleitet würde. Eine negative Logik wird in dem Schriftsteuersystem benutzt (0 aus dem Register 56 führt zu einem aktiven Bildelement), so daß das Laden des Registers 56 sein sollte 15 Nullen, 5 Einsen, 5 Nullen, 5 Einsen, 5 Nullen und 5 Einsen. Das Ausgangssignal des Schriftmusterregisters 56 wird an das UND-Gatter 65 angelegt, das (in Abhängigkeit von einem geeigneten Z-Vergleich) der Steuereinheit 30 B signalisiert, das Einschreiben von Daten in den Bildpuffer immer dann zu blockieren, wenn das Schriftregister 56 als Ausgangssignal eine 1 hat.
Am Schluß der Verarbeitung von sämtlichen Polygonen und Strecken in der Szene wird der Bildpuffer 22 ein 12-Bit-Wort enthalten, das jedem Bildelement auf dem Schirm der Katodenstrahlröhre 21 entspricht. Jedes Wort wird Information über die Farbe und die Intensität enthalten, die für jedes anzuzeigende Bildelement erforderlich sind. Zum Anzeigen der Szene werden die Adressen des Bildpuffers in einem Raster abgetastet, und der Inhalt jeder Adresse wird durch eine Farbensuchtabelle 36 und einen D/A-Wandler 37 zu der Katodenstrahlröhre 21 geleitet. Für jede Bildpufferadresse werden drei Digitalwörter durch die Suchtabelle 36 erzeugt, die, nachdem sie in dem D/A-Wandler 37 in eine Spannungsamplitude umgewandelt worden sind, den Rot-, Grün- und Blau-Strahlerzeuger der Kathodenstrahlröhre 21 ansteuern, um die gewünschte Farbe und Intensität in jedem Bildelement herzustellen.

Claims (8)

1. Anzeigeprozessor für ein Computergraphiksystem mit Rasterabtastung, gekennzeichnet durch:
  • a) einen Eingangsspeicher (24, 25) zum Empfangen und Speichern von Daten, die sich auf wenigstens einen Teil einer anzuzeigenden Szene beziehen;
  • b) einen Steuerspeicher (26) zum Speichern eines Verarbeitungsprogramms;
  • c) eine arithmetische Verarbeitungseinheit (27, 28) zum Ausführen von arithmetischen und logischen Operationen an Daten in dem Eingangsspeicher (24, 25) unter der Steuerung des Programms,
  • d) ein Videoverarbeitungsuntersystem (30), das Daten sowohl aus dem Eingangsspeicher (24, 25) als auch aus der arithmetischen Einheit (27, 28) empfängt und eine parallele Berechnung der relativen Tiefe in der Szene und der Intensität für jede Bildelement durchführt, das Teil des Teils einer anzuzeigenden Szene ist;
  • e) eine Einrichtung (22) zum Speichern von Daten, die die Farbe und die Intensität jedes Bildelements festlegen, das Teil der anzuzeigenden Szene ist;
  • f) eine Einrichtung (23, 30) zum Vergleichen der relativen Tiefe an jeder Bildelementstelle in dem Teil der anzuzeigenden Szene mit der relativen Tiefe jeder Bildelementstelle von Teilen der Szene, die früher verarbeitet worden sind; und
  • g) eine Einrichtung zum Verhindern des Speicherns von Farb- und Intensitätsdaten für jedes Bildelement, welches Teil des Teils der Szene ist, der anzuzeigen ist, wenn die relative Tiefe von früher verarbeiteten Teilen der Szene, die anzuzeigen ist, kleiner als die relative Tiefe des Teils der Szene ist, der an der Bildelementstelle anzuzeigen ist.
2. Anzeigeprozessor nach Anspruch 1, gekennzeichnet durch einen Weg für Programmbefehle von dem Steuerspeicher (26) zu der arithmetischen Verarbeitungseinrichtung (27, 28) und zu dem Videoverarbeitungsuntersystem (30) unabhängig von dem Datenweg zwischen dem Eingangsspeicher (24, 25), der arithmetischen Verarbeitungseinrichtung (27, 28) und dem Videoverarbeitungsuntersystem (30).
3. Anzeigeprozessor nach Anspruch 1 oder 2, gekennzeichnet durch einen ersten FIFO-Speicher (29) zum Liefern von Daten aus der arithmetischen Verarbeitungseinrichtung (27, 28) zu dem Videoverarbeitungsuntersystem (30).
4. Anzeigeprozessor nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß der Eingangsspeicher (24, 25) aus zwei Abschnitten besteht, wobei die Abschnitte zwischen verbunden mit einem Eingangsbus (12) zum Empfangen von Daten und verbunden mit der arithmetischen Verarbeitungseinrichtung (27, 28) derart abwechseln, daß früher empfangene Daten innerhalb des Anzeigeprozessors (20) benutzt werden können.
5. Videoverarbeitungsuntersystem zum Erzeugen von Daten, die die gewünschte Intensität jedes Bildelements auf wenigstens einem Teil einer Rasterlinie eines Anzeigeschirms in einem System zum Anzeigen einer Darstellung von dreidimensionalen Objekten auf einem zweidimensionalen Raster anzeigen, gekennzeichnet durch:
  • a) ein erstes Datenregister (55) zum Speichern von Daten, die eine gewünschte Bildelementintensität eines vorbestimmten ersten Bildelements in einem Raster festlegen;
  • b) ein zweites Datenregister zum Speichern von Daten, die einen inkrementellen Wert der Intensität festlegen;
  • c) eine Einrichtung zum wiederholten Bilden der Summe des Inhalts des ersten und zweiten Datenregisters und zum Ersetzen des Inhalts des ersten Datenregisters durch die Summe; und
  • d) ein drittes Datenregister zum Empfangen und Speichern jeder Summe an vorbestimmten Adressen.
6. Videoverarbeitungsuntersystem nach Anspruch 5, gekennzeichnet durch:
  • a) ein viertes Datenregister (54) zum Speichern von Daten, die die Farbe der Bildelemente in dem Teil einer Rasterlinie festlegen;
  • b) eine Einrichtung zum Addieren des Inhalts des vierten Datenregisters zu jeder der Summen, die mehrere Digitalwörter bilden, derart, daß die Daten, die die Farbe festlegen, durch eine erste Gruppe von Ziffern in den Digitalwörtern dargestellt werden, und daß die Daten, die die Intensität festlegen, durch eine zweite Gruppe von Ziffern in den Digitalwörtern dargestellt werden, wobei die Digitalwörter statt der Summen in dem dritten Datenregister gespeichert werden.
7. Videoverarbeitungsuntersystem nach Anspruch 6, dadurch gekennzeichnet, daß die Einrichtung zum Addieren des Inhalts des vierten Datenregisters (54) zu jeder der Summen eine Einrichtung beinhaltet zum Umpositionieren der Ziffern jeder der Summen, so daß eine Binärzahl erzeugt wird, die in den Ziffernpositionen nur Nullen enthält, die durch Farbdaten in dem Inhalt des vierten Datenregisters (54) eingenommen werden.
8. Videoverarbeitungsuntersystem nach Anspruch 5, gekennzeichnet durch:
  • a) ein viertes Datenregister (54) zum Speichern von Daten, die die relative Tiefe in der anzuzeigenden Szene des Punktes auf einem Objekt in der Szene, der jedem Bildelement in dem vorbestimmten Bildelement entspricht, festlegen;
  • b) ein fünftes Datenregister zum Speichern von Daten, welche einen inkrementellen Wert der Tiefe festlegen;
  • c) eine Einrichtung zum wiederholten Bilden von Gesamtzahlen des Inhalts des vierten und fünften Datenregisters;
  • d) ein sechstes Datenregister zum Empfangen und Speichern der Gesamtzahlen und vorbestimmten Adressen;
  • e) eine Einrichtung zum Vergleichen jeder Gesamtzahl mit vorher erzielten Gesamtzahlen, die an entsprechenden Adressen in dem sechsten Datenregister gespeichert sind, und Blockieren des Speicherns irgendeiner der Gesamtzahlen und der entsprechenden Summen, in denen die Gesamtzahl die früher erzielte Gesamtzahl übersteigt, welche an der entsprechenden Adresse gespeichert ist.
DE19873705124 1986-02-21 1987-02-18 Anzeigeprozessor und videoverarbeitungsuntersystem fuer computergraphik Ceased DE3705124A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US83251886A 1986-02-21 1986-02-21

Publications (1)

Publication Number Publication Date
DE3705124A1 true DE3705124A1 (de) 1987-09-24

Family

ID=25261878

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19873705124 Ceased DE3705124A1 (de) 1986-02-21 1987-02-18 Anzeigeprozessor und videoverarbeitungsuntersystem fuer computergraphik

Country Status (4)

Country Link
JP (1) JPS62219182A (de)
DE (1) DE3705124A1 (de)
FR (1) FR2594980A1 (de)
GB (1) GB2187368A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3832222A1 (de) * 1987-06-16 1990-03-29 Toshiba Kawasaki Kk Vorrichtung und verfahren zum anzeigen eines 2-dimensionalen bildes eines 3-dimensionalen gegenstandes

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5084830A (en) * 1987-10-26 1992-01-28 Tektronix, Inc. Method and apparatus for hidden surface removal
KR930000693B1 (ko) * 1988-09-14 1993-01-29 가부시키가이샤 도시바 패턴 데이터 발생장치
US5036316A (en) * 1989-04-03 1991-07-30 Honeywell Inc. Method and apparatus for high speed linear shading in a raster graphics system
EP0431776A3 (en) * 1989-11-17 1992-11-19 Digital Equipment Corporation Method of drawing a line segment in a graphics system
EP0430501B1 (de) * 1989-11-17 1999-02-03 Digital Equipment Corporation System und Verfahren zum unverfälschten Polygonenzeichnen
GB2243520A (en) * 1990-04-11 1991-10-30 Afe Displays Ltd Image creation system
GB2245463A (en) * 1990-06-18 1992-01-02 Rank Cintel Ltd Generating graphic images with run length encoded data
US5293467A (en) * 1991-04-03 1994-03-08 Buchner Gregory C Method for resolving priority between a calligraphically-displayed point feature and both raster-displayed faces and other calligraphically-displayed point features in a CIG system
GB2278524B (en) * 1993-05-28 1997-12-10 Nihon Unisys Ltd Method and apparatus for rendering visual images employing area calculation and blending of fractional pixel lists for anti-aliasing and transparency
US5463723A (en) * 1993-09-20 1995-10-31 International Business Machines Corporation Method and apparatus for filling polygons
US8339411B2 (en) 2006-05-04 2012-12-25 Microsoft Corporation Assigning color values to pixels based on object structure
US7609269B2 (en) 2006-05-04 2009-10-27 Microsoft Corporation Assigning color values to pixels based on object structure

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3602702A (en) * 1969-05-19 1971-08-31 Univ Utah Electronically generated perspective images

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4679041A (en) * 1985-06-13 1987-07-07 Sun Microsystems, Inc. High speed Z-buffer with dynamic random access memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3602702A (en) * 1969-05-19 1971-08-31 Univ Utah Electronically generated perspective images

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3832222A1 (de) * 1987-06-16 1990-03-29 Toshiba Kawasaki Kk Vorrichtung und verfahren zum anzeigen eines 2-dimensionalen bildes eines 3-dimensionalen gegenstandes

Also Published As

Publication number Publication date
GB2187368A (en) 1987-09-03
FR2594980A1 (fr) 1987-08-28
JPS62219182A (ja) 1987-09-26
GB8704004D0 (en) 1987-03-25

Similar Documents

Publication Publication Date Title
DE10053439B4 (de) Grafik-Beschleuniger mit Interpolationsfunktion
DE3407983C2 (de) Mehrprozessorrechnersystem zum Erzeugen von Bildpunktinformationen aus in einer hierarchischen Datenstruktur definierten Objektelementen
DE3619420C2 (de)
DE3339178C2 (de)
DE3636394C2 (de) Einrichtung und Verfahren zur Speicherorganisation
DE3230679C2 (de) Bildzeilen-Zwischenspeicher-Vorrichtung
DE2703021A1 (de) Datenprozessor zum liefern von intensitaetssteuersignalen zur verwendung in einer rasteranzeige
DE3718501A1 (de) Videoanzeigegeraet
EP0038411A2 (de) Einrichtung zur Speicherung und Darstellung graphischer Information
DE69633477T2 (de) Bildspeicher für graphische Daten
WO2000063846A1 (de) Verfahren zur rasterisierung eines graphikgrundelements
DE2252556A1 (de) Vorrichtung zum erzeugen eines videosignals zur eingabe in ein rasterabgetastetes sichtgeraet
DE3705124A1 (de) Anzeigeprozessor und videoverarbeitungsuntersystem fuer computergraphik
DE3518416A1 (de) Speicher- und prozessorsystem mit schnellem zugriff zur rasteranzeige
DE2525155A1 (de) Verfahren und anordnung zur rasterpunktdarstellung von codierter - liniensegmente darstellende - information in computergesteuerten datensichtgeraeten, insbesondere in kathodenstrahlbildschirmstationen
DE2261141C3 (de) Einrichtung zur graphischen Darstellung von in einem Computer enthaltenen Daten
DE4139704A1 (de) Anzeigesteuerungsvorrichtung fuer ein flachanzeigegeraet
DE68929485T2 (de) Synchrone dynamische integrierte Speicherschaltung, Zugriffverfahren auf dieses System und System mit einem solchem Speicher
DE3702613A1 (de) Geraet zum verschieben digitaler daten in einem speicher eines datenverarbeitungssystems
DE4100691B4 (de) Verfahren zur Darstellung eines dreidimensionalen Modells
DE69721736T2 (de) Verfahren zum Füllen einer Polygone und Bildverarbeitungssystem
DE2324063B2 (de) Pufferspeichereinrichtung
DE3941550A1 (de) Schaltungsanordnung zum zerlegen einer auf einem computer-ausgabedisplay anzuzeigenden graphikfigur
DE60306388T2 (de) Verfahren und vorrichtung zur bilddatenverarbeitung unter verwendung von bildstreifen und zirkularadressierungsanordnung
DE69914814T2 (de) Bildverarbeitungsgerät

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: STAR TECHNOLOGIES, INC., STERLING, VA., US

8128 New person/name/address of the agent

Representative=s name: REINHARD, H., DIPL.-CHEM. DR.RER.NAT. SKUHRA, U.,

8131 Rejection