DE602004011234T2 - Verfahren und Vorrichtung zur Erzeugung dreidimensionaler Bilder - Google Patents

Verfahren und Vorrichtung zur Erzeugung dreidimensionaler Bilder Download PDF

Info

Publication number
DE602004011234T2
DE602004011234T2 DE602004011234T DE602004011234T DE602004011234T2 DE 602004011234 T2 DE602004011234 T2 DE 602004011234T2 DE 602004011234 T DE602004011234 T DE 602004011234T DE 602004011234 T DE602004011234 T DE 602004011234T DE 602004011234 T2 DE602004011234 T2 DE 602004011234T2
Authority
DE
Germany
Prior art keywords
depth value
minimum
maximum
zmax
zmin
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.)
Active
Application number
DE602004011234T
Other languages
English (en)
Other versions
DE602004011234D1 (de
Inventor
Jacob STRÖM
Tomas AKENINE-MÖLLER
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of DE602004011234D1 publication Critical patent/DE602004011234D1/de
Application granted granted Critical
Publication of DE602004011234T2 publication Critical patent/DE602004011234T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • 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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/38Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
    • H04B1/40Circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Image Generation (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)

Description

  • Technisches Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft ein Verfahren zum Aktualisieren eines Tiefenpuffers mit Tiefenwerten zum Wiedergeben von dreidimensionaler Grafik. Die Erfindung betrifft ebenso ein Gerät zum Implementieren des Verfahrens.
  • Verwandter Stand der Technik
  • Ein Echtzeitwiedergeben dreidimensionaler Grafik hat eine Anzahl attraktiver Anwendungen auf tragbaren elektronischen Geräten, wie zum Beispiel einem Mobilendgerät. Derartige Anwendungen umfassen z. B. Spiele-Mensch-Maschine-Schnittstellen, Benachrichtigen und M-Commerce. Da ein dreidimensionales Wiedergeben eine rechenintensive Aufgabe ist, wird oft dedizierte Hardware verwendet, um eine ausreichende Leistungsfähigkeit zu erreichen.
  • Während einer dreidimensionalen Wiedergabe kann ein Tiefenpuffer verwendet werden, um eine Sichtbarkeit aufzulösen, da die geometrische Stammfunktionen, wie zum Beispiel Polygone oder Dreiecke, in jeglicher Reihenfolge gezeichnet werden können. Der Tiefenpuffer speichert eine Entfernung von dem Auge bis zu dem Objekt. Falls ein neues Objekt, das wiedergegeben werden soll, weiter entfernt als die Inhalte des Tiefenpuffers ist, wird dieses durch einen bereits gezeichneten Inhaltes verborgen und sollte nicht wiedergegeben werden und der Tiefenpuffer sollte nicht überschrieben werden.
  • Jedoch ist ein derartiges Grafiksystem nicht optimal, da ein Bildpunkt mehrere Male überzeichnet werden kann. Selbst falls ein Bildpunkt mehrere Male überzeichnet wird, ist lediglich eine einzige geometrische Stammfunktion (Polygon) am Ende sichtbar.
  • Ein Weg Tiefenpuffer-Zugriffe zu vermindern, ist es ein Verdeckungsherausfiltern (Occlusion Culling) zu verwenden. Der Bildschirm wird in Anzeigebereiche unterteilt, die z. B. 8 8 Anzeigeblöcke umfassen. Für jeden Anzeigebereich wird der maximale Tiefenwert oder Z-Wert, zmax, für den Anzeigebereich in einem Speicher gespeichert, wie zum Beispiel einem On-Chip-Speicher (Speicher auf dem Chip) oder einem Cache-Speicher, die schnell und energieeffizient sind. Wenn ein neues Polygon innerhalb des Bereiches wiedergegeben werden soll, wird der minimale Z-Wert, zmin, des Teils des Polygons innerhalb jenes Anzeigebereiches berechnet oder geschätzt. Falls zmin größer als zmax des Anzeigebereiches ist, wird das Polygon, das wiedergegeben werden soll, vollständig für jenen Anzeigebereich verdeckt und der Anzeigebereich muss nicht weiter verarbeitet werden. Falls das Polygon nicht verdeckt wird, werden die Bildpunkte innerhalb des Anzeigebereiches einzeln verarbeitet, um zu entscheiden, ob der Tiefenpuffer mit den Werten des Polygons überschrieben werden sollte.
  • Es ist ebenso möglich, sowohl zmin als auch zmax für einen Anzeigebereich in dem Speicher zu speichern. Anfänglich werden zmin und zmax auf Anfangswerte gesetzt, zmin = FERN und zmax = NAHE. Wenn ein neues Polygon in einem Anzeigebereich wiedergegeben werden soll, werden zmin und zmax für jenen Teil des Polygons berechnet oder geschätzt, das in dem Anzeigeblock wiedergegeben werden soll. Falls zmin für das Polygon größer als zmax für den Anzeigebereich ist, wird der Teil des Polygons, der innerhalb jenes Anzeigebereiches liegt, definitiv nicht wiedergegeben und der Tiefenpuffer muss nicht aktualisiert werden. Falls zmax des Polygons kleiner als zmin für den Anzeigebereich ist, kann der Tiefenpuffer einfach überschrieben werden, ohne zunächst gelesen zu werden. Falls der Bereich für das Polygon, der durch zmin und zmax definiert ist, mit dem Bereich für den Anzeigebereich, der von zmin und zmax definiert wird, überlappt, wird jeder Z-Wert für das Polygon berechnet und mit dem entsprechenden Z-Wert verglichen, der in dem Tiefenpuffer gespeichert ist.
  • Daher kann entschieden werden, ob der Tiefenpuffer mit dem Z-Wert für das Polygon für jenen Bildpunkt überschrieben werden sollte.
  • Die Effektivität des Herausfilterns ist abhängig von der Größe der Anzeigebereiche. Mit kleineren Anzeigebereichen kann das Herausfiltern genauer durchgeführt werden. Je kleiner jedoch die Anzeigebereiche sind, desto mehr Ressourcen sind erforderlich.
  • In einem tragbaren elektronischen Gerät sollte die Bandbreitenverwendung zu einem Hauptspeicher soweit wie möglich verringert werden, da derartige Speicherzugriffe einen bedeutenden Teil der Energie verbrauchen, die eine knappe Ressource in einem tragbaren elektronischen Gerät ist.
  • Akenine-Möller T ET AL: „Graphics for the masses: A Hardware Rasterization Architecture for Mobile Phones", ACM Transactions an Graphics ACM USA, vol. 22, Nr. 3, Juli 2003 (2003-07) Seiten 801–808 offenbart eine Hardware-Architektur zum Rastern texturierter Dreiecke.
  • Morein S: "ATI Radeon HyperZ Technology", In Workshops an Graphics Hardware, HOT3D Proceedings, ACM SIGGRAPHEUROGRAPHICS, 21 August 2000, (200-08-21), – 22 August 2000 (2000-08-22) offenbart ein Texturieren von Grafik.
  • Zusammenfassung der Erfindung
  • Es ist ein Ziel der Erfindung ein Verfahren und ein Gerät bereitzustellen, die die Bandbreitenanforderungen für ein Speicherauslesen vermindern. Dieses Ziel wird durch die Erfindung gemäß der Ansprüche 1, 14 und 30 erreicht.
  • In einem ersten Aspekt stellt die Erfindung ein Verfahren zum Lesen von Werten aus und/oder Schreiben von Werten in einen Tiefenpuffer mit Tiefenwerten für Anzeigeblöcke einer Anzeige bereit, wobei die Anzeige in eine Vielzahl von Anzeigebereichen partitioniert ist, die eine Vielzahl von Anzeigeunterbereichen einschließen, die alle eine Vielzahl von Anzeigeblöcken einschließen. Das Verfahren umfasst: Bestimmen eines Minimalbereichstiefenwertes und eines Maximalbereichstiefenwertes für die Anzeigeblöcke von zumindest einem Anzeigebereich; und Bestimmen eines Minimalunterbereichstiefenwertes und Maximalunterbereichstiefenwertes für die Anzeigeblöcke von zumindest einem Anzeigeunterbereich.
  • In einer Ausführungsform wird der Minimalunterbereichstiefenwert bezüglich des Minimal- und Maximalbereichstiefenwertes bestimmt und der Maximalunterbereichstiefenwert wird bezüglich des Maximal- und Minimalbereichstiefenwertes bestimmt.
  • Der Minimalunterbereichstiefenwert kann derart bestimmt werden, dass dieser größer als oder gleich zu dem Minimalbereichstiefenwert ist und der Maximalunterbereichstiefenwert derart, dass dieser kleiner als oder gleich zu dem Maximalbereichstiefenwert ist. Darüber hinaus kann der Minimalunterbereichstiefenwert derart bestimmt werden, dass dieser kleiner als oder gleich zu allen gespeicherten Tiefenwerten für den Unterbereich ist und der Maximalunterbereichstiefenwert derart, dass dieser größer als oder gleich zu allen gespeicherten Tiefenwerten für den Unterbereich ist. Zusätzlich kann der Minimalbereichstiefenwert derart bestimmt werden, dass dieser kleiner als oder gleich zu allen gespeicherten Tiefenwerten für den Bereich ist und der Maximalbereichstiefenwert derart, dass dieser größer oder gleich aller gespeicherten Tiefenwerte für den Bereich ist.
  • Gemäß einer anderen Ausführung wird zumindest einer eines Minimaltiefenwertes und eines Maximaltiefenwertes einer geometrischen Stammfunktion, die in einem spezifischen Anzeigeunterbereich wiedergegeben werden soll, bestimmt und zumindest einer des Minimaltiefenwertes und des Maximaltiefenwertes wird mit zumindest einem des Minimalunterbereichstiefenwertes und des Maximalunterbereichstiefenwertes verglichen, um zu bestimmen, ob der Tiefenpuffer für den Anzeigeunterbereich gelesen werden muss. Darüber hinaus kann zumindest einer eines Minimaltiefenwertes und eines Maximaltiefenwertes einer geometrischen Stammfunktion, die wiedergegeben werden soll, in einem spezifischen Anzeigebereich bestimmt werden; und zumindest einer des Minimaltiefenwertes und des Maximaltiefenwertes wird mit zumindest einem des Minimalbereichstiefenwertes und des Maximalbereichstiefenwertes verglichen, um zu bestimmen, ob der Tiefenpuffer für den Anzeigebereich gelesen werden muss.
  • Zumindest ein Tiefenwert einer geometrischen Stammfunktion kann für zumindest einen Anzeigeblock des Unterbereiches bestimmt werden. Der Tiefenwert des zumindest einen Anzeigeblocks kann mit zumindest einem des Minimalunterbereichstiefenwertes und des Maximalunterbereichstiefenwertes verglichen werden, um zu bestimmen, ob der Tiefenpuffer für den Anzeigeblock gelesen werden muss. Der Tiefenwert einer geometrischen Stammfunktion von zumindest einem Anzeigeblock kann mit zumindest einem des Minimalbereichstiefenwertes und des Maximalbereichstiefenwertes verglichen werden, um zu bestimmen, ob der Tiefenpuffer für den Anzeigeblock gelesen werden muss.
  • In einer alternativen Ausführung kann der Minimalunterbereichstiefenwert, zminsub, bezüglich des Minimalbereichstiefenwertes, zminr und des Maximalbereichstiefenwertes, zmaxr, gemäß der Gleichung bestimmt werden: zminsub = zminr + (zmaxr – zminr)·/(2m – 1) wobei k aus [0, 1, 2, ..., 2n–1] ist,
    und der Wert des Maximalunterbereichstiefenwertes, zmaxsub, kann bezüglich des Minimalbereichstiefenwertes, zminr und des Maximalbereichstiefenwertes, zmaxr, gemäß der Gleichung bestimmt werden: zmaxsub = zmaxr + (zminr – zmaxr)·s/(2n – 1)wobei s aus [0, 1, 2, ..., 2n–1] ist,
    wobei n die Anzahl von Bits ist, die zum Kodieren von zmaxsub verwendet wird und m die Anzahl von Bits ist, die zum Kodieren von zminsub bezüglich des Minimalbereichstiefenwertes und des Maximalbereichstiefenwertes verwendet wird.
  • Alternativ kann der Wert des Minimalunterbereichstiefenwertes, zminsub, bezüglich des Minimalbereichstiefenwertes, zminr, und des Maximalbereichstiefenwertes, zmaxr, gemäß der Gleichung bestimmt werden: zminsub = zminr + (zmaxr – zminr)·k/2m wobei k aus [0, 1, 2, ..., 2n – 1] ist,
    und der Wert des Maximalunterbereichstiefenwertes, zmaxsub, kann bezüglich des Minimalbereichstiefenwertes, zminr, und des Maximalbereichstiefenwertes, zmaxr, gemäß der Gleichung bestimmt werden: zmaxsub = zmaxr + (zminr – zmaxr)·s/2n wobei s aus [0, 1, 2, ..., 2n – 1] ist,
    wobei m die Anzahl von Bits ist, die zum Kodieren des Minimalunterbereichstiefenwertes verwendet wird, und n die Anzahl von Bits ist, die zum Kodieren des Maximalunterbereichstiefenwertes bezüglich des Minimalbereichstiefenwertes und des Minimalbereichstiefenwertes verwendet wird.
  • In noch einer anderen Ausführung umfasst das Verfahren zunächst ein Bestimmen des Minimalunterbereichstiefenwertes bezüglich des Minimalbereichstiefenwertes und des Maximalbereichstiefenwertes und dann ein Bestimmen des Maximalunterbereichstiefenwertes bezüglich des Minimalunterbereichstiefenwertes und des Maximalbereichstiefenwertes. Alternativ umfasst das Verfahren zunächst ein Bestimmen des Maximalunterbereichstiefenwertes bezüglich des Minimalbereichstiefenwertes und des Maximalbereichstiefenwertes und dann Bestimmen des Minimalunterbereichstiefenwertes bezüglich des Maximalunterbereichstiefenwertes und des Maximalbereichstiefenwertes.
  • In einem anderen Aspekt wird ein verarbeitendes Gerät zum Durchführen der Verfahren bereitgestellt, die oben angezeigt sind. Das Gerät ist weiter in den angehängten Patentansprüchen definiert.
  • In einem weiteren Aspekt wird ein elektronisches Gerät bereitgestellt, das ein verarbeitendes Gerät wie oben definiert umfasst. Das Gerät kann ein Mobilfunkendgerät, ein Funkrufempfänger, ein Kommunikator, ein elektronischer Organisator, ein Smartphone, ein persönlicher digitaler Assistent, ein in der Hand gehaltenes Gerät oder ein Computer sein. Das Gerät kann ein Mobiltelefon sein. In noch einem weiteren Aspekt wird ein Computerprogrammprodukt bereitgestellt, das eine Computerprogramm-Codevorrichtung umfasst, um das oben erwähnte Verfahren auszuführen, wenn die Computerprogramm-Codevorrichtung von einem elektronischen Gerät laufengelassen wird, das Computerfähigkeiten aufweist. Das Computerprogrammprodukt kann auf einem Computer-lesbaren Medium verkörpert sein.
  • Es sollte betont werden, dass der Begriff „umfasst/umfassend", wenn dieser in dieser Beschreibung verwendet wird, genommen wird, um das Vorliegen genannter Merkmale, Ganzzahlen, Schritte oder Komponenten zu spezifizieren, jedoch nicht das Vorliegen oder die Hinzufügung einer oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Komponenten oder Gruppen von diesen ausschließt.
  • Kurze Beschreibung der Zeichnungen
  • Weitere Ziel, Merkmale und Vorteile der Erfindung werden aus der folgenden detaillierten Beschreibung der Erfindung ersichtlich, wobei Bezug auf die begleitenden Zeichnungen genommen wird, in denen:
  • 1 eine Vorderansicht eines elektronischen Gerätes ist, das eine Anzeige umfasst;
  • 2 ein Blockdiagramm eines Systems zum Erzeugen, Speichern und Vergleichen von Tiefenwerten ist;
  • 3 eine schematische Darstellung eines Feldes von Anzeigebreichen ist, die Anzeigeblöcke umfassen;
  • 4a bis 4c schematische Darstellungen sind, die wiedergegebene Objekte und Objekte zeigen, die wiedergegeben werden sollen;
  • 5 ein Diagramm eines Anzeigebereiches und die Beziehung zwischen Tiefenwerten für Anzeigeblöcke ist;
  • 6 ein Diagramm eines Anzeigebereiches und die Beziehung zwischen Minimal- und Maximaltiefenwerten für einen Anzeigebereich und einen Anzeigeunterbereich ist.
  • 7 ein schematisches Diagramm eines Feldes eines Anzeigebereiches ist, das Anzeigeunterbereiche umfasst;
  • 8 ein Flussdiagramm einer Ausführungsform des Verfahrens gemäß der Erfindung ist;
  • 9 ein Flussdiagramm einer alternativen Ausführungsform des Verfahrens gemäß der Erfindung ist.
  • Detaillierte Beschreibung der Ausführungen
  • 1 stellt ein elektronisches Gerät dar, in dem das Gerät und Verfahren gemäß der Erfindung implementiert werden kann. Das elektronische Gerät ist in diesem Beispiel als ein Mobiltelefon 1 verkörpert, jedoch nicht auf dieses begrenzt,.
  • Gemäß Ausführungsformen der Erfindung werden Z-Werte oder Tiefenwerte für geometrische Stammfunktionen gegen zumindest einen aus einem Minimaltiefenwert, zmin, und einem Maximaltiefenwert, zmax, getestet, die mit einem spezifischen Anzeigebereich verknüpft sind. Ein Objekt kann aus einer oder mehreren geometrischen Stammfunktionen aufgebaut werden, wie zum Beispiel Polygonen oder insbesondere Dreiecken. Im unten Stehenden werden die Begriffe „Objekt", „geometrische Stammfunktionen" und „Polygone" verwendet, um etwas zu beschreiben, das wiedergegeben werden sollte. Geometrische Stammfunktionen, die bereits wiedergegeben worden sind, werden „Inhalt" genannt.
  • Gemäß einer Ausführungsform der Erfindung, werden geschätzte oder berechnete Minimal-, obj-zminr, und Maximal-, obj-zmaxr, Z-Werte einer geometrischen Stammfunktion oder eines Polygons, das innerhalb eines Anzeigebereiches wiedergegeben werden soll, gegen zumindest eines von zminr und zmaxr für den Anzeigebereich getestet. Falls es definitiv bestimmt werden kann, dass all die Anzeigeblöcke des Polygons, das wiedergegeben werden soll, sichtbar sind, wenn wiedergegeben, muss ein Tiefenpuffer während der Wiedergabe des Polygons nicht gelesen werden, lediglich in diesen geschrieben werden. Falls es definitiv bestimmt werden kann, dass das Polygon verborgen wird, muss während der Wiedergabe der Tiefenpuffer nicht gelesen oder nicht in diesen geschrieben werden. Falls schließlich bestimmt werden kann, dass das Polygon, das wiedergegeben werden soll, zumindest teilweise sichtbar sein kann, wenn wiedergegeben, wird ein Tiefenwert obj-Z-Wert des Polygons für jeden Anzeigeblock berechnet. Diese berechneten Tiefenwerte pro Anzeigeblock können wiederum mit gespeicherten Werten des Anzeigeblocks verglichen werden. Falls es aus diesem Vergleich bestimmt werden kann, dass der Polygon-Anzeigeblock während einer Wiedergabe sichtbar ist, kann der Tiefenwert direkt in den Tiefenpuffer geschrieben werden und ein Lesen der Werte, die in dem Tiefenpuffer gespeichert sind, ist für diesen Anzeigeblock nicht erforderlich. Falls es bestimmt werden kann, dass der Polygon-Anzeigeblock verborgen ist, ist auch kein Schreiben von Werten, die in dem Tiefenpuffer gespeichert sind, erforderlich.
  • Gemäß einer anderen Ausführungsform der Erfindung wird jeder Anzeigebereich in Anzeigeunterbereiche partitioniert. Ein Minimalunterbereichstiefenwert, zminsub, und ein Maximalunterbereichstiefenwert, zmaxsub, für jeden Anzeigeunterbereich sind bekannt, in dem Bereich von zminr und zmaxr für den gesamten Anzeigebereich zu liegen. Daher können gemäß der Erfindung die Minimal- und Maximaltiefenwerte für jeden Anzeigeunterbereich bezüglich des Minimal- und Maximaltiefenwertes des Anzeigebereichs beschrieben werden, was bedeutet, dass sogar ein weiteres Lesen des Tiefenpuffers vermieden werden kann, wie unten beschrieben wird. Jedoch müssen die relativen Werte gelesen werden.
  • Die Speicherbandbreitenanforderungen zum Implementieren der Erfindung sind niedriger im Vergleich zu herkömmlichem Verdeckungsherausfiltern. Da Speicherzugriffe relativ Leistungs-verbrauchend sind, ist die vorliegende Erfindung nützlich in tragbaren elektronischen Geräten, in denen eine Speicher- und Batteriekapazität begrenzt ist, wie zum Beispiel in einem in der Hand gehaltenen Gerät, einem Mobilfunkendgerät, einem Funkrufempfänger, einem Kommunikator, einem elektronischen Organisator, einem Smartphone, einem zellularen Telefon oder einem persönlichen digitalen Assistent. Jedoch kann die Erfindung ebenso in einem stationären elektronischen Gerät implementiert sein, wie zum Beispiel einem Computer.
  • Das in 1 gezeigte Mobiltelefon 1 umfasst eine Mensch-Maschine-Schnittstelle zur Interaktion zwischen einem Benutzer und dem Mobiltelefon 1. Die Mensch-Maschine-Schnittstelle umfasst, jedoch ist nicht darauf begrenzt, eine Anzeige 2, wie zum Beispiel eine LCD-Anzeige oder einen Berührungsbildschirm, auf der Grafiken, wie zum Beispiel Standbilder, kontinuierliche Bildströme, Piktogramme, Text usw. angezeigt werden kann. Um dreidimensionale Objekte wiederzugeben, wie zum Beispiel Polygone, werden die Objekte auf Verdeckung während einem Wiedergeben getestet, um zu bestimmen, ob überhaupt auf den Tiefenpuffer zugegriffen werden muss, wie unten beschrieben wird.
  • 2 ist ein Blockdiagramm einer Ausführung eines Systems zum Bestimmen, Vergleichen und Speichern von Z-Werten. Ein Prozessor 10, wie zum Beispiel eine CPU (zentrale verarbeitende Einheit), ein DSP (digitaler Signalprozessor), ein ASIC (Anwendungs-spezifischer integrierter Schaltkreis), ein FPGA (Feld-programmierbares Gatterfeld), fest verdrahtete Logik usw. ist mit einem Speicher 11 mittels eines Datenbusses 12 verbunden. Der Prozessor kann verantwortlich für die Gesamtsteuerung des Mobiltelefons 1 sein.
  • Ein verarbeitendes Gerät 10a, wie zum Beispiel eine GPU, kann als allein stehender Prozessor bereitgestellt werden oder durch Software bereitgestellt werden, die in dem Prozessor 10 implementiert ist und konfiguriert sein, Z-Werte und unterschiedliche Maximal- und Minimaltiefenwerte zu erzeugen, wie unten erklärt wird. Die GPU kann ebenso angeordnet zum Erzeugen von Farbdaten für die Objekte sein. Der Speicher 11 kann Computer-lesbare Anweisungen oder eine Codevorrichtung umfassen, wie zum Beispiel Code-Teile eines Anwendungsprogrammes, das von dem System laufengelassen wird. Das Anwendungsprogramm kann ein Computerspiel oder ein CAD-Programm (Computer Aided Design – Computer-unterstützte Gestaltung) sein.
  • Der Prozessor 10 erhält Anweisungen von dem Speicher 11 und führt diese aus, um bestimmte Aufgaben durchzuführen. Eine Aufgabe für den Prozessor 10 kann es sein, ein Anzeigesteuergerät 13 mit Information hinsichtlich Inhalt oder Grafik zu versorgen, die auf einer Anzeige 14 gezeichnet werden soll. Das Anzeigesteuergerät 13 kann als getrennte Hardware-Komponente bereitgestellt sein, wie zum Beispiel einem Prozessor, einem DSP, einem ASIC, einem FPGA, einer fest verdrahteten Logik usw.. Alternativ kann das Anzeigesteuergerät 13 mit einer Kombination aus Software und Hardware implementiert sein oder kann in Software bereitgestellt sein und von dem Prozessor 10 ausgeführt werden. Das Anzeigesteuergerät 13 ist mit dem Datenbus 12 verbunden. Alternativ oder zusätzlich ist der Anzeigeprozessor 13 mit einem Prozessor 10 mittels eines getrennten Datenbusses (nicht gezeigt) verbunden. Der Datenbus kann ein Hochgeschwindigkeitsdatenbus sein, falls eine große Menge von Information zwischen dem Prozessor und dem Anzeigesteuergerät 13 übertragen werden muss. In diesem Fall stört die Datenübertragung auf dem getrennten Datenbus nicht die Datenübertragung auf dem gewöhnlichen Datenbus 12.
  • Ein Anzeigespeicher 15 ist mit dem Datenbus 12 verbunden und speichert Information, die von dem Prozessor 10 gesendet wird, hinsichtlich des Inhaltes, der auf der Anzeige 14 gezeichnet werden soll. Der Anzeigespeicher 15 umfasst z. B. einen Probenpuffer zum Speichern von Information, wie zum Beispiel Probenwerte des wiedergegebenen Inhaltes und einen Farbpuffer. Der Farbpuffer hält die erzeugten Bildpunktwerte, wie zum Beispiel Farben der Bildpunkte, die auf der Anzeige 14 angezeigt werden sollen, nachdem das Wiedergeben eines vorherigen Bildes beendet ist. Wie bei der Verbindung zwischen Prozessor 10 und dem Anzeigesteuergerät 13, kann der Anzeigespeicher 15 direkt mit dem Anzeigesteuergerät 13 mittels eines getrennten Hochgeschwindigkeitsbus 17 verbunden werden, der in durchsichtigen Linien gezeigt ist. Der Anzeigespeicher 15 kann ebenso einen Teil des Speichers 11 bilden. Da das Anzeigesteuergerät 13 oder der Anzeigespeicher 15 normalerweise zum Erzeugen eines kontinuierlichen Bildstromes verwendet werden, kann es ein Vorteil sein, falls die Verbindung zwischen diesen zwei Einheiten so schnell wie möglich ist und den normalen Verkehr auf dem Datenbus 12 nicht blockiert. Der Anzeigespeicher kann über einen getrennten Hochgeschwindigkeitsbus 17a mit dem verarbeitenden Gerät 10a verbunden sein.
  • Das Anzeigesteuergerät 13 kann einen VDAC (Video digital zu analog-Umwandler) umfassen, der die Information von dem Anzeigespeicher 15 ausliest und diese in ein analoges Signal umwandelt, z. B. ein zusammengesetztes RGB-Signal (RGB – Rot, Grün, Blau), das der Anzeige 14 bereitgestellt wird, um die einzelnen Bildpunkte auf dieser zu zeichnen.
  • Der Farbpuffer oder der Rahmenpuffer, der in dem Anzeigespeicher 15 gespeichert ist, kann Bildpunktinformation speichern, die einem grafischen Bild entspricht. Die Bildpunktinformation kann durch ein gitterförmiges Feld von Bildpunkten dargestellt werden, bei denen jeder Bildpunkt einer Farbe zugeordnet ist. Die Werte in den Farbpunkten können als R-, G- und B-Werte dargestellt werden, die einer roten Farbe, einer grünen Farbe und einer blauen Farbe des Bildpunktes entsprechen, der ein grafisches Bild aufbaut. Die Anzahl von Bits, die die R-, G- und B-Werte definieren, hängt von der Anzahl von Farben und Farbtönen ab, die dargestellt werden sollen. Weitere Bits können definiert werden.
  • Beim Verarbeiten des dreidimensionalen Grafikobjekts, das angezeigt werden soll, müssen das Tiefenattribut oder die Z-Werte bei den Probenpositionen innerhalb des Polygons des Objekts vor einem Aktualisieren irgendeines Wertes in dem Farbpuffer berücksichtigt werden. Falls das neue Objekt, das verarbeitet wird, zumindest teilweise hinter einem angezeigten Inhalt angeordnet ist und zumindest teilweise von diesem verdeckt wird, sollte lediglich ein sichtbarer Teil des neuen Objektes mit der Farbe und dem Tiefenpuffer gezeichnet werden. Falls andererseits das neue Objekt vollständig von bereits gezeichnetem Inhalt verdeckt wird, gibt es keine Notwendigkeit, den Farbpuffer überhaupt zu aktualisieren und das Objekt wird nicht gezeichnet oder wiedergegeben.
  • Dreidimensionale Objekte können durch einen Satz von Vertizes dargestellt werden, die Polygonoberflächen definieren. Jeder Vertex wird durch X-, Y- und Z-Maße definiert, die den X-, Y- und Z-Achsen entsprechen. Die X- und Y-Achsen definieren eine Ansichtsebene und die Z-Achse stellt eine skalierte Entfernung von der Ansichtsebene zu dem Ursprung eines Betrachters dar. Der Z-Koordinatenwert zeigt die Tiefe eines Objektes an einem Bildpunktort an, der durch die spezifischen X- und Y-Koordinaten definiert wird.
  • Ein Tiefenpuffer 16 zum Speichern von Tiefenwerten ist mit dem Bus 12 verbunden. Der Tiefenpuffer 16 kann als eine allein stehende Speichereinheit bereitgestellt werden, die direkt mit dem Bus 12 verbunden ist oder ein integraler Teil des Speichers 15 sein. Der Tiefenpuffer 16 stellt eine Speichervorrichtung bereit, in der Z-Werte oder Tiefenwerte jedes Bildpunktes gespeichert werden können. Wenn ein neues Objekt in einem angezeigten Teil einer Ansichtsebene gezeichnet werden soll, muss eine Bestimmung durchgeführt werden, ob das neue Objekt sichtbar ist und angezeigt werden sollte oder ob das neue Objekt von Inhalt verdeckt wird, der bereits angezeigt wird. Da die Z-Werte in einem Tiefenpuffer gespeichert werden, der jenseits des Chips (Off-Chip) lokalisiert sein kann, kann ein Hochgeschwindigkeitsbus 18 (in durchsichtigen Linien gezeichnet) zwischen einem verarbeitenden Gerät 10a und dem Tiefenpuffer 16 bereitgestellt werden, wobei ein Zugriff auf den Tiefenpuffer 16 keinen anderen Verkehr auf dem Bus 12 stört.
  • Ein verarbeitendes Gerät 10a kann eine integrierte Speichervorrichtung 19 umfassen, wie zum Beispiel einen Speicher auf dem Chip oder einen Cache-Speicher. Das verarbeitende Gerät 10a und die Speichervorrichtung 19 können auf dem gleichen Chip bereitgestellt sein, wodurch keine Speicherbandbreite auf dem Bus belegt wird. Die Speichervorrichtung 19 kann Minimalbereichstiefenwerte und Maximalbereichstiefenwerte speichern, die mit jedem Anzeigebereich 101 (3) der Anzeige verknüpft sind. Ebenso kann die Speichervorrichtung Minimalunterbereichstiefenwerte und Maximalunterbereichstiefenwerte für Anzeigeunterbereiche speichern. Falls das verarbeitende Gerät 10a eine GPU ist, kann die Speichervorrichtung 19 ein Speicher auf dem Chip sein. Falls das verarbeitende Gerät 10a eine CPU ist, kann die Speichervorrichtung 19 entweder ein Cache-Speicher oder ein Speicher auf dem Chip sein.
  • 3 stellt eine Anzeige 100 dar, die in einer Vielzahl von Anzeigebereichen 101 partitioniert ist. In dieser Ausführungsform umfasst die Anzeige 100 10 × 10 Anzeigebereiche. Jedoch kann die Anzeige gemäß anderen Ausführungsformen in jegliche Anzahl von Anzeigebereichen 101 partitioniert werden, selbst einen einzigen. Jeder Anzeigebereich wird in eine Vielzahl von Anzeigeblöcken 102 partitioniert. Jeder Anzeigeblock kann einen Bildpunkt umfassen. In dieser Ausführung umfasst jeder Anzeigebereich 101 8 × 8 Anzeigeblöcke. Alternative Abmessungen können z. B. 4 × 4, 8 × 4, 16 × 4, 16 × 8 oder 16 × 16 sein. Diese Abmessungen sind lediglich Beispiele und andere Ausführungsformen könnten jegliche Anzahl von Anzeigeblöcken innerhalb jedes Anzeigebereichs 101 umfassen. Falls ein Anzeigebereich mit 8 × 8 Anzeigeblöcken verwendet wird, würde ein Bildschirm mit einer Auflösung von 1024 × 768 Bildpunkten 128 × 96 Anzeigebereiche umfassen.
  • Der Minimalbereichstiefenwert für einen Anzeigebereich 101 stellt ein Minimum aller Tiefenwerte von Anzeigeblöcken innerhalb des Anzeigebereichs 101 dar. Entsprechend stellt der Minimalbereichsanzeigewert ein Maximum aller Tiefenwerte von Anzeigeblöcken 102 innerhalb des Anzeigebereichs 101 dar.
  • In 3 soll ein Teil eines neuen Dreiecks 103 in einem spezifischen Anzeigebereich 104 wiedergegeben werden. Bevor die Farb- und Tiefenpuffer gemäß dem potentiellen Einfluss eines Dreiecks 103 aktualisiert werden, muss getestet werden, ob das Dreieck 103 von Stammfunktionen verdeckt wird, die bereits in dem Anzeigebereich 104 wiedergegeben werden.
  • 4a bis 4c stellen unterschiedliche Situationen dar, die auftreten könnten, wenn ein Objekt, wie zum Beispiel ein Dreieck, in einem Anzeigebereich 104 wiedergegeben wird. Der Teil eines Dreiecks, der weiter entfernt lokalisiert ist als zumindest ein Teil eines anderen Dreiecks wird mit einer gestrichelten Linie gezeichnet.
  • In 4a wird ein erstes Dreieck 120 in einem spezifischen Anzeigebereich 122 angezeigt. Ein zweites Dreieck 121 wird dann in dem spezifischen Anzeigebereich 122 wiedergegeben. Der Minimalbereichstiefenwert, zminr, ist der gleiche wie der Minimalpolygontiefenwert für das erste Dreieck in jenem Anzeigebereich und der Maximalbereichstiefenwert, zmaxr, ist der gleiche wie der Maximalpolygontiefenwert für das erste Dreieck in jenem Anzeigebereich. Nehmen wir an, dass das zweite Dreieck 121 insgesamt weiter entfernt als das erste Dreieck 120 lokalisiert ist. Folglich ist zmin des zweiten Dreiecks 121 größer als zmax des ersten Dreiecks 120 und folglich größer als zmaxr. Das erste Dreieck 120 ist das Objekt, das am nächsten an einem Betrachter in dem Anzeigebereich lokalisiert ist. Durch Vergleichen von zmin des zweiten Dreiecks 121 mit zmaxr des Anzeigebereichs kann sichergestellt werden, dass das zweite Dreieck definitiv keine Pufferwerte (z. B. z- und Farbe) für den spezifischen Anzeigebereich 122 überschreiben sollte.
  • In 4b wird ein erstes Dreieck 130 in einem spezifischen Anzeigebereich 132 angezeigt. Ein zweites Dreieck 131 wird dann in dem spezifischen Anzeigebereich 132 wiedergegeben. Der Minimalbereichstiefenwert, zminr, ist der gleiche wie zmin für das erste Dreieck und der Maximalbereichstiefenwert, zmaxr, ist der gleiche zmax für das erste Dreieck in dem Anzeigebereich 132. Das zweite Dreieck 131 ist näher an dem Betrachter lokalisiert als das erste Dreieck 130. Folglich ist zmax des zweiten Dreiecks 131 kleiner als zmin des ersten Dreiecks 130 und als zminr. Daher kann es durch Vergleichen von zmax des zweiten Dreiecks 131 mit zminr des Anzeigebereichs sichergestellt werden, dass das zweite Dreieck definitiv wiedergegeben werden sollte und ein Speicherauslesen des Tiefenpuffers vollständig für den Anzeigebereich 132 vermieden werden kann, aber die Z-Werte des Polygons direkt in den Tiefenpuffer geschrieben werden können. Ebenso sollte die Speichervorrichtung 19, falls erforderlich, mit neuen Werten von zminr und zmaxr aktualisiert werden, die zmin und/oder zmax des zweiten Dreiecks entsprechen.
  • In 4c wird ein erstes Dreieck 140 in einem spezifischen Anzeigebereich 142 angezeigt. Der Minimalbereichstiefenwert, zminr, ist der gleiche wie zmin für das erste Dreieck 140 und der Maximalbereichstiefenwert, zmaxr, ist der gleiche wie zmax des ersten Dreiecks 140. Ein zweites Dreieck 141 wird in dem spezifischen Anzeigebereich 142 wiedergegeben. Das zweite Dreieck 141 ist lediglich teilweise weiter entfernt als das erste Dreieck 140 in einer derartigen Weise lokalisiert, dass zumindest ein Teil des ersten Dreiecks (markiert mit einer durchgezogenen Linie) näher als das erste Dreieck ist und zumindest ein anderer Teil des zweiten Dreiecks 141 (markiert mit einer gestrichelten Linie) weiter entfernt als das erste Dreieck 140 ist. Folglich ist zmin des zweiten Dreiecks 141 kleiner als zmaxr des Anzeigebereichs 142 und/oder zmax des zweiten Dreiecks 141 ist größer als zmaxr des Anzeigebereichs. Daher kann es lediglich durch Vergleichen von zmin und zmax des zweiten Dreiecks 141 mit zminr und/oder zmaxr des Anzeigebereichs 142 nicht sichergestellt werden, dass das zweite Dreieck 141 definitiv wiedergegeben werden sollte oder definitiv nicht wiedergegeben werden sollte und ein weiteres Verarbeiten ist erforderlich, wobei es notwendig ist, den Tiefenpuffer 16 zu lesen.
  • Die Werte von zmin und zmax für neue Dreiecke 121, 131, 141 können berechnet oder geschätzt werden. Zmin und zmax können zum Beispiel als die zmin- und zmax-Werte der Vertizes des Polygons bestimmt werden. Falls alternativ die Grafikstammfunktion ein Polygon ist, können diese durch ein Evaluieren der Ebenengleichung des Polygons an den Ecken des Anzeigebereichs geschätzt werden und dann das Minimum und Maximum dieser Werte annehmen. Darüber hinaus kann eine Kombination dieser Techniken verwendet werden. Gemäß einer anderen Ausführungsform werden zmin und zmax für ein neues Dreieck durch ein Wissen der Größe des Anzeigebereichs und der Neigung eines Randes des Dreiecks innerhalb des Anzeigebereichs geschätzt. Diese Werte von zmin und zmax sollten konservativ geschätzt werden.
  • Es sollte erwähnt werden, dass die Situationen, die in 4a bis 4c beschrieben sind, lediglich zum Zwecke einer Erklärung gegeben werden. Andere Situationen können ebenso auftreten, zum Beispiel wenn die Dreiecke nicht überlappen. Ebenso sind andere Anzahlen von Dreiecken innerhalb eines Anzeigebereichs möglich. Darüber hinaus kann sich jeder Anzeigeblock eines Anzeigebereiches auf ein unterschiedliches Dreieck beziehen.
  • Wenn eine definitive Antwort unter Bezug auf die Sichtbarkeit des neuen Objektes nicht durch ein Bereichs-weises Vergleichen von zmin und zmax des neuen Objektes mit zminr und zmaxr des Anzeigebereichs gegeben werden kann, wird ein ähnlicher Vergleich Unterbereichs-weise durchgeführt. Falls immer noch keine definitive Antwort gegeben werden kann, können alle Z-Werte für das Objekt innerhalb eines spezifischen Anzeigebereichs erzeugt werden. Die Z-Werte für jeden Anzeigeblock des neuen Dreiecks können durch eine Perspektiven-korrekte Interpolation der Z-Werte der Vertizes erzeugt werden.
  • Jeder Z-Wert kann mit zumindest einem von zminsub und zmaxsub für den Unteranzeigebereich verglichen werden, d. h. ist es nicht notwendig, die Z-Werte sowohl mit zminsub als auch zmaxsub zu vergleichen. Daher kann definitiv Anzeigeblock je Anzeigeblock bestimmt werden, ob der Tiefenpuffer für jeden Z-Wert ausgelesen werden muss oder nicht.
  • Falls der Z-Wert des Polygons, das einem spezifischen Anzeigeblock entspricht, kleiner als zminr für den Anzeigebereich ist, muss der Tiefenpuffer 16 nicht gelesen werden, aber muss definitiv beschrieben werden, um den Tiefenpuffer mit dem Z-Wert zu aktualisieren, der dem spezifischen Anzeigeblock für das neue Objekt entspricht. Der Tiefenpuffer 16 kann ohne jegliches weiteres Verarbeiten für jenen Anzeigeblock aktualisiert werden.
  • Falls der Z-Wert des Polygons, der dem spezifischen Anzeigeblock entspricht, größer als zmaxr ist, muss für jenen Anzeigeblock aus dem Tiefenpuffer 16 definitiv nicht gelesen werden noch in diesen geschrieben werden,.
  • Falls jedoch der Z-Wert des Polygons, der dem spezifischen Anzeigeblock entspricht, zwischen zminr und zmaxr für den Anzeigebereich liegt, kann keine definitive Antwort gegeben werden. Dann muss der Tiefenpuffer 16 ausgelesen werden, um einen gespeicherten Z-Wert zu erhalten, der mit dem spezifischen Anzeigeblock verknüpft ist. Der erzeugte Z-Wert für den spezifischen Anzeigeblock wird mit dem entsprechenden gespeicherten und nun abgerufenen Z-Wert verglichen. Falls der erzeugte Z-Wert kleiner als der entsprechende gespeicherte Z-Wert ist, wird der Tiefenpuffer mit dem erzeugten Z-Wert aktualisiert. Falls der erzeugte Z-Wert größer als der entsprechend gespeicherte Z-Wert ist, muss der Tiefenpuffer nicht aktualisiert werden.
  • Es sollte erwähnt werden, dass andere Vergleichsoperatoren gemäß anderen Ausführungen verwendet werden können, wie zum Beispiel weniger als oder gleich zu, größer als, gleich zu, größer als oder gleich zu dem entsprechenden gespeicherten Z-Wert.
  • Es ist ein Vorteil, nicht nur zmin und zmax für das Objekt zu vergleichen, sondern ebenso jeden interpolierten Z-Wert für ein Objekt mit zminsub und zmaxsub für einen Unteranzeigebereich, da ein Lesen des Tiefenpuffers 16 vermieden werden kann. Dadurch kann die verwendete Speicherbandbreite sogar noch weiter im Vergleich mit einem lediglich Vergleichen von zmin und zmax für das Objekt vermindert werden.
  • 5 stellt einen Anzeigebereich im Querschnitt dar, wobei Anzeigeblöcke in der Y-Achse dargestellt sind und die Beziehung zwischen Tiefenwerten entlang der Z-Achse angezeigt ist. Für darstellerische Zwecke ist die Anzahl von Anzeigeblöcken einer Spalte eines Anzeigebereichs lediglich vier.
  • Ein erstes und ein zweites Anzeigeobjekt 150, 151 sind in dem Anzeigebereich wiedergegeben worden. Zmaxr für den Anzeigebereich ist das gleiche wie ein Maximal-Z-Wert für das erste Objekt 150. Zminr für den Anzeigebereich ist der gleiche wie ein Minimal-Z-Wert für das erste Objekt 150. Ein drittes Objekt 152 soll in dem Anzeigebereich wiedergegeben werden. Wenn obj-zminr und obj-zmaxr für das dritte Objekt mit zminr und zmaxr des Anzeigebereichs verglichen werden, kann keine definitive Antwort über die Sichtbarkeit des dritten Objektes 152 gegeben werden, da obj-zmaxr für das dritte Objekt zwischen zminr und zmaxr liegt. Daher werden obj-Z-Werte bei Probenpunkten 153, 154, 155 für das dritte Objekt in jedem Anzeigeblock in dem Anzeigebereich erzeugt. Durch Betrachten der Z-Werte bei Probenpunkten 153, 154, 155 kann es bestimmt werden, dass der Z-Wert an einem Probenpunkt 155 kleiner als zminr ist, wobei der Tiefenpuffer für jenen Anzeigebereich nicht gelesen werden muss.
  • Jedoch wird ein Wert von zminr für den Probenpunkt 155 aktualisiert. Probenpunkte 153 und 154 werden in jedem Anzeigeblock bestimmt, wobei ein Lesen des Anzeigepuffers erforderlich ist, bevor es bestimmt werden kann, dass ein Probenpunkt 154 wiedergegeben werden sollte und ein Probenpunkt 153 nicht wiedergegeben werden sollte.
  • Hinwendend nun auf 8 ist ein Flussdiagramm eines Verfahrens gezeigt, wobei Minimal-Polygon-Tiefenwerte und Maximal-Polygon-Tiefenwerte mit zumindest einem des Minimalbereichstiefenwertes und des Maximalbereichstiefenwertes verglichen werden.
  • Wenn ein neues Objekt wiedergegeben werden soll, wird das folgende Verfahren unter Bezug auf 8 durchgeführt.
  • In Block 200 werden obj-zminr und obj-zmaxr für das neue Objekt in einem spezifischen Anzeigebereich geschätzt.
  • In Block 201 werden zminr und zmaxr eines Anzeigebereiches von einem Speicher 16, 11 oder 19 erhalten.
  • In Block 202 wird obj-zmaxr mit zminr verglichen.
  • Falls obj-zmaxr kleiner als zminr ist, wird das Objekt insgesamt vor allem anderen Inhalt positioniert, der bereits bei der Anzeige in dem Bereich vorliegt und sollte definitiv wiedergegeben werden und das Verfahren folgt der JA-Linie zu Block 214a.
  • In Block 214a wird ein Z-Wert für das neue Objekt in einem Anzeigeblock erzeugt, der in dem Bereich eingeschlossen ist. In Block 215a wird der Z-Puffer des spezifischen Anzeigeblocks mit dem neuen erzeugten Z-Wert aktualisiert. In Block 216a wird es bestimmt, ob alle Anzeigeblöcke in dem spezifischen Bereich verarbeitet worden sind. Falls nein, schreitet das Verfahren mit dem nächsten Anzeigeblock voran, wie in Block 217a angezeigt und das Verfahren kehrt zurück zu Block 214a. Falls ja, schreitet das Verfahren zu Block 219 voran, bei dem es bestimmt wird, ob alle Anzeigebereiche verarbeitet worden sind, ansonsten schreitet der Prozess zu dem nächsten Anzeigebereich in Block 220 voran und kehrt zu Block 200 für den nächsten Bereich zurück.
  • Falls in Block 202 obj-zmaxr größer als zminsub ist, folgt das Verfahren der NEIN-Linie zu Block 203.
  • In Block 203 wird obj-zminr mit zmaxr verglichen.
  • Falls obj-zminr größer als zmaxr ist, wird das Objekt insgesamt hinter jedem anderen Objekt positioniert, das bereits auf der Anzeige vorliegt und sollte definitiv nicht wiedergegeben werden und das Verfahren folgt der JA-Linie zu Block 219 für den nächsten Bereich.
  • Falls obj-zminr kleiner als zmaxsub ist, kann keine feste Schlussfolgerung hinsichtlich des Wiedergebens des Objektes gezogen werden und eine weitere Untersuchung ist erforderlich, folgend der NEIN-Linie zu Block 204a.
  • In Block 204a werden obj-zmaxsub und obj-zminsub für das Objekt in einem Unterbereich bestimmt.
  • In Block 204b werden zmaxsub und zminsub für den Anzeigeunterbereich erhalten und/oder berechnet.
  • In Block 205 wird obj-zmaxsub mit zminsub verglichen.
  • Falls obj-zmaxsub kleiner als zminsub ist, wird das Objekt insgesamt vor allen anderen Objekten positioniert, die bereits an der Anzeige für den Unterbereich vorliegen und sollte definitiv wiedergegeben werden und das Verfahren folgt der JA-Linie zu Block 214b.
  • In Block 214b wird ein Z-Wert für das neue Objekt in einem Anzeigeblock erzeugt, der in dem Unterbereich eingeschlossen ist. In Block 215b wird der Z-Puffer des spezifischen Anzeigeblocks mit dem neuen erzeugten Z-Wert aktualisiert. In Block 216b wird es bestimmt, ob alle Anzeigeblöcke in dem spezifischen Unterbereich verarbeitet worden sind. Falls nein, schreitet das Verfahren mit dem nächsten Anzeigeblock voran, wie in Block 217b angezeigt und das Verfahren kehrt zurück zu Block 214b. Falls ja, schreitet das Verfahren zu Block 213 voran, in dem es bestimmt wird, ob alle Anzeigeunterbereiche verarbeitet worden sind. Ansonsten schreitet der Prozess zu dem nächsten Anzeigeunterbereich, wie in Block 218 angezeigt und kehrt für den nächsten Unterbereich zurück zu Block 204a.
  • Falls in Block 205, obj-zmaxsub größer als zminsub ist, folgt das Verfahren der NEIN-Linie zu Block 206.
  • In Block 206 wird obj-zminsub mit zmaxsub verglichen. Falls obj-zminsub größer als zmaxsub ist, wird das Objekt insgesamt hinter jedem anderen Inhalt positioniert, der bereits auf der Anzeige vorliegt und sollte definitiv nicht wiedergegeben werden und das Verfahren folgt der JA-Linie zu Block 213 für den nächsten Unterbereich.
  • Falls obj-zminsub kleiner als zmaxsub ist, kann keine feste Schlussfolgerung hinsichtlich des Wiedergebens des Objektes gezogen werden und eine weitere Untersuchung ist erforderlich, folgend der NEIN-Linie zu Block 207.
  • In Block 207 wird der Z-Wert des neuen Objektes für einen spezifischen Anzeigeblock erzeugt.
  • In Block 218 wird der Z-Wert des Objektes mit zminsub verglichen.
  • Falls der Z-Wert kleiner als zminsub ist, wird das Objekt vor jeglichem Inhalt positioniert, der bereits in dem Anzeigeblock vorliegt und sollte definitiv wiedergegeben werden und das Verfahren folgt der JA-Linie zu Block 212.
  • Falls in Block 218 der Z-Wert größer als zminsub ist, folgt das Verfahren der NEIN-Linie zu Block 219.
  • In Block 219 wird der Z-Wert mit zmaxsub verglichen.
  • Falls der Z-Wert größer als zmaxsub ist, wird das Objekt insgesamt hinter jeglichem Inhalt positioniert, der bereits in dem Anzeigeblock vorliegt und sollte definitiv nicht wiedergegeben werden und das Verfahren folgt der JA-Linie zu Block 210 zu dem nächsten Anzeigeblock.
  • Falls der Z-Wert kleiner als zmaxsub ist, kann keine feste Schlussfolterung hinsichtlich des Wiedergebens des Objektes gezogen werden und eine weitere Untersuchung ist erforderlich, folgend der NEIN-Linie zu Block 208.
  • In Block 208 wird der gespeicherte Z-Wert aus dem Speicher für den spezifischen Anzeigeblock erhalten.
  • In Block 209 wird der erzeugte Z-Wert für das Objekt mit dem gespeicherten und erhaltenen Z-Wert verglichen.
  • Falls der erzeugte Z-Wert größer als der gespeicherte Z-Wert ist, ist das neue Objekt hinter dem vorherigen Inhalt und sollte nicht in dem spezifischen Anzeigeblock wiedergegeben werden und das Verfahren folgt der NEIN-Linie zu Block 210.
  • In Block 210 wird es bestimmt, ob alle Anzeigeblöcke verarbeitet worden sind. Falls nicht, schreitet das Verfahren zu dem nächsten Anzeigeblock voran, wie in Block 211 angezeigt und das Verfahren schreitet zu Block 207 voran.
  • Falls alle Anzeigeblöcke verarbeitet worden sind, schreitet das Verfahren zu Block 213 für den nächsten Unterbereich voran.
  • Falls in Block 209 der erzeugte Z-Wert kleiner als der gespeicherte Z-Wert ist, sollte das neue Objekt in dem spezifischen Anzeigeblock wiedergegeben werden und das Verfahren folgt der JA-Linie zu Block 212.
  • In Block 212 wird der Z-Puffer für jenen Anzeigeblock aktualisiert und das Verfahren schreitet zu Block 210 für irgendeinen neuen Anzeigeblock voran.
  • Wenn alle Anzeigeunterbereiche verarbeitet worden sind, wie in Block 213 bestimmt, schreitet das Verfahren zu Block 219 voran.
  • In Block 219 wird es bestimmt, ob alle Anzeigebereiche verarbeitet worden sind. Falls ja, endet das Verfahren.
  • Es wird erwähnt, dass die Information in dem Farbpuffer zu der gleichen Zeit aktualisiert werden kann, wenn der Z-Puffer aktualisiert wird. Alternativ wird der Farbpuffer zu einer späteren Zeit aktualisiert. Dies kann der Fall sein, falls mehrere Polygone wiedergegeben werden sollen, wodurch der Farbpuffer aktualisiert wird, wenn mehrere oder alle Polygone gemäß der Erfindung verarbeitet worden sind.
  • Gemäß einer weiteren Ausführungsform ist es möglich, die Auflösung von zminr und zmaxr des Anzeigebereiches zu erhöhen. Mit kleineren Anzeigebereichen kann das Herausfiltern genauer durchgeführt werden. Jedoch wachsen Speicheranforderungen auf den Chips mit verkleinerten Anzeigebereichen an oder falls ein Cache verwendet wird, um auf zminr/zmaxr zuzugreifen, greift der Cache auf den Speicher 11 häufiger zu. Das Erstere verursacht große Kosten in einem Chipbereich und das Letztere ist kontraproduktiv hinsichtlich einer Bandbreitenverwendung. Zum Beispiel benötigt ein Bewegen von einer Anzeigenbereichsgröße von 8 × 8 Anzeigeblöcken zu einer Anzeigenbereichsgröße von 4 × 4 Anzeigeblöcken im Allgemeinen vier Mal so viel hinsichtlich einer Bandbreitenverwendung und Speicheranforderungen.
  • Gemäß einer Ausführungsform wird eine eher kostengünstigere Lösung für diese Problem bereitgestellt. Nehmen wir an, dass eine Anzeigenbereichsgröße von p × p Anzeigenblöcken verwendet wird. Um die Leistungsfähigkeit zu erhöhen, würde es schön sein, eine Anzeigenbereichsgröße von p/2 × p/2 Anzeigeblöcken zu verwenden, jedoch ist ein Anwachsen der Speicherkosten auf dem Chip um einen Faktor von vier unerwünscht. Untenstehend wird ein p × p Anzeigebereich ein Anzeigebereich genannt und ein p/2 × p/2 Anzeigebereich wird ein Anzeigeunterbereich genannt.
  • 7 stellt einen Anzeigebereich 250 mit vier Anzeigeunterbereichen 251, 252, 253, 254 dar. Jeder Anzeigeunterbereich umfasst 4 × 4 Anzeigeblöcke.
  • Zminr und zmaxr werden in der Speichervorrichtung 19 für den gesamten Anzeigebereich 250 gespeichert. Es ist bekannt, dass ein Minimalunterbereichstiefenwert, zminsub und ein Maximalunterbereichstiefenwert, zmaxsub, für jeden Unterbereich 251, 252, 253, 254 in dem Bereich von zminr und zmaxr für den Anzeigebereich liegen. Daher werden gemäß einer Ausführungsform zminsub und zmaxsub mit zminr und zmaxr verknüpft. Zminsub und zmaxsub können bezüglich zminr und zmaxr für den Anzeigebereich bestimmt werden. Zminsub und zmaxsub können in der Speichervorrichtung 19 zusammen mit zminr und zmaxr für den Anzeigebereich gespeichert werden. Wenn daher ein neues Objekt wiedergegeben werden soll, kann ein Vergleich zwischen einem bestimmten zmin und zmax für das neue Objekt und zumindest einem aus zminsub und zmaxsub für jeden Anzeigeunterbereich durchgeführt werden. Falls keine allgemeine Bestimmung über eine Sichtbarkeit bei dem ersten Vergleich durchgeführt werden kann, kann jeder erzeugte Z-Wert mit zminsub und/oder zmaxsub verglichen werden. Ebenso kann das bestimmte zmin und/oder zmax für das Polygon, das wiedergegeben werden soll, mit zminr und/oder zmaxr verglichen werden, falls dieses gewünscht wird.
  • Zminsub kann derart bestimmt werden, dass dieses größer als oder gleich zu zminr ist und zmaxsub kann derart bestimmt werden, dass dieses kleiner als oder gleich zu zmaxr ist.
  • Natürlich kann zminsub und zmaxsub als der wahre Minimal- und Maximalwert der Tiefenwerte in dem Unterbereich bestimmt werden.
  • Alternativ wird zminsub derart bestimmt, dass dieses kleiner als oder gleich zu allen gespeicherten Tiefenwerten für den spezifischen Unterbereich ist und zmaxsub kann derart bestimmt werden, dass dieses größer als oder gleich zu allen gespeicherten Tiefenwerten für den spezifischen Unterbereich ist.
  • Alternativ kann zminsub und zmaxsub bestimmt werden als: zminsub = zminr+ (zmaxr – zminr)·k/(2m – 1),wobei k aus [0, 1, 2, ..., 2n – 1] ist, zmaxsub = zmaxr+ (zminr – zmaxr)·s/(2n – 1),wobei s aus [0, 1, 2, ..., 2n – 1] ist,
    wobei m die Anzahl von Bits ist, die zum Kodieren von zminsub verwendet wird und n die Anzahl von Bits ist, die zum Kodieren von zmaxsub verwendet wird, pro Anzeigeunterbereich. m und n sind Ganzzahlen, die größer als oder gleich zu Eins sind.
  • Falls m = n = 2, wird eine Teilung durch drei durchgeführt, die aus der Tatsache entsteht, dass 2 Bits zum Kodieren von zminsub und zmaxsub verwendet worden sind; 22 – 1 = 3. Die Teilung durch drei hat ebenso zur Folge, dass die möglichen Werte zwischen und einschließlich zminr und zmaxr gleich verteilt sind. Zminsub und zmaxsub können jeden der möglichen Werte annehmen, einschließlich zminr und zmaxr.
  • Aus einem Hardwaregesichtspunkt ist die Teilung durch eine ungerade Zahl unerwünscht, da die Hardware kompliziert wird. Um sich um dieses Problem zu kümmern, kann stattdessen der folgende Algorithmus zum Bestimmen von zminsub und zmaxsub verwendet werden: zminsub = zminr+ (zmaxr – zminr)·k/2m, wobei k aus [0, 1, 2, ..., 2n – 1] ist, zmaxsub = zmaxr + (zminr – zmaxr)·s/2n,wobei s aus [0, 1, 2, ...,2n – 1] ist.
  • In dieser Ausführungsform ist der Wert von zminsub größer als oder gleich zu zminr und kleiner als zmaxr. Der Wert von zmaxsub ist größer als zminr und kleiner als oder gleich zu zmaxr. Dies bedeutet, dass zminsub nicht den Wert von zmaxr speichern kann und zmaxsub nicht den Wert von zminr speichern kann. Jedoch ist es unwahrscheinlich, dass diese Situation oft auftritt, da einer aus zminsub und zmaxsub immer zminr oder zmaxr speichern kann. Darüber hinaus ist, solange jedes zmin, zmax, zminsub, zmaxsub, zminr und zmaxr konservativ kodiert werden, d. h. der nächste mögliche niedrigere Wert für zminsub und der nächste mögliche höhere Wert für zmaxsub, selbst falls ein anderer höherer Wert näher liegt, das Wiedergeben immer noch korrekt.
  • Andere Verteilungen von möglichen Werten für zminsub und zmaxsub zwischen zminr und zmaxr sind ebenso möglich. Zum Beispiel können mehr mögliche Werte bereitgestellt werden, die näher an zminr als an zmaxr liegen oder umgekehrt oder innerhalb eines gewissen Bereiches zwischen zminr und zmaxr. Die tatsächliche Verteilung kann in jedem spezifischen Fall getestet werden.
  • Daher werden die Werte von zmaxr und zminr in jeder gewünschten Auflösung mit einer entsprechenden Anzahl von Bits gespeichert. Die Werte von zmaxsub und zminsub werden als die k-Zahl und die s-Zahl, die in den obigen Gleichungen angezeigt sind, mit n Bits gespeichert.
  • 6 stellt einen Anzeigebereich im Querschnitt dar, wobei Anzeigeblöcke entlang der Y-Achse dargestellt sind und die Beziehung zwischen Tiefenwerten in der Z-Achse angezeigt ist.
  • Für darstellerische Zwecke ist die Anzahl von Anzeigeblöcken einer Spalte des Anzeigeunterbereiches lediglich vier. Zminr und zmaxr für jeden Anzeigebereich und zminsub und zmaxsub für den Anzeigeunterbereich sind angezeigt. Z-Werte 270, 271, 271, 273 sind angezeigt, die für ein neues Objekt erzeugt worden sind, das in den Anzeigeblöcken des Anzeigeunterbereiches wiedergegeben werden soll.
  • Durch Vergleichen von entweder zmin/zmax oder jedem erzeugten Z-Wert 270, 272, 272, 273 für das neue Objekt mit zminr und zmaxr kann keine definitive Antwort über eine Sichtbarkeit gegeben werden, da erzeugte Z-Werte in dem Bereich sind, der von zminr und zmaxr definiert wird. Darüber hinaus gibt ein Vergleichen von zmin/zmax für das neue Objekt die Antwort, dass der Tiefenpuffer 16 gelesen werden muss, da zmin für das neue Objekt kleiner als zmaxr ist und zmax für das neue Objekt größer als zminr ist. Durch Vergleichen der erzeugten Z-Werte 270, 271, 272, 273 mit zminsub und zmaxsub kann es bestimmt werden, dass der Z-Wert 270 größer als zmaxsub ist und definitiv von Inhalt abgedeckt wird, der zuvor in dem Anzeigeunterbereich gezeichnet worden ist, wenn wiedergegeben und es keine Notwendigkeit gibt, den Tiefenpuffer 16 für diesen Unterbereichsblock zu aktualisieren. Z-Werte 271 und 272 sind größer als zminsub und kleiner als zmaxsub. Folglich muss der Tiefenpuffer 16 gelesen werden, um die gespeicherten Z-Werte für die Anzeigeblöcke zu erhalten, die dem Z-Wert 271 und 272 entsprechen. Der Z-Wert 273 ist kleiner als zminsub, wobei es bestimmt werden kann, dass kein Objekt das neue Objekt in diesem Anzeigeblock abdeckt, wenn wiedergegeben und der Tiefenpuffer 16 kann für diesen Anzeigeblock aktualisiert werden, ohne gelesen zu werden.
  • Wie es aus dem Obigen ersichtlich wird, weist ein Verwenden von einem kodierten zminsub und zmaxsub bezüglich zminr und zmaxr den Vorteil auf, dass selbst ein weiteres Tiefenpufferauslesen vermieden werden kann. In dem oben beschriebenen Beispiel wurden zwei Tiefenpuffer-Auslesungen von vieren vermieden.
  • In anderen Ausführungen kann ein Minimumpolygon- und/oder ein Maximumpolygontiefenwert für einen Anzeigeunterbereich oder ein Polygontiefenwert gegen eine Kombination des Minimalunterbereichstiefenwertes, des Maximalunterbereichstiefenwertes, des Minimalbereichstiefenwertes, und/oder des Maximalbereichstiefenwertes verglichen werden.
  • In noch einer anderen Ausführungsform wird zminsub für den Anzeigeunterbereich zunächst bezüglich zu zminr und zmaxr des Anzeigebereiches bestimmt. Dann wird zmaxsub bezüglich dem bestimmten zminsub für den Anzeigeunterbereich kodiert und zmaxr für den Anzeigebereich. Alternativ wird zmaxsub für den Anzeigeunterbereich zunächst bezüglich zu zminr und zmaxr für den Anzeigebereich bestimmt und dann wird zminsub für den Anzeigeunterbereich bezüglich zu zminr für den Anzeigebereich bestimmt und das bestimmte zmaxsub für den Anzeigeunterbereich. Zminsub und zmaxsub können durch Bestimmen von zmin und zmax aller Z-Werte innerhalb eines Anzeigeunterbereiches bestimmt werden, und dann zminsub und zmaxsub, wie oben beschrieben, bestimmen.
  • In 9 wird eine andere Ausführungsform des Verfahrens gezeigt.
  • Das Verfahren startet in Block 300.
  • In Block 301 werden obj-zminr und obj-zmaxr bestimmt. Darüber hinaus werden zminr und zmaxr aus dem Speicher erhalten.
  • In Block 302 wird es bestimmt, ob obj-zmaxr kleiner als zminr ist, in welchem Fall das Objekt vor irgendeinem vorherigen Inhalt in dem Anzeigebereich liegt.
  • Falls ja in Block 302, wird das Objekt in dem gesamten Bereich wiedergegeben, wie in Block 316 gezeigt. In Block 317 wird es bestimmt, ob alle Bereiche verarbeitet worden sind. Falls dies der Fall ist, endet das Verfahren in Block 318, ansonsten wird ein neuer Anzeigebereich zurückkehrend zu Block 301 verarbeitet.
  • Falls nein in Block 302, schreitet das Verfahren zu Block 303 voran, wo es bestimmt wird, ob obj-zminr größer als zmaxr ist, in welchem Fall das Objekt hinter jeglichem vorherigen Objekten in dem Anzeigebereich liegt.
  • Falls ja in Block 303, sollte das Objekt wiedergegeben werden, wie in Block 319 angezeigt und das Verfahren schreitet zu Block 317 voran, wo es bestimmt wird, ob alle Bereiche wie oben angezeigt verarbeitet worden sind. Block 317 wird in 9 ebenso an einer anderen Stelle gezeigt, dies dient jedoch lediglich dazu, das Verfahren leichter verständlich zu machen. Das Verfahren ist in jedem Block das gleiche, das mit den gleichen Bezugszeichen bezeichnet wird.
  • Falls nein in Block 303, kann keine feste Entscheidung hinsichtlich des Wiedergebens des Objektes in dem Bereich getroffen werden und das Verfahren schreitet voran zu Block 304.
  • In Block 304 werden obj-zminsub und obj-zmaxsub wie oben beschrieben bestimmt.
  • In Block 305 wird es bestimmt, ob obj-zmaxsub kleiner als zminr ist, das bereits in Block 301 erhalten worden ist, und ohne jegliche weitere Aktion verfügbar ist.
  • Falls ja in Block 305, wird das Objekt in dem gesamten Unterbereich wiedergegeben, wie in Block 320 gezeigt. In Block 321 wird es bestimmt, ob alle Unterbereiche verarbeitet worden sind. Falls dies der Fall ist schreitet das Verfahren zu Block 317 für den nächsten Bereich voran. Ansonsten kehrt das Verfahren zurück zu Block 304 für einen neuen Unterbereich.
  • Falls nein in Block 305, schreitet das Verfahren zu Block 306 voran, wo es bestimmt wird, ob obj-zminsub größer als zmaxr ist, in welchem Fall das Objekt hinter jeglichen vorherigen Objekten in dem Unterbereich liegt. Zmaxr ist bereits verfügbar.
  • Falls ja in Block 306, sollte das Objekt nicht wiedergegeben werden, wie in Block 324 gezeigt.
  • Falls nein in Block 306, schreitet das Verfahren zu Block 307 voran, wobei zmaxsub und zminsub für einen Anzeigeunterbereich aus dem Speicher erhalten und/oder berechnet werden.
  • In Block 308 wird es bestimmt, ob obj-zmaxsub kleiner als zmaxsub ist, in welchem Fall das Objekt vor jeglichem vorherigen Inhalt in dem gesamten Unterbereich liegt.
  • Falls ja in Block 308, wird das Objekt in dem gesamten Unterbereich wiedergegeben, wie in Block 320 gezeigt.
  • Falls nein in Block 308, schreitet das Verfahren zu Block 309 voran, wo es bestimmt wird, ob obj-zminsub größer als zmaxsub ist, in welchem Fall das neue Objekt hinter jeglichem vorherigen Inhalt in dem Anzeigeunterbereich liegt.
  • Falls ja in Block 309, sollte das Objekt nicht wiedergegeben werden, wie in Block 324 angezeigt.
  • Falls nein in Block 309, kann keine feste Entscheidung hinsichtlich des Wiedergebens des Objektes in dem Unterbereich getroffen werden und das Verfahren schreitet voran zu Block 310.
  • In Block 310 wird der Z-Wert des Objektes in dem Anzeigeblock bestimmt.
  • In Block 311 wird es bestimmt, ob der Z-Wert des Objektes kleiner als zminsub ist, das bereits in Block 307 erhalten worden ist und ohne jegliche weitere Aktion verfügbar ist.
  • Falls ja in Block 311, wird das Objekt in dem Anzeigeblock wiedergegeben, wie in Block 322 gezeigt. In Block 323 wird es bestimmt, ob alle Anzeigeblöcke verarbeitet worden sind. Falls dies der Fall ist schreitet das Verfahren zu Block 321 für den nächsten Unterbereich voran. Ansonsten kehrt das Verfahren zurück zu Block 310 für einen neuen Anzeigeblock.
  • Falls nein in Block 311, schreitet das Verfahren zu Block 312 voran, wo es bestimmt wird, ob der Z-Wert größer als zmaxsub ist, in welchem Fall das neue Objekt hinter jeglichem vorherigen Inhalt in dem Unterbereich liegt. Zmaxsub ist bereits verfügbar.
  • Falls ja in Block 312, sollte das Objekt nicht wiedergegeben werden, wie in Block 325 angezeigt.
  • Falls nein in Block 312, schreitet das Verfahren zu Block 313 voran, wo z-gespeichert für einen Anzeigeblock aus dem Speicher erhalten wird.
  • In Block 314 wird es bestimmt, ob der Z-Wert kleiner als z-gespeichert ist, in welchem Fall das Objekt vor jeglichem anderen Inhalt in dem Anzeigeblock liegt.
  • Falls ja in Block 314, wird das Objekt in dem Anzeigeblock wiedergegeben, wie in Block 322 gezeigt.
  • Falls nein in Block 314, schreitet das Verfahren zu Block 325 voran.
  • In 9 sind fünf Schritte offenbart, einschließlich von Blöcken 302, 303; 305, 306; 308, 309; 311, 312; und 314, 315. Die unterschiedlichen Schritte können in anderen Kombinationen durchgeführt werden, als die, die in 9 gezeigt sind. Zum Beispiel können Schritt 302, 303, Schritt 305, 306 und Schritt 311, 312 optional sein. Alle drei, zwei, einer oder keiner dieser Schritte kann verwendet werden. Darüber hinaus ist es nicht immer erforderlich, beide Blöcke 308 und 309 zu verwenden, während es immer noch ein Vorteil ist, lediglich einen dieser zwei Anzeigeblöcke zu verwenden. Das gleiche gilt für alle Kombinationen von zwei Blöcken in jedem Schritt.
  • Die Blöcke 319, 324, 325 „nicht wiedergeben" umfassen, dass ein Lesen des Z-Puffers und/oder des Anzeigeunterbereiches und der Bereichswerte nicht erforderlich ist, was eine Ersparnis bedeutet.
  • Die Blöcke 316, 320 und 322 umfassen, dass der Z-Puffer aktualisiert wird, ohne zunächst gelesen zu werden, was ebenso eine Ersparnis bedeutet. Das Verfahren kann wie in Bezug auf 8 beschrieben sein.
  • Die Anzeigeunterbereiche können jegliche Größe aufweisen, wie zum Beispiel p × q Anzeigeblöcke, wobei p < = 1 und q < = 1. Ebenso kann jegliche Anzahl von Bits zum Kodieren von zminsub und zmaxsub verwendet werden. Unter der Annahme, dass 2 × 2 Anzeigeblöcke für jeden Anzeigeunterbereich verwendet werden und dass 2 Bits zum Speichern jeder relativen Position für jedes aus zminsub und zmaxsub verwendet werden, sind die Kosten (2·2)·(2 + 2) = 16 Bits pro Anzeigebereich. Unter der Annahme darüber hinaus, dass zminr und zmaxr jeweils in 16 Bits gespeichert werden, ist es offensichtlich, dass das Schema gemäß dieser Ausführungsform effektiver als jenes des Standes der Technik ist. Zum Beispiel würde ein Gehen von 32 Bits pro Anzeigebereich (16 + 16 Bits für zminr + zmaxr) zu einer Anzeigenbereichsgröße von [n/2] × [n/2] 32·4 = 128 Bits bei einem Standardschema gemäß dem Stand der Technik kosten. Das Schema gemäß dieser Ausführungsform würde 48 Bits kosten (16+16+16 Bits für zminr+ zmaxr+ relative Positionsbits).
  • Verglichen zu herkömmlichen zmin/zmax-Techniken resultiert ein Kombinieren des Schritts eines Vergleichens eines Tiefenwertes des Polygons mit zminr und zmaxr des Anzeigebereiches mit dem Schritt eines Aufteilens des Anzeigebereiches in Anzeigeunterbereiche mit einer verknüpften Kodierung eines genaueren zminsub und zmaxsub in bedeutenden Ersparnissen hinsichtlich eine Tiefenpuffer-Auslesens. Die Ersparnisse können 1.6-2.9-Mal weniger Tiefenpuffer-Auslesen ergeben, im Vergleich zu herkömmlichen zmin/zmax-Techniken. Für eine Spielszene kann dies zur Folge haben, dass bis zu 40.000 unnötige Tiefenpuffer-Auslesungen pro Rahmen vermieden werden. In anderer Weise ausgedrückt, können ungefähr 40% der Tiefenpuffer-Auslesungen vermieden werden. Bei 30Hz (Bildern pro Sekunde) ergibt dies 1,2 Millionen weniger Speicherzugriffe pro Sekunde.
  • Die vorliegende Erfindung ist im Obigen unter Bezug auf spezifische Ausführungsformen beschrieben worden. Jedoch sind andere Ausführungsformen als die oben beschriebenen innerhalb des Umfangs der Erfindung möglich. Unterschiedliche Verfahrensschritte als jene oben beschriebenen, ein Durchführen des Verfahrens durch Hardware oder Software kann innerhalb des Umfangs der Erfindung bereitgestellt werden. Unterschiedliche Merkmale und Schritte der Erfindung können in anderen Kombinationen kombiniert werden, als diejenigen, die oben beschrieben sind. Der Umfang der Erfindung ist lediglich durch die angehängten Patentansprüche begrenzt.

Claims (31)

  1. Verfahren zum Lesen von Werten aus und/oder Schreiben von Werten in einen Tiefenpuffer (depth buffer), der Tiefenwerte (depth values) für Anzeigeblöcke einer Anzeige umfasst, wobei die Anzeige in eine Vielzahl von Anzeigebereichen partitioniert ist, die eine Vielzahl von Anzeigeunterbereichen umfassen, die eine Vielzahl der Anzeigeblöcke umfassen, wobei das Verfahren umfasst: Bestimmen eines Minimalbereichstiefenwertes und eines Maximalbereichstiefenwertes für die Anzeigeblöcke von zumindest einem Anzeigebereich; und Bestimmen eines Minimalunterbereichstiefenwertes bezüglich des Minimalbereichstiefenwertes und eines Maximalunterbereichstiefenwert bezüglich des Maximalbereichstiefenwertes für die Anzeigeblöcke von zumindest einem Anzeigeunterbereich des zumindest einen Anzeigebereichs.
  2. Verfahren nach Anspruch 1, mit Bestimmen des Minimalunterbereichstiefenwertes bezüglich des Minimal- und Maximalbereichstiefenwertes und Bestimmen des Maximalunterbereichstiefenwertes bezüglich des Maximal- und Minimalbereichstiefenwertes.
  3. Verfahren nach Anspruch 1 oder 2, mit einem Bestimmen des Minimalunterbereichstiefenwertes, so dass dieser größer oder gleich zu dem Minimalbereichstiefenwert ist und des Minimalunterbereichstiefenwertes, so dass dieser kleiner oder gleich zu dem Maximalbereichstiefenwert ist.
  4. Verfahren nach einem der vorangehenden Ansprüche, mit einem Bestimmen des Minimalunterbereichstiefenwertes, so dass dieser kleiner oder gleich zu allen gespeicherten Tiefenwerten für den Unterbereich ist und des Maximalunterbereichstiefenwertes, so dass dieser größer oder gleich zu allen gespeicherten Tiefenwerten für den Unterbereich ist.
  5. Verfahren nach einem der vorangehenden Ansprüche, mit einem Bestimmen des Minimalbereichstiefenwertes, so dass dieser kleiner oder gleich zu allen gespeicherten Tiefenwerten für den Bereich ist und des Maximalbereichstiefenwertes, so dass dieser größer oder gleich zu allen gespeicherten Tiefenwerten für den Bereich ist.
  6. Verfahren nach einem der vorangehenden Ansprüche, mit Bestimmen von zumindest einem aus einem Minimaltiefenwert und einem Maximaltiefenwert einer geometrischen Stammfunktion, die in einem spezifischen Anzeigeunterbereich wiedergegeben werden soll; und Vergleichen von zumindest einem aus dem Minimaltiefenwert und dem Maximaltiefenwert mit zumindest einem aus dem Minimalunterbereichstiefenwert und dem Maximalunterbereichstiefenwert zum Bestimmen, ob der Tiefenpuffer für den Anzeigeunterbereich gelesen werden soll.
  7. Verfahren nach einem der vorangehenden Ansprüche, mit Bestimmen von zumindest einem aus einem Minimaltiefenwert und einem Maximaltiefenwert einer geometrischen Stammfunktion, die in einem spezifischen Anzeigebereich wiedergegeben werden soll; und Vergleichen von zumindest einem aus dem Minimaltiefenwert und dem Maximaltiefenwert mit zumindest einem aus dem Minimalbereichstiefenwert und dem Maximalbereichstiefenwert zum Bestimmen, ob der Tiefenpuffer für den Anzeigebereich gelesen werden soll.
  8. Verfahren nach einem der vorangehenden Ansprüche, mit einem Bestimmen von zumindest einem Tiefenwert für die geometrische Stammfunktion für zumindest einen Anzeigeblock des Unterbereichs.
  9. Verfahren nach Anspruch 8, mit einem Vergleichen des Tiefenwertes für die geometrische Stammfunktion an zumindest einem Anzeigeblock mit zumindest einem aus dem Minimalunterbereichstiefenwert und dem Maximalunterbereichstiefenwert, um zu bestimmen, ob der Tiefenpuffer für den Anzeigeblock gelesen werden muss.
  10. Verfahren nach Anspruch 8 oder 9, mit einem Vergleichen des Tiefenwertes für die geometrische Stammfunktion an zumindest einem Anzeigeblock mit zumindest einem aus dem Minimalbereichstiefenwert und dem Maximalbereichstiefenwert, um zu bestimmen, ob der Tiefenpuffer für den Anzeigeblock gelesen werden muss.
  11. Verfahren nach einem der vorangehenden Ansprüche, mit einem Bestimmen des Minimalunterbereichstiefenwertes, zminsub, bezüglich des Minimalbereichstiefenwertes, zminr, und des Maximalbereichstiefenwertes, zmaxr, gemäß der Gleichung: zminsub = zminr + (zmaxr – zminr)·k/(2m – 1)wobei k aus [0, 1, 2, ..., 2m – 1] ist, und Bestimmen des Wertes des Maximalunterbereichstiefenwertes, zmaxsub, bezüglich des Minimalbereichstiefenwertes, zminr, und des Maximalbereichstiefenwertes, zmaxr, gemäß der Gleichung: zmaxsub = zmaxr + (zminr – zmaxr)·s/(2n – 1)wobei s aus [0, 1, 2, ..., 2n – 1] ist, wobei n die Anzahl von Bits ist, die zum Kodieren von zmaxsub verwendet wird und m die Anzahl von Bits ist, die zum Kodieren von zminsub verwendet wird, bezüglich des Minimalbereichstiefenwertes und des Maximalbereichstiefenwertes.
  12. Verfahren nach einem der Ansprüche 1 bis 10, mit einem Bestimmen des Wertes des Minimalunterbereichstiefenwertes, zminsub, bezüglich des Minimalbereichstiefenwertes, zminr, und des Maximalbereichstiefenwertes, zmaxr, gemäß der Gleichung: zminsub = zminr + (zmaxr – zminr)·k/2m wobei k aus [0, 1, 2, ..., 2n – 1] ist, und Bestimmen des Wertes des Maximalbereichstiefenwertes, zmaxsub, bezüglich des Minimalbereichstiefenwertes, zminr, und des Maximalbereichstiefenwertes, zmaxr, gemäß der Gleichung: zmaxsub = zmaxr + (zminr – zmaxr)·s/2n wobei s aus [0, 1, 2, ..., 2n – 1] ist, wobei m die Anzahl von Bits ist, die zum Kodieren des Minimalunterbereichstiefenwertes verwendet wird und n die Anzahl von Bits ist, die zum Kodieren des Maximalunterbereichstiefenwertes verwendet wird, bezüglich des Minimalbereichstiefenwertes und dem Maximalbereichstiefenwertes.
  13. Verfahren nach einem der Ansprüche 1 bis 12, mit zunächst Bestimmen des Minimalunterbereichstiefenwertes bezüglich des Minimalbereichstiefenwertes und des Maximalbereichstiefenwertes und dann Bestimmen des Maximalunterbereichstiefenwertes bezüglich des Minimalunterbereichstiefenwertes und des Maximalbereichstiefenwertes, oder zunächst Bestimmen des Maximalunterbereichstiefenwertes bezüglich des Minimalbereichstiefenwertes und des Maximalbereichstiefenwertes und dann Bestimmen des Minimalunterbereichstiefenwertes bezüglich des Maximalunterbereichstiefenwertes und des Minimalbereichstiefenwertes.
  14. Verarbeitungsgerät (10) zum Lesen von Werten oder Schreiben von Werten in einen Tiefenpuffer (16) mit Tiefenwerten für Anzeigeblöcke (102) einer Anzeige (2, 14), wobei die Anzeige in eine Vielzahl von Anzeigebereichen (101) partitioniert ist, die eine Vielzahl von Anzeigeunterbereichen aufweisen, die eine Vielzahl von Anzeigeblöcken aufweisen, wobei das verarbeitende Gerät umfasst: einen Speicher mit einem Minimalbereichstiefenwert und einem Maximalbereichstiefenwert für die Anzeigeblöcke von zumindest einem Anzeigebereich; und einen Minimalunterbereichstiefenwert bezüglich des Minimalbereichstiefenwertes und einen Minimalunterbereichstiefenwert bezüglich des Maximalbereichstiefenwertes für die Anzeigeblöcke von zumindest einem Anzeigeunterbereich von zumindest einem Anzeigebereich.
  15. Verarbeitungsgerät nach Anspruch 14, wobei der Minimalunterbereichstiefenwert bezüglich des Minimal- und Maximalbereichstiefenwertes ist und der Minimalunterbereichstiefenwert bezüglich des Maximal- und Minimalbereichstiefenwertes ist.
  16. Verarbeitungsgerät nach Anspruch 14 oder 15, wobei der Minimalunterbereichstiefenwert größer oder gleich zu dem Minimalbereichstiefenwert ist und der Minimalunterbereichstiefenwert kleiner oder gleich zu dem Maximalbereichstiefenwert ist.
  17. Verarbeitungsgerät nach einem der Ansprüche 14 bis 16, wobei der Minimalunterbereichstiefenwert kleiner oder gleich zu allen gespeicherten Tiefenwerten für den Unterbereich ist und der Maximalunterbereichstiefenwert größer oder gleich zu allen gespeicherten Tiefenwerten für den Unterbereich ist.
  18. Verarbeitungsgerät nach einem der Ansprüche 14 bis 17 mit: einer Berechnungseinheit zum Bestimmen von zumindest einem aus einem Minimaltiefenwert und einem Maximaltiefenwert einer geometrischen Stammfunktion, die in dem spezifischen Anzeigeunterbereich wiedergegeben werden soll; und einem Vergleicher zum Vergleichen von zumindest einem aus dem Minimaltiefenwert und dem Maximaltiefenwert mit zumindest einem aus dem Minimalunterbereichstiefenwert und dem Maximalunterbereichstiefenwert, um zu bestimmen, ob auf den Tiefenpuffer (16) für den Anzeigenunterbereich zugegriffen werden muss.
  19. Verarbeitungsgerät nach Anspruch 18, wobei der Vergleicher konfiguriert ist, zumindest einen aus dem Minimaltiefenwert und dem Maximaltiefenwert mit zumindest einem aus dem Minimalunterbereichstiefenwert und dem Maximalunterbereichstiefenwert zu vergleichen, um zu bestimmen, ob der Tiefenpuffer (16) für den spezifischen Anzeigeunterbereich gelesen werden muss.
  20. Verarbeitungsgerät nach Anspruch 18, wobei der Vergleicher konfiguriert ist, zumindest einen aus dem Minimaltiefenwert und dem Maximaltiefenwert mit zumindest einem aus dem Minimalbereichstiefenwert und Maximalbereichstiefenwert zu vergleichen, und zu bestimmen, ob der Tiefenpuffer (16) für den spezifischen Anzeigebereich gelesen werden muss.
  21. Verarbeitungsgerät nach einem der Ansprüche 14 bis 19, wobei der Vergleicher konfiguriert ist, zumindest einen Tiefenwert für eine geometrische Stammfunktion für zumindest einen Anzeigeblock in dem Unterbereich zu bestimmen.
  22. Verarbeitungsgerät nach Anspruch 21, wobei der Vergleicher konfiguriert ist, den Tiefenwert für die geometrische Stammfunktion an dem zumindest einen Anzeigeblock mit zumindest einem auf dem Minimalunterbereichstiefenwert und dem Maximalunterbereichstiefenwert zu vergleichen, um zu bestimmen, ob der Tiefenpuffer (16) für den Anzeigeblock gelesen werden muss.
  23. Verarbeitungsgerät nach Anspruch 21 oder 22, wobei der Vergleicher konfiguriert ist, den Tiefenwert für die geometrische Stammfunktion an zumindest einem Anzeigeblock mit zumindest einem aus dem Minimalbereichstiefenwert und dem Maximalbereichstiefenwert zu vergleichen, um zu bestimmen, ob der Tiefenpuffer (16) für den Anzeigeblock gelesen werden muss.
  24. Verarbeitungsgerät nach einem der Ansprüche 14 bis 23, wobei der Minimalbereichstiefenwert, zminsub, bezüglich des Minimalbereichstiefenwertes, zminr und des Maximalbereichstiefenwertes, zmaxr, gemäß der Gleichung in Beziehung sind: zminsub = zminr + (zmaxr – zminr)·k/(2m – 1)wobei k aus [0, 1, 2, ..., 2n – 1] ist, und der Wert des Minimalunterbereichstiefenwertes, zmaxsub, bezüglich des Minimalbereichstiefenwertes, zminr, und des Maximalbereichstiefenwertes, zmaxr, gemäß der Gleichung in Beziehung stehen: zmaxsub = zmaxr + (zminr – zmaxr)·s/(2n – 1)wobei s aus [0, 1, 2, ..., 2n – 1] ist, wobei n die Anzahl von Bits ist, die verwendet wird, um zmaxsub zu kodieren und m die Anzahl von Bits ist, die zum Kodieren von zminsub verwendet wird, bezüglich des Minimalbereichstiefenwertes und des Maximalbereichstiefenwertes.
  25. Verarbeitungsgerät nach einem der Ansprüche 14 bis 23, wobei der Wert des Minimalunterbereichstiefenwertes, zminsub, bezüglich des Minimalbereichstiefenwertes, zminr, und des Maximalbereichstiefenwertes, zmaxr, gemäß der Gleichung in Beziehung sind: zminsub = zminr + (zmaxr – zminr)·k/2m wobei k aus [0, 1, 2, ..., 2n – 1] ist, und der Wert des Maximalunterbereichstiefenwertes, zmaxsub, bezüglich des Minimalbereichstiefenwertes, zminr, und des Maximalbereichstiefenwertes, zmaxr, gemäß der Gleichung in Beziehung stehen: zmaxsub = zmaxr+ (zminr – zmaxr)·s/2n wobei s aus [0, 1, 2, ..., 2n – 1] ist, wobei m die Anzahl von Bits ist, die verwendet wird, um den Minimalunterbereichstiefenwert zu kodieren und n die Anzahl von Bits ist, die zum Kodieren des Maximalunterbereichstiefenwertes verwendet wird, bezüglich des Minimalbereichstiefenwertes und des Maximalbereichstiefenwertes.
  26. Verarbeitungsgerät nach einem der Ansprüche 14 bis 23, wobei das Verarbeitungsgerät konfiguriert ist, zunächst den Minimalunterbereichstiefenwert bezüglich des Minimalbereichstiefenwertes und des Maximalbereichstiefenwertes zu bestimmen und dann den Maximalunterbereichstiefenwert bezüglich des Minimalunterbereichstiefenwertes und des Maximalbereichstiefenwertes zu bestimmen, oder zunächst den Maximalunterbereichstiefenwert bezüglich des Minimalbereichstiefenwertes und des Maximalbereichstiefenwertes zu bestimmen und dann den Minimalunterbereichstiefenwert bezüglich des Maximalunterbereichstiefenwert und des Minimalbereichstiefenwertes zu bestimmen.
  27. Elektronisches Gerät (1) mit einem Verarbeitungsgerät (10) nach einem der Ansprüche 14 bis 26.
  28. Gerät nach Anspruch 27, wobei das Gerät ein Mobilfunkendgerät, ein Funkrufempfänger, ein Kommunikator, ein elektronischer Organizer, ein Smartphone, ein persönlicher digitaler Assistent oder ein Computer ist.
  29. Gerät nach Anspruch 27, wobei das Gerät ein Mobiltelefon (1) ist.
  30. Computerprogrammprodukt mit einer Computerprogramm-Codevorrichtung, um das Verfahren nach einem der Ansprüche 11 bis 13 auszuführen, wenn die Computerprogramm-Codevorrichtung von einem elektronischen Gerät (1) laufengelassen wird, das Computerfähigkeiten aufweist.
  31. Computerprogrammprodukt nach Anspruch 30, wobei die Computerprogramm-Codevorrichtung auf einem Computerlesbarem Medium (11) verkörpert ist.
DE602004011234T 2004-11-19 2004-11-19 Verfahren und Vorrichtung zur Erzeugung dreidimensionaler Bilder Active DE602004011234T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP04027592A EP1659538B1 (de) 2004-11-19 2004-11-19 Verfahren und Vorrichtung zur Erzeugung dreidimensionaler Bilder

Publications (2)

Publication Number Publication Date
DE602004011234D1 DE602004011234D1 (de) 2008-02-21
DE602004011234T2 true DE602004011234T2 (de) 2009-01-02

Family

ID=34927468

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004011234T Active DE602004011234T2 (de) 2004-11-19 2004-11-19 Verfahren und Vorrichtung zur Erzeugung dreidimensionaler Bilder

Country Status (8)

Country Link
US (1) US8471851B2 (de)
EP (1) EP1659538B1 (de)
JP (1) JP4763712B2 (de)
KR (1) KR101255429B1 (de)
CN (1) CN101103381B (de)
AT (1) ATE383627T1 (de)
DE (1) DE602004011234T2 (de)
WO (1) WO2006053765A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5594733B2 (ja) 2008-10-01 2014-09-24 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理方法、情報記憶媒体及びプログラム
US8659597B2 (en) * 2010-09-27 2014-02-25 Intel Corporation Multi-view ray tracing using edge detection and shader reuse
WO2012077332A1 (ja) * 2010-12-06 2012-06-14 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置及び画像復号装置
EP2627093A3 (de) 2012-02-13 2013-10-02 Thomson Licensing Verfahren und Vorrichtung zum Einfügen einer 3D-Grafikanimation in einen 3D-Stereoinhalt
US9665973B2 (en) * 2012-11-20 2017-05-30 Intel Corporation Depth buffering
GB201223089D0 (en) 2012-12-20 2013-02-06 Imagination Tech Ltd Hidden culling in tile based computer generated graphics
US20140192158A1 (en) * 2013-01-04 2014-07-10 Microsoft Corporation Stereo Image Matching
US20140267327A1 (en) * 2013-03-14 2014-09-18 Microsoft Corporation Graphics Processing using Multiple Primitives
GB2524121B (en) 2014-06-17 2016-03-02 Imagination Tech Ltd Assigning primitives to tiles in a graphics processing system
GB2524120B (en) 2014-06-17 2016-03-02 Imagination Tech Ltd Assigning primitives to tiles in a graphics processing system
US9489710B2 (en) * 2015-02-10 2016-11-08 Qualcomm Incorporated Hybrid rendering in graphics processing

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237650A (en) * 1989-07-26 1993-08-17 Sun Microsystems, Inc. Method and apparatus for spatial anti-aliased depth cueing
JP2689046B2 (ja) * 1992-03-16 1997-12-10 日本電信電話株式会社 電波伝搬特性推定装置および表示装置
US5509110A (en) * 1993-04-26 1996-04-16 Loral Aerospace Corporation Method for tree-structured hierarchical occlusion in image generators
JP2763499B2 (ja) * 1994-11-30 1998-06-11 株式会社ナムコ 画像合成装置及び画像合成方法
US5798762A (en) * 1995-05-10 1998-08-25 Cagent Technologies, Inc. Controlling a real-time rendering engine using a list-based control mechanism
EP1092217B1 (de) 1998-06-29 2005-09-14 Honeywell Inc. Vorrichtung und verfahren zum erkennen und erzeugen grafischer elemente
US6313839B1 (en) * 1998-10-23 2001-11-06 Hewlett-Packard Company Method and apparatus for performing Z buffer depth comparison operations
GB2343598B (en) * 1998-11-06 2003-03-19 Videologic Ltd Image processing apparatus
US6359623B1 (en) * 1998-11-12 2002-03-19 Hewlett-Packard Company Method and apparatus for performing scan conversion in a computer graphics display system
SG108244A1 (en) * 2000-04-13 2005-01-28 Ibm A method and apparatus for search and display of hierarchically organized information of arbitrary depth using graphical user interfaces
US7450114B2 (en) * 2000-04-14 2008-11-11 Picsel (Research) Limited User interface systems and methods for manipulating and viewing digital documents
US7301537B2 (en) * 2002-12-20 2007-11-27 Telefonaktiebolaget Lm Ericsson (Publ) Graphics processing apparatus, methods and computer program products using minimum-depth occlusion culling and zig-zag traversal
CN1926579A (zh) * 2003-01-28 2007-03-07 鲁西德信息技术有限公司 使用关联决策机制合成三维图形图像的方法和系统
US20050219252A1 (en) * 2004-03-30 2005-10-06 Buxton Mark J Two-dimensional buffer, texture and frame buffer decompression

Also Published As

Publication number Publication date
CN101103381A (zh) 2008-01-09
ATE383627T1 (de) 2008-01-15
JP2008521103A (ja) 2008-06-19
KR20070086367A (ko) 2007-08-27
JP4763712B2 (ja) 2011-08-31
CN101103381B (zh) 2011-11-23
DE602004011234D1 (de) 2008-02-21
US8471851B2 (en) 2013-06-25
WO2006053765A1 (en) 2006-05-26
KR101255429B1 (ko) 2013-04-17
EP1659538B1 (de) 2008-01-09
US20090135193A1 (en) 2009-05-28
EP1659538A1 (de) 2006-05-24

Similar Documents

Publication Publication Date Title
DE112007002991B4 (de) Computergraphikschattenvolumen unter Verwendung von hierarchischem Okklusions-Culling
DE69636599T2 (de) Verfahren und system zur wiedergabe von grafischen objekten durch teilung in bildstücke und zusammensetzen von bildlagen zu einem wiedergabebild
DE3854543T2 (de) Prioritätsverwaltung eines Tiefendatenpuffers für Echtzeitrechnersysteme zur Bilderzeugung.
EP1175663B1 (de) Verfahren zur rasterisierung eines graphikgrundelements
DE602005002781T2 (de) Geländewiedergabe mit geschachtelten regelmässigen Gittern
DE102015113240A1 (de) System, verfahren und computerprogrammprodukt für schattierung unter verwendung eines dynamischen objektraumgitters
DE10296401B4 (de) Verbund-Rendering von 3-D-Graphikobjekten
EP0984397B1 (de) Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster
DE60109434T2 (de) Systeme und verfahren zur erzeugung von visuellen darstellungen von graphischen daten
DE69122557T2 (de) Bilderzeugung
DE60306813T2 (de) Grafikverarbeitugsvorrichtung, verfahren und computerprogrammprodukte mit minimaltiefenokklusions-culling und zickzack-durchquerung
DE69932059T2 (de) Trilineare texturfilterung mit optimiertem speicherzugriff
DE69917799T2 (de) Texturierungssysteme zur verwendung in drei-dimensionalen abbildungssystemen
DE69127915T2 (de) System und Verfahren von Prioritätsfarbabbildung
DE69127516T2 (de) Verfahren und Gerät zur Bilderzeugung
DE112005002076T5 (de) Unterteilung von Geometriebildern in Grafikhardware
DE102010033318A1 (de) Techniken zum Speichern und Abrufen von Bilddaten
DE102018114286A1 (de) Durchführen einer Traversierungs-Stack-Komprimierung
DE102017108096A1 (de) System, verfahren und computerprogrammprodukt zum rendern bei variablen abtastraten mittels projektiver geometrischer verzerrung
DE102015107869A1 (de) Vergabe von Primitiven an Primitiv-Blöcke
DE202012013450U1 (de) Beschriftungspositionierbildwiedergabesystem zur Reduzierung des Kriechens bei Zoom-Aktivitäten
DE102013114373A1 (de) Konsistente Vertex-Einrastung für Rendering mit variabler Auflösung
JP2002015335A (ja) モーションブラー画像描画方法及び描画装置
DE602004003111T2 (de) Tiefen-basiertes Antialiasing
DE102010048486A1 (de) Bildverarbeitungstechniken

Legal Events

Date Code Title Description
8364 No opposition during term of opposition