DE69728931T2 - Speicherabbildungsverfahren und -vorrichtung - Google Patents

Speicherabbildungsverfahren und -vorrichtung Download PDF

Info

Publication number
DE69728931T2
DE69728931T2 DE69728931T DE69728931T DE69728931T2 DE 69728931 T2 DE69728931 T2 DE 69728931T2 DE 69728931 T DE69728931 T DE 69728931T DE 69728931 T DE69728931 T DE 69728931T DE 69728931 T2 DE69728931 T2 DE 69728931T2
Authority
DE
Germany
Prior art keywords
memory
object point
memory segment
incremental
graphics
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
DE69728931T
Other languages
English (en)
Other versions
DE69728931D1 (de
Inventor
Michael Kerry Austin Larson
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.)
S3 Graphics Co Ltd
Original Assignee
S3 Graphics Co Ltd
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 S3 Graphics Co Ltd filed Critical S3 Graphics Co Ltd
Publication of DE69728931D1 publication Critical patent/DE69728931D1/de
Application granted granted Critical
Publication of DE69728931T2 publication Critical patent/DE69728931T2/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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft allgemein Computergraphik und insbesondere Signalverarbeitungsverfahren für mehrdimensionale Graphiksysteme mit optimiertem Speichermapping für Graphikobjekte.
  • HINTERGRUND DER ERFINDUNG
  • Die Verwendung und Anwendung von Computergraphik auf alle Arten von Systemumgebungen steigt mit der Verfügbarkeit von immer schnelleren Informationsverarbeitungs- und Abrufvorrichtungen weiterhin in einem immer größeren Ausmaß an. Die Betriebsgeschwindigkeit solcher Vorrichtungen bleibt eine Designaufgabe mit hoher Priorität. Dies gilt besonders bei einem Graphiksystem und sogar in noch größerem Ausmaß bei 3D-Graphiksystemen. Solche Graphiksysteme erfordern eine große Verarbeitungsaufgabe für große Datenmengen und die Geschwindigkeit des Datenstroms ist kritisch beim Bereitstellen eines neuen Produkts oder Systems in Designgraphiksystemen zur Anwendung für neue Verwendungen.
  • Im Gebiet der Computergraphik existieren viele Verfahren, um Polygone in ein Pixelgitter zu zeichnen. Polygone werden als Zeichengrundelemente für viele Anwendungen verwendet, wie graphische Benutzerschnittstellen, computerunterstütztes Design und 3D-Computeranimation. Die meisten Techniken zum Zeichnen von Polygonen reduzieren das Polygon in eine Serie von Abtastlinien, die mit den Rändern des Polygons und mit dem Pixelgitter ausgerichtet sind. Wenn diese Verfahren in Hardware implementiert werden, wird auf das Pixelgitter allgemein mit einem sequenziellen Verfahren zugegriffen, d. h. für jeden XY-Pixelzugriff wird das Pixelgitter auf der Grundlage der XY-Adresse aktuali siert. Für ein Pixelgitter, das eine große Aufbauzeit pro Pixelaktualisierung aufweist, kann dies ein zeitlicher Flaschenhals für das System werden.
  • Bei allen Daten- und Informationsverarbeitungssystemen und insbesondere bei Computergraphiksystemen wird viel Zeit zum Zugriff auf Daten von einem Speicher oder einer Speicherstelle, darauffolgendem Verarbeiten dieser Information und Senden der verarbeiteten Information zu einer anderen Stelle zum nachfolgenden Zugriff, Verarbeiten und/oder Anzeigen verbraucht. Mit der immer weiteren Erhöhung der Geschwindigkeit von neuen Prozessoren wird die Zugriffszeit zum Zugriff und zum Abruf von Daten von dem Speicher immer mehr ein Flaschenhals hinsichtlich der Systemgeschwindigkeit.
  • Graphiksysteme müssen in der Lage sein, ausgefeiltere Funktionen in geringerer Zeit durchzuführen, um größere Mengen von Graphikdaten, die durch moderne Softwareanwendungen erfordert werden, zu verarbeiten. Es gibt einen anhaltenden Bedarf nach Verbesserungen in Softwareverfahren und Hardwareimplementationen, um dreidimensionale Objekte unter Verwendung von Vollfarbe, Schattierung, Texturmapping und Transparenzmischen zu zeichnen.
  • Die Entwicklung von Rasteranzeigesystemen reduzierte die Gesamtkosten dramatisch und erhöhte die Fähigkeiten von Graphiksystemen. In einem Rasteranzeigesystem bildet ein Satz von horizontalen oder orthogonalen Abtastlinien, von denen jede eine Zeile von Pixeln umfasst, ein Feld oder Gitter von Pixeln, um den gesamten Schirmbereich zu repräsentieren. Der Schirm ist bevorzugt eine Kathodenstrahlröhre (CRT) oder ein Flüssigkristalldisplay (LCD) oder dgl., das in der Lage ist, das gesamte Pixelgitter mit einer relativ hohen Rate abzutasten, um Flackern so weit als möglich zu reduzieren.
  • Die Pixeldaten werden bevorzugt in einem Framepuffer gespeichert, der dynamische Direktzugriffsspeicher (DRAMs) umfasst, wobei jedes Pixel abhängig von der gewünschten Auflösung, Farbe, Helligkeit und anderen Variablen durch ein oder mehrere Bits repräsentiert wird. Typische Displaysysteme kön nen Schirme mit mehreren Farben mit einer Vielzahl von Schirmauflösungen zeichnen, wie etwa, aber nicht begrenzt auf, 640 × 480, 800 × 600, 1024 × 768, 1280 × 1024 oder andere Kombinationen abhängig von den verwendeten Softwaretreibern und der Hardware. Ein Videocontroller tastet die Pixeldaten in dem Framepuffer ab und wandelt sie zu den Steuer/Regelsignalen um, die durch das Schirmsystem erfordert werden, um die Information auf dem Schirm anzuzeigen. Der Videocontroller tastet jedes der Pixel sequenziell ab, von oben nach unten und von links nach rechts, und wandelt Pixeldaten in Intensitätswerte für entsprechende Pixel auf dem Schirm um. In einem Farbgraphiksystem, das ein CRT verwendet, werden drei getrennte Strahlen gesteuert/geregelt, d. h. ein Strahl für jede der Primärfarben, wobei die Intensität jedes der Strahlen durch den Pixelwert entsprechend den jeweiligen Farben bestimmt ist. Ein ähnliches System wird für LCD-Vorrichtungen verwendet. Jeder Pixelwert kann z. B. 24 Bit umfassen, d. h. ein 8-Bit-Byte für jede der Primärfarben Rot, Grün und Blau, wobei der Bytewert die Intensität der jeweiligen anzuzeigenden Farbe bestimmt.
  • Ein Pixelgitter im Speicher ist eine Repräsentation eines zweidimensionalen Raums in einem Linearzugriffsspeicher. Der Linearzugriffsspeicher besitzt inkrementierende Adressen für jede Stelle im Speicher, d. h. einen eindimensionalen Raum. Ein zweidimensionaler Raum kann in einer eindimensionalen Adressierung durch Erzeugen eines Pitchwerts für den "Y"-Parameter repräsentiert werden, d. h. für jedes Inkrement "Y" existieren eine Anzahl von Pixelgitterstellen in "X". Dies erlaubt es, dass eine lineare Adresse aus einem zweidimensionalen XY-Pixelgitterzugriff berechnet wird. Die meisten Verfahren zum Zeichnen eines Pixelgitters verwenden das obige Verfahren, um auf ein Pixelgitter zuzugreifen. Das XY-Mapping wird zu der Zeit festgehalten, zu der die Polygone auf der Grundlage des gegenwärtigen zweidimensionalen Pixelgitters im Speicher gezeichnet werden. Von diesem Punkt an wird das Pixelgitter, solange nichts anderes genannt ist, als eine feste zweidimensionale Repräsentierung eines Pixelgitters in dem linear adressierten Speicher angenommen.
  • Ein Polygon wird als ein Satz von Punkten in dem Pixelgitter repräsentiert, die den Schnittpunkt des zu zeichnenden Polygons abbilden. Die Definition der meisten Linien und Polygone sind stetige Funktionen, die durch das Pixelgitter nur angenähert werden können. Polygone werden in Computergraphik allgemein durch Zerlegen der Definition des Polygons in einen Satz von Grenzbedingungen gezeichnet, die Vertexpunkte genannt werden und die Näherungen der Endpunkte des Polygons in einem Pixelgitter repräsentieren. Diese Vertexpunkte werden dann in einen Satz von Abtastlinien für jede Y-Abtastung in der X-Richtung für jedes Pixel in der X-Richtung, das innerhalb des Polygons enthalten ist, zerlegt.
  • Unter besonderer Bezugnahme auf Computergraphikanwendungen werden Repräsentationen von Bildern in pixelorientierten Framepuffern gespeichert. Das Referenzframe für Videopuffer ist ein Nullpunkt relativ zu einer Matrix von Speicherpositionen für Speicherpixelwerte und Information, die die ein anzuzeigendes Bild definierenden Pixeleigenschaften betrifft. Diese Nullpunktspeicherposition entspricht einer Nullpunktpixelposition auf einem Anzeigeschirm, der zur Anzeige des in den gespeicherten Pixeln enthaltenen Bildes verwendet wird. Ein String oder eine Zeile von Daten aus dem Puffer entspricht einer Zeile von Pixeln auf dem Anzeigeschirm. Wenn ein Bild auf einem Anzeigeschirm erneuert wird, wird jede Zeile von Daten, die in dem Videospeicher gespeichert sind, sequenziell aus dem Speicher zugegriffen und zu der Anzeigevorrichtung übertragen, um entsprechende sequenzielle Linien von Pixeln auf der Anzeige zu füllen. Jeder solche Zugriff und jede solche Übertragung weist eine denselben zugeordnete Verzögerungszeit auf, die bislang relativ unveränderbar war, wegen der inhärenten Abhängigkeit des Speicherprozesses von dem Abtastprozess, d. h. die Initiierung jeder Speicherlinie beginnt mit dem am weitesten links angeordneten Pixel jeder Anzeigeabtastlinie ohne Rücksicht auf die Position in der Abtastlinie, die das erste Bit von der Bilddefinition enthält. Diese Beziehung erforderte, dass eine gewisse feste Anzahl von Zugriffen existiert und die damit verbundenen Verzögerungen für eine entsprechend feste Anzahl von Schirmabtastungen pro Schirmanzeige.
  • Gegenwärtige Implementationen zeichnen jede Abtastlinie in dem Pixelgitter als eine Serie von XY-Zugriffen auf das Pixelgitter. Wenn jedes Pixel erzeugt wird, wird es sequenziell aus dem Pixelgitter herausgeschrieben. Mit dem obigen Verfahren des Zeichnens von Polygonen auf einem Pixelgitter ist die Anzahl von Zugriffen auf das Pixelgitter gleich der Anzahl von innerhalb der Repräsentation des Polygons in dem Pixelgitter enthaltenen Pixeln. Für Speichersubsysteme mit einer relativ großen Zugriffszeit für sequenziellen Zugriff auf das Pixelgitter kann die Zugriffszeit pro Pixel der begrenzende Faktor für die in einem zeitlich festgelegten Intervall zu zeichnende Anzahl von Polygonen sein. Viele Speichersubsysteme weisen eine große Zugriffszeit auf, aber kompensieren dies, indem sie in der Lage sind, sequenzielle Zugriffe zu beschleunigen, nachdem der erste Zugriff gemacht worden ist.
  • Die Patentanmeldung GB 2 251 770 betrifft ein Graphikbeschleunigersystem, das den Speicherzugriff optimiert durch Zugreifen der Patches, die teilweise innerhalb des Polygons liegen. Das offenbarte System führt eine Polygontraversierung unter Bezugnahme auf Patches von Pixeln durch. Das Polygon wird traversiert – Patch für Patch – mit einer Art von Rasterabtastung. Nachdem eine Zeile von Patches beendet ist, wird die nächste Zeile von Patches an derselben Ausgangsposition gestartet, aber die Richtung der Bewegung wird derart ausgewählt, dass die Chancen minimiert werden, durch viele leere Patches zu wandern, bevor das Polygon gefunden wird.
  • Demzufolge existiert ein Bedarf für ein neues Verfahren zur Erhöhung der Anzahl von Pixeln, die pro Zugriff gezeichnet werden, um die Gesamtzahl von erforderlichen Zugriffsoperationen zu reduzieren und ebenfalls die erforderliche Zeit zu reduzieren und die Geschwindigkeit des Systems zu erhöhen. Es existiert ebenfalls ein Bedarf für ein verbessertes Verfahren und eine Vorrichtung, die zur Maximierung der Anzahl von verarbeiteten Daten wirksam sind und ebenfalls zur Maximierung der Informationstransfereffizienz, d. h. zur Maximierung des Anteils der nützlichen Daten, auf die pro Abtastung zugegriffen wird.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ein Verfahren und System wird vorgesehen, um optimal einen schnellen Speicher in Segmente aufzuteilen, wobei jedes der Segmente mit der Form eines Graphikobjekts in Beziehung steht, welches auf einer Anzeigevorrichtung gezeichnet werden kann. Das Verfahren ist iterativ und fährt fort, objektreferenzierte minimal große Speichersegmente zu definieren, bis das gesamte Objekt für die weitere Verarbeitung segmentiert worden ist.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Ein besseres Verständnis der vorliegenden Erfindung kann erhalten werden, wenn die folgende detaillierte Beschreibung einer bevorzugten Ausführungsform in Verbindung mit den begleitenden Zeichnungen betrachtet wird, in denen:
  • 1 ein Blockdiagramm eines Computersystems einschließlich eines Graphiksystems ist,
  • 2 ein Blockdiagramm des in 1 gezeigten Graphiksystems ist,
  • 3 ein Flussdiagramm ist, das eine Gesamtmethodologie zur Verarbeitung von Graphikanzeigedaten zeigt,
  • 4 ein Flussdiagramm ist, das einen Betriebsfluss für ein optimiertes Speichersegmentdatenspeicherverfahren zeigt,
  • 5 eine Illustration des Abtastens eines Objekts auf einem Anzeigeschirm ist,
  • 6 eine Illustration ist, die verschiedene mögliche teilobjektbasierte Pixelbereichsabdeckungsmuster zeigt,
  • 7 eine Illustration ist, die eine Anwendung von Pixelabdeckungsmustern auf einem exemplarischen Anzeigeobjekt zeigt,
  • 8 eine Illustration ist, die eine Punktreferenz-Objektabtastverfahren zeigt,
  • 9 ein Flussdiagramm ist, das die Details einer der in 3 gezeigten Operationen zeigt,
  • 10 ein Flussdiagramm ist, das die Details einer anderen in 3 gezeigten Operation zeigt,
  • 11 ein Flussdiagramm ist, das die Details des "ZEICHNE IN DAS SRAM"-Schritts zeigt, der in 9 gezeigt ist, und
  • 12 eine Illustration der Details eines der Schritte des in 11 gezeigten Flussdiagramms ist.
  • DETAILLIERTE BESCHREIBUNG
  • Gemäß der offenbarten Ausführungsform wird ein Speicher mit schnellem sequenziellen Zugriff verwendet, um Teile eines Polygons zu zeichnen. Eine Pixelschreibmaske wird verwendet, um zu bestimmen, welche Pixel aus dem sequenziellen Schnellzugriffsspeicher auf das Pixelgitter gezeichnet werden. Dies ermöglicht es, dass auf den Pixelgitterspeicher in zwei Dimensionen im Burstverfahren zugegriffen wird. Das offenbarte Verfahren wird verwendet, um zu bestimmen, welche Teile des gegenwärtig zu zeichnenden Polygons in den sequenziellen Schnellzugriffs- oder Scratch-Pad-Speicher passen. Der Scratch-Pad-Speicher wird dann mit den zu zeichnenden Pixeln gefüllt. Der Scratch-Pad-Speicher besitzt kein festes XY-Mapping während des Zeichnens eines Polygons, wie es das Pixelgitter aufweist, sondern ist variabel und basiert auf dem Teilblock des zu zeichnenden Polygons. Dies ermöglicht es, dass das Polygon mit Blöcken von verschiedener Breite und Höhe ausgefüllt wird. Das Verfahren des Zeichnens von Polygonen ist das Abtastlinienverfahren, aber die Y-Dimension wird in Inkremente von Eins oder mehr aufgebrochen, auf Grundlage der Blockgröße, die in den Scratch-Pad-Speicher passen kann. Jedes Pixel wird in den Scratch-Pad-Speicher gezeichnet, als ob es in das Pixelgitter gezeichnet würde, und eine Pixelschreibmaske wird verwendet, um die auf das Scratch Pad gezeichneten Pixel zu verfolgen. Wenn ein Block gefüllt ist oder seine Grenze in Y erreicht, wird er nachfolgend zu dem Pixelgitter übertragen. Die Pixelschreibmaske wird verwendet, um zu bestimmen, welche Pixel gezeichnet werden. Dies hält das Speichersubsystem, in dem das Pixelgitter enthalten ist, im Burstmodus, wodurch die Speicherbandbreite optimiert wird.
  • In der offenbarten Implementierung kann ein 128 Byte SRAM auf einer Chipausführung zur Verwendung als Scratch-Pad-Speicher vorhanden sein. Das Pixelgitter ist eine XY-Karte und kann in dem Framepuffer angeordnet sein. Der Scratch-Pad-Speicher weist vier Potenzen von "2"-Pitches auf, die als "1 × 128", "2 × 64", "4 × 32" und "8 × 16" in XY definiert sind. Das Pixelgittermapping hängt von dem Speichermappingmodus der Speichersteuer/regeleinheit ab. Eine Ein-Bit-Pixelschreibmaske wird verwendet, um die – Pixeloctobytes (8 Bytes) zu bestimmen, die in den Speicher zurückgeschrieben werden sollen. Der Scratch-Pad-Speicher ist auf der Grundlage der Anzahl von Bytes pro Pixelformat rekonfigurierbar.
  • Unter Bezugnahme auf 1 können die verschiedenen oben diskutierten Verfahren innerhalb eines typischen Computersystems oder einer Workstation 101 implementiert sein. Eine typische Hardwarekonfiguration einer Workstation, die in Verbindung mit der vorliegenden Erfindung verwendet werden kann, ist gezeigt und enthält eine Zentralprozessoreinheit (CPU) 103, wie einen herkömmlichen Mikroprozessor, und eine Anzahl von anderen durch einen Systembus 105 verbundenen Einheiten. Der Bus 105 kann eine Erweiterung 121 für weitere Verbindungen zu anderen Workstations oder Netzwerken und dgl. enthalten. Die in 1 gezeigte Workstation enthält einen System-Direktzugriffsspeicher (RAM) 109, und einen System-Nur-Lese-Speicher (ROM) 107. Der Systembus 105 ist ebenfalls typischerweise durch einen Benutzerschnittstellenadapter 115 mit einer Tastaturvorrichtung 111 und einer Maus oder einer anderen Zeigevorrichtung 113 verbunden. Andere Benutzerschnittstellenvorrichtungen, wie eine Touch-Screen-Vorrichtung (nicht gezeigt), können ebenfalls mit dem Systembus 105 durch den Benutzerschnittstellenadapter 115 gekoppelt sein. Eine Graphikvorrichtung 117 ist ebenfalls zwischen dem Systembus 105 und einer Monitor- oder Anzeigevorrichtung 119 verbunden gezeigt. Da die Workstation oder das Computersystem 101, innerhalb der/dem die vorliegende Erfindung implementiert ist, größtenteils in der Technik allgemein bekannt ist und aus elektronischen Komponenten und Schaltungen aufgebaut ist, die ebenfalls dem Fachmann allgemein bekannt sind, werden Schaltungsdetails über diejenigen in 1 gezeigten hinaus nicht weiter erläutert als die die, wie oben gezeigt, zum Verständnis und zur Würdigung der der vorliegenden Erfindung zugrundeliegenden Konzepte für notwendig erachtet wurden, und um die Lehren der vorliegenden Erfindung nicht zu verschleiern oder von diesen abzulenken.
  • In 2 ist gezeigt, dass der Systembus 105 mit der Graphikvorrichtung – oder dem Subsystem 117 verbunden ist. Die Graphikvorrichtung 117 kann z. B. einen Graphikprozessor 201 enthalten, der derart ausgebildet ist, dass er Information oder Daten von einer Framepuffereinheit 203 verarbeitet, überträgt und empfängt. Die Framepuffereinheit 203 enthält Frameanzeigeinformation, auf die durch den Graphikprozessor 201 zugegriffen wird, der wiederum mit einer Anzeigevorrichtung 119 verbunden ist. Die Anzeigevorrichtung 119 ist derart betreibbar, dass sie eine Graphikanzeige der in dem Framepuffer 203 gespeicherten Information bereitstellt, wie sie durch den Betrieb des Graphikprozessors 201 verarbeitet wurde. Obwohl das vorliegende Beispiel einen von einer System-CPU 103 getrennten Graphikprozessor 201 zeigt, versteht es sich, dass die vorliegende Erfindung nicht darauf beschränkt ist, einen separaten Graphikprozessor zu haben, sondern ebenfalls Systeme enthält, in denen die hierin gelehrte Methodologie innerhalb oder als Teil einer einzelnen System- CPU oder eines anderen größeren Systemchips oder einer integrierten Schaltung implementiert ist.
  • In 3 beginnt das offenbarte Verfahren mit einem POLY-ZEICHNEN-Befehl 301. Der POLY-ZEICHNEN-Befehl referenziert bestimmte Information, die das zu zeichnende Polygon betrifft, wie die verschiedenen Steigungen des zu zeichnenden Polygons ebenso wie die verschiedenen Vertizes oder Punkte des Polygons. Als Nächstes bestimmt der Prozess die XY-Schnellspeichersegmentgröße 303. Dieser Prozess wird detaillierter in Verbindung mit 4 bis 8 erläutert, aber es sei bemerkt, dass der Segmentgrößenbestimmungsschritt eine Schnellspeicherverwendungsoptimierung ermöglicht, sodass ein schneller sequenzieller Zugriff verwendet wird, um Teile eines Polygons zu zeichnen, und eine Pixelschreibmaske verwendet wird, um zu bestimmen, welche Pixel von dem sequenziellen Schnellzugriffsspeicher zu dem Pixelgitter oder Framepuffer zur Präsentation auf dem Schirm oder der Anzeigevorrichtung gezeichnet werden.
  • Der Bestimmung der Segmentgröße 303 folgend werden die Segmente 305 in einen sequenziellen Schnellspeicher gezeichnet, z. B. einen SRAM. Der SRAM im vorliegenden Beispiel ist in den Graphikchip eingebaut, aber es versteht sich, dass ein System- oder anderer Off-Chip SRAM ebenfalls verwendet werden kann. In der vorliegenden Offenbarung werden die Ausdrücke "SRAM", "Schnellspeicher" und "sequenzieller Schnellzugriffsspeicher" austauschbar verwendet, um einen sogenannten "Scratch-Pad-Speicher" zu bezeichnen, der in dem Graphiksubsystemprozessor 201 im vorliegenden Beispiel enthalten ist. Nachdem das Segment in den Scratch-Pad-Speicher 305 gezeichnet ist, wird das Segment gespeichert 307, wie hierin im Folgenden detaillierter in Verbindung mit 10 erläutert wird. Dem Segmentspeicherschritt 307 folgend wird eine Bestimmung gemacht, ob das zu zeichnende Polygon in Antwort auf den POLY-ZEICHNEN-Befehl beendet ist 309. Wenn, auf die letzte Segmentspeicherung folgend, weitere Abschnitte des Polygons verbleiben, dien noch nicht segmentiert worden sind, kehrt der Prozess zum Anfang des Segmentie rungsbemessungsschritt 303 zurück, um den nächsten Segmentabschnitt des zu zeichnenden Polygons zu definieren. Dieser iterative Prozess dauert an, solange, bis das gesamte zu zeichnende Polygon segmentiert ist und die POLY-FERTIG-Bestimmung 309 eine zustimmende Antwort zurückgibt. Zu dieser Zeit wird eine Bestimmung bezüglich dessen gemacht, ob irgend welche weitere zu zeichnende Polygone für ein spezielles Framepuffer vorhanden sind, das auf der Anzeigevorrichtung 119 angezeigt werden soll. Wenn noch mehr Polygone zu zeichnen sind, kehrt der Prozess zum Initialisierungsschritt zurück, um das nächste Polygon zu zeichnen, POLY-ZEICHNEN 301. Nachdem alle der Polygone für ein spezielles Bildframe gezeichnet worden sind, 305, und gespeichert worden sind, 307, und es keine weiteren zu zeichnenden Polygone 311 mehr gibt, wird der Teilobjektspeichermappingprozess beendet 313.
  • 4 zeigt den Segmentdimensionierungs- oder Objektsegmentierungsschritt 303 detaillierter. Um den Segmentierungsprozess von 4 vollständiger würdigen zu können, sollte ebenfalls auf 5 bis 8 Bezug genommen werden. 5 zeigt einen Schirmabtastprozess, bei dem, im vorliegenden Beispiel, ein CRT-Schirm 503 von einem Rand 501 zum gegenüberliegenden Rand 502 durch einen Elektronenstrahl oder Strahlen entlang Abtastzeilen 504 abgetastet wird. 5 zeigt ein Polygon 500 (ein Dreieck im vorliegenden Beispiel), das angezeigt wird. Um der Verdeutlichung willen sind Schnittpixel 507 und 509 vergrößert als Schnittpunkte zwischen einem Rasterabtasthub 505 und dem Polygon oder Dreieck 500 gezeigt. Das Dreieck 500 enthält einen Hauptbasispunkt 516 sowie einen "oberen" Punkt 514 und einen Vertexpunkt 512. Die Rasterabtastung 505 schneidet das Dreieck 500 in einem Punkt 507 an einer "ersten gegenüberliegenden Steigung" 508 oder einem Rand des Dreiecks 500 und schneidet ebenfalls das Dreieck 500 am Punkt 509 an der "Hauptsteigung" 510 des Dreiecks 500. Eine andere Steigung des Dreiecks 500 wird als die "zweite gegenüberliegende Steigung" 511 bezeichnet. Im Allgemeinen ist in der Graphikterminologie, z. B. unter Bezugnahme auf ein dreieckiges Grundelement, die "Hauptsteigung" als die Seite definiert, die die gesamte vertikale Dimension überspannt und die längste Vertikalkompo nente des Objekts, z. B. des Dreiecks 500, enthält. Der Punkt 516 am Boden oder der Basis der Hauptsteigung wird als der "Basispunkt" bezeichnet. Die "gegenüberliegenden" Steigungen sind die Seiten, die der "Hauptsteigung" gegenüberliegen, und werden hierin als die "erste gegenüberliegende Steigung 508" und die "zweite gegenüberliegende Steigung 511" bezeichnet, da sie in der Anzeige von oben nach unten positioniert sind. Im Allgemeinen enthält ein Framepuffer die gesamte Pixelinformation jedes Bildframes, das in einem beliebigen Moment angezeigt wird. Die Information enthält z. B. alle der Leerpixel ebenso wie alle der gefüllten oder Füllpunktpixel. Wenn die Frame-Anzeigeinformation verarbeitet werden soll, besonders bei Graphiksystemen, in denen eine derartige Bearbeitung intensiv ist, wird das Verfahren der Frameinformationsspeicherung, wie es in 5 gezeigt ist, als ineffizient und voluminös für Verarbeitungszwecke angesehen. Der Segmentierungsprozess, wie er hierin beschrieben ist, kann dafür angesehen werden, eine effektive Rationalisierung des Objektinformationsspeicherprozesses zu erreichen, was einen sehr viel schnelleren Zugriff und Verarbeitung solcher Information ermöglicht.
  • In 6 sind mehrere verschiedenen Layouts oder Referenzorientierungen für ein 128 Bit SRAM gezeigt. In der folgenden Diskussion sind die Pixelabdeckungsmuster in verschiedenen Formen konfiguriert, die Speicherstellen und entsprechen Speicherkonfigurationen entsprechen. Ebenfalls wird zum Zwecke der Erläuterung der Ausdruck "Bit" derart verwendet, dass er die kleinste Speichereinheit bedeutet, und der Ausdruck "Pixel" wird derart verwendet, dass er die kleinste Bildelementeinheit bezeichnet. In einer ersten Orientierung 601 ist der Speicher nur ein Bit hoch mal 128 Bit lang konfiguriert. Eine andere Orientierung 603 ist 2 Bit hoch und 64 Bit lang konfiguriert. Andere Orientierungen 605, 607 und 609 zeigen jeweils Orientierungen 4 Bit hoch mal 32 Bit lang, 32 Bit hoch mal 4 Bit lang und 128 Bit hoch mal 1 Bit lang. Es ist ersichtlich, dass abhängig von dem Layout oder der Orientierung des 128 Bit-Speichers unterschiedliche entsprechende Bereiche eines angezeigten Objekts "abgedeckt" werden können. Wie in 7 gezeigt ist, ist das Polygon 701 auf einem Anzeigeschirm 703 angeordnet. Der Anzeigeschirm 703 enthält Bits von Information, die Pixel auf dem Schirm bilden. Wie hierin zuvor bemerkt, ist der Framepuffer eines Anzeigesystems gewöhnlich derart konfiguriert, dass eine Entsprechung zwischen einer Pixelposition relativ zum Anzeigeschirm und der Position im Speicher der Bits existiert, die den Inhalt oder die Substanz des entsprechenden Pixels umfassen oder ausmachen. Wie in 7 gezeigt ist, können die Segmente des Speichers, die Information betreffend das Polygon 701 enthalten, durch verschiedene Punkte des Polygons selbst referenziert werden, um die relevante Polygoninformation in einem kompakteren Speicherbereich oder Speichergröße zu speichern, wodurch ein effizienteres Informationsspeichersystem bereitgestellt wird. Die Konfiguration eines ersten Speichersegments 705 kann beinahe so lang sein wie sie hoch sein, da das Polygon an dem Punkt nicht so hoch ist. Wenn ein Speichersegment der für das erste Speichersegment 705 gezeigten Konfiguration mit gespeicherten Bits von Polygoninformation gefüllt wird, wird bestimmt, dass alle Information betreffend das Polygon noch nicht gespeichert worden ist und dass daher ein Bedarf besteht, ein anderes Segment des Speichers zu konfigurieren, um zusätzliche Bits zu empfangen. Da das nächste Segment des Polygons 701 größer ist als das erste Segment, wird das zweite Segment 707 des Speichers mit einer höheren Querdimension, aber einer kürzeren Längendimension konfiguriert, um die gesamte relevante Polygoninformation in einem so kompakt wie möglichen Raum optimal zu speichern. In ähnlicher Weise wird das nächste Speichersegment 709 ebenfalls optimal für eine maximale Datenspeichereffizienz für das auf dem Schirm 703 zu zeichnende Polygon konfiguriert. Diese Technik ermöglicht es, dass ein Polygon z. B. aus einem Schnellzugriffs-SRAM-Speicher unter Verwendung einer minimalen Anzahl von Zugriffen gezeichnet wird.
  • 8 zeigt detaillierter die Rekonfiguration oder den SRAM-"Formgebungs"-Prozess, durch den die Information in einem Framepuffer kompakter durch ein objektreferenziertes Speicherverfahren gespeichert werden kann. In 8 steigt die Ordinate "Y" in der nach unten gerichteten Richtung an, wie gezeigt ist. Das gezeigte Polygon besitzt die Form eines Dreiecks mit einem oberen Punkt 801 an der Oberseite des Dreiecks, einem unteren Punkt 803 an dem unteren Ende einer Hauptsteigung 802 und einem Mittelpunkt oder Vertex 805, der die jeweils erste und die zweite gegenüberliegende Steigung 806 und 808 jeweils verbindet.
  • Detaillierter unter Bezugnahme auf 4 und 8 beginnt das Verfahren zur Bestimmung 303 der Schnellspeicher- oder SRAM-Segmentgrößen nach einem POLY-ZEICHNEN-Befehl 301 durch Finden 401 des ersten "1"-Bits in dem zu zeichnenden Polygon. Unter Bezugnahme auf 8 ist das erste "1"-Bit in dem vorliegenden Beispiel der obere Punkt 801 eines Polygons 800. Man beachte, dass der POLY-ZEICHNEN-Befehl Information betreffend die Steigungen und Vertizes oder Punkte des zu zeichnenden Objekts enthält. Demzufolge ist die Stelle des oberen Punkts 801 durch das Verfahren bekannt, wenn der POLY-ZEICHNEN-Befehl erzeugt wird. Das Verfahren markiert als Nächstes 403 oder speichert die Stelle des ersten "1"-Bits als ein Segment START-Punkt für weitere Bezugnahme. Dieser Punkt entspricht dem Beginn einer objektbasierten Konfiguration einer schnellen SRAM-Speichereinheit. Mit diesem Bezugspunkt bestimmt das Verfahren, welche SRAM-Konfiguration am effizientesten das nächste Segment des Polygons speichert. Z. B. bewegt sich unter Verwendung einer 128 Bit-Speichereinheit als eine Basis im vorliegenden Beispiel das Verfahren als Nächstes relativ zum START-Punkt 801, wie in 8 gezeigt, um Punkte auf dem Polygon 800 abzubilden, bis 128 Bits in dem Prozess verwendet worden sind. Man beachte, dass jede inkrementelle Bewegung in der "Y"-Richtung als ein "Zähler" bezeichnet wird und eine vorbestimmte Anzahl von Bits bei der Bewegung von einer horizontalen Seite zur nächsten erfordert. Zu den vertikalen Bewegungen werden die Anzahl von Bits addiert, die erforderlich sind, um sich von dem vertikalen Tropfpunkt 807 zu der Hauptsteigung 802 am Punkt 809 und ebenfalls von dem ersten vertikalen Tropfpunkt 807 zu der ersten gegenüberliegenden Steigung 806 am Punkt 811 zu bewegen. Insbesondere beginnt das Verfahren, das "POLYGON ZUM NÄCHSTEN "1" BIT oder gefüllten Pixel in dem Polygon 800 ZU TRAVERSIEREN" 405. Im vorliegenden Beispiel "sieht" das Verfahren in einer ansteigenden "Y"-Richtung in einer inkrementellen Weise jedes Mal einen Zähler und sucht dann nach dem nächsten "1"-Bit in jeder gegenüberliegenden horizontalen Richtung. Jedes Mal, wenn ein "1"-Bit lokalisiert wird, wird es als eine Referenz relativ zu dem letzten Segment "Start"-Punkt 801 markiert.
  • Als Nächstes wird bestimmt, ob der Unterschied zwischen dem STAR "1" BIT 801 und dem neu lokalisierten nächsten "1"-Bitpunkt größer ist als die Segmentgröße 407, d. h. 128 Bit in dem vorliegenden Beispiel. Wenn der Unterschied größer ist als 128 Bit, wird die Segmentgröße bei 128 Bit von dem START "1" BIT bestimmt und die Segmentform wird dann definiert 411. In ähnlicher Weise wird dann, wenn die Segmentgröße 407 nicht durch die Traverse von dem START BIT überschritten wird und der neu lokalisierte Punkt der Boden des Polygons 409 ist, in diesem Fall das Segment ebenfalls definiert und geformt 411. Wenn die "Segmentgröße"- 407 oder "Boden"-Anfragen ein negatives Ergebnis zurückgeben, kehrt der Prozess zu TRAVERSIEREN DES POLYGONS ZUM NÄCHSTEN "1" BIT zurück, um das nächste "1"-Bit in dem zu zeichnenden Polygon zu finden. Wenn der "1"-Bitpunkt der BODENpunkt des Polygons ist, fährt der Prozess zu DEFINIEREN DER SEGMENTFORM 411 fort und kehrt zu SEGMENT ZEICHNEN 305 zurück, wie hierin zuvor in Verbindung mit 3 erläutert wurde.
  • Im "POLYGON ZUM NÄCHSTEN "1" BIT TRAVERSIEREN"-Schritt 405 sucht der Prozess für das nächste "1"-Bit in dem Polygon 800 in einem sequenziellen Suchmuster von einem Schnitt "1"-Bitpunkt, z. B. 811 oder 809, jeweils zum nächsten 819 oder 815, während er an jedem Punkt überprüft, ob die kumulativen Bits von dem letzten STARTpunkt weniger als die 128 Bit SRAM-Segmentgröße 415 bleiben. An jedem Punkt, an dem die gegenwärtige Speichersegmentgröße die Basissegmentgröße 528 Bit überschreitet, kann die Segmentkonfiguration definiert und geformt werden. Die Breite des Segments wird durch die Anzahl von Zählern oder vertikalen Absätzen bestimmt, die zwischen dem STARTpunkt und dem Punkt verwendet worden sind, bei dem die Gesamt SRAM-Speichereinheit oder Basiskapazität von 128 Bit überschrit ten worden ist. Die Länge der Konfiguration wird auch durch Addieren der kumulativen horizontalen Inkrementalbewegungen während derselben Periode bestimmbar. Daher wird das Polygon in einem Muster abhängig von und unter Bezugnahme auf das erste "1"-Bit in dem Polygon gespeichert und die SRAM-Segmentgrößen werden geformt oder konfiguriert in verschiedenen Formen oder Proportionen, abhängig von der maximalen Polygon-"Abdeckung" oder Bitspeichereffizienz. Der iterative SRAM-Konfigurationsprozess fährt fort, solange bis der BODENpunkt 803 des Polygons 800 erreicht wird, zu welcher Zeit das Verfahren zu dem SEGMENT ZEICHNEN-Schritt 305 in 3 zurückkehrt. Danach fährt nach Maßgabe des in 3 gezeigten Verfahrens der SRAM-Formprozess fort, solange bis alle der zu zeichnenden Polygone insgesamt in der neu definierten kompakten Form in einem Schnellzugriffs-Scratch-Pad-SRAM gespeichert sind und durch das Polygonobjekt selbst referenziert sind, nach Maßgabe des vorliegenden Verfahrens.
  • In 9 ist der SEGMENT-ZEICHNEN-Schritt 305 von 3 detaillierter gezeigt. Der Bestimmung einer Speichersegmentform 303 folgend wird eine Bestimmung bezüglich dessen gemacht, ob ein Z-ABRUF 901 erforderlich ist. Wenn ein Z-ABRUF 901 erforderlich ist, wird ein Z-Wert von dem Z-Puffer des Graphikcontrollers abgerufen und dem speziellen "1"-Bitpunkt "angefügt" oder referenziert, der verarbeitet wird. In ähnlicher Weise wird dann, wenn ein FARBENABRUF oder C-ABRUF 903 erforderlich ist, d. h. dann, wenn dem verarbeiteten Punkt eine Farbe zugeordnet ist, die Farbe abgerufen 907 und das Verfahren fährt durch Zeichnen der assemblierten Datei in das SRAM oder den Scratch-Pad-Speicher fort, d. h. ZEICHNEN IN SRAM 911.
  • Der ZEICHNEN IN SRAM-Schritt 911 ist detaillierter in 11 gezeigt. Nach dem Z- und C-Abruf, 901 und 903, wird eine Bestimmung gemacht, ob eine Farbquelle erforderlich ist, 1101. Wenn eine Farbquelle erforderlich ist, z. B. für Transparenzeffekte oder Farbquellenvergleichsfunktionen, wird ein Block in ein Farb-SRAM 1105 abgerufen. Als Nächstes wird eine Bestimmung gemacht, ob eine Z-Tiefen-Quelle erforderlich ist, 1103. Wenn ja, wird ein Block in den Z- Puffer SRAM 1107 abgerufen. Der Prozess fährt dann zu FARBE IN DEN Z-PUFFER ZEICHNEN UND VERGLEICHEN 1109 fort. Der FARBE IN DEN Z-PUFFER ZEICHNEN UND VERGLEICHEN-Schritt 1109 ist detaillierter in 12 gezeigt.
  • In 12 wird zunächst eine Bestimmung gemacht, ob ein Z-VERGLEICH erforderlich ist, 1201. Wenn ein Z-VERGLEICH erforderlich ist, wird die Z SRAM-Stelle für den analysierten Punkt zum Vergleich gelesen, 1203. Wenn der neue Z-Wert größer (oder niedriger) ist als der gespeicherte Z-Wert (abhängig von den Konventionen des Systems), wird der neue Wert in den SRAM geschrieben, 1205. Anderenfalls wird der alte Z-Wert geschrieben. Der Prozess bestimmt dann, ob der Block beendet ist, 1207, und falls nicht, kehrt der Prozess zu Schritt 1201 zurück. Wenn der Block beendet ist, fährt der Prozess durch Bewegen zu dem SEGMENT-SPEICHERN-Schritt 307 fort.
  • Wie in 10 gezeigt ist, arbeitet die SEGMENT-SPEICHERN-Funktion 307 zum Speichern der Farbe, d. h. FARBE SPEICHERN 1001, und ebenfalls, um, den Z- oder Tiefenwert zu speichern, d. h. Z SPEICHERN 1003, des verarbeiteten "1"-Bitpunkts. Der Prozess fährt dann fort durch Durchführen einer Bestimmung, ob das spezielle gezeichnete Polygon fertig ist, d. h. POLYGON FERTIG 309 in 3. Wenn z. B. der letzte analysierte oder verarbeitete "1"-Bitpunkt der Punkt 815 in 8 war, würde das gezeichnete Polygon 800 nicht voll segmentiert oder fertig sein und die POLYGON-FERTIG-Anfrage 309 würde eine negative Bestimmung zurückgeben und der Prozess würde zurückkehren, um das nächste "1"-Bit zu finden, d. h. SEGMENTSTART "1" BIT FINDEN 401, wie in 4 gezeigt ist. Wenn das gezeichnete spezielle Polygon zum BODENpunkt in dem Polygon fertig ist, wird eine Bestimmung gemacht, ob irgend welche weiteren zu zeichnenden Polygone 311 für das spezielle bearbeitete Frame existieren. Wenn keine weiteren zu zeichnenden Polygone existieren, ist der Prozess FERTIG 313. Wenn weitere zu zeichnende Polygone existieren, d. h. wenn weitre POLYGON-ZEICHNEN-Befehle existieren, kehrt der Prozess zu dem POLYGON-ZEICHNEN-Schritt 301 zurück und führt diesen Prozess weiter, wie hierin zuvor erläutert, unter Bezugnahme auf das nächste Polygon. Die beschriebene Verarbeitung dauert in einer iterativen Weise so lange an, bis alle der Polygone für ein spezielles Frame im SRAM erneut gezeichnet wurden nach Maßgabe des offenbarten Verfahrens. Unter Verwendung des offenbarten Verfahrens werden die Frame-Polygondaten rekonfiguriert oder reassembled und in einer kompakten und hocheffizienten Weise gespeichert, wodurch eine viel schnellere Verarbeitung ermöglicht wird, die speziell für Graphik und dreidimensionale Anwendungen geeignet ist.

Claims (27)

  1. Verfahren zum Speichern von Information, die ein auf einem Bildschirm einer Anzeigevorrichtung darstellbares Objekt repräsentiert; wobei das Verfahren umfasst: Bestimmen eines ersten Objektpunktes an einem in dem Speicher zu speichernden Objekt; Markieren einer ersten Speichersegmentstelle in einem Speichersegmentabschnitt des Speichers; wobei die erste Speichersegmentstelle dem ersten Objektpunkt entspricht; Inkrementelles Traversieren des Objekts entlang eines vorbestimmten Traversierungspfads relativ zu dem ersten Objektpunkt, um einen nächsten Objektpunkt an dem Objekt zu bestimmen; Markieren einer nächsten Speichersegmentstelle in dem Speichersegmentabschnitt des Speichers, wobei die Speichersegmentstelle dem nächsten Objektpunkt entspricht; Bestimmen einer Differenz von inkrementellen Bewegungen zwischen dem ersten Objektpunkt und dem nächsten Objektpunkt entlang des Traversierungspfads; und Definieren von Dimensionen des Speichersegmentabschnitts des Speichers nach Maßgabe der Differenz von inkrementellen Bewegungen zwischen dem ersten Objektpunkt und dem nächsten Objektpunkt entlang des Traversierungspfads.
  2. Verfahren nach Anspruch 1, wobei der Schritt des inkrementellen Traversierens so lange wiederholt wird, wie die Differenz von inkrementellen Bewegungen zwischen dem ersten Objektpunkt und irgend einem nächsten Objektpunkt geringer ist als ein vorbestimmter Speichersegmentabschnitt des Speichers.
  3. Verfahren nach Anspruch 2, wobei der Schritt des inkrementellen Traversierens iterativ relativ zu einem unmittelbar vorangehenden nächsten Objektpunkt erledigt wird.
  4. Verfahren nach Anspruch 3, wobei der Schritt des inkrementellen Traversierens nach Maßgabe eines vorbestimmten Musters erledigt wird.
  5. Verfahren nach Anspruch 4, wobei das vorbestimmte Muster abwechselnde vertikale und horizontale Bewegungen umfasst.
  6. Verfahren nach Anspruch 5, wobei der erste und der nächste Objektpunkt an Rändern des Objekts angeordnet sind.
  7. Verfahren nach Anspruch 6, wobei jede der horizontalen und vertikalen Bewegungen mit einem Bit in dem Speichersegmentabschnitt des Speichers in Zusammenhang steht.
  8. Verfahren nach Anspruch 4, wobei das vorbestimmte Muster mit einer Steigung in Zusammenhang steht, die für das Objekt kennzeichnend ist.
  9. Verfahren nach Anspruch 7, wobei der Speichersegmentabschnitt einen SRAM-Spreicher umfasst.
  10. Speichermedium einschließlich maschinenlesbarer Indizien, wobei das Speichermedium selektiv an eine Lesevorrichtung gekoppelt ist, wobei die Lesevorrichtung mit einer Verarbeitungsschaltung gekoppelt ist, wobei die Lesevorrichtung selektiv betreibbar ist, um die maschinenlesbaren Indizien zu lesen und Programmsignale bereitzustellen, die für diese repräsentativ sind, wobei die Programmsignale wirksam sind, um zu veranlassen, dass die Verarbeitungsschaltung Information speichert, die ein auf einem Bildschirm einer Anzeigevorrichtung darstellbares Objekt repräsentiert, durch Erledigen der folgenden Schritte: Bestimmen eines ersten Objektpunktes an dem in dem Speicher zu speichernden Objekt; Markieren einer ersten Speichersegmentstelle in einem Speichersegmentabschnitt des Speichers; wobei die erste Speichersegmentstelle dem ersten Objektpunkt entspricht; Inkrementelles Traversieren des Objekts entlang eines vorbestimmten Traversierungspfads relativ zu dem ersten Objektpunkt, um einen nächsten Objektpunkt an dem Objekt zu bestimmen; Markieren einer nächsten Speichersegmentstelle in dem Speichersegmentabschnitt des Speichers, wobei die Speichersegmentstelle dem nächsten Objektpunkt entspricht; Bestimmen einer Differenz von inkrementellen Bewegungen zwischen dem ersten Objektpunkt und dem nächsten Objektpunkt entlang des Traversierungspfads; und Definieren von Dimensionen des Speichersegmentabschnitts des Speichers nach Maßgabe der Differenz von inkrementellen Bewegungen zwischen dem ersten Objektpunkt und dem nächsten Objektpunkt entlang des Traversierungspfads.
  11. Speichermedium nach Anspruch 10, wobei der Schritt des inkrementellen Traversierens so lange wiederholt wird, wie die Differenz von inkrementellen Bewegungen zwischen dem ersten Objektpunkt und irgend einem nächsten Objektpunkt geringer ist als ein vorbestimmter Speichersegmentabschnitt des Speicher.
  12. Speichermedium nach Anspruch 11, wobei der Schritt des inkrementellen Traversierens iterativ relativ zu einem unmittelbar vorangehenden nächsten Objektpunkt erledigt wird.
  13. Speichermedium nach Anspruch 12, wobei der Schritt des inkrementellen Traversierens nach Maßgabe eines vorbestimmten Musters erledigt wird.
  14. Speichermedium nach Anspruch 13, wobei das vorbestimmte Muster abwechselnde vertikale und horizontale Bewegungen umfasst.
  15. Speichermedium nach Anspruch 14, wobei der erste und der nächste Objektpunkt an Rändern des Objekts angeordnet sind.
  16. Speichermedium nach Anspruch 15, wobei jede der horizontalen und vertikalen Bewegungen mit einem Bit in dem Speichersegmentabschnitt des Speichers in Zusammenhang steht.
  17. Speichermedium nach Anspruch 13, wobei das vorbestimmte Muster mit einer Steigung in Zusammenhang steht, die für das Objekt kennzeichnend ist.
  18. Speichermedium nach Anspruch 16, wobei der Speichersegmentabschnitt einen SRAM-Spreicher umfasst.
  19. Computerbasierte Grafikstation, umfassend ein Computersystem mit einem Hauptbus und einer Anzeigevorrichtung und ein Grafiksubsystem, wobei das Grafiksubsystem eine Grafikprozessorvorrichtung umfasst, die mit dem Hauptbus und der Anzeigevorrichtung verbunden ist, wobei das Grafiksubsystem ferner einen Grafikspeicher umfasst, der mit dem Grafikprozessor gekoppelt ist, wobei das Grafiksubsystem selektiv betreibbar ist zum Speichern und Verarbeiten von Information, die ein auf der Anzeigevorrichtung zu zeichnendes Objekt repräsentiert, durch Erledigen der folgenden Schritte: Bestimmen eines ersten Objektpunktes an dem in dem Speicher zu speichernden Objekt; Markieren einer ersten Speichersegmentstelle in einem Speichersegmentabschnitt des Speichers; wobei die erste Speichersegmentstelle dem ersten Objektpunkt entspricht; Inkrementelles Traversieren des Objekts entlang eines vorbestimmten Traversierungspfads relativ zu dem ersten Objektpunkt, um einen nächsten Objektpunkt an dem Objekt zu bestimmen; Markieren einer nächsten Speichersegmentstelle in dem Speichersegmentabschnitt des Speichers, wobei die Speichersegmentstelle dem nächsten Objektpunkt entspricht; Bestimmen einer Differenz von inkrementellen Bewegungen zwischen dem ersten Objektpunkt und dem nächsten Objektpunkt entlang des Traversierungspfads; und Definieren von Dimensionen des Speichersegmentabschnitts des Speichers nach Maßgabe der Differenz von inkrementellen Bewegungen zwischen dem ersten Objektpunkt und dem nächsten Objektpunkt entlang des Traversierungspfads.
  20. Grafikstation nach Anspruch 19, wobei der Schritt des inkrementellen Traversierens so lange wiederholt wird, wie die Differenz von inkrementellen Bewegungen zwischen dem ersten Objektpunkt und irgend einem nächsten Objektpunkt geringer ist als ein vorbestimmter Speichersegmentabschnitt des Speichers.
  21. Grafikstation nach Anspruch 20, wobei der Schritt des inkrementellen Traversierens iterativ relativ zu einem unmittelbar vorangehenden nächsten Objektpunkt erledigt wird.
  22. Grafikstation nach Anspruch 21, wobei der Schritt des inkrementellen Traversierens nach Maßgabe eines vorbestimmten Musters erledigt wird.
  23. Grafikstation nach Anspruch 22, wobei das vorbestimmte Muster abwechselnde vertikale und horizontale Bewegungen umfasst.
  24. Grafikstation nach Anspruch 23, wobei der erste und der nächste Objektpunkt an Rändern des Objekts angeordnet sind.
  25. Grafikstation nach Anspruch 24, wobei jede der horizontalen und vertikalen Bewegungen mit einem Bit in dem Speichersegmentabschnitt des Speichers in Zusammenhang steht.
  26. Grafikstation nach Anspruch 22, wobei das vorbestimmte Muster mit einer Steigung in Zusammenhang steht, die für das Objekt kennzeichnend ist.
  27. Grafikstation nach Anspruch 25, wobei der Speichersegmentabschnitt einen SRAM-Spreicher umfasst.
DE69728931T 1996-06-27 1997-06-23 Speicherabbildungsverfahren und -vorrichtung Expired - Lifetime DE69728931T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/673,774 US5758128A (en) 1996-06-27 1996-06-27 Object referenced memory mapping
US673774 1996-06-27

Publications (2)

Publication Number Publication Date
DE69728931D1 DE69728931D1 (de) 2004-06-09
DE69728931T2 true DE69728931T2 (de) 2004-10-28

Family

ID=24704073

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69728931T Expired - Lifetime DE69728931T2 (de) 1996-06-27 1997-06-23 Speicherabbildungsverfahren und -vorrichtung

Country Status (5)

Country Link
US (1) US5758128A (de)
EP (1) EP0817127B1 (de)
JP (1) JPH10116176A (de)
DE (1) DE69728931T2 (de)
TW (1) TW355778B (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09282136A (ja) * 1996-02-13 1997-10-31 Ricoh Co Ltd データの書込読出方法
US5977983A (en) * 1997-02-20 1999-11-02 S3 Incorporated Method and apparatus for adjusting graphics processing procedures based on a selectable speed/quality gauge
US6421053B1 (en) * 1999-05-24 2002-07-16 International Business Machines Corporation Block rendering method for a graphics subsystem
JP2009069069A (ja) * 2007-09-14 2009-04-02 Mitsui Zosen System Research Inc 測定領域確認装置および測定領域確認方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4882683B1 (en) * 1987-03-16 1995-11-07 Fairchild Semiconductor Cellular addrssing permutation bit map raster graphics architecture
US5088050A (en) * 1989-07-14 1992-02-11 Brother Kogyo Kabushiki Kaisha Apparatus for preparing output data from input image data, using basic output-image unit pattern data
GB2251770B (en) * 1991-01-09 1995-01-11 Du Pont Pixel Systems Graphics accelerator system with polygon traversal operation
US5446836A (en) * 1992-10-30 1995-08-29 Seiko Epson Corporation Polygon rasterization
US5528737A (en) * 1993-12-14 1996-06-18 Silicon Graphics, Inc. Processor-based method for rasterizing polygons at an arbitrary precision
US5563995A (en) * 1993-12-28 1996-10-08 Matsushita Electric Industrial Co., Ltd. Method and system for directly drawing a convex polygon having a given number of vertices with high speed
JP2971765B2 (ja) * 1993-12-28 1999-11-08 松下電器産業株式会社 多角形描画方法及び多角形描画装置
US5598517A (en) * 1995-01-10 1997-01-28 Evans & Sutherland Computer Corp. Computer graphics pixel rendering system with multi-level scanning

Also Published As

Publication number Publication date
EP0817127B1 (de) 2004-05-06
TW355778B (en) 1999-04-11
EP0817127A2 (de) 1998-01-07
US5758128A (en) 1998-05-26
JPH10116176A (ja) 1998-05-06
DE69728931D1 (de) 2004-06-09
EP0817127A3 (de) 1999-05-26

Similar Documents

Publication Publication Date Title
DE19709220B4 (de) System und Verfahren für eine beschleunigte Verdeckungsauslese
DE69635403T2 (de) Grafikbibliothek auf geteilten Ebenen
DE60127253T2 (de) Bildkachelung und -kompression für die 3D-Bilddarstellung
DE69836924T2 (de) Block- und bandorientierter durchlauf in dreidimensionaler dreieckswiedergabe
DE69830767T2 (de) Verfahren und Vorrichtung zum Zusammensetzen geschichteter synthetischer graphischer Filter
DE3485765T2 (de) Anzeigesystem fuer zusammengesetzte bilder.
DE69017118T2 (de) Verfahren zur Steuerung der Konstruktion von veränderlichen Fenstern auf einem Anzeigebildschirm.
DE3854543T2 (de) Prioritätsverwaltung eines Tiefendatenpuffers für Echtzeitrechnersysteme zur Bilderzeugung.
DE69024403T2 (de) Dynamische Steuerung für Rechnergrafik
DE60017222T2 (de) Verfahren und Gerät zur Steuerung von komprimierter Z-Information in einem Videographiksystem
DE69817029T2 (de) Mischung von komprimierten rasterbildern in einem drucksystem
DE69121947T2 (de) Verfahren und Einrichtung zum Generieren von willkürlich adressierten und geformten Feldern in einem graphischen Computersystem
DE69917799T2 (de) Texturierungssysteme zur verwendung in drei-dimensionalen abbildungssystemen
DE69028353T2 (de) Datenspeicherhierarchie zur gleichmässigen Verschiebung eines Bitmap-Bildes
DE19917092A1 (de) Verfahren zur Rasterisierung eines Graphikgrundelements
DE69122147T2 (de) Verfahren und Einrichtung zum Abschneiden von Pixeln von Quellen- und Zielfenstern in einem graphischen System
DE112005002076T5 (de) Unterteilung von Geometriebildern in Grafikhardware
DE19709227B4 (de) Verfahren zum schnellen Herunterladen von Texturen auf eine Hardware für beschleunigte Graphiken und zur Beseitigung von zusätzlichen Softwarekopien von Texeln
DE3003607A1 (de) Verfahren und schaltungsanordnung zur partiellen nachkorrektur von farberkennungsraeumen bei der farberkennung
DE19822025A1 (de) Reduzieren der Speicherfragmentierung durch Mischen und Neuverteilen von vorher verteilten Seitenstreifen
DE602004003111T2 (de) Tiefen-basiertes Antialiasing
DE102014018567A1 (de) PRIMITIVENVERARBEITUNG IN EINEM GRAFlKVERARBEITUNGSSYSTEM
DE69201377T2 (de) Bildverarbeitungsverfahren durch hierarchische warteschlangen.
DE69032082T2 (de) Bilddatenstromumsetzung in Ausgangsdaten zur Bilddruckstellung oder -anzeige
DE69728931T2 (de) Speicherabbildungsverfahren und -vorrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 817127

Country of ref document: EP

Representative=s name: KAHLER, KAECK & MOLLEKOPF, DE