DE69804126T2 - Verfahren und einrichtung zur dreidimensionalen graphikdarstellung - Google Patents

Verfahren und einrichtung zur dreidimensionalen graphikdarstellung

Info

Publication number
DE69804126T2
DE69804126T2 DE69804126T DE69804126T DE69804126T2 DE 69804126 T2 DE69804126 T2 DE 69804126T2 DE 69804126 T DE69804126 T DE 69804126T DE 69804126 T DE69804126 T DE 69804126T DE 69804126 T2 DE69804126 T2 DE 69804126T2
Authority
DE
Germany
Prior art keywords
texture
pattern data
data
image
tile
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 - Fee Related
Application number
DE69804126T
Other languages
English (en)
Other versions
DE69804126D1 (de
Inventor
Kei Yuasa
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Application granted granted Critical
Publication of DE69804126D1 publication Critical patent/DE69804126D1/de
Publication of DE69804126T2 publication Critical patent/DE69804126T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/0092Coin-freed apparatus for hiring articles; Coin-freed facilities or services for assembling and dispensing of pharmaceutical articles
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61JCONTAINERS SPECIALLY ADAPTED FOR MEDICAL OR PHARMACEUTICAL PURPOSES; DEVICES OR METHODS SPECIALLY ADAPTED FOR BRINGING PHARMACEUTICAL PRODUCTS INTO PARTICULAR PHYSICAL OR ADMINISTERING FORMS; DEVICES FOR ADMINISTERING FOOD OR MEDICINES ORALLY; BABY COMFORTERS; DEVICES FOR RECEIVING SPITTLE
    • A61J7/00Devices for administering medicines orally, e.g. spoons; Pill counting devices; Arrangements for time indication or reminder for taking medicine
    • A61J7/04Arrangements for time indication or reminder for taking medicine, e.g. programmed dispensers
    • A61J7/0409Arrangements for time indication or reminder for taking medicine, e.g. programmed dispensers with timers
    • A61J7/0481Arrangements for time indication or reminder for taking medicine, e.g. programmed dispensers with timers working on a schedule basis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F11/00Coin-freed apparatus for dispensing, or the like, discrete articles
    • G07F11/02Coin-freed apparatus for dispensing, or the like, discrete articles from non-movable magazines
    • G07F11/44Coin-freed apparatus for dispensing, or the like, discrete articles from non-movable magazines in which magazines the articles are stored in bulk
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61JCONTAINERS SPECIALLY ADAPTED FOR MEDICAL OR PHARMACEUTICAL PURPOSES; DEVICES OR METHODS SPECIALLY ADAPTED FOR BRINGING PHARMACEUTICAL PRODUCTS INTO PARTICULAR PHYSICAL OR ADMINISTERING FORMS; DEVICES FOR ADMINISTERING FOOD OR MEDICINES ORALLY; BABY COMFORTERS; DEVICES FOR RECEIVING SPITTLE
    • A61J7/00Devices for administering medicines orally, e.g. spoons; Pill counting devices; Arrangements for time indication or reminder for taking medicine
    • A61J7/04Arrangements for time indication or reminder for taking medicine, e.g. programmed dispensers
    • A61J7/0409Arrangements for time indication or reminder for taking medicine, e.g. programmed dispensers with timers
    • A61J7/0427Arrangements for time indication or reminder for taking medicine, e.g. programmed dispensers with timers with direct interaction with a dispensing or delivery system
    • A61J7/0436Arrangements for time indication or reminder for taking medicine, e.g. programmed dispensers with timers with direct interaction with a dispensing or delivery system resulting from removing a drug from, or opening, a container

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Geometry (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Medical Informatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Animal Behavior & Ethology (AREA)
  • General Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Veterinary Medicine (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)

Description

  • Die Erfindung betrifft ein Gerät zum Erzeugen dreidimensionaler Graphiken und Verfahren, die ideal sind zur Erzeugung von Bildern dreidimensionaler Objekte als Reaktion auf dreidimensionale graphische Daten, die über ein Übertragungsgeschwindigkeit-begrenztes Netzwerk, wie das World Wide Web, oder über ein anderes Übertragungsgeschwindigkeit-begrenztes Medium übertragen werden. Die Erfindung betrifft insbesondere eine Gerät zum Erzeugen dreidimensionaler Graphiken und ein Verfahren, das praktisch sofort eine niedrig aufgelöste Version des Bildes des dreidimensionalen Objekts und anschließend schrittweise neue Versionen des Bildes mit progressiv zunehmender Auflösung erzeugt, bis eine Version des Bildes mit optimaler Auflösung erzeugt wird.
  • Mit der Verbreitung von Graphik-Programmiersprachen, wie VRML (Virtual Reality Modeling Language), können dreidimensionale graphische Daten, die dreidimensionale Graphiken darstellen, leicht über Netzwerke wie das Internet übertragen werden.
  • Dreidimensionale graphische Daten (3D-Graphikdaten) umfassen typischerweise Polygon- und Farbdaten. Die Polygondaten geben die Positionen der Spitzen von Vielecken an, die die Oberflächen dreidimensionaler, in einem virtuellen dreidimensionalen Raum (3D-Raum) liegender Objekte (3D-Objekte) definieren. Das Aussehen eines jeden Polygons kann durch einen von zwei Typen von Daten, direkte Farbdaten oder Texturdaten, definiert werden.
  • Direkte Farbdaten geben einen dem Polygon zugeordneten Farbwert an. Texturdaten definieren die Texturfarbwerte der Pixel einer auf dem Polygon liegenden Textur.
  • Bei der dreidimensionalen Graphikverarbeitung wird jedes 3D-Objekt in einem 3D-Raum auf eine hypothetische zweidimensionale Fläche in einer Weise projeziert, die dem Abstand und Winkel zwischen einem hypothetischen Punkt und dem 3D-Objekt entspricht. Bei dieser Offenbarung wird die hypothetische zweidimensionale Fläche Bilderzeugungsschirm und der hypothetische Punkt Bildpunkt genannt. Anschließend wird eine verdeckte Flächenentfernung durchgeführt, so daß die Farbwerte nur den Teilen des 3D-Objekts zugeordnet werden, die aufgrund des Bildpunkts sichtbar sind. Außerdem können die Farbwerte der Teile des 3D-Objekts, die aufgrund des Bildpunkts sichtbar sind, bei Bedarf unter Anwendung von Intensitätskoeffizienten, die die Position und Intensität von einer oder mehreren Lichtquellen berücksichtigen, modifiziert werden.
  • Die einem Polygon zugeordneten direkten Farbdaten bestehen in der Regel aus drei Farbwerten, jeweils einer für die drei primären Additivfarben Rot, Grün und Blau. Rot, Grün und Blau werden als R, G und B abgekürzt. Gleichermaßen bestehen die Texturdaten, die ein Pixel einer Textur definieren, die auf ein oder mehreren Polygonen aufliegt, in der Regel aus drei Farbwerten, einer für jeden der drei primären Additivfarben Rot, Grün und Blau. Alternativ können Farbwerte für andere Farben, wie Gelb, Zyan, Magenta und Schwarz, verwendet werden. Außerdem können alternativ weitere Möglichkeiten zum Ausdrücken des Aussehens eines Objekts, wie Leuchtkraft und Farbdifferenzwerte, als Farbwerte eingesetzt werden.
  • Wenn direkte Farbwerte, die Polygonen zugeordnet sind, zur Definition der Farbe der Oberflächen des 3D-Objekts verwendet werden, definieren die direkten Farbdaten für jedes Polygon nur eine Farbe. Darum muß, wenn die Oberfläche des 3D-Objekts ein komplexes Aussehen aufweist, obwohl seine Topologie einfach sein kann, die Oberfläche des Objekts in viele kleine Polygone aufgeteilt werden, damit sich sein Aussehen exakt definieren läßt. Die Erhöhung der Anzahl von Polygonen bedeutet, daß sehr viele Daten an den Geometrieberechnungen beteiligt sind. Dies vermindert die Erzeugungsgeschwindigkeit beträchtlich.
  • Texturen werden zur Behebung des soeben beschriebenen Problems verwendet. Eine Textur kann zur Definition des Aussehens der gesamten Oberflächen eines 3D-Objekts oder großer Teile solcher Oberflächen verwendet werden. Eine Textur ist normalerweise ein Bit-abgebildetes Bild des Aussehens der Oberfläche und liegt auf der Oberfläche des Polygons. Eine Textur kann das Aussehen der Oberfläche des Objekts in feinen Details unter Anwendung einer relativ kleinen Menge an Daten definieren. Eine Textur kann nicht nur das Aussehen von sich wiederholenden Mustern, wie von Ziegelwänden oder Marmorpfeilern, unter Anwendung nur einiger weniger Polygone definieren, sondern kann auch ein Bild oder einen Teil eines Bildes, das auf die Oberfläche des Objekts aufgebracht wird, definieren.
  • Wird auf ein Polygon eine Textur aufgelegt, müssen die Texturdaten, die das Aussehen der Textur definieren, dem Abstand und Winkel zwischen Bildpunkt und Polygon entsprechend transformiert werden. Normalerweise wird diese Transformation durch Festlegung der Koordinaten der Spitzen des Polygons und durch zusätzliche Festlegung von einer oder mehreren Koordinaten-Transformationsmatrices durchgeführt.
  • Die Anwendung von Texturen zur Definition des Aussehens eines Objekts stellt auch unter Anwendung auch von herkömmlicher Erzeugungstechniken den Vorteil bereit, dass komplexe Muster auf den Oberflächen von 3D-Objekten unter Anwendung einer geringen Anzahl von Polygonen, wie vorstehend beschrieben, definiert werden können. Allerdings können die Texturdaten eine beträchtliche Anzahl von Daten ausmachen, insbesondere wenn die Texturen komplex sind.
  • Werden 3D-Graphikdaten einschließlich von Texturdaten von einem Server über ein Netzwerk in einen Client- Computer geladen, muß der Anwender möglicherweise warten, bevor ein Bild auf dem Bildschirm angezeigt wird. Insbesondere, wenn die 3D-Graphikbearbeitung in einer herkömmlichen Netzwerkumgebung durchgeführt wird, müssen sämtliche 3D-Graphikdaten, d. h. die Polygon- und Farbdaten, die die Texturdaten einschließen, geladen werden, bevor eine der Erzeugungsberechnungen startet. Die zum Laden der 3D-Graphikdaten erforderliche Zeit kann ungewöhnlich lang sein, wenn das Aussehen der 3D- Objekte durch komplexe Texturen definiert ist, und eine große Anzahl von Texturdaten muß zur Definition der Texturen heruntergeladen werden. Als Ergebnis kann die Latenzzeit, während der auf dem Bildschirm nichts angezeigt wird, unakzeptabel lang sein, und eine schnelle Erzeugung ist unmöglich.
  • Techniken zur Bereitstellung zweidimensionaler graphischer Daten in einem speziellen Format, durch das normale zweidimensionale graphische Bilder unter schrittweise höheren Auflösungen erzeugt werden können, sind bekannt. Mit anderen Worten, wird auf dem Bildschirm zunächst ein niedrig aufgelöstes Bild angezeigt. Das Bild wird anschließend nach und nach wieder in progressiv feineren Auflösungen auf dem Bildschirm angezeigt. Eine dieser Anzeigetechniken ist unter dem Warenmarken FLASHPIX im Handel und wird nachstehend ausführlicher beschrieben.
  • Allerdings können zum Erzeugen von Bildern als Reaktion auf zweidimensionale Graphikdaten herkömmliche Techniken nicht ohne Modifikation angewandt werden, wenn zur Darstellung dreidimensionaler Objekte Texturen auf Polygone abgebildet werden. Dies beruht darauf, daß die Texturen in Abhängigkeit der Positionen von einer oder mehreren Lichtquellen transformiert werden müssen, um die Orientierung des Polygons relativ zum Bildpunkt, wie vorstehend beschrieben, zu berücksichtigen.
  • Benötigt wird demnach eine Bilderzeugungsgerät für dreidimensionale Graphiken und ein Verfahren, durch das sich ein Bild eines 3D-Objekts in einem 3D-Raum mit hoher Geschwindigkeit und mit einer für jeden Teil des 3D-Objekts optimierten Auflösung erzeugen läßt.
  • Benötigt wird ferner eine Gerät zum Erzeugen dreidimensionaler Graphiken und ein Verfahren, wobei sich augenblicklich und schnell ein niedrig aufgelöstes Bild des 3D-Objekts erzeugen und sich das Bild des 3D-Objekts, insbesondere in einer Netzwerk-Umgebung, nach Verstreichen der Anzeigezeit immer wieder in schrittweise feineren Auflösungen anzeigen läßt.
  • Benötigt wird schließlich eine Gerät zum Erzeugen dreidimensionaler Graphiken und ein Verfahren, wobei sich eine wirksame Anwendung verschiedener Rechnerquellen durch effektiveres Laden der Texturdaten, die mit den aktuellen Auflösungen zusammenhängen, in denen die verschiedenen Teile des Bildes angezeigt werden, bereitstellen läßt.
  • Der Artikel: Blumberg R et al. "Visual Realism and Interactivity for the Internet" Proceedings of IEEE Compcon '97, San Jose, Feb. 23-26, 1997, 23. Februar 1997, Seiten 269-273, Institute of Electrical and Electronics Engineers, offenbart ein Bilderzeugungsverfahren und eine Gerät auf der Basis einer pyramidalen Datenstruktur, die einen schnellen Zugang zu Bilddaten auf jedem Auflösungsniveau gestatten. Bei einer Anwendung erfolgt eine Textur-Abbildung, d. h. das Einhüllen eines durch Polygondaten beschriebenen 3D-Objekts mit den Textur-Daten des Bildes. Der Artikel erkennt, dass zur Berechnung der Textur-Abbildung bei einer erwünschten Auflösung die Auflösung dynamisch redefiniert werden muß. Der Artikel: Rashwan M A et al. 'Pyramid Data Structures for On-Line Image Progressive Transmission' Proceedings of the Midwest Symposium on Circuits and Systems, Detroit, Aug. 16-18, 1993, Bd. 1, Nr. Symp. 36, 16. August 1993, Seiten 103-106, Institute of Electrical and Electronics Engineers, offenbart verschiedene pyramidale Datenstrukturen zur progressiven Transmission, wobei von einer niedrigen Auflösung ausgegangen und zu einer hohen Auflösung übergegangen wird.
  • Gemäß einem ersten Aspekt der Erfindung wird eine Bilderzeugungsgerät zum Erzeugen eines Bildes als Reaktion auf dreidimensionale Graphikdaten bereitgestellt, wobei die Gerät umfaßt:
  • Graphische Einrichtungen, wovon das Bilderzeugungsgerät die dreidimensionalen graphischen Daten, einschließlich der Polygon- und Texturdaten, empfängt, wobei die Texturdaten eine Textur definieren und Texturgrößen- und Texturmusterdaten einschließen, wobei die Musterdaten im Rahmen von Spezialfällen der Textur zählbar sind, wobei jeder Spezialfall eine unterschiedliche Auflösung aufweist und einen Fall mit geringster Auflösung und einen Fall mit höchster Auflösung umfaßt, wobei die Musterdaten eine Mehrheit der Texturdaten ausmachen, wobei das Gerät zunächst von der Graphikeinrichtung nur die Polygondaten, die Texturgrößedaten und diejenigen der Musterdaten, die den niedrig aufgelösten Textur- Spezialfall darstellen, empfängt;
  • einen Referenzspeicher, der Speicherzellen entsprechend den Pixeln auf einem Bilderzeugungsschirm einschließt
  • und eine Erzeugungsmaschine zur Durchführung eines ersten Vektor-/Rastergraphik-Wandlungsvorgangs unter Anwendung nur der Polygon- und Texturgrößedaten zur Erzeugung und zur Speicherung der Texturkoordinaten für ein entsprechendes Pixel der Pixel des Bilderzeugungsschirms in jeder der Speicherzellen des Referenzspeichers, und zur wiederholten Durchführung eines Anzeige- und-Ladevorgangs, wobei die Erzeugungsmaschine:
  • Farbwerte erzeugt, die das Bild darstellen, unter Anwendung der von dem Bilderzeugungsgerät geladenen Musterdaten für den am höchsten aufgelösten Textur-Spezialfall,
  • als Reaktion auf die im Referenzspeicher gespeicherten Texturkoordinaten, diejenigen der Musterdaten für den nächst höher aufgelösten Textur-Spezialfall identifiziert, die zum Erzeugen von mindestens Teilen des Bildes mit einer höheren Auflösung notwendig sind, und
  • einen Ladevorgang aus den Graphikeinrichtungen von Musterdaten durchführt, die als zur Erzeugung von mindestens Teilen des Bildes mit der höheren Auflösung erforderlich identifiziert werden, wobei die Erzeugungsmaschine zur wiederholten Durchführung des Anzeige-und- Ladevorgangs ausgelegt ist, bis die Farb-Endwerte sämtlicher Pixel des Bilderzeugungsschirms unter Anwendung von verschiedenen der im Bilderzeugungsgerät gespeicherten Musterdaten erzeugt sind.
  • Die Bilderzeugungsgerät kann zusätzlich einen Texturspeicher umfassen, in dem die über den Dateneingabeweg geladenen Musterdaten in einer pyramidalen Datenstruktur gespeichert sind. Die pyramidale Datenstruktur umfaßt Schichten, in denen die Musterdaten von entsprechenden Fällen der Spezialfälle der Textur gespeichert sind.
  • Gemäß dem zweiten Aspekt der Erfindung wird ein Verfahren zur Erzeugung eines Bildes als Reaktion auf dreidimensionalen graphische Daten bereitgestellt, wobei das Bild durch Farbwerte, die Pixeln auf einem Bilderzeugungsschirm entsprechen, dargestellt wird, wobei die dreidimensionalen graphischen Daten Polygondaten und zusätzlich Texturdaten einschließen, die eine Textur definieren, wobei die Texturdaten Texturgrößedaten und Texturmusterdaten einschließen, wobei die Musterdaten im Rahmen von Spezialfällen der Textur zählbar sind, wobei jeder der Spezialfälle eine verschiedene Auflösung aufweist und den Fall einer niedrigsten Auflösung und den Fall einer höchsten Auflösung einschließt, wobei die Musterdaten eine Mehrheit der Texturdaten ausmachen, wobei das Verfahren umfaßt:
  • Laden der Polygondaten, der Texturgrößedaten und der Musterdaten, die den Spezialfall der am niedrigsten aufgelösten Textur darstellen;
  • einen ersten Vektor-/Rastergraphik-Wandlungsvorgang unter Anwendung der Polygon- und Texturgrößedaten unter Erzeugung und Speicherung einer Texturkennung und von Texturkoordinaten für jedes Pixel der Pixel des Bilderzeugungsschirms; und
  • wiederholte Durchführung eines Anzeige-und-Ladevorgangs, wobei der Anzeige-und-Ladevorgang folgendes einschließt:
  • die Erzeugung der Farbwerte, die das Bild darstellen, unter Anwendung der zuvor geladenen Musterdaten für den Spezialfall der am höchsten aufgelösten Textur,
  • als Reaktion auf die für die Pixel des Bilderzeugungsschirms gespeicherten Texturkoordinaten die Identifizierung derjenigen der Musterdaten für den Spezialfall einer nächst höher aufgelösten Textur, die zur Erzeugung von mindestens Teilen des Bildes mit einer höheren Auflösung erforderlich sind, und
  • das Laden derjenigen der Musterdaten, die zur Erzeugung von mindestens Teilen des Bildes mit der höheren Auflösung als erforderlich identifiziert werden,
  • unter wiederholter Durchführung des Anzeige-und-Ladevorgang bis zur Erzeugung der Farb-Endwerte sämtlicher Pixel des Bilderzeugungsschirms unter Anwendung verschiedener der Musterdaten.
  • Werden anfangs nur die Polygondaten, die Texturgrößedaten und die Musterdaten, die den Spezialfall der am geringsten aufgelösten Textur darstellen, geladen, erzeugen das Gerät und das erfindungsgemäße Verfahren die Bilddaten, die eine niedrig aufgelöste Version des Bildes darstellen, praktisch ohne Verzögerung. Die Bilddaten, die die höher aufgelöste Version des Bildes darstellen, werden anschließend erzeugt. Allerdings können die Bilddaten, die die höher aufgelöste Version des Bildes darstellen, schneller erzeugt werden als durch ein herkömmliches Gerät oder ein herkömmliches Verfahren, da das erfindungsgemäße Gerät und das erfindungsgemäße Verfahren nur diejenigen Musterdaten laden, die zur Erzeugung der Bilddaten, die das Bild mit optimaler Auflösung darstellen, erforderlich sind.
  • Somit werden die Musterdaten für diejenigen Teile des Bildes nicht geladen, die die höher aufgelösten Textur- Spezialfälle zur optimal aufgelösten Bilderzeugung nicht benötigen.
  • Fig. 1 ist ein Blockdiagramm des erfindungsgemäßen dreidimensionalen Graphik-Bilderzeugungsgeräts, das in einem über ein Netzwerk an einen Server angeschlossenen Client-Computer eingebaut ist.
  • Fig. 2 zeigt einen zweidimensionalen Texturraum, in dem Textur-Spezialfälle, die jeweils eine unterschiedliche Auflösung aufweisen, mit den gleichen Dimensionen definiert sind.
  • Fig. 3 zeigt die Struktur der pyramidalen Datenstruktur, die bei dem erfindungsgemäßen Bilderzeugungsgerät und dem erfindungsgemäßen Verfahren zur Speicherung der Musterdaten einer jeden Textur angewandt wird.
  • Fig. 4 zeigt ein Beispiel für die Bild-Zugriffsdatei, die in dem erfindungsgemäßen Bilderzeugungsgerät und in dem erfindungsgemäßen Verfahren zur Bestimmung des Textur-Spezialfalls verwendet wird, dessen Musterdaten zur Erzeugung der Farbwerte für jedes Pixel des Bilderzeugungsschirms verwendet werden.
  • Fig. 5 zeigt ein Beispiel der Fliesen-Ladeliste, die in dem erfindungsgemäßen Bilderzeugungsgerät und bei dem erfindungsgemäßen Verfahren zur Steuerung des Ladens von Musterdaten verwendet wird.
  • Fig. 6A zeigt, wie die Musterdaten, die den Spezialfall einer Textur darstellen, als Fliesen angeordnet sind, wenn die Textur ein quadratisches Länge-zu-Breite-Verhältnis aufweist.
  • Fig. 6B zeigt, wie die Musterdaten, die den Fall einer Textur darstellen, als Fliesen angeordnet sind, wenn die Textur ein rechteckiges Länge-zu-Breite-Verhältnis aufweist.
  • Fig. 7A ist ein Flußdiagramm und erläutert eine Ausführungsform der Graphik-Erzeugungshauptroutine, die von dem erfindungsgemäßen Graphikbild-Erzeugungsgerät und dem erfindungsgemäßen Verfahren durchgeführt wird.
  • Fig. 7B ist ein Flußdiagramm und erläutert eine Abänderung der Graphik-Erzeugungshauptroutine, die von dem erfindungsgemäßen Graphik-Bilderzeugungsgerät und dem erfindungsgemäßen Verfahren durchgeführt wird.
  • Fig. 8 zeigt die Struktur einer beispielhaften Zelle in dem Referenzspeicher.
  • Fig. 9 ist ein Flußdiagramm und zeigt Details der Subroutine, die in Schritt S11 der in den Fig. 7A und 7B gezeigten Hauptroutinen durchgeführt wird.
  • Fig. 10 ist ein Flußdiagramm und zeigt Details der Subroutine, die in Schritt S14 der in den Fig. 7A und 7B gezeigten Hauptroutinen durchgeführt wird.
  • Fig. 11 ist ein Flußdiagramm und zeigt Details der Subroutine, die in Schritt S1404 der in Fig. 10 gezeigten Subroutine durchgeführt wird.
  • Fig. 12 ist ein Flußdiagramm und zeigt Details der Subroutine, die in Schritt S15 der in den Fig. 7A und 7B gezeigten Hauptroutinen durchgeführt wird.
  • Fig. 13 zeigt die Fälle eins bis fünf, Tl&sub1;, Tl&sub2;, Tl&sub3;, Tl&sub4;, Tl&sub5;, für eine Textur, die in einem ersten Beispiel des Erzeugungsverfahrens angewandt werden, das von dem erfindungsgemäßen Bilderzeugungsgerät und dem erfindungsgemäßen Verfahren durchgeführt wird.
  • Fig. 14A zeigt ein Beispiel der Texturkoordinaten, die im Referenzspeicher gespeichert werden, wenn der dreieckige Teil TRI der in Fig. 13 gezeigten Textur über ein kleines Polygon gelegt wird.
  • Fig. 14B zeigt die Beziehung zwischen den Texturkoordinaten, die im Referenzspeicher, der in Fig. 14A gezeigt ist, gespeichert sind, und die spezielle Koordinaten für den Fall der niedrigsten Auflösung Tl&sub1; der Textur. Die speziellen Koordinaten für den Fall Tl&sub1; besitzen 64 diskrete Werte entlang der p-Achse und der q-Achse.
  • Fig. 15A zeigt ein Beispiel der in dem Referenzspeicher gespeicherten Texturkoordinaten, wobei der dreieckige Teil TRI der in Fig. 13 gezeigten Textur auf ein Polygon von ungefähr der doppelten Größe des Polygons des Beispiels von Fig. 14A gelegt wird.
  • Fig. 15B zeigt die Beziehung zwischen den Texturkoordinaten, die in dem in Fig. 15A gezeigten Referenzspeicher gespeichert sind, und die speziellen Koordinaten für den Fall der geringsten Auflösung Tl&sub1; und für den Fall der höheren Auflösung Tl&sub2; der Textur. Die speziellen Koordinaten des Falls Tl&sub2; besitzen 128 diskrete Werte entlang der p-Achse und der q-Achse.
  • Fig. 16A zeigt ein Beispiel der Texturkoordinaten, die in dem Referenzspeicher gespeichert sind, wenn der dreieckige Teil TRI der in Fig. 13 gezeigten Struktur auf ein Polygon von ungefähr vierfacher Größe der Größe des Polygonbeispiels der Fig. 14A gelegt wird.
  • Fig. 16B zeigt die Beziehung zwischen den Texturkoordinaten, die in dem Referenzspeicher, der in Fig. 16A gezeigt ist, gespeichert sind, und die speziellen Koordinaten für die Fälle Tl&sub1;, Tl&sub2; und Tl&sub3; der Textur. Die speziellen Koordinaten des Falls Tl&sub3; besitzen 256 diskrete Werte entlang der p-Achse und der q-Achse.
  • Die Fig. 17-20 zeigen vier verschiedene Fälle einer Textur, die eine Weltkarte darstellt, und zeigen zusätzlich die Fliesen, in die jeder Spezialfall eingeteilt wird, und die Fliesen, deren Musterdaten tatsächlich zum Erzeugen der in den Fig. 21-25 gezeigten Bilder verwendet werden. Der in Fig. 17 gezeigte Fall besitzt die geringste Auflösung, und der in Fig. 20 gezeigte Fall weist die höchste Auflösung auf.
  • Die Fig. 21-24 zeigen Beispiele der Bilder, die nacheinander als Reaktion auf die Farbwerte angezeigt werden, die von dem Bilderzeugungsgerät und dem erfindungsgemäßen Verfahren erzeugt werden, wenn mindestens Teile der in den Fig. 17-20 gezeigten Spezialfälle der Textur nacheinander auf die Oberfläche einer Kugel aufgelegt werden.
  • Die Erfindung betrifft ein dreidimensionales Graphik- Bilderzeugungsgerät und ein Verfahren, die zur Anwendung in einer Umgebung ausgelegt sind, wobei die Datenübertragungsgeschwindigkeit der 3D-Graphikdaten begrenzt ist, wie in einem Netzwerk, beispielsweise dem Internet. Das dreidimensionale Graphik-Erzeugungsgerät und das Verfahren erzeugen ein zweidimensionales Bild eines 3D-Raums, der mit 3D-Objekten ausgefüllt ist. Das Bild befindet sich im 3D-Raum in einem vom Anwender gewählten oder von den 3D-Graphikdaten definierten Blickpunkt. Der 3D-Raum kann zusätzlich von einer oder mehreren Beleuchtungsquellen beleuchtet werden, die ebenfalls vom Anwender gewählt oder von den 3D-Graphikdaten definiert werden. Ein hypothetischer Bilderzeugungsschirm, der zwischen dem Blickpunkt und dem 3D-Raum liegt, definiert die Blickrichtung und den Blickbereich, den das Bild darstellt. Der Bilderzeugungsschirm ist in Bildelemente (Pixel) in einer Anordnung aufgeteilt, die vorzugsweise der zur Bildanzeige angewandten Pixel-Anzahl entspricht. Wenn beispielsweise das Bild auf dem Bildschirm eines SVGA-Monitors angezeigt werden soll, ist der Bilderzeugungsschirm vorzugsweise in 800 · 600 Pixel aufgeteilt.
  • Das dreidimensionale Bilderzeugungsgerät und das Verfahren berechnen für jedes der Pixel des Bilderzeugungsschirms eine Reihe von Farbwerten. Jede Reihe von Farbwerten kann beispielsweise einen roten Farbwert, einen grünen Farbwert und blauen Farbwert enthalten. Alternativ kann die Reihe von Farbwerten einen Luminanzwert und zwei Farbdifferenzwerte oder Farbwerte für Farben außer Rot, Grün und Blau enthalten. Zur Anzeige durch eine monochrome Anzeige kann jede Reihe von Farbwerten aus einem einzigen Luminanzwert bestehen. Das Bild wird dann als Reaktion auf die Farbwerte angezeigt.
  • Fig. 1 ist ein Blockdiagramm des erfindungsgemäßen Bilderzeugungsgeräts 100. Das Bilderzeugungsgerät besteht beispielsweise aus dem Computer 102. Bei einer praktischen Ausführungsform kann das Bilderzeugungsgerät Teil einer im Computer angebrachten Graphikkarte (nicht gezeigt) sein. Alternativ kann das Bilderzeugungsgerät ein Hardware-Accessoire sein, das in die Graphikkarte des Computers eingesteckt oder anderweitig mit ihr verbunden wird. Als weitere Alternative kann die existierende Hardware des Computers, die als Reaktion auf das Erzeugungsprogramm arbeitet, als Erzeugungsmaschine dienen.
  • Der Computer 102 ist angeschlossen über den I/O-Kanal 104 als Klient des Netzwerks 106 gezeigt. Der I/O-Kanal ist direkt oder indirekt an den Bus 108 angeschlossen, an den andere Elemente des Bilderzeugungsgerätes und der Computer angeschlossen sind.
  • Ebenfalls angeschlossen an das Netzwerk 106 ist der Server 110, der den 3D-Graphikdatenspeicher 116 einschließt, der 3D-Graphikdaten speichert. Der 3D-Graphikdatenspeicher umfaßt den Polygondatenspeicher 112 und den Textur-Datenspeicher 114.
  • Der Polygondatenspeicher 112 speichert Polygondaten, die die Topologie der Oberflächen der 3D-Objekte definieren. Die Polygondaten definieren die Positionen der Spitzen der Polygone im 3D-Raum und umfassen zusätzlich entweder direkte Farbdaten für das Polygon oder den Namen oder eine Adresse der auf das Polygon aufgebrachten Textur.
  • Der Textur-Datenspeicher 114 speichert Texturdaten, die die Texturen speichern, die auf alle oder auf einen Teil von einem oder mehreren der Oberflächen von einem oder mehreren der 3D-Objekten aufgebracht werden. Musterdaten, die das Aussehen einer jeden Textur definieren, machen eine bedeutende Mehrheit der Texturdaten aus. Die Texturdaten umfassen für jede Textur auch die Texturhöhe H, die Texturbreite W, Schichtdaten, die die Anzahl von Textur-Spezialfällen festlegen, für die Musterdaten verfügbar sind, und die Fliesenbreite TW und Fliesenhöhe TH der Fliesen, in die die Textur-Spezialfälle eingeteilt werden. Jeder Textur-Spezialfall hat eine unterschiedliche Auflösung, wie nachstehend ausführlicher beschrieben.
  • Zusätzlich oder alternativ können die 3D-Daten in Computer 102 gespeichert werden. In diesem Fall werden Speicherabschnitte, entsprechend den Speichern 112 und 114, in einem Speicher (nicht gezeigt) angeordnet, der in dem Computer angebracht und direkt oder indirekt an den Bus 108 angeschlossen ist. Beispielsweise können in dem Computer 3D-Graphikdaten, die vom Server 110 geladen werden, cachiert werden.
  • In Bilderzeugungsgerät 100 ist die Erzeugungsmaschine 120 an Bus 108 angeschlossen. Die Erzeugungsmaschine führt unter Durchführung von Erzeugungsvorgängen als Reaktion auf die 3D-Graphikdaten ein Erzeugungsprogramm 122 aus. Jeder Erzeugungsvorgang erzeugt eine Reihe von Farbwerten, auf deren Reaktion das zweidimensionale Bild angezeigt wird. Die Erzeugungsmaschine führt das erfindungsgemäße Verfahren durch. Die Erzeugungsmaschine kann unter Anwendung eines Mikroprozessors, eines digitalen Signalprozessors oder eines oder mehrerer applikationsspezifischer integrierter Schaltkreise oder integrierter Allzweckschaltkreise aufgebaut sein oder kann weitere Elemente enthalten, wie Nur-Lesespeicher und Direktzugriffsspeicher (nicht gezeigt), die sie zur Durchführung der hier beschriebenen Verarbeitung befähigt.
  • Das Bilderzeugungsgerät 100 enthält zusätzlich den Textur-Abbildungsspeicher 124, bestehend aus dem Tiefenspeicher 125 und dem Referenzspeicher 126. Der Tiefenspeicher und der Referenzspeicher sind vorzugsweise über den Bus 108 an die Erzeugungsmaschine 120 angeschlossen. Das Bilderzeugungsgerät verwendet den Referenzspeicher 126 zur Speicherung von Zwischenergebnissen, die durch erste von der Erzeugungsmaschine 120 durchgeführte Vektor-/Rastergraphik-Wandlungsberechnungen erzeugt werden, wie nachstehend ausführlich beschrieben. Ebenfalls an die Erzeugungsmaschine über den Bus angeschlossen ist der Bildschirmspeicher 127. Der Bildschirmspeicher besitzt einen Ausgang, der an den Videokanal 118 angeschlossen ist, durch den ein Videosignal, das den von dem Bilderzeugungsgerät 100 erzeugten Farbwerten entstammt, unter Anzeige des Bildes in den Monitor 150 eingespeist wird.
  • Der Tiefenspeicher 125, der Referenzspeicher 126 und der Bildschirmspeicher 127 bestehen jeweils vorzugsweise aus mehreren Speicherzellen, wovon jeder zur Speicherung mehrerer Bits von Daten in der Lage ist. Vorzugsweise entspricht jede der Zellen einem Pixel der Erzeugungsebene. Allerdings können die Speicher zusätzliche Speicherzellen umfassen, um die Möglichkeit des Erzeugens höher aufgelöster Bilder bereitzustellen. Außerdem kann eine Unteranordnung der Zellen dieser Speicher in dem Fall eingesetzt werden, daß beispielsweise gering aufgelöste Bilder oder Bilder, die kleiner sind als der volle Bildschirm, erzeugt werden.
  • Das Bilderzeugungsgerät 100 umfaßt auch den Textur- Datenspeicher 130, der an den Bus 108 angeschlossen ist. Der Textur-Datenspeicher ist auf mehrere Seiten verteilt. Ein Beispiel für die Seiten ist mit der Referenznummer 132 gekennzeichnet. Die Texturdaten einer Textur sind auf jeder Seite gespeichert. Jede Seite ist in Abschnitte aufgeteilt, in denen Unterreihen der Texturdaten, die die Textur definieren, gespeichert sind. In dem in Fig. 1 gezeigten Beispiel umfaßt die Seite 132 den Muster-Datenspeicher (PDS) 134, die Fliesen- Ladeliste (TLL) 136, das Fliesen-Teilungsfeld (TPA) 138, das Fliesenbasisfeld (TBA) 140 und das zugängliche Abbildungsfeld (AMA) 142. Die anderen Seiten des Textur-Datenspeichers sind ähnlich strukturiert.
  • Kurz gesagt, werden die Musterdaten, die eine Reihe von Spezialfällen für die Textur darstellen, die jeweils eine unterschiedliche Auflösung aufweisen, in Muster- Datenspeicher 134 gespeichert. Die Fliesen-Ladeliste 136 enthält einen Eintrag für jede Fliese, in die die Textur eingeteilt ist. Der Eintrag zeigt den Akquisitionsstatus der Musterdaten der Fliese an, d. h. ob die Musterdaten für die Fliese geladen werden müssen, um das Bild zu erzeugen, und ob die Musterdaten geladen worden sind oder nicht. Das Fliesenteilungsfeld 138 und das Fliesenbasisfeld 140 umfassen jeweils einen Eintrag für jeden Textur-Spezialfall. Die Einträge zeigen jeweils die Anzahl von Fliesen, die für den Textur- Spezialfall über die Breite aneinandergereiht sind und die Fliesennummer der ersten Fliese des Textur-Spezialfalls an. Das zugriffsfähige Abbildungsfeld 142 umfaßt eine Bild-Zugriffsdatei für jede Fliese des am späPrüfen geladenen Spezialfalls der Textur. Jede Bild- Zugriffsdatei umfaßt einen 1-Bit-Eintrag für jedes Texturpixel der Fliese. Die Bild-Zugriffsdatei wird verwendet um zu bestimmen, ob die Musterdaten der entsprechenden Fliese der Textur in der Lage sind, das Bild ohne optimale Auflösung zu erzeugen. Die Texturdaten, die auf jeder Seite des Texturspeichers gespeichert sind, werden nachstehend ausführlicher beschrieben.
  • Wie vorstehend angemerkt, umfassen die Texturdaten einer Textur Musterdaten, die mehrere Textur-Spezialfälle mit unterschiedlicher Auflösung darstellen. Fig. 2 zeigt, wie die Spezialfälle 202, 203, 204, 205, 206 der Textur 200 jeweils die gleichen Dimensionen in dem gezeigten zweidimensionalen Texturraum aufweisen. In diesem Beispiel sind fünf Fälle für die Textur gezeigt. Eine gegebene Textur kann mehr oder weniger Spezialfälle aufweisen. Die Spezialfälle sind unter Anwendung der Fallnummer k numeriert, wobei der Spezialfall mit der niedrigsten Auflösung die Fallnummer 1 aufweist. Dieses Beispiel zeigt auch die Texturraumkoordinaten (p, q), die die diskreten Werte, entsprechend den Texturpixeln des Originalfalls 206 der Textur, aufweisen.
  • Jeder Textur-Spezialfall ist in Fliesen eingeteilt. Die untere linke Fliese für jeden der Spezialfälle 202-206 ist mit den Referenznummern 207 bzw. 211 bezeichnet. Da jeder Fall aus einer verschiedenen Anzahl von Texturpixeln besteht und die Fliesen alle aus der gleichen Anzahl von Texturpixeln bestehen, wird jeder Textur- Spezialfall in eine verschiedene Anzahl von Fliesen eingeteilt. Fig. 2 zeigt eine beispielhafte Textur mit einem quadratischen Länge-zu-Breite-Verhältnis, wobei der Spezialfall mit der geringsten Auflösung 202 in eine einzige (4º) Fliese eingeteilt ist, der Fall mit der nächst höheren Auflösung 203 in vier (4¹)-Fliesen aufgeteilt ist, der Fall mit der nächst höheren Auflösung 204 in sechzehn (4²)-Fliesen aufgeteilt ist und der k-te Fall in 4k-1-Fliesen aufgeteilt ist etc. Der Spezialfall der Originalauflösung 206 ist in diesem Beispiel in 4&sup4;-Fliesen eingeteilt. Zur Vereinfachung der Zeichnung sind die Texturpixel nicht in Fig. 2 gezeigt.
  • Wie vorstehend angemerkt, bestehen sämtliche Fliesen in allen Textur-Spezialfällen 202-206 aus der gleichen Anzahl von Texturpixeln. Beispielsweise können die Fliesen jeweils aus einem zweidimensionalen Feld von 64 · 64 Texturpixeln bestehen. Da die Anzahl der Texturpixel in den Fällen exponentiell zunimmt, wenn die Schichttiefe des Falls von 0 auf 4 zunimmt, stellt jedes Texturpixel einen exponentiell abnehmenden Teil des Texturraums dar. Demnach erhöht sich die Auflösung, mit der die Spezialfälle jeweils die Textur darstellen, mit zunehmender Schichttiefe des Spezialfalls. Der erfindungsgemäße Mehrfall-Darstellungsweg der Textur unterscheidet sich von den herkömmlichen Wegen der Mehrfall-Darstellung eines Bildes insofern, daß der Spezialfall mit der niedrigsten Auflösung 202 der Textur aus mehr als einem Texturpixel besteht.
  • Den Fliesen, in die die Textur-Spezialfälle 202-206 eingeteilt sind, ist jeweils eine Fliesennummer t (wobei t = 0, 1, ... bedeutet) zugeordnet. In dem gezeigten Beispiel sind die Bereiche für die Fliesennummern der Fliesen der verschiedenen Spezialfälle in Tabelle 0 nachstehend gezeigt.
  • Tabelle 0 Schichttiefe Fliesennummern-Bereich
  • 0 0
  • 1 1-4
  • 2 5-20
  • 3 21-84
  • 4 85-340
  • Fig. 3 zeigt die Struktur der pyramidalen Datenstruktur 220, wobei die Musterdaten, die die verschiedenen Spezialfälle für jede Textur darstellen, in dem Muster- Datenspeicher 134 auf der entsprechenden Seite 132 des Textur-Datenspeichers 130 des in Fig. 1 gezeigten Bilderzeugungsgeräts 100 gespeichert sind. Die mehrfach aufgelöste pyramidale Datenstruktur beruht auf dem herkömmlichen zweidimensionalen Graphiksystem, das unter dem Warennamen FLASHPIX im Handel ist, das eine pyramidale Datenstruktur zur Speicherung von Daten verwendet, die zweidimensionale Bilder, wie Fotografien und dergleichen, darstellen.
  • In dem erfindungsgemäßen Bilderzeugungsgerät und bei dem erfindungsgemäßen Erzeugungsverfahren werden die Musterdaten eines jeden Textur-Spezialfalls in einer pyramidalen Datenstruktur gespeichert, wobei die Musterdaten für jeden Fall in einer unterschiedlichen Schicht, entsprechend der Schichttiefe der Spezialfälle, angeordnet sind. Die Schichten werden von der obersten Schicht nach unten numeriert, wobei die oberste Schicht die Schicht Null ist. Die Position einer Schicht in der pyramidalen Struktur ist durch die Schichttiefe der Schicht beschrieben. Die oberste Schicht, in der die Musterdaten für den am niedrigsten aufgelösten Textur-Spezialfall gespeichert sind, besitzt eine Schichttiefe von Null. Die Schichttiefe der Schicht, in der die Musterdaten für den am höchsten aufgelösten Textur-Spezialfall in dem in Fig. 3 gezeigten Beispiel gespeichert sind beträgt vier. Allerdings kann die pyramidale Datenstruktur in Abhängigkeit von der Größe der Textur mehr oder weniger Schichten als die in diesem Beispiel gezeigte Anzahl umfassen.
  • Die Musterdaten in jeder der Schichten der pyramidalen Datenstruktur 220 sind die Musterdaten für einen Textur-Spezialfall. Dieser durch die Musterdaten in jeder Schicht dargestellte Textur-Spezialfall besitzt in jeder Richtung eine lineare Auflösung der Hälfte derjenigen Auflösung des Textur-Spezialfalls, der durch die Musterdaten in der nächst unteren Schicht dargestellt ist, und des Doppelten der Auflösung des Textur- Spezialfalls, der durch die Musterdaten dargestellt ist, die in der nächst höheren Schicht gespeichert sind, wie vorstehend unter Bezugnahme auf Fig. 2 beschrieben.
  • Die Musterdaten, die den Fall der höchsten Auflösung der Textur darstellen, machen die unterste Schicht 226 der pyramidalen Struktur 220 aus. Normalerweise entspricht die höchste Auflösung der Originalauflösung der Textur. Wenn allerdings die Originalauflösung höher ist als die maximale, für die Anwendung benötigte Auflösung, kann die höchste Auflösung geringer sein als die Originalauflösung. Die Musterdaten für vier nebeneinanderliegende Texturpixel in der untersten Schicht werden unter Erzeugung der Musterdaten eines Texturpixels in der Schicht 225 unmittelbar über der untersten Schicht kombiniert. Folglich stellen die Musterdaten in der Schicht 225 einen Textur-Spezialfall mit linearer Auflösung in jeder Richtung von der Hälfte der Auflösung für den durch die Musterdaten der untersten Schicht dargestellten Textur-Spezialfall dar. Die Anzahl von Musterdaten in der Schicht 225 beträgt ein Viertel der Anzahl der Musterdaten in der untersten Schicht. Das vorstehend beschriebene Kombinationsverfahren wird unter Erzeugung der Musterdaten in jeder der restlichen Schichten 224-222 aus den Musterdaten in der unmittelbar darunter liegenden Schicht durchgeführt.
  • In der Deckschicht 222 der pyramidalen Datenstruktur 220 wird die Textur durch das Datenmuster einer Reihe von a-Texturpixeln in horizontaler Richtung und b-Texturpixeln in vertikaler Richtung dargestellt. Bei einer praktischen Ausführungsform ist a = b = 64. Es sollte festgestellt werden, daß die pyramidale Datenstruktur 220 sich von einer herkömmlichen pyramidalen Datenstruktur so unterscheidet wie die MIP-Datenstruktur. In der pyramidalen Datenstruktur 220 macht das Datenmuster einer Fliese die Deckschicht aus. Bei einer herkömmlichen pyramidalen Struktur macht das Datenmuster eines Texturpixels die Deckschicht aus.
  • Jede Schicht der pyramidalen Datenstruktur 220 unter der Deckschicht 222 ist in quadratische oder rechteckige Fliesen eingeteilt, die jeweils aus einer Reihe von a · b-Texturpixeln bestehen. Eine beispielhafte Fliese in der untersten Schicht 226 ist bei 230 gezeigt. Die Fliese ist die Einheit, wobei die Musterdaten vom Server 110 oder aus einem Speicher (nicht gezeigt), der sich in Client-Computer 102 befindet, wie vorstehend beschrieben, geladen werden. Jede Schicht der pyramidalen Datenstruktur ist in 4D-Fliesen eingeteilt, wobei D die Schichttiefe der Schicht ist und die oberste Schicht 222 eine Schichttiefe von 0 aufweist.
  • Die Musterdaten in jeder der Schichten 222-226 der pyramidalen Datenstruktur bauen normalerweise eine Bild- Abbildung, die die Textur darstellt, auf. Wenn allerdings die Musterdaten beispielsweise über das Netzwerk 106 zum Bilderzeugungsgerät 100 weitergeleitet werden, können die Bild-Abbildungsdaten unter Verminderung der Übertragungsdauer komprimiert werden. Beispielsweise kann eine JPEG-Komprimierung angewandt werden, um die Bild-Abbildungsdaten unter Erzeugung der Musterdaten zur Übertragung zu komprimieren. Allerdings werden die komprimierten Musterdaten vor der Speicherung in der pyramidalen Datenstruktur in die Bild-Abbildungsform expandiert.
  • Das erfindungsgemäße Bilderzeugungsgerät und das erfindungsgemäße Verfahren erzeugen jeden Teil eines 3D-Objekts mit hoher Geschwindigkeit und angemessener Auflösung. Zusätzlich erzeugen das Bilderzeugungsgerät und das Verfahren das 3D-Objekt sofort als niedrig aufgelöstes Bild fast ohne Wartzeit. Insbesondere wird bei verstreichender Anzeigzeit in einer Netzwerkumgebung mindestens ein Teil des 3D-Objekts mit progressiv höheren Auflösungen erzeugt. Außerdem laden das Bilderzeugungsgerät und das Verfahren tatsächlich nur die Texturdaten, die die sichtbaren Teile des Objekts betreffen. Dies stellt eine nennenswerte Verminderung in der Anzahl von Musterdaten bereit, die zur Erzeugung des Bildes geladen werden müssen.
  • Schließlich erzeugen das Bilderzeugungsgerät und das Erzeugungsverfahren das Bild mit optimaler Auflösung. Das Bilderzeugungsgerät und das Erzeugungsverfahren sind in der Lage, sämtliche Teile des Bildes mit einer Auflösung zu erzeugen, die derjenigen der am höchsten aufgelösten Textur entspricht. Wenn allerdings das Bild mit optimaler Auflösung erzeugt wird, brauchen Teile des Bildes, die nicht mit einer Auflösung erzeugt werden müssen, die dem Fall der höchsten Auflösung der Textur entspricht, nur mit niedrigerer Auflösung erzeugt werden. Die Teile des Bildes, die mit niedrigerer Auflösung erzeugt werden können, umfassen diejenigen, die Polygonen entsprechen, die eine kleine Größe aufweisen oder die von dem Beobachtungspunkt in einem Winkel zu dem Bilderzeugungsschirm entfernt liegen. Die Erzeugung des Bildes mit optimaler Auflösung vermindert die Anzahl von Musterdaten, die vom Server 110 geladen werden müssen, und verkürzt die zur Erzeugung des Bildes erforderliche Zeit. Bei dieser Offenbarung wird auf die Erzeugung des optimal aufgelösten Bildes unter Bezugnahme auf die Erzeugung des Bildes auf eine Weise Bezug genommen, daß nicht alle Teile des Bildes notwendigerweise mit einer Auflösung, entsprechend derjenigen des am höchsten aufgelösten Textur-Spezialfalls, erzeugt werden.
  • Die Musterdaten, die zur Anzeige des Bildes mit optimaler Auflösung vom Server 110 geladen werden müssen, sind durch das Bild-Zugriffsfeld identifiziert 142, das auf jeder Seite 132 des Textur-Datenspeichers 130 liegt. Das Bild-Zugriffsfeld umfaßt eine Bild-Zugriffsdatei für jede Fliese, in die die Textur eingeteilt ist. Jede Bild-Zugriffsdatei umfaßt einen Eintrag für jedes Texturpixel der Fliese. Die Bild-Zugriffsdatei wird zur Identifizierung des Textur-Spezialfalls angewandt, dessen Musterdaten zur Berechnung der Farbwerte eines jeden Pixels des Bilderzeugungsschirms mit optimaler Auflösung verwendet werden können. Wenn die Musterdaten eines der Texturpixel einer Fliese eines Textur-Spezialfalls zur Berechnung der Farbwerte von mehr als einem Pixel des Bilderzeugungsschirms verwendet werden, zeigt dies, daß die Musterdaten der entsprechenden Fliese für den Textur-Spezialfall mit einer nächsthöheren Auflösung geladen werden müssen, um das Bild mit einer höheren Auflösung zu erzeugen. Dies führt dazu, daß der Eintrag der Fliese in der Fliesen- Ladeliste 136 auf der Texturseite 132 des Textur- Datenspeichers 130 in einen Zustand verändert wird, der anzeigt, daß die Musterdaten der Fliese geladen werden müssen. Das Verfahren, wobei die zum Erzeugen von jedem Teil des Bildes mit optimaler Auflösung erforderlichen Musterdaten schrittweise geladen werden, wird nachstehend unter Bezugnahme auf die Fig. 7A und 7B beschrieben.
  • Fig. 4 zeigt die Beziehung zwischen den Pixeln des Entwurfsbildschirms RS, dessen Farbwerte in dem Bildwiederholspeicher 127 gespeichert sind, zwei Textur- Spezialfälle Tlm und Tlm+1 und die Bild-Zugriffsdatei AM(n&sub1;) der Fliese T(n&sub1;) des Textur-Spezialfalls Tlm. Wie vorstehend unter Bezugnahme auf Fig. 2 beschrieben, ist jeder Textur-Spezialfall in eine Anzahl von Fliesen eingeteilt. Die Musterdaten, die jede der Fliesen darstellen, werden als Einheit geladen. Wenn die Musterdaten einer Fliese geladen werden, werden sämtliche Einträge in der Bild-Zugriffsdatei der Fliese auf denselben Status gesetzt, in diesem Beispiel eine 0.
  • Bei diesem Beispiel prüft die Erzeugungsmaschine 120 den Status des Eintrags AMBx,y in der Bild-Zugriffsdatei AM(n&sub1;) für das Texturpixel ρ der Fliese T(n&sub1;), wenn sie bestimmt, daß die Musterdaten des Texturpixels ρ, die für den Textur-Spezialfall Tlm in der Fliese (Tn&sub1;) liegen, zur Berechnung der Farbwerte des Pixels ηx, y des Bilderzeugungsschirms RS erforderlich sind. Der Status des Eintrags gibt an, ob die Musterdaten des Pixels ρ der Fliese T(n&sub1;) bisher zur Berechnung der Farbwerte eines anderen Pixels des Bilderzeugungsschirms verwendet worden sind. Nach dem Prüfen des Status des Eintrags setzt die Erzeugungsmaschine den Status des Eintrags auf 1, was anzeigt, daß die Musterdaten des Texturpixels ρ zur Berechnung der Farbwerte eines Pixels des Bilderzeugungsschirms verwendet worden sind. Wenn in dem oben erwähnten Test der Zustand des Bild- Zugriffsdatei-Eintrags für das Texturpixel ρ anzeigt, daß die Musterdaten des Texturpixels ρ der Fliese T(n&sub1;) bisher zur Berechnung der Farbwerte eines weiteren Pixels des Bilderzeugungsschirms verwendet worden sind, in diesem Beispiel des nahegelegenen Pixels ηx+dz,y+dy, zeigt dies an, daß der Teil des Bildes in der Nähe der Bilderzeugungsschirm-Pixel ηx,y und ηx+dx,y+dy unter Anwendung der Musterdaten für einen höher aufgelösten Textur-Spezialfall, d. h. Fall Tlm+1, mit einer Auflösung erzeugt werden kann, die der optimalen Auflösung näher liegt. Demgemäß stellt die Erzeugungsmaschine 120 den Fliesen-Ladelisteneintrag für die Fliese T(n&sub2;) auf den nächst höheren Textur-Spezialfall Tlm+1 ein, ein Status, der anzeigt, daß die Musterdaten der Fliese geladen werden müssen.
  • Nachdem anschließend die Musterdaten der Fliese T(n&sub2;) des nächst höher aufgelösten Textur-Spezialfalls Tlm+1 geladen und die Musterdaten dieser Fliese zur Berechnung der Farbwerte der Bilderzeugungsschirm-Pixel verwendet worden sind, kann die Bild-Zugriffsdatei für diese Fliese anzeigen, daß die Farbwerte der Bilderzeugungsschirm-Pixel ηx,y und ηx+dx,y+dy unter Anwendung der Musterdaten verschiedener Texturpixel der Textur berechnet werden können. Dies führt in diesem Teil des Bildes zu einer Erzeugung unter optimaler Auflösung. Wenn allerdings die Bild-Zugriffsdatei der Fliese T(n&sub2;) anzeigt, daß die Musterdaten des gleichen Texturpixels des höher aufgelösten Textur-Spezialfalls Tlm+1 immer noch zur Berechnung der Farbwerte der Abbildungsschirmpixel ηx,y und ηx+dx,y+dy verwendet werden, müssen die Musterdaten mindestens eines noch höher aufgelösten Textur-Spezialfall, z. B. Tlm+2, Tlm+3, ..., zur Berechnung der Farbwerte dieser Bilderzeugungsschirm-Pixel mit optimaler Auflösung geladen werden.
  • Wenn die Musterdaten der Fliese T(n&sub2;) des nächst höher aufgelösten Textur-Spezialfalls Tlm+1 bereits im Muster- Datenspeicher 134 existieren, wie durch den Status des Eintrags in der Fliesen-Ladeliste 136 für diese Fliese angegeben, können diese Musterdaten zur Berechnung der Farbwerte der Bilderzeugungsschirm-Pixel ηx,y und ηx+dx,y+dy verwendet werden. Wenn die Fliesen-Ladeliste anzeigt, daß die Musterdaten der Fliese T(n&sub2;) des nächst höheren Textur-Spezialfalls Tlm+1 nicht im Muster-Datenspeicher existieren, müssen die Musterdaten für die Fliese aus dem Textur-Datenspeicher 114 im Server 110 geladen werden.
  • Ein Beispiel für die Fliesen-Ladeliste TLL ist in Fig. 5 gezeigt. Wie vorstehend angegeben, umfaßt die Fliesen-Ladeliste einen Eintrag für jede der Fliesen, in die die verschiedenen Textur-Spezialfall eingeteilt sind. Der Eintrag zeigt den Status der Musterdaten der Fliese an, d. h. ob die Musterdaten der Fliese zur Erzeugung des Bildes erforderlich sind, und ob die Musterdaten der Fliese geladen worden sind. Wenn die Bild-Zugriffsdatei anzeigt, daß die Musterdaten einer Fliese des nächst höher aufgelösten Textur-Spezialfalls zur Erzeugung des Bildes erforderlich sind, setzt die Erzeugungsmaschine 120 den Eintrag in der Fliesen- Ladeliste für die Fliese (Fliese T(n&sub2;) in diesem in Fig. 4 gezeigten Beispiel) entsprechend den Bilderzeugungsschirm-Pixeln ηx,y und ηx+dx,y+dy des Textur- Spezialfall Tlm+1 auf einen Status, der anzeigt, daß die Musterdaten der Fliese das nächste Mal geladen werden sollten, wenn ein Ladevorgang durchgeführt wird. Die Musterdaten der Fliese T(n&sub2;), die dem Fliesen- Ladelisteneintrag entsprechen, werden aus dem Textur- Datenspeicher 114 des Servers 110, der vorstehend beschrieben ist, geladen.
  • In dem in Fig. 5 gezeigten Beispiel ist jeder Eintrag in der Fliesen-Ladeliste TLL so strukturiert, daß der Status der Musterdaten der entsprechenden Fliese durch einen 2-Bit-Code angezeigt wird. Beispielsweise können sämtliche Einträge in der Fliesen-Ladeliste anfangs auf 00 gesetzt werden, was anzeigt, daß die Musterdaten der entsprechenden Fliese zur Erzeugung des Bildes nicht erforderlich sind und nicht geladen worden sind. Wenn die Bild-Zugriffsdatei einer Fliese anzeigt, daß die Musterdaten der Fliese zur Erzeugung des Bildes erforderlich sind, kann der Eintrag der Fliese in der Fliesen-Ladeliste auf 10 gesetzt werden, was anzeigt, daß die Musterdaten der Fliese erforderlich sind, jedoch noch nicht geladen worden sind. Wenn ein Musterdaten- Ladevorgang durchgeführt wird, werden die Musterdaten der Fliesen, deren Fliesen-Ladelisteneinträge auf 10 gesetzt sind, geladen. Der Musterdaten-Ladevorgang stellt die Fliesen-Ladelisteneinträge, deren Musterdaten geladen worden sind, auf 11 ein, was anzeigt, daß die Musterdaten der Fliese geladen worden sind und nun an der Stelle vorhanden sind, die der Fliese in der pyramidalen Datenstruktur 134 auf der Texturseite 132 des Textur-Datenspeichers 130 entspricht. Die Fliesen-Ladelisteneinträge sind vorzugsweise in der Reihenfolge der Fliesennummern angeordnet, beginnend mit denjenigen der am niedrigsten aufgelösten Textur-Spezialfälle Tl&sub1;, Tl&sub2;, .... In dem in Fig. 5 gezeigten Beispiel werden die Einträge der Einzel-Fliese, die den Textur-Spezialfall Tl&sub1; darstellt, und die Einträge für die vier Fliesen, die die Textur-Spezialfälle Tl&sub2; darstellen, auf 11 eingestellt (geladen). Von den Einträgen der sechzehn Fliesen, die die Textur-Spezialfäll Tl&sub3; darstellen, wird der Eintrag für die erste Fliese auf 10 eingestellt (erforderlich, jedoch nicht geladen), und die Einträge der restlichen Fliesen bleiben auf 00 eingestellt (nicht geladen, nicht erforderlich).
  • Das Verfahren des Ladens der Musterdaten von Server 110 wird iterativ durchgeführt, so daß die Musterdaten der Fliesen für die Textur-Spezialfälle Tlm+2 mit einer Auflösung von einer Stufe höher als für den Fall Tlm+1 auf die gleiche Weise wie vorstehend beschrieben verarbeitet werden. Dies ermöglicht die Anzeige des Bildes mit einer progressiv höheren Auflösung.
  • Der Betrieb einer bevorzugten Ausführungsform für das dreidimensionale erfindungsgemäße Graphik-Erzeugungsgerät wird nun unter Bezugnahme auf die Fig. 1 bis 12 beschrieben.
  • Die Erzeugungsmaschine 120 arbeitet als Reaktion auf das Erzeugungsprogramm 122 unter Durchführung der nachstehend beschriebenen Prozesse unter Erzeugung der Farbwerte, die das Bild definieren. Die Erzeugungsmaschine erzeugt die Farbwerte aus den Polygon-Daten und den ausgewählten Texturdaten, die kollektiv die 3D- Graphikdaten ausmachen.
  • Fig. 6A zeigt die Fliesennummern t der Fliesen für die Spezialfälle Tl&sub1; bis Tl&sub3; der Textur 200, die in Fig. 2 gezeigt ist. Für jeden in Fig. 6A gezeigten Fall zeigt Tabelle 1 die Schichttiefe D, die Gesamtzahl der Fliesen NFliese, die den Spezialfall darstellen, das Fliesen- Teilungsmaß Tp und die Fliesenbasis Tb. Das Fliesen- Teilungsmaß ist die Anzahl von Fliesen, die für den Spezialfall in horizontaler Richtung aneinandergereiht sind. Die Fliesenbasis ist die Fliesennummer der Fliese mit der niedrigsten Nummer für den Spezialfall. Die Fliese mit der niedrigsten Nummer entspricht in der Regel der Fliesennummer der obersten linken Fliese des Falls. Tabelle 1
  • In dem in Fig. 6A gezeigten Beispiel sind die Fliesen, die die Textur-Spezialfälle Tl&sub1; bis Tl&sub3; darstellen, quadratisch und besitzen in vertikaler und horizontaler Richtung eine gleiche Anzahl von Texturpixeln. Die Fliesen können allerdings statt quadratisch rechteckig sein. Fig. 6B zeigt ein Beispiel, wobei die Spezialfälle aus Fliesen bestehen, deren Anzahl von Texturpixeln in vertikaler Richtung halb so groß ist wie die Anzahl der Texturpixel in horizontaler Richtung. Für jeden in Fig. 6B gezeigten Fall zeigt Tabelle 2 die Schichttiefe D, die Gesamtanzahl von Fliesen NFlieser die den Spezialfall darstellen, das Fliesen-Teilungsmaß Tp und die Fliesenbasis Tb. Tabelle 2
  • Bei dieser Ausführungsform werden die Musterdaten P eins in der Fliese T(t) eines Textur-Spezialfalls liegenden Texturpixels durch Festlegung der Fliesennummer (t) und der Pixelkoordinaten (X, Y) in der Fliese festgelegt. Das Texturpixel in Position X in horizontaler Richtung und Position Y in vertikaler Richtung in der Fliese T(t) ist durch die Fliesennummer (t) und die Fliesenkoordinaten (X, Y), d. h. (t: X, Y) festgelegt, und die Musterdaten des Texturpixels sind durch P(t: X, Y) dargestellt.
  • Ein Überblick über die von dem Erzeugungsgerät 100 durchgeführte Verarbeitung, die in Fig. 1 gezeigt wird, wird als nächstes unter Bezugnahme auf die Fig. 1, 7A und 7B beschrieben. Fig. 7A zeigt ein Beispiel für die durch die Erzeugungsmaschine 120 als Reaktion auf das Erzeugungsprogramm 122 durchgeführte Hauptroutine.
  • In Schritt S10 wird ein erster Ladevorgang durchgeführt. Hierbei werden die Polygon-Daten, die die Oberflächen der Objekte im 3D-Raum definieren und für jede Textur Daten, die die Höhe und Breite der Textur festlegen, und die Musterdaten für den am niedrigsten aufgelösten Textur-Spezialfall Tl&sub1; in den Client-Computer 102 aus dem 3D-Graphik-Datenspeicher 116 geladen, der im Server 110 liegt. Insbesondere werden die Musterdaten im obersten Niveau der pyramidalen Datenstruktur in den Muster-Datenspeicher 134 auf der Seite 132 des Textur-Datenspeichers 130, entsprechend der Textur, geladen. Bei diesem ersten Ladevorgang machen die Breiten- und Höhenwerte einer jeden Textur und die Musterdaten für den am niedrigsten aufgelösten Textur-Spezialfall, einen kleinen Bruchteil der Texturdaten aus, die die Textur definieren. Ferner ist die Anzahl von Polygon- Daten relativ gering. Demgemäß wird dieser Schritt in relativ kurzer Zeit durchgeführt.
  • In Schritt S11 führt die Erzeugungsmaschine 120 für jede der Texturen einen Datenstruktur-Initialisierungsvorgang durch. Der Vorgang wird als Reaktion auf die Breiten- und Höhenwerte der Textur durchgeführt. Bei diesem Initialisierungsvorgang werden die Breiten- und Höhenwerte zur Berechnung der Anzahl von Textur-Spezialfällen (Nres) eingesetzt. Ebenfalls berechnet oder aus einer Nachschlagetabelle abgelesen werden das Fliesen-Teilungsmaß Tp, d. h. die Anzahl von Fliesen in den Reihen für jeden Textur-Spezialfall, und die Fliesenbasis Tb, d. h. die Fliese mit der niedrigsten Nummer für jeden Spezialfall.
  • Der Initialisierungsvorgang verwendet auch die Ergebnisse, die durch die oben beschriebenen Berechnungen erzeugt wurden, und die Werte für die Texturhöhe und Texturbreite, um auf der Seite 132 des Textur-Datenspeichers 130, entsprechend jeder Textur, die pyramidale Datenstruktur des Muster-Datenspeichers 134, die Fliesen-Ladeliste 136, das Fliesen-Basisfeld 138, das Fliesenhöhenfeld 140 und das Bild-Zugriffsdatei-Feld 142 aufzustellen. Die in Schritt S11 durchgeführte Verarbeitung wird nachstehend unter Bezugnahme auf Fig. 9 ausführlicher beschrieben.
  • In Schritt S12 verwendet die Erzeugungsmaschine 120 allein die Polygon-Daten zur Durchführung der herkömmlichen geometrischen Berechnungen, die die Projektionen der Polygone auf den Bildschirm berechnen.
  • In Schritt S13 führt die Erzeugungsmaschine 120 einen ersten Vektor-Rastergraphik-Wandlungsvorgang durch. Hierbei werden die Projektionen der Polygone auf den Bildschirm in Objektpixel, entsprechend den Pixeln des Bildschirms, umgewandelt, es werden Vorgänge zur Entfernung verborgener Oberflächen durchgeführt, und für sämtliche Pixel des Bildschirms werden Intensitätskoeffizienten berechnet. Zusätzlich werden Textur- Kennungen und Texturkoordinaten für diejenigen Pixel des Bildschirms berechnet, die den Objektpixeln entsprechen, die zu Polygonen gehören, deren Aussehen durch die Texturdaten definiert wird. Schließlich werden für die restlichen Bildschirm-Pixel Farbwerte bestimmt. Diese Pixel des Bildschirms entsprechen Objektpixeln, die Polygonen angehören, deren Aussehen durch direkte Farbdaten definiert ist. Zur Vereinfachung der folgenden Beschreibung wird ein Objektpixel, das einem Polygon angehört, dessen Aussehen durch Texturdaten definiert ist, Texturdaten-Pixel genannt, und ein Objektpixel, das einem Polygon angehört, dessen Aussehen durch direkte Farbwerte definiert ist, wird direktes Farbdaten-Pixel genannt.
  • Die zur Umwandlung der Polygone in Objektpixel durchgeführte Verarbeitung ist gebräuchlich und wird hier nicht beschrieben. Wo die Projektionen der Polygone auf dem Bildschirm überlappen, entspricht jedem Bildschirmpixel mehr als ein Objektpixel.
  • Der Vorgang der Entfernung verborgener Oberflächen identifiziert die Oberflächen der Objekte oder die Teile solcher Oberflächen, die vom Betrachtungspunkt aus gesehen werden können. Dabei initialisiert die Erzeugungsmaschine zuerst den in jeder Zelle des Tiefenspeichers 125 gespeicherten Tiefenwert entsprechend einem Pixel des Bildschirms auf einen maximalen Wert.
  • Anschließend führt die Erzeugungsmaschine für jedes Objektpixel eine Tiefenberechnung durch. Die Tiefenberechnung berechnet den Abstand zwischen Objektpixel (aktuelles Objektpixel) und Betrachtungspunkt. Die Erzeugungsmaschine vergleicht anschließend den aus der Abstandsberechnung berechneten Abstandswert mit dem zuvor in der Zelle des Tiefenspeichers 125 gespeicherten Tiefenwert, der der Lage des Objektpixels auf dem Bildschirm entspricht. Wenn der Abstandswert des aktuellen Objektpixels größer ist als der Tiefenwert, der in dem Tiefenspeicher gespeichert ist, zeigt dies, daß das aktuelle Objektpixel hinter dem Objektpixel liegt (und darum von ihm verdeckt wird), zu dem der in dem Tiefenspeicher gespeicherte Tiefenwert gehört (das vorherige Objektpixel). Da das aktuelle Objektpixel nicht vom Betrachtungspunkt aus gesehen werden kann, ist es für die Bilderzeugung irrelevant, und sein Abstandswert wird verworfen. Wenn der Abstandswert des aktuellen Objektpixels andererseits kleiner ist als der in dem Tiefenspeicher gespeicherte Tiefenwert, zeigt dies, daß das aktuelle Objektpixel vor dem vorherigen Objektpixel liegt (und es darum verdeckt). In diesem Falle wird der Abstandswert für das aktuelle Objektpixel als Tiefenwert übernommen und wird im Tiefenspeicher gespeichert und ersetzt den Tiefenwert für das vorherige Objektpixel.
  • Wenn die Erzeugungsmaschine 120 den Abstandswert für das aktuelle Objektpixel als Tiefen-Ersatzwert übernimmt und den Abstandswert in dem Tiefenspeicher 125 speichert, bestimmt sie für das aktuelle Objektpixel zusätzlich Intensitätskoeffizienten. Wenn ferner das aktuelle Objektpixel ein Texturdatenpixel ist, bestimmt die Erzeugungsmaschine eine Textur-Kennung und berechnet die Texturkoordinaten für das aktuelle Objektpixel. Intensitätskoeffizienten, Texturkennung und Texturkoordinaten werden nachstehend ausführlicher beschrieben. Die Erzeugungsmaschine speichert anschließend die Intensitätskoeffizienten, die Texturkennung und die Texturkoordinaten für das aktuelle Objektpixel in einer Zelle des Referenzspeichers 126, entsprechend der Stelle in der Zelle des Tiefenspeichers, in der der Tiefenwert des aktuellen Objektpixels gespeichert ist. Die Erzeugungsmaschine erzeugt auch ein Pixel-Typ-Bit und speichert das Pixel-Typ-Bit in der Zelle. Der Status des Pixel-Typ-Bit zeigt an, daß die in der Zelle gespeicherten Daten einem Texturdatenpixel entsprechen. Die Struktur der Zellen des Referenzspeichers werden nachstehend unter Bezugnahme auf Fig. 8 beschrieben. Wenn der Tiefenwert des aktuellen Objektpixels den Tiefenwert eines vorherigen Objektpixels in dem Tiefenspeicher ersetzt, ersetzen die Intensitätskoeffizienten der Texturkennung die Texturkoordinaten und das Pixel- Typ-Bit des aktuellen Objektpixels, die Intensitätskoeffizienten oder Farbwerte, die Texturkennung, die Texturkoordinaten und das Pixel-Typ-Bit des vorherigen Objektpixels in der entsprechenden Zelle des Referenzspeichers.
  • Wenn schließlich das aktuelle Objektpixel ein direktes Farbdatenpixel ist, multipliziert die Erzeugungsmaschine 120 die Intensitätskoeffizienten für das aktuelle Objektpixel mit den Polygon-Farbdaten für das Polygon, zu dem das aktuelle Objektpixel gehört, und speichert die resultierenden Farbwerte in der Zelle des Referenzspeichers 126, entsprechend der Stelle der Tiefenspeicherzelle, in der der Tiefenwert des aktuellen Objektpixels gespeichert ist. In diesem Falle erzeugt die Erzeugungsmaschine das Pixel-Typ-Bit in dem Status, der anzeigt, daß die gespeicherten Daten in der Zelle mit einem direkten Farbdatenpixel zusammenhängen und speichert das Pixel-Typ-Bit in der Zelle. Die Farbwerte und das Pixel-Typ-Bit ersetzen sämtliche Farbwerte oder Intensitätskoeffizienten und das Pixel-Typ-Bit, die bisher in der Zelle des Referenzspeichers gespeichert wurden. Die Farbwerte für die Bildschirmpixel, die den Texturdatenpixeln entsprechen, können nicht in Schritt S13 berechnet werden, da die meisten der Textur- Musterdaten bei Durchführung des Schritts S13 noch nicht geladen wurden.
  • Statt der Berechnung der Intensitätskoeffizienten etc., nur wenn das aktuelle Objektpixel sichtbar ist, kann die Erzeugungsmaschine 120 uneingeschränkt die Intensitätskoeffizienten berechnen, eine Texturkennung bestimmen, Texturkoordinaten oder Farbwerte für jedes Objektpixel berechnen. In diesem Fall speichert die Erzeugungsmaschine die Intensitätskoeffizienten, Texturkennung und die Texturkoordinaten oder Farbwerte für das aktuelle Objektpixel in der aktuellen Objektpixelzelle des Referenzspeichers 126 nur, wenn es auch den Tiefenwert des aktuellen Objektpixels in dem Tiefenspeicher 125 speichert.
  • Die Intensitätskoeffizienten sind reelle Werte im Bereich von 0 bis 1, die solche Faktoren wie Lage, Farbe und Intensität von Lichtquellen im 3D-Raum berücksichtigen. Normalerweise wird für ein Objektpixel eine Serie von drei Intensitätskoeffizienten berechnet, jeweils einer für die drei Primärfarben Rot, Grün und Blau. Wenn das auf ein Polygon fallende Licht eine geringe Intensität aufweist, erscheint das Polygon relativ dunkel. Wenn ferner die Oberfläche des Polygons einfarbig ist, wie Rot, jedoch die Farbe des einfallenden Lichtes eine andere Farbe aufweist, wie Grün, beeinflusst dies die scheinbare Farbe des Polygons. Die Intensitätskoeffizienten werden in der Regel unter Anwendung bekannter Techniken auf der Basis von Eigenschaftsdaten, die Teil der aus dem Polygondatenspeicher 112 geladenen Polygondaten sind, berechnet. Farbe, Intensität, Lage und Richtung der Lichtquelle, Farbe und Intensität eines beliebigen Umgebungslichtes und Position und Richtung etc. des Betrachtungspunktes werden als Koeffizienten bei der Berechnung der Intensitätskoeffizienten verwendet. Wenn das aktuelle Objektpixel ein direktes Farbdatenpixel ist, werden die Intensitätskoeffizienten des aktuellen Objektpixels mit den Polygon-Farbdaten des Polygons unter Erhalt einer Reihe von Farbwerten multipliziert, die in einer Zelle des Referenzspeichers 126 gespeichert werden. In Schritt S14 werden die direkten Farbwerte entsprechend der Position des aktuellen Objektpixels in dem Bildschirm in eine Zelle des Bildwiederholungsspeichers 127 kopiert. Wenn das aktuelle Objektpixel ein Texturdatenpixel ist, werden die Intensitätskoeffizienten des aktuellen Objektpixels in der Zelle des Referenzspeichers 126 gespeichert. In Schritt 14 werden die Intensitätskoeffizienten unter Erhalt einer Reihe von Farbwerten mit einer Reihe von Texturfarbwerten multipliziert. Die Farbwerte werden entsprechend der Position des Objektpixels in dem Bildschirm in der Zelle des Bildwiederholungsspeichers 127 gespeichert.
  • Der Texturkennung identifiziert die Textur, deren Texturdaten zur Bestimmung der Farbwerte des Objektpixels verwendet werden, und kann die Adresse der Seite des Textur-Datenspeichers sein, in welchem die Texturdaten der Textur gespeichert sind. Die Texturkoordinaten sind die Koordinaten des Texturpixels, dessen Musterdaten zur Bestimmung des Farbwertes des Objektpixels verwendet werden.
  • Fig. 8 zeigt ein Beispiel für die Struktur der beispielhaften Zelle 151 des Referenzspeichers 126. Die Zelle umfasst vier Felder 153, 155, 157 und 159, wovon einige mehrere Datenpunkte speichern. In Feld 153 wird ein Pixel-Typ-Bit gespeichert. Der Status des Pixel- Typ-Bits zeigt an, ob die in der Zelle gespeicherten Daten ein Texturdatenpixel oder ein direktes Farbdatenpixel betreffen. Die in den restlichen Feldern gespeicherten Daten unterscheiden sich in Abhängigkeit davon, ob das Objektpixel, auf das sich die Daten beziehen, ein Texturdatenpixel oder ein direktes Farbdatenpixel ist, d. h. in Abhängigkeit vom Zustand des Pixel-Typ- Bits. Wenn die in der Zelle 151 gespeicherten Daten ein Texturdatenpixel betreffen, wird das in Feld 153 gespeicherte Pixel-Typ-Bit beispielsweise auf seinen Status 1 eingestellt, und die Texturkennung, der die Textur identifiziert, wird in Feld 155 gespeichert, die Texturkoordinaten p, q werden in Feld 157 gespeichert und die roten, grünen und blauen Intensitätskoeffizienten IR, IG bzw. IB werden in Feld 159 gespeichert. Wenn die in der Zelle 151 gespeicherten Daten ein direktes Farbdatenpixel betreffen, wird das in Feld 153 gespeicherte Pixel-Typ-Bit beispielsweise auf seinen Status 0 eingestellt, die Felder 155 und 157 werden reserviert und die roten, grünen bzw. blauen Farbwerte R, G bzw. B werden in Feld 159 gespeichert.
  • Nach Durchführung des anfänglichen Vektor-/Rastergrafik-Wandlungsvorgangs in Schritt S13 geht die Ausführung sodann zu Schritt S14 über, der erste Schritt einer Anzeige-Mund-Ladeschleife, bestehend aus den Schritten S14, S15 und S16, ist. Diese Schleife erzeugt zunächst das Bild und zeigt es mit einer geringen Texturauflösung an und zeigt anschließend das Bild mit progressiv erhöhten Texturauflösungen an, bis sämtliche Teile des Bildes mit optimaler Auflösung erzeugt worden sind. Wie vorstehend angegeben, ist die optimale Auflösung nicht notwendigerweise die gleiche wie die höchste Auflösung der Textur, da eine auf die Oberfläche eines 3D-Objektes, das in dem 3D-Raum an einem Punkt, entfernt von dem Betrachtungspunkt aufgelegte Textur, oder eine Textur, die auf eine Oberfläche eines 3D-Objektes in einem Winkel zu dem Betrachtungspunkt aufgelegt wird, nicht unter Anwendung der Musterdaten für den am höchsten aufgelösten Textur-Spezialfall erzeugt werden muss. Der Betrachter ist nicht in der Lage, den Unterschied zwischen solchen Teilen eines Bildes wahrzunehmen, die unter Anwendung der Musterdaten des am höchsten aufgelösten Textur-Spezialfalls erzeugt wurden, und denjenigen, die unter Anwendung der Musterdaten des am niedrigsten aufgelösten Textur-Spezialfalls erzeugt wurden, wahrzunehmen. Die Anwendung der Musterdaten der am niedrigsten aufgelösten Textur-Spezialfälle zur Erzeugung solcher Teile des Bildes beschleunigt den Erzeugungsprozess, da weniger Musterdaten geladen werden müssen.
  • In Schritt S14 überprüft die Erzeugungsmaschine 120 das in Feld 153 einer jeden Zelle 151 für den Referenzspeicher 126 gespeicherte Pixel-Typ-Bit, um zu bestimmen, ob die in der Zelle gespeicherten Daten ein direktes Farbdatenpixel oder ein Texturdatenpixel betreffen. Wenn die in der Zelle gespeicherten Daten ein direktes Farbdatenpixel betreffen, kopiert die Erzeugungsmaschine die in Feld 159 der Zelle gespeicherten Farbwerte in die entsprechende Zelle des Bildwiederholungsspeichers 127. Wenn die in der Zelle gespeicherten Daten einem Texturdatenpixel entsprechen, liest die Erzeugungsmaschine die Texturkennung in das Feld 155 der Zelle ein und liest die Texturkoordinaten (p, q) aus dem Feld 157 der Zelle. Die Erzeugungsmaschine geht dann auf die Seite 132 des Textur-Datenspeichers 130, der durch die Texturkennung identifiziert ist, und liest aus dem Muster-Datenspeicher 134, der auf dieser Seite gespeichert ist, die Texturdaten, die an der Stelle gespeichert sind, die von den Texturraumkoordinaten definiert ist. Bei der ersten Iteration der aus den Schritten S14-S16 bestehenden Schleife sind die gelesenen Musterdaten die Musterdaten des am niedrigsten aufgelösten Textur-Spezialfalls Tl&sub1;. Bei späteren Iterationen der Schleife können die Musterdaten für die höher aufgelösten Textur-Spezialfälle gelesen werden.
  • Die Erzeugungsmaschine 120 multipliziert die aus dem Muster-Datenspeicher 134 gelesenen Daten mit den in Feld 159 der Zelle 151 des Referenzspeichers 126 gespeicherten Intensitätskoeffizienten entsprechend dem Bildschirmpixel, und die resultierenden Farbwerte für das Bildschirmpixel werden in der Zelle des Bildwiederholungsspeichers 127 entsprechend dem Bildschirmpixel gespeichert. Dieses Verfahren wird für jedes Bildschirmpixel entsprechend einem Texturdatenpixel unter Speicherung von Farbwerten in der Zelle des Bildwiederholungsspeichers entsprechend dem Bildschirmpixel wiederholt.
  • Ferner überprüft die Erzeugungsmaschine 120 die Bild- Zugriffsdateien der Kacheln für den aktuellen Textur- Spezialfall unter Identifizierung der Kacheln für den nächst höheren Textur-Spezialfall, deren Musterdaten, zum Erzeugen des Bildes mit einer höheren Auflösung erforderlich sind, und stellt die Fliesen-Ladelisteneinträge der identifizierten Fliesen des nächst höher aufgelösten Spezialfalls auf 10 ein (erforderlich, jedoch nicht geladen). Beispielsweise werden während der ersten Iteration der Schleife die Bild-Zugriffsdateien der Kacheln für den am niedrigsten aufgelösten Spezialfall Tl&sub1; zur Identifizierung der Kacheln des nächst höher aufgelösten Spezialfalls Tl&sub2;, deren Musterdaten, zur Erzeugung des höher aufgelösten Bildes erforderlich sind, überprüft.
  • Schließlich werden die in dem Bildwiederholungsspeicher 127 gespeicherten Farbwerte gelesen, und als Reaktion auf die Farbwerte wird ein Videosignal erzeugt. Das Videosignal wird über den Videoausgangskanal 118 in den Videomonitor 150 eingespeist. Als Reaktion auf das Videosignal zeigt der Videomonitor das zweidimensionale Bild, das die 3D-Objekte in dem 3D-Raum darstellt, an. Das Bild zeigt die Teile des 3D-Objektes, die von dem Betrachtungspunkt aus sichtbar sind. Die in Schritt S14 durchgeführte Bearbeitung wird nachstehend unter Bezugnahme auf Fig. 10 ausführlicher beschrieben.
  • In Schritt S15 führt die Erzeugungsmaschine 120 einen Test durch, um zu bestimmen, ob irgendwelche Musterdaten für den nächst höher aufgelösten Textur-Spezialfall erforderlich sind, um das Bild mit einer höheren Auflösung zu erzeugen. Beispielsweise bestimmt der Test während der ersten Iteration der Schleife, ob irgendwelche Musterdaten für den nächst höher aufgelösten Textur- Spezialfall Tl&sub2; erforderlich sind, um das Bild mit einer höheren Auflösung zu erzeugen. Die in diesem Schritt durchgeführte Verarbeitung wird nachstehend unter Bezugnahme auf Fig. 12 ausführlicher beschrieben. Wenn das Testergebnis NEIN ist, was anzeigt, daß das in Schritt S14 erzeugte Videosignal das Bild mit optimaler Auflösung darstellt, geht die Durchführung zu Schritt S17 über, wo sie aufhört. Wenn das Testergebnis JA ist, geht die Ausführung weiter zu Schritt S16.
  • In Schritt S16 lädt die Erzeugungsmaschine 120 über das Netzwerk 106 aus dem Textur-Datenspeicher 114 in den Server 110 die Musterdaten für die Fliesen, deren Fliesen-Ladeeinträge in Schritt S14 auf 10 eingestellt wurden. Die Erzeugungsmaschine speichert die Musterdaten in dem Client-Computer 102 an den entsprechenden Stellen in der pyramidalen Datenstruktur in dem Muster- Datenspeicher 134 in Seite 132, entsprechend der Textur in dem Textur-Datenspeicher 130. Der Ladeprozeß verwendet vorzugsweise ein Protokoll, das Internet Imaging Protocol (IIP) genannt wird. Dieses Protokoll wird auch zur Übertragung vom FLASHPIXTM formatierten Bilddaten über ein Netzwerk angewandt. Zusätzlich stellt die Erzeugungsmaschine die Fliesen-Ladelisteneinträge für die Fliesen, deren Musterdaten soeben geladen worden sind, auf 11 ein, was anzeigt, daß die Musterdaten für diese Fliesen nun in der pyramidalen Datenstruktur existieren. Auch bei diesem Schritt erzeugt die Erzeugungsmaschine eine Bild-Zugriffsdatei AM(t), die die Fliesennummer für jede Fliese darstellt, deren Musterdaten geladen wurden. Die Bild-Zugriffsdatei wird in dem Bild- Zugriffsfeld 142 erzeugt und umfaßt einen Eintrag für jedes Texturpixel der Fliese. Der Status von jedem Eintrag wird auf 0 initialisiert.
  • Nach Durchführung des Schritts S16 kehrt die Ausführung wieder zu Schritt S14 zurück, und die Erzeugungsmaschine 120 beginnt eine zweite Iteration der Anzeige-und- Ladeschleife, bestehend aus den Schritten S14-S16. Bei dieser zweiten Iteration von Schritt S14 erzeugt die Erzeugungsmaschine das Bild unter Anwendung der Musterdaten für den nächst höher aufgelösten Textur-Spezialfall Tl&sub2;. Die Erzeugungsmaschine kann einige der Texturdaten des am niedrigste aufgelösten Spezialfalls Tl&sub1; zur Erzeugung derjenigen Teile des Bildes, die den höher aufgelösten Spezialfall Tl&sub2; nicht erfordern, unter Bereitstellung der optimalen Auflösung verwenden. Neue Farbwerte werden erzeugt, und das Bild wird als Reaktion auf ein aus den neuen Farbwerten erhaltenes Videosignal erneut auf dem Monitor 150 angezeigt. Mindestens ein Teil des erneut angezeigten Bildes besitzt eine höhere Auflösung.
  • Die Erzeugungsmaschine 120 führt unter Anwendung des am höchsten aufgelösten Textur-Spezialfalls Iterationen der Anzeige-und-Lastschleife durch, bestehend aus den Schritten S14-S16, bis mindestens ein Teil des Bildes auf dem Videomonitor 150 angezeigt ist. An diesem Punkt sind keine weiteren Steigerungen in der Auflösung des Bildes möglich, und der in Schritt S15 durchgeführte Test zeigt an, daß keine zusätzlichen Musterdaten geladen werden müssen. Ist diese Bedingung erfüllt, geht die Ausführung zu Schritt S17 über, wo sie aufhört.
  • Fig. 7B zeigt eine Variation der in Fig. 7A gezeigten Hauptroutine. Die Variation wird durch die Erzeugungsmaschine 120 als Reaktion auf das Erzeugungsprogramm 122 durchgeführt. Diese Variation verleiht dem Anwender die Möglichkeit, Instruktionen einzugeben, die irgendeinen oder alle Betrachtungspunkte, die Positionen von beliebigen Lichtquellen und die Positionen von einem oder mehreren der 3D-Objekte im 3D-Raum ändern. Elemente der Routine, die den Elementen der in Fig. 7A gezeigten Routine entsprechen, sind durch dieselben Bezugsziffern angedeutet und werden hier nicht erneut beschrieben. Allerdings werden die Beschreibungen für solche Elemente in Fig. 7B zur Vereinfachung der Zeichnung abgekürzt. In der in Fig. 7B gezeigten Routine ist zwischen die Schritte S14 und S15 der in Fig. 7A gezeigten Routine der Schritt S18 eingeschoben, und die Routine umfaßt den zusätzlichen Schritt S19. Schritt S18 ermöglicht es dem Anwender, Anweisungen einzugeben, die eine der o. g. Änderungen durchführen, wobei die Erzeugung des aktuellen Bildes gestoppt wird. Das Erzeugungsgerät beginnt dann als Reaktion auf die Anweisungen des Anwenders fast unmittelbar mit der Erzeugung eines neuen Bildes. Folglich braucht der Anwender nicht zu warten, bis das Erzeugungsgerät die Erzeugung des aktuellen Bildes abgeschlossen hat, bevor es mit der Erzeugung des neuen Bildes beginnt.
  • In Schritt S18 wird ein Test durchgeführt, um zu bestimmen, ob der Anwender Anweisungen eingegeben hat, die irgendwelche der oben erwähnten Änderungen durchführen. Ist das Ergebnis NEIN, was anzeigt, daß der Anwender noch keine derartigen Anweisungen eingegeben hat, geht die Ausführung über zu Schritt S15, und der Rest der Anzeige- und Ladeschleife, bestehend aus den Schritten S14-S16, läuft wie vorstehend beschrieben ab. Wenn das Testergebnis JA ist, was anzeigt, daß der Anwender solche Anweisungen bereits eingegeben hat, geht die Ausführung zu Schritt S19 über.
  • Fig. 9 zeigt Details der in Schritt S11 der in Fig. 7 und 8 gezeigten Hauptroutinen durchgeführten Datenstruktur-Initialisierungssubroutine. Die Subroutine wird für jede der Texturen durchgeführt, für die in Schritt S10 Textur-Anfangsdaten geladen wurden.
  • Die Verarbeitung startet mit Schritt S110.
  • In Schritt S111 greift die Erzeugungsmaschine 120 auf die Seite 132 des Textur-Datenspeichers 130 zu, entsprechend der Textur, und liest die Texturbreite W und die Texturhöhe H, die Fliesenbreite TW und die Fliesenhöhe TH, die Teil der darin gespeicherten Texturdaten ausmachen.
  • In Schritt S112 werden die strukturellen Merkmale der pyramidalen Datenstruktur des Muster-Datenspeichers 134, das Fliesen-Teilungsmaß 138 und das Fliesenbasisfeld 140 bestimmt, und die Werte für das Fliesen- Teilungsmaß und die Fliesenbasis werden im Fliesen- Teilungsmaßfeld bzw. Fliesenbasisfeld gespeichert. Die Texturbreite W, die Texturhöhe H und die Fliesenbreite TW und die Fliesenhöhe TH werden zur Berechnung der Anzahl von Schichten Nres in der pyramidalen Struktur, der Gesamtanzahl von Fliesen NFliese, die in der pyramidalen Struktur gespeichert werden, des Fliesen-Teilungsmaßes Tp für jede Schicht und die Basisfliese Tb für jede Schicht verwendet. Das Fliesen-Teilungsmaß ist die Anzahl von Fliesen in horizontaler Richtung der Schicht, die Fliesenbasis ist die Fliesennummer der Fliese mit der niedrigsten Nummer, z. B. die oberste linke Fliese der Schicht.
  • Ein Speicherfeld mit den oben bestimmten Strukturmerkmalen der pyramidalen Datenstruktur wird in der Texturseite 132 des Textur-Datenspeichers 130 erzeugt, um als Muster-Datenspeicher 134 zu dienen. Zwei Speicherfelder mit Elementen, die in der Anzahl der Anzahl der Schichten entsprechen, werden erzeugt, um als Fliesen- Teilungsmaßfeld 138 und als Fliesenbasisfeld 140 zu dienen. Die Fliesenteilungswerte und die Fliesenbasiswerte werden in dem Fliesen-Teilungsmaßfeld bzw. dem Fliesen-Basisfeld gespeichert. Die Musterdaten für den am niedrigsten aufgelösten Textur-Spezialfall Tl&sub1;, d. h. die Musterdaten der Fliese T(0), die während des anfänglichen, in Schritt S10 der Hauptroutine durchgeführten Ladevorgangs empfangen werden, werden in der obersten Schicht der pyramidalen Datenstruktur des Muster-Datenspeichers 134 auf der Texturseite 132 des Textur-Datenspeichers 130 gespeichert.
  • In Schritt S113 wird auf der Texturseite 132 des Textur-Datenspeichers 130 ein Feld mit Elementen entsprechend der Anzahl NFliese erzeugt, um als Fliesen-Ladeliste 136 zu dienen. Sämtliche Einträge in der Fliesen- Ladeliste werden auf 00 (nicht benötigt, nicht geladen) initialisiert, mit der Ausnahme des Eintrags für die Fliese Tl&sub1;, deren Eintrag auf 11 (benötigt und geladen) initialisiert wird.
  • In Schritt S114 wird das Bild-Zugriffsdateifeld AM(0) für die Fliese T(0) für den am niedrigsten aufgelösten Textur-Spezialfall Tl&sub1; als Element des Bild-Zugriffsfeldes 142 auf der Texturseite 132 des Textur-Datenspeichers 130 erzeugt. Das Bild-Zugrifffeld weist für jedes Texturpixel der Kachel einen Eintrag auf. Sämtliche Einträge sind auf 0 initialisiert. Zusätzliche Elemente des Bild-Zugriffsfeldes werden später im Schritt S14 der Hauptroutine erzeugt.
  • Die Ausführung geht dann zu Schritt S115 über, von wo aus sie zur Hauptroutine zurückkehrt.
  • Fig. 10 zeigt Details der in Schritt S14 der Hauptroutine durchgeführten Subroutine. Die Subroutine wird für jedes Pixel des Bildschirms durchgeführt. Das Pixel des Bildschirms, das durch die aktuelle Iteration der Subroutine bearbeitet wird, wird aktuelles Pixel genannt. Die Subroutine wird unter Bezugnahme auf die Fig. 1, 8 und 10 beschrieben. Bei dieser Subroutine werden das aktuelle Pixel des Bildschirms und die Zellen des Referenzspeichers 126 und des Bildwiederholungsspeichers 127 entsprechend dem aktuellen Pixel durch den Wert eines Pixelzählers angegeben.
  • Die Ausführung beginnt bei Schritt S1400.
  • In Schritt S1401 greift die Erzeugungsmaschine auf die Zelle 151 des Referenzspeichers 126, entsprechend dem aktuellen Pixel des Bildschirms, zu und liest das Pixel-Typ-Bit, das im Feld 153 der Zelle gespeichert ist.
  • In Schritt 1402 prüft die Erzeugungsmaschine das Pixel- Typ-Bit, um zu bestimmen, ob das aktuelle Bildschirmpixel einem direkten Farbdatenpixel entspricht. Wenn das Testergebnis JA ist, geht die Ausführung zu Schritt S1411 weiter, was als nächstes beschrieben wird. Wenn das Testergebnis NEIN ist, was anzeigt, daß die Farbwerte des aktuellen Bildschirmpixels unter Anwendung der Musterdaten einer Textur bestimmt worden sind, schreitet die Ausführung zu Schritt S1403 weiter, was nachstehend beschrieben wird.
  • In Schritt S1411, der durchgeführt wird, wenn das Pixel-Typ-Bit anzeigt, daß das aktuelle Bildschirmpixel einem direkten Farbdatenpixel entspricht, kopiert die Erzeugungsmaschine die Farbwerte für das aktuelle, in Feld 159 des Referenzspeichers 126 gespeicherte Bildschirmpixel in die entsprechende Zelle des Bildwiederholungsspeichers 127. Die Ausführung geht dann zu Schritt S1412 über, was nachstehend beschrieben wird.
  • Es wird nun die durchgeführte Verarbeitung beschrieben, wenn das Pixel-Typ-Bit anzeigt, daß das aktuelle Bildschirmpixel einem Texturdatenpixel entspricht. In Schritt S1403 wird die Texturkennung aus dem Feld 155 der Zelle gelesen, und die Texturkoordinaten (p, q) werden aus dem Feld 157 der Zelle gelesen.
  • In Schritt S1404 führt die Erzeugungsmaschine, die nachstehend zu beschreibende, unter Bezugnahme auf Fig. 11 Subroutine zur Bestimmung der Fliesennummer t und der Fliesenkoordinaten (X, Y) aus den Texturkoordinaten (p, q) durch. Die Fliesenkoordinaten kennzeichnen das Texturpixel der Fliese, deren Muterdaten zur Bestimmung der Farbwerte des aktuellen Bildschirmpixels verwendet werden.
  • In Schritt S1405 liest die Erzeugungsmaschine die Musterdaten P(t: X, Y) aus dem Muster-Datenspeicher 134 auf der Seite des Textur-Datenspeichers, der von der in Schritt 1403 gelesenen Texturkennung angegeben wird. Die gelesenen Musterdaten sind diejenigen, die an der Stelle in der pyramidalen Datenstruktur entsprechend den Fliesenkoordinaten (X, Y) in der Fliese mit der Fliesennummer t gespeichert sind.
  • In Schritt S1406 führt die Erzeugungsmaschine einen Test durch, um zu bestimmen, ob der Eintrag, der den Fliesenkoordinaten (X, Y) in der Bild-Zugriffsdatei AM(t) entspricht, für die Fliesennummer t auf 1 eingestellt ist. Ist das Testergebnis NEIN, läuft die Ausführung zu Schritt S1409 weiter, was nachstehend beschrieben wird. Ist das Testergebnis JA, läuft die Ausführung zu Schritt S1407 weiter. Ein Ergebnis von JA in dem in diesem Schritt durchgeführten Test zeigt an, daß die Musterdaten P(t: X, Y) zur Berechnung der Farbwerte eines weiteren Pixels des Bildschirms verwendet wurden. Dies wiederum zeigt an, daß die Auflösung darum suboptimal ist und daß das Bild mit einer der optimalen Auflösung näherliegenden Auflösung, unter Anwendung der Musterdaten einer Fliese T(t') des nächst höher aufgelösten Textur-Spezialfalls, wenn ein solcher höher aufgelöster Fall existiert, erzeugt wird.
  • In Schritt 1407 führt die Erzeugungsmaschine einen Test durch, um zu bestimmen, ob ein höher aufgelöster Textur-Spezialfall existiert. Ist das Testergebnis NEIN, geht die Ausführung zu Schritt S1409 über, was nachstehend beschrieben wird. Wenn das Testergebnis JA ist, was anzeigt, daß ein höher aufgelöster Textur- Spezialfall existiert, müssen die Musterdaten der Fliese T(t') des höher aufgelösten Falls, entsprechend der Position mit den Koordinaten p, q der Fliese T(t), geladen werden. Die Ausführung läuft weiter zu Schritt S1408, wo der Eintrag für die Fliese T(t') in der Fliesen-Ladeliste 136 auf 10 (erforderlich, jedoch nicht geladen) eingestellt wird, um anzuzeigen, daß die Musterdaten dieser Fliese im nächsten Zeitschritt 516 der durchgeführten Hauptroutine geladen werden müssen. Der Fliesen-Ladelisteneintrag für die Fliese T(t') kann bereits auf 10 eingestellt worden sein, als Ergebnis, daß die Musterdaten dieser Fliese von einem benachbarten Bildschirmpixel benötigt werden, das in einer vorherigen Iteration der in Fig. 14 gezeigten Subroutine bearbeitet worden ist. Die Ausführung läuft dann zu Schritt S1409 weiter.
  • In Schritt S1409 stellt die Erzeugungsmaschine 120 den Eintrag, entsprechend den Fliesenkoordinaten (X, Y) in der Bild-Zugriffsdatei AM(t) für die Fliese mit der Fliesennummer t auf 1 ein. Dies kann den Status dieses Eintrags ändern oder nicht, in Abhängigkeit davon, ob der Eintrag während einer vorherigen Iteration der in Fig. 14 gezeigten Subroutine auf 1 eingestellt worden ist oder nicht. Die Ausführung läuft dann zu Schritt S1410 weiter.
  • In Schritt S1410 liest die Erzeugungsmaschine die Intensitätskoeffizienten IR, IG, IB aus dem Feld 159 der Zelle 151 des Referenzspeichers 126, entsprechend dem aktuellen Bildschirmpixel, und multipliziert die Intensitätskoeffizienten mit den Musterdaten P(t: X, Y), die aus dem Muster-Datenspeicher 134 in Schritt S1405 gelesen worden sind. Die resultierenden Farbwerte werden in der Zelle des Bildwiederholungsspeichers 127 entsprechend dem aktuellen Bildschirmpixel gespeichert. Die Ausführung läuft dann weiter zu Schritt S1412.
  • In Schritt S1412 führt die Erzeugungsmaschine 120 einen Test durch, um zu bestimmen, ob die Farbwerte für sämtliche Pixel des Bildschirms in den entsprechenden Zellen des Bildwiederholungsspeichers 127 gespeichert worden sind. Ist das Testergebnis NEIN und wurden in dem Bildwiederholungsspeicher für sämtliche Pixel des Bildschirms keine Farbwerte gespeichert, geht die Ausführung zu Schritt S1413 über, von wo aus sie zur Hauptroutine zurückkehrt. Ist das Testergebnis JA, geht die Ausführung zu Schritt S1414 über, wo der Pixelzähler, der die Bildschirmpixel zählt, um 1 inkrementiert wird. Die Ausführung kehrt dann zurück zu Schritt S1401 zurück, so daß die Farbwerte für ein weiteres Bildschirmpixel erzeugt und in der entsprechenden Zelle des Bildwiederholungsspeichers gespeichert werden können.
  • Fig. 11 ist ein Flußdiagramm und zeigt Details Verarbeitung, die in Schritt S1404 der in Fig. 10 gezeigten Subroutine zur Berechnung der Fliesennummer und der Fliesenkoordinaten (X, Y) aus den Texturkoordinaten p, q durchgeführt wurde. Die Verarbeitung beginnt bei Schritt S1450.
  • In Schritt S1451 liest die Erzeugungsmaschine 120 von der Seite 132 des Textur-Datenspeichers 130 entsprechend der Textur den Wert Nres', der die Anzahl von Textur-Spezialfällen angibt. Diese Anzahl entspricht der Anzahl von Schichten in der pyramidalen Datenstruktur 134, in der die Musterdaten der Textur gespeichert werden.
  • In Schritt S1452 wird der Wert TL eines aktuellen Fallindex, der den derzeit durch die Subroutine bearbeiteten Spezialfall angibt, auf Nres eingestellt. Der derzeit bearbeitete Fall wird aktueller Fall genannt.
  • Schritt S1453 ist der erste Schritt einer aus den Schritten S1453-S1456 bestehenden Schleife. Die Schleife vermindert den aktuellen Fallindex unter Anordnung der Fliese, entsprechend den Texturkoordinaten (p, q) für den höchst aufgelösten Textur-Spezialfall, dessen Musterdaten geladen worden sind. In Schritt S1453 subtrahiert die Erzeugungsmaschine den Wert für den aktuellen Fallindex tL von Nres unter Erzeugung des Fallunterschiedsparameters Y. Anschließend wandelt die Erzeugungsmaschine die Texturkoordinaten (p, q), die den am höchsten aufgelösten Textur-Spezialfall betreffen, durch Division der Texturkoordinaten (p, q) durch zwei, gesetzt zur Potenz des Fallunterschiedsparameter, in die Fallkoordinaten (pL, qL) des aktuellen Falls um, d. h.:
  • Y - Nres - tL'
  • PL - P/2Y
  • PL - q/2Y
  • Schließlich berechnet die Erzeugungsmaschine die Koordinaten (tx, ty) der Fliese des aktuellen Falls tL, in dem die Fallkoordinaten (PL, qL) liegen, durch Division von pL durch die Fliesenbreite TW und Heranziehen des ganzzahligen Teils des resultierenden Quotienten, und durch Division von qL durch die Fliesenhöhe TH und Heranziehen des ganzzahligen Teils des resultierenden Quotienten, d. h.:
  • tx - int(pL/TW)
  • ty - int(qL/TH)
  • Wenn beispielsweise TL = Nres', Nres = 5, TW = 64, TH = 64, p = 511 und q = 512, folgt:
  • tx = int(511/94) = 7
  • ty = int(512/64) = 8,
  • dann ist die Fliese, die den Texturkoordinaten (511, 512) des am höchsten aufgelösten Textur-Spezialfalls entspricht, die siebte Fliese in x-Richtung und die achte Fliese in y-Richtung.
  • In Schritt S1454 berechnet die Erzeugungsmaschine 120 die Fliesennummer tn der Fliese für den aktuellen Fall tL, in dem die Fallkoordinaten (pL, qL) liegen. Die Fliesennummer wird unter Anwendung der in Schritt S1454 berechneten Mengen und des Fliesenteilungsmaßes Tp(tL) und der Fliesenbasis Tb(tL) berechnet, die aus den Stellen im Fliesenteilungsfeld und Fliesenbasisfeld, entsprechend der aktuellen Schicht tL, gelesen wurden. Die Erzeugungsmaschine speichert das Fliesenteilungsfeld und das Fliesenbasisfeld an den Stellen 138 und 140 der Texturseite 132 in dem Textur-Datenspeicher 130. Die Erzeugungsmaschine berechnet dann die Fliesennummer tn durch Bestimmung des Produkts aus Fliesenteilungsmaß und y-Koordinate ty der Fliese und durch anschließende Summenbildung von Produkt, Fliesenbasis und x-Koordinate tx der Fliese, d. h.:
  • tn = Tb(tL) + (Tp(tL) · ty) + tx.
  • In Schritt S1455 führt die Erzeugungsmaschine 120 einen Test durch, um zu bestimmen, ob der Fliesen-Ladelisteneintrag für die Fliese mit der Fliesennummer tn auf 11 gesetzt wurde. Die Fliesen-Ladeliste 136 ist auf der Texturseite 132 des Textur-Datenspeichers 130 gespeichert. Der auf 11 gesetzte Fliesen-Ladelisteneintrag zeigt an, daß die Musterdaten für die Fliese mit der Fliesennummer tn in dem Fliesen-Ladespeicher 134 existieren. Ist das Testergebnis NEIN, was anzeigt, daß die Musterdaten für die Fliese mit der Fliesennummer tn nicht in dem Muster-Datenspeicher existieren, geht die Ausführung zu Schritt S1456 über, der als nächstes beschrieben wird. Ansonsten geht die Ausführung zu Schritt S1457 über, der nachstehend beschrieben wird.
  • In Schritt S1456 dekrementiert die Erzeugungsmaschine den Wert tL des aktuellen Fallindex um 1, d. h. tL - tL = 1. Die Ausführung kehrt dann wieder zu Schritt S1453 zurück, und die Schleife, bestehend aus den Schritten S1453-S1456, wird wiederholt, bis der in Schritt S1455 durchgeführte Test als Ergebnis JA ergibt. Der in Schritt S1455 durchgeführte Test ergibt gegebenenfalls immer ein JA-Ergebnis, da die Musterdaten des am niedrigsten aufgelösten Textur-Spezialfalls in Schritt S10 der Hauptroutine geladen wurden.
  • In Schritt S1457, der durchgeführt wird, wenn die Musterdaten der Fliese mit der Fliesennummer tn in der pyramidalen Datenstruktur 134 existieren, setzt die Erzeugungsmaschine 120 die Fliesennummer t auf tn, die Fliesenkoordinate X auf den Rest der Division von pL durch die Fliesenbreite TW und die Fliesenkoordinate Y auf den Rest der Division von qL durch die Fliesenhöhe TH, d. h.:
  • t → tn
  • X → (Rest von (pL/TW)
  • Y → (Rest von (qL/TH).
  • Die Ausführung läuft dann weiter zu Schritt S1458, von wo aus sie zur vorstehend unter Bezugnahme auf Fig. 10 beschriebenen Subroutine zurückkehrt.
  • Fig. 12 ist ein Flußdiagramm und zeigt Details der Unterroutine, die in Schritt S15 der in den Fig. 7A und 7B gezeigten Hauptroutine durchgeführt wird, um zu bestimmen, ob irgendwelche Musterdaten geladen werden müssen. Die Verarbeitung beginnt bei Schritt S150.
  • In Schritt S151 greift die Erzeugungsmaschine 120 auf den Textur-Datenspeicher 130 zu.
  • In Schritt S152 liest die Erzeugungsmaschine die Fliesen-Ladeliste 136, die auf einer Seite 132 des Textur- Datenspeichers 130 gespeichert ist.
  • In Schritt S153 führt die Erzeugungsmaschine einen Test mit der in Schritt S152 geladenen Fliesen-Ladeliste durch, um zu bestimmen, ob einer der Einträge der Fliesen-Ladeliste auf 10 (erforderlich, allerdings nicht geladen) eingestellt worden ist. Ist das Ergebnis JA, was anzeigt, daß Musterdaten von mindestens einer Fliese geladen werden müssen, geht die Ausführung zu Schritt S155 über. Die Ausführung kehrt mit einem Ergebnis von JA zur Hauptroutine von Schritt S155 zurück. Ist das Testergebnis NEIN, geht die Ausführung zu Schritt S154 über.
  • In Schritt S154 führt die Erzeugungsmaschine einen Test durch, um zu bestimmen, ob sie die auf allen der Seiten 132 des Texturspeichers 130 gespeicherten Fliesen-Ladelisten 136 geprüft hat. Ist das Testergebnis NEIN, geht die Ausführung zu Schritt S152 zurück, so daß die Erzeugungsmaschine die Fliesen-Ladeliste prüfen kann, die auf einer anderen Seite des Texturspeichers gespeichert ist, deren Fliesenladeliste sie bisher noch nicht geprüft hat. Ist das Testergebnis JA, was anzeigt, daß die Erzeugungsmaschine die auf sämtlichen Seiten des Texturspeichers gespeichert Fliesen-Ladelisten bereits geprüft hat, geht die Ausführung zu Schritt S156 über. Die Ausführung kehrt dann zur Hauptroutine von Schritt S156 zurück, wobei das Ergebnis NEIN ist.
  • Jedes Mal, wenn die Erzeugungsmaschine den Schritt S16 der Hauptroutine durchführt, wird in Schritt S152 der in Fig. 12 gezeigten Schritt-S15-Subroutine als Ergebnis JA erhalten, die Erzeugungsmaschine bewirkt, daß die Musterdaten der in Schritt S14 der Hauptroutine identifizierten Fliesen nacheinander vom Server 110 in die pyramidale Datenstruktur des Muster-Datenspeichers 134 auf der Seite 132 des Textur-Datenspeichers 130, entsprechend jeder Textur, geladen werden. Die geladenen Musterdaten gehören zu einem Textur-Spezialfall, mit einer Auflösung, die eine Stufe höher liegt als die Auflösung des Textur-Spezialfalls, dessen Musterdaten im vorherigen Vorgang des Schritts S16 geladen wurden. Anschließend wird der nächste Zeitschritt S14 der Hauptroutine durchgeführt, mindestens ein Teil des Bildes des 3D-Objektes wird als Reaktion auf die Farbwerte, die unter Anwendung der höher aufgelösten Musterdaten berechnet wurden, angezeigt.
  • In dem oben beschriebenen Graphikerzeugungsgerät wird ein Bild des 3D-Objektes mit hoher Geschwindigkeit und optimaler Auflösung erzeugt. Insbesondere in einer Netzwerkumgebung wird das Bild schrittweise mit progressiv zunehmender Auflösung bei fortschreitender Anzeigezeit erzeugt.
  • Außerdem kann in dem erfindungsgemäßen Graphikerzeugungsgerät jeder Schritt oder jedes Verfahren durch Software realisiert werden, die auf einem geeigneten CPU oder DSP läuft, oder durch geeignete konstruierte Hardware durchgeführt werden. Zusätzlich können in einem World Wide Web oder in einem anderen Netzwerkbrowser beispielsweise das vorstehend beschriebene Verarbeitungsprogramm als Steckkarte zum Erzeugen von Bildern von 3D-Objekten geladen werden.
  • Soll das Bild des 3D-Objektes ausgedruckt werden, werden die Spezialfälle 1 bis K der Textur verwendet. Wenn allerdings das Bild des 3D-Objektes auf einer Anzeigetafel angezeigt werden soll, wie dem Monitor 150, können der erste bis (K-n)te Textur-Spezialfall angewandt werden, wobei n eine ganze Zahl ist, die größer oder gleich Eins ist. Mit anderen Worten, wenn das Bild auf einer Anzeige angezeigt wird, können die höchst aufgelösten Teile des Bildes eine Auflösung aufweisen, die geringer ist als diejenige der Original-Textur.
  • BEISPIELE Beispiel 1
  • Beispiel 1 beschreibt schrittweise das Auflegen eines gleichschenkligen, rechtwinkligen dreieckigen Teils der Spezialfälle eins bis fünf, Tl&sub1;, Tl&sub2;, Tl&sub3;, Tl&sub4; und Tl&sub5;, der Textur Tl auf ein gleichschenkliges, rechtwinkliges dreieckiges Polygon-bildendes Teil der Oberfläche eines im 3D-Raum liegenden 3D-Objekts und das Erzeugen und Anzeigen des resultierenden Bildes. Ebenfalls beschrieben wird der Effekt der schrittweisen Vergrößerung des Polygons, die beispielsweise bei einer Bewegung des 3D- Objekts in Richtung des Betrachtungspunkts stattfindet.
  • Fig. 13 zeigt die Spezialfälle eines bis fünf, Tl&sub1;, Tl&sub2;, Tl&sub3;, Tl&sub4; und Tl&sub5;, der Textur Tl im zweidimensionalen Texturraum TS. Größe und Auflösung des am höchsten aufgelösten Falls Tl&sub5; der Textur entsprechen denjenigen des Texturraums TS. Die Größe der Spezialfälle Tl&sub1;-Tl&sub6; und ihre lineare Auflösung relativ zu derjenigen des am höchsten aufgelösten Falls Tl&sub5; sind in Tabelle 3 gezeigt. Tabelle 3
  • Die Texturkoordinaten (p, q) im zweidimensionalen Texturraum TS besitzen entlang der horizontalen p-Achse und entlang der 1024 diskrete Werte vertikalen q-Achse, die den 1024-Texturpixeln in jeder Richtung des am höchsten aufgelösten Textur-Spezialfalls Tl&sub5; entsprechen. Fig. 13 zeigt auch die Texturkoordinaten der Spitzen PA, PB, PC des dreieckigen Teils TRI der Textur TI im zweidimensionalen Texturraum TS. Diese Koordinaten sind (512, 256), (512, 512) bzw. (768, 512).
  • Die Fig. 14A, 15A und 16A zeigen die Texturkoordinaten (p, q), die in den Feldern 157 der Zellen des Teils des Referenzspeichers 126, entsprechend dem Teil des Bildschirms, auf den das Dreiecks-Polygon projiziert worden ist, gespeichert werden. Jedes Quadrat in diesen Figuren stellt das Feld 157 einer Zelle des Referenzspeichers entsprechend einem Pixel des Bildschirms dar. In jedem Quadrat ist der Inhalt des Felds 157 der entsprechenden Zelle dargestellt, d. h. die Texturkoordinaten (p, q) in dem zweidimensionalen Texturraum TS.
  • In dem in Fig. 14A gezeigten Beispiel definiert das gleichschenklige, rechtwinklige, dreieckige Polygon, auf das der dreieckige Teil TRI der Textur aufgelegt wird, einen relativ kleinen Teil der Oberfläche des Objekts. Dies kann das Ergebnis davon sein, daß die Objektoberfläche beispielsweise relativ entfernt vom Betrachtungspunkt liegt. Die gleichen Seiten des Polygons besitzen Längen entsprechend 17 Pixeln des Bildschirms. Aus Zweckmäßigkeitsgründen sind die gleichen Seiten des dreieckigen Polygons parallel zur horizontalen und vertikalen Achse des Bildschirms und des Texturraums TS ausgerichtet. In Schritt S10 der Hauptroutine (Fig. 7A oder 7B) werden die Musterdaten des am geringsten aufgelösten Textur-Spezialfalls Tl&sub1; vom Server 110 geladen und in der höchsten Schicht der pyramidalen Datenstruktur in Muster-Datenspeicher 134 auf Texturseite 132 des Textur-Datenspeichers 130 gespeichert. Anschließend werden bei dem anfänglichen, in Schritt S13 der Hauptroutine durchgeführten Vektor-/Rastergrafik-Wandlungsvorgangs die Texturkoordinaten (p, q) entsprechend dem dreieckigen Teil TRI der Textur den entsprechenden Zellen im Teil des Referenzspeichers 126 entsprechend der Lage des dreieckigen Polygons auf dem Bildschirm zugeordnet. Da die Größe des dreieckigen Teils der Textur um einen Faktor 16 größer ist als die Größe des Polygons, auf das es aufgelegt wurde, ordnet das Zuordnungsverfahren den Zellen des Referenzspeichers nur eine von jeweils 16 Texturkoordinaten sowohl in horizontaler als auch vertikaler Richtung zu. Als Ergebnis unterscheiden sich die Texturkoordinaten zwischen jeweils zwei Zellen sowohl in horizontaler als auch vertikaler Richtung um 16, wie in Fig. 14A gezeigt.
  • Fig. 14B zeigt, wie die Texturkoordinaten (p, q), die in den Zellen des Referenzspeichers 126, der in Fig. 14A gezeigt ist, gespeichert sind, den Fallkoordinaten (p&sub1;, q&sub1;) für den am niedrigsten aufgelösten Textur- Spezialfall Tl&sub1; entspricht. In dem am niedrigsten aufgelösten Textur-Spezialfall können die Fallkoordinaten sowohl in horizontaler als auch vertikaler Richtung nur 64 diskrete Werte aufweisen. Für die in Fig. 14A gezeigten Referenzspeicherzellen werden die Musterdaten des Textur-Spezialfall Tl&sub1; in dem am niedrigsten aufgelösten Textur-Spezialfall Tl&sub1; alle von verschiedenen Koordinaten der Fallkoordinaten (p&sub1;, q&sub1;) gelesen. Da die Farbwerte eines jeden Pixels des dreieckigen Polygons unter Anwendung von Musterdaten berechnet werden, die von verschiedenen Koordinaten des am niedrigsten aufgelösten in dem niedrigst aufgelösten Textur- Spezialfall Tl&sub1; genommen wurden, wird der Teil des Bildes, der dem Polygon entspricht, mit optimaler Auflösung erzeugt. Zur Erzeugung dieses Teils des Bildes mit optimaler Auflösung besteht kein Bedarf zum Laden der Musterdaten für den höher aufgelösten Textur- Spezialfall.
  • In dem in Fig. 15A gezeigten Beispiel ist das gleichschenklige, rechtwinklige, dreieckige Polygon, auf das der dreieckige Teil TRI der Textur aufgelegt worden ist, ungefähr zweimal so groß wie das dreieckige Polygon in dem vorstehend unter Bezugnahme auf die Fig. 14A beschriebenen Beispiel. Die gleichen Seiten des Polygons weisen Längen auf, entsprechend 33 Pixeln des Bildschirms. Die größere Größe des Polygons könnte das Ergebnis davon sein, daß die Objektoberfläche beispielsweise näher am Betrachtungspunkt liegt. Wiederum werden in Schritt S10 der Hauptroutine sämtliche Musterdaten des am niedrigsten aufgelösten Textur- Spezialfall Tl&sub1; vom Server 110 geladen und in der höchsten Schicht der pyramidalen Datenstruktur im Muster- Datenspeicher 134 auf Texturseite 132 des Textur- Datenspeichers 130 gespeichert. Anschließend werden in Schritt S13 der Hauptroutine die Texturkoordinaten (p, q) entsprechend dem dreieckigen Teil TRI der Textur den entsprechenden Zellen in dem Teil des Referenzspeichers 126 zugeordnet, die der Stelle des Polygons auf dem Bildschirm entsprechen. Da die Größe des rechteckigen Teils der Textur um einen Faktor von 8 größer ist als diejenige des Polygons, ordnet das Zuordnungsverfahren den Zellen des Referenzspeichers nur jeweils eine von 8 Texturkoordinaten sowohl in horizontaler als auch vertikaler Richtung zu. Als Ergebnis unterscheiden sich die Texturkoordinaten zwischen jeweils zwei Zellen sowohl in horizontaler als auch in vertikaler Richtung um 8, wie in Fig. 15A gezeigt.
  • Fig. 15B zeigt, wie die Texturkoordinaten (p, q), die in den Zellen des Referenzspeichers 126, der in Fig. 15A gezeigt ist, gespeichert sind, den Fallkoordinaten (p&sub1;, q&sub1;) des am niedrigsten aufgelösten Textur-Spezialfall Tl&sub1; und den Fallkoordinaten (p&sub2;, q&sub2;) des am höchsten aufgelösten Textur-Spezialfalls entsprechen. In Textur-Spezialfall Tl&sub2; können die Fallkoordinaten sowohl in horizontaler als auch vertikaler Richtung 128 diskrete Werte einnehmen. Wenn die Fallkoordinaten (p&sub1;, q&sub1;) des Textur-Spezialfalls Tl&sub1; den entsprechenden Zellen des Referenzspeichers zugeordnet werden, werden einige der Fallkoordinaten (p&sub1;, q&sub1;) mehr als einer der Zellen des Referenzspeichers zugeordnet. Beispielsweise werden die Fallkoordinaten (32, 16) des Textur-Spezialfalls Tl&sub1; den drei nebeneinanderliegenden Zellen des Referenzspeichers zugeordnet, denen die Texturkoordinaten (512, 256), (512, 264) und (520, 264) zugeordnet wurden. Wenn somit das Bild zuerst unter Anwendung der Musterdaten des am niedrigsten aufgelösten Textur- Spezialfalls angezeigt werden, werden die Farbwerte der entsprechenden Pixel des Bildschirms von dem gleichen Datenpunkt der Musterdaten erzeugt. Als Ergebnis wird der Teil des Bildes entsprechend dem dreieckigen Polygon mit suboptimaler Auflösung erzeugt.
  • Die Erzeugungsmaschine 120 verwendet die Bild-Zugriffsdatei AM(O), die in Bild-Zugriffsfeld 142 der Seite 132 des Textur-Datenspeichers 130, entsprechend der Textur, gespeichert ist, um nachzuweisen, ob die Fallkoordinaten (p&sub1;, q&sub1;) des Textur-Spezialfalls Tl&sub1; mehr als einer Zelle des Referenzspeichers zugeordnet wurden. Bei der vorstehend unter Bezugnahme auf Fig. 10 beschriebenen Subroutine verwendet die Erzeugungsmaschine die Bild- Zugriffsdatei um nachzuweisen, ob beliebige der Fallkoordinaten (p&sub1;, q&sub1;) des Textur-Spezialfalls Tl&sub1; mehr als einmal zugeordnet wurden. Falls beliebige der Fallkoordinaten (p&sub1;, q&sub1;) mehr als einmal zugeordnet wurden, wird der Eintrag in der Fliesen-Ladeliste 136 für die entsprechende Fliese des nächst höher aufgelösten Textur-Spezialfalls Tl&sub2; auf 10 eingestellt, so daß die Musterdaten dieser Fliese das nächste Mal geladen werden, wenn der Ladevorgang in Schritt S16 der Hauptroutine durchgeführt wird.
  • Wenn die Musterdaten des höher aufgelösten Spezialfalls Tl&sub2; in Schritt S16 geladen und in Muster-Datenspeicher 134 in der nächst höheren Schicht der pyramidalen Datenstruktur gespeichert worden sind und bei erneuter Durchführung des Schrittes S14, werden die Musterdaten des höher aufgelösten Textur-Spezialfalls Tl&sub2; verwendet, um den Teil des Bildes zu erzeugen, der von dem dreieckigen Polygon eingenommen wird. In diesem Fall werden die Musterdaten von verschiedenen Fallkoordinaten (p&sub2;, q&sub2;) des höher aufgelösten Textur-Spezialfalls jeweils den Zellen des Referenzspeichers zugeordnet. Beispielsweise werden die Musterdaten dreier verschiedener Fallkoordinaten (64, 32), 64, 33) und (65,33) des Textur-Spezialfalls Tl&sub2; den drei nebeneinanderliegenden Zellen des Referenzspeichers, denen die Texturkoordinaten (512, 256), (512/264) und (520,264) zugeordnet wurden, zugeordnet. Da die Farbwerte eines jeden Pixels des Polygons unter Anwendung von Musterdaten erzeugt werden, die aus den verschiedenen Koordinaten des Textur-Spezialfalls Tl&sub2; gelesen wurden, wenn das Bild ein unter Anwendung von mindestens einem Teil der Musterdaten des Falls Tl&sub2; zweites Mal angezeigt wird, wird der dem Polygon entsprechende Teil des Bildes mit optimaler Auflösung erzeugt. Zur Erzeugung dieses Teils des Bildes mit optimaler Auflösung besteht kein Bedarf zum Laden der Musterdaten eines höher aufgelösten Textur- Spezialfalls.
  • In dem in Fig. 16A gezeigten Beispiel ist das gleichschenklige, rechtwinklige, dreieckige Polygon, auf das der dreieckige Teil TRI der Textur aufgelegt wird, ungefähr viermal so groß wie das dreieckige Polygon in dem vorstehend unter Bezugnahme auf Fig. 14A beschriebenen Beispiel. Die gleichen Seiten des dreieckigen Polygons besitzen Längen entsprechend 65 Pixeln des Bildschirms. Die größere Größe des Polygons könnte das Ergebnis davon sein, daß die Objektoberfläche beispielsweise relativ nahe am Betrachtungspunkt liegt. Wiederum werden in Schritt S10 der Hauptroutine sämtliche Musterdaten des am niedrigsten aufgelösten Textur- Spezialfalls Tl&sub1; zuerst vom Server 110 geladen, und im entsprechenden Teil der pyramidalen Datenstruktur in Muster-Datenspeicher 134 auf Texturseite 132 des Textur-Datenspeichers 130 gespeichert. Anschließend werden in Schritt S13 der Hauptroutine die Texturkoordinaten (p, q) entsprechend dem dreieckigen Teil TRI der Textur alle in den entsprechenden Zellen in dem Teil des Referenzspeichers 126 angeordnet, der der Lage des Polygons auf dem Bildschirm entspricht. Da die Größe des dreieckigen Teils der Textur um einen Faktor von 4 größer ist als das Polygon, ordnet das Zuordnungsverfahren jeweils eine von vier Texturkoordinaten sowohl in horizontaler als auch vertikaler Richtung den Zellen des Referenzspeichers zu. Als Ergebnis unterscheiden sich die Texturkoordinaten zwischen jeweils zwei Zellen sowohl in horizontaler als auch vertikaler Richtung um vier, wie in Fig. 16A gezeigt.
  • Fig. 16B zeigt, wie die Texturkoordinaten (p, q), die in den Zellen des Referenzspeichers 126 gespeichert sind, den Fallkoordinaten (p&sub1;, q&sub1;) des am niedrigsten aufgelösten Textur-Spezialfall Tl&sub1;, den Fallkoordinaten (p&sub2;, q&sub2;) des Textur-Spezialfalls Tl&sub2; und den Fallkoordinaten (p&sub3;, q&sub3;) des Textur-Spezialfalls Tl&sub3; entsprechen. In Textur-Spezialfall Tl&sub3; können die Fallkoordinaten (p&sub3;, q&sub3;) sowohl in horizontaler als auch vertikaler Richtung 256 diskrete Werte einnehmen. Wenn die Fallkoordinaten der Textur-Spezialfälle Tl&sub1; und Tl&sub2; den entsprechenden Zellen des Referenzspeichers zugeordnet werden, werden einige der Fallkoordinaten (p&sub1;, q&sub1;) bzw. (p&sub2;, q&sub2;) des Falls mehr als einer der Zellen des Referenzspeichers zugeordnet. Wenn also ein Bild das erste und zweite Mal unter Anwendung der Musterdaten der Spezialfälle Tl&sub1; und Tl&sub2; der Textur angezeigt wird, werden die Farbwerte von einigen der Pixel des Bildschirms von dem gleichen Datenpunkt der Musterdaten erzeugt. Als Ergebnis wird das dem dreieckigen Polygon entsprechende Bild mit suboptimaler Auflösung erzeugt.
  • Wenn allerdings das Bild unter Anwendung der Musterdaten des höher aufgelösten Textur-Spezialfalls Tl&sub3; erzeugt wird, werden die Musterdaten verschiedener Fallkoordinaten (p&sub3;, q&sub3;) des höher aufgelösten Textur- Spezialfalls jeweils den Zellen des Referenzspeichers zugeordnet, wie in Fig. 16B gezeigt. Da jedem Pixel des dreieckigen Polygons für den Textur-Spezialfall Tl&sub3; verschiedene Fallkoordinaten zugeordnet werden, wenn das Bild unter Anwendung von mindestens einem Teil der Musterdaten des Falls Tl&sub3; ein drittes Mal abgebildet wird, wird der dem Polygon entsprechende Teil des Bildes mit optimaler Auflösung erzeugt. Zur Erzeugung dieses Teils des Bildes mit optimaler Auflösung besteht kein Bedarf zum Laden der Musterdaten eines höher aufgelösten Textur-Spezialfalls.
  • Wenn der dreieckige Teil TRI der Textur auf dreieckige Polygone der zweifachen und vierfachen Größe der vorstehend unter Bezugnahme auf Fig. 16 beschriebenen Polygone aufgelegt wird, werden die Texturkoordinaten (p, q) den Zellen in Referenzspeicher 126 entsprechend der Lage des Polygons auf dem Bildschirm sowohl in horizontaler als auch vertikaler Richtung in Zweier- bzw. Einer-Schritten zugeordnet. Die progressiv höher aufgelösten Textur-Spezialfälle Tl&sub1;, Tl&sub2;, Tl&sub3; und Tl&sub4; und Tl&sub1;, Tl&sub2;, Tl&sub3;, Tl&sub4; bzw. Tl&sub5; werden dann zum Erzeugen des Teils des Bildes verwendet, in dem das Polygon liegt. Das Bild wird mit progressiv höheren Auflösungen und schließlich mit optimaler Auflösung angezeigt.
  • Beispiel 2
  • Als nächstes wird ein Beispiel beschrieben, in dem eine Textur, die ein Bild einer Weltkarte darstellt, auf die Oberfläche einer Kugel aufgelegt und ein Bild des resultierenden dreidimensionalen Objekts, das die Erde darstellt, erzeugt und angezeigt wird. Diese Beschreibung bezieht sich auf die Fig. 17 bis 20 und 21 bis 24.
  • In diesem Beispiel wird die Oberfläche der Kugel durch Polygone (nicht gezeigt) definiert. Die höher aufgelösten Textur-Spezialfälle werden auf die Polygone aufgelegt, deren Orientierung parallel oder nahezu parallel zum Bildschirm ist, und die niedriger aufgelösten Textur-Spezialfälle werden auf die Polygone aufgelegt, deren Orientierung nahezu senkrecht zum Bildschirm ist. Wenn zusätzlich die Position der Kugel im 3D-Raum verändert wird, so daß die scheinbare Größe der Kugel zunimmt, werden mehr der höher aufgelösten Textur- Spezialfälle zum Erzeugen des Bildes verwendet. Wenn die scheinbare Größe der Kugel abnimmt, werden mehr der niedriger aufgelösten Textur-Spezialfälle zum Erzeugen des Bildes verwendet.
  • In diesem Beispiel stellen die vier Spezialfälle Tl&sub1;, Tl&sub2;, Tl&sub3; und Tl&sub4; einer Textur eine Weltkarte mit vier Auflösungsniveaus dar, wie in den Fig. 17 bis 20 gezeigt. Die Texturdaten dieser Spezialfälle sind in Textur-Datenspeicher 114 in Server 110, der in Fig. 1 gezeigt ist, als Texturdateneinzelfall im Format FLASHPIX gespeichert. Die Polygondaten, die die Oberfläche einer Kugel darstellen, auf die die Textur aufgelegt wird, werden in dem Polygondatenspeicher 112 des Servers gespeichert.
  • In diesem Beispiel ist die Textur, die die Weltkarte darstellt, nicht quadratisch, sondern weist ein Längen- zu-Breiten-Verhältnis (horizontal/vertikal) von 2 : 1 auf. Folglich weist jeder der Spezialfälle Tl&sub1;, Tl&sub2;, Tl&sub3; und Tl&sub4; ein Länge-zu-Breite-Verhältnis von 2 : 1 auf. Der am höchsten aufgelöste Textur-Spezialfall Tl&sub4; besitzt eine Auflösung entsprechend derjenigen der Original- Textur. Die lineare Auflösung jeder der Textur-Spezialfälle Tl&sub3;, Tl&sub2; und Tl&sub1; entspricht der Hälfte der Auflösung des nächst höher aufgelösten Falls und dem Doppelten der Auflösung des nächst niedriger aufgelösten Falls, wie vorstehend beschrieben.
  • Der am höchsten aufgelöste Textur-Spezialfall Tl&sub4; ist in Fig. 20 gezeigt und besteht aus 512 Texturpixeln in horizontaler und 256 Texturpixeln in vertikaler Richtung. In diesem Beispiel wird jeder Textur-Spezialfall in Fliesen eingeteilt, die jeweils aus 64 · 64 Texturpixeln bestehen. Der am höchsten aufgelöste Fall Tl&sub4; wird insgesamt in 32 Fliesen, die von T(11), T(12) ..., T(42) numeriert sind, und in einem rechteckigen Feld von 8 Fliesen in horizontaler Richtung auf 4 Fliesen in vertikaler Richtung angeordnet.
  • Der Textur-Spezialfall Tl&sub3; ist in Fig. 19 gezeigt und besteht aus 256 Texturpixeln in horizontaler Richtung und 128 Texturpixeln in vertikaler Richtung. Dieser Fall ist in insgesamt 8 Fliesen eingeteilt, die von T(3), T(4) ... (T10) numeriert und in einem rechteckigen Feld von 4 Fliesen in horizontaler Richtung auf 2 Fliesen in vertikaler Richtung angeordnet sind.
  • Der Textur-Spezialfall Tl&sub2; ist in Fig. 18 gezeigt und besteht aus 128 Texturpixeln in horizontaler Richtung und 64 Texturpixeln in vertikaler Richtung. Dieser Fall ist in insgesamt 2 Fliesen mit den Nummern T(1) und T(2) eingeteilt, die in einem rechteckigen Feld von 2 Fliesen in horizontaler Richtung auf eine Fliese in vertikaler Richtung angeordnet sind.
  • Der Fall Tl&sub1; der Textur ist in Fig. 17 gezeigt und besteht aus 64 Texturpixeln in horizontaler Richtung und 32 Texturpixeln in vertikaler Richtung. Dieser Fall ist in eine Einzelfliese mit der Nummer T(0) eingeteilt. Da der Fall Tl&sub1; aus 64 Texturpixeln in horizontaler Richtung und 32 Texturpixeln in vertikaler Richtung besteht, und die Fliesen aus 64 Texturpixeln in horizontaler Richtung und 64 Fliesen in vertikaler Richtung bestehen, ist dieser Textur-Spezialfall nur in der oberen Hälfte oder der unteren Hälfte der Fliese angeordnet. In dem gezeigten Beispiel ist der Fall Tl&sub1; nur in der oberen Hälfte der Fliese T(0) angeordnet.
  • Die Fig. 21 bis 24 zeigen die Bilder, die angezeigt werden, wenn die Texturen unter Erzeugung der Bilder auf die Kugel aufgelegt werden.
  • Fig. 21 zeigt ein Bild der Erde, das unter Anwendung der Musterdaten des am niedrigsten aufgelösten Textur- Spezialfalls Tl&sub1; erzeugt wird. Wie vorstehend beschrieben, werden die Musterdaten des am niedrigsten aufgelösten Textur-Spezialfalls Tl&sub1;, nämlich die Musterdaten der Fliese T(0), aus dem Textur-Datenspeicher 114 des Servers 110 geladen und in der pyramidalen Struktur auf dem nächsthöheren Niveau in Muster-Datenspeicher 134 auf Seite 132 des Textur-Datenspeichers 130 entsprechend der Textur gespeichert.
  • Wenn das Bild das erste Mal nur unter Anwendung der Musterdaten des Textur-Spezialfalls Tl&sub1; erzeugt wird, ist die Auflösung des Bildes unzureichend. Folglich erfordern die Musterdaten eine zweite Erzeugung des Bildes unter Anwendung der Musterdaten des nächst höher aufgelösten Textur-Spezialfalls Tl&sub2;, die in Einheiten von Fliesen geladen und an den entsprechenden Stellen in der pyramidalen Datenstruktur, auf die vorstehend Bezug genommen wurde, gespeichert werden. Fig. 22 zeigt ein Bild der Erde, das unter Anwendung der Musterdaten des Textur-Spezialfalls Tl&sub2; erzeugt wurde. In diesem Fall besteht der Textur-Spezialfalls Tl&sub2; aus zwei Fliesen. Da die erzeugten Teile des Texturbildes die Musterdaten der Fliese T(2) erfordern, werden die Musterdaten dieser Fliese geladen. Die Musterdaten der Fliese T(1) werden nicht geladen, da diese Daten zur Erzeugung des Bildes nicht erforderlich sind. Der Teil der Kugel, auf den die Musterdaten der Fliese T(1) aufgelegt werden, ist nicht vom Betrachtungspunkt aus sichtbar.
  • Wenn das Bild ein zweites Mal unter Anwendung der Musterdaten des Textur-Spezialfalls Tl&sub2; erzeugt wird, ist die Auflösung des Bildes immer noch unzureichend. Folglich sind die Musterdaten der Fliesen des nächst höher aufgelösten Textur-Spezialfalls Tl&sub3; erforderlich, um das Bild ein drittes Mal mit höherer Auflösung zu erzeugen, und sie werden in Einheiten von Fliesen geladen und in dem dritten Niveau der pyramidalen Datenstruktur, auf die vorstehend Bezug genommen wurde, gespeichert.
  • Fig. 23 zeigt ein Bild der Erde, das unter Anwendung der Musterdaten des Textur-Spezialfalls Tl&sub3; erzeugt wurde. In diesem Fall besteht der Textur-Spezialfäll Tl&sub3; aus 8 Fliesen. Wie allerdings durch den fetten Rahmen in Fig. 19 angegeben, sind die Musterdaten von nur 4 dieser Fliesen, nämlich die Fliesen T(5), T(6), T(9) und T(10), zur Erzeugung des Bildes erforderlich. Folglich werden nur die Musterdaten dieser 4 Fliesen geladen. Die restlichen Fliesen, nämlich die Fliesen T(3), T(4), T(7) und T(10), die den Textur-Spezialfall Tl&sub3; darstellen, umfassen die Musterdaten, die auf die Teile der Kugel aufgelegt werden, die vom Betrachtungspunkt aus nicht sichtbar sind. Da die Musterdaten dieser Fliesen zur Erzeugung des Bildes der Erde nicht notwendig sind, werden sie nicht geladen. Fig. 19 zeigt, daß das erfindungsgemäße Erzeugungsgerät im Gegensatz zu den Musterdaten von 8 herkömmlicherweise benötigten Fliesen die Musterdaten von nur 4 Fliesen zum Erzeugen des Bildes lädt und darum das Bild schneller als ein herkömmliches Erzeugungsgerät erzeugen kann.
  • Wenn das Bild unter Anwendung der Musterdaten des Textur-Spezialfalls Tl&sub3; ein drittes Mal erzeugt wird, wird der Teil des Bildes, der die Peripherie der Kugel darstellt, mit optimaler Auflösung erzeugt. Allerdings wird die Auflösung, mit der der Teil des Bildes erzeugt wird, welcher den Mittelteil der Kugel darstellt, immer noch unzureichend erzeugt. Darum werden die Musterdaten bestimmter Fliesen des am höchsten aufgelösten Textur- Spezialfalls Tl&sub4; aus dem Textur-Datenspeicher 114 des Servers 110 geladen und auf dem untersten Niveau der pyramidalen Datenstruktur des Muster-Datenspeichers 134 auf Seite 132 des Textur-Datenspeichers 130 entsprechend der Textur gespeichert. Fig. 24 zeigt ein Bild der Erde, das unter Anwendung der Musterdaten der Textur-Spezialfälle Tl&sub3; und Tl&sub4; erzeugt wurde.
  • Der Fall Tl&sub4; der Textur besteht aus 32 Fliesen. Wie allerdings durch die umrahmten Kästchen in Fig. 20 angedeutet, sind die Musterdaten von nur 8 dieser Fliesen, nämlich der Fliesen T(16), T(17), T(24), T(25), T(26), T(32), T(33) und T(34), zur Erzeugung des Bildes erforderlich. Folglich werden die nur Musterdaten dieser 8 Fliesen geladen. Die Musterdaten der restlichen Fliesen, die den Textur-Spezialfall Tl&sub4; ausmachen, werden zur Erzeugung des Bildes nicht benötigt und werden darum nicht geladen. Fig. 20 zeigt, daß das erfindungsgemäße Erzeugungsgerät im Gegensatz zu den herkömmlicherweise benötigten 32 Fliesen nur 8 Fliesen zum Erzeugen des Bildes lädt und darum das Bild schneller erzeugen kann als ein herkömmliches Erzeugungsgerät.
  • In dem erfindungsgemäßen Erzeugungsgerät wird, da sich die Auflösung des erzeugten Bildes erhöht, das Verhältnis zwischen der Anzahl von Musterdaten, die zum Erzeugen des Bildes benötigt werden, und der Gesamtzahl von Musterdaten, die die Textur darstellen, vermindert. Dies beschleunigt das Erzeugen des Bildes mit optimaler Auflösung im Vergleich zu einem herkömmlichen Erzeugungsgerät, bei dem sämtliche Musterdaten geladen werden müssen, wesentlich.
  • In dem vorstehend beschriebenen Beispiel werden die Textur-Spezialfälle Tl&sub1;, Tl&sub2;, Tl&sub3; und Tl&sub4; mit vier Auflösungsniveau zum Erzeugen des Bildes der Erde verwendet. Das Bild der Erde wird zunächst mit niedriger Auflösung angezeigt. Sodann werden schrittweise Bilder mit stufenweise verbesserter Auflösung angezeigt. In den Bildern, die unter Anwendung der Musterdaten der höher aufgelösten Textur-Spezialfälle erzeugt wurden, können allerdings Teile des Bildes unter Anwendung der Musterdaten von einigen der niedriger aufgelösten Textur- Spezialfälle mit optimaler Auflösung erzeugt werden. Dies kann die Anzahl von Musterdaten für die höher aufgelösten Spezialfälle, die geladen werden müssen, weiter vermindern.
  • Da bei einem herkömmlichen Erzeugungsgerät die Erzeugungsberechnungen erst nach dem Laden sämtlicher Texturdaten, einschließlich Musterdaten, entsprechend allen Fliesen, die den am höchsten aufgelösten Textur- Spezialfall Tl&sub4; bilden, begonnen werden, verstreicht eine lange Zeit, bevor ein Bild des 3D-Objekts, in diesem Fall der Erde, das erste Mal angezeigt wird. Wenn das soeben beschriebene Beispiel unter Anwendung eines herkömmlichen Erzeugungsgerätes erzeugt würde, müßte die Anzahl der Musterdaten, die vor Beginn der Erzeugungsberechnungen geladen werden müßten, 32 · 64 · 64 = 131062 betragen. Im Gegensatz dazu werden bei dem erfindungsgemäßen Erzeugungsgerät zuerst nur die Musterdaten von einer Fliese zunächst in den Textur-Datenspeicher 130 in Client-Computer 102 aus dem Textur- Datenspeicher 114 des Servers 110 geladen. Darum ist die Zeit, die zwischen dem Start des Ladens der 3D- Graphikdaten und der Zeit, zu der ein erstes Bild des 3D-Objektes angezeigt wird, verstreicht, wesentlich kürzer. Der Anwender kann last sofort ein Bild des 3D- Objektes in der Auflösung des am niedrigsten aufgelösten Textur-Spezialfalls Tl&sub1; sehen. Wenn das erfindungsgemäße Erzeugungsgerät zum Erzeugen des Bildes der Erde in dem soeben beschriebenen Beispiel eingesetzt wird, ist die Anzahl der Musterdaten, die vom Server geladen werden, nicht größer als die Anzahl der Musterdaten in insgesamt 14 Fliesen für die Textur- Spezialfälle Tl&sub1; bis Tl&sub4;. Darum ist die Anzahl von Musterdaten, die das erfindungsgemäße Erzeugungsgerät vom Server lädt, wesentlich geringer als die Anzahl der Musterdaten von 32 Fliesen, die bei einem herkömmlichen Erzeugungsgerät erforderlich sind. Ladezeit und die Netzwerk-Gebrauch sind bei dem erfindungsgemäßen System sind wesentlich kürzer.
  • Erfindungsgemäß läßt sich ein Bild eines 3D-Objekts, dessen Oberflächen-Aussehen durch eine Textur definiert ist, mit hoher Geschwindigkeit und optimaler Auflösung erzeugen. Die Erfindung erzeugt ein anfängliches niedrig aufgelöstes Bild des Objekts praktisch ohne Wartezeit. Insbesondere wenn ein Bild eines 3D-Objekts in einer Netzwerkumgebung erzeugt wird, kann das Bild zuerst mit einer niedrigen Auflösung und anschließend erneut mit einer stufenweise höheren Auflösung angezeigt werden. Außerdem können durch Laden der Musterdaten nur derjenigen Fliesen von jedem Textur-Spezialfall, die tatsächlich zur Erzeugung des Bildes erforderlich sind, verschiedene Quellen, wie Netzwerkquellen, effektiver angewandt werden.
  • Obwohl die Offenbarung erläuternde Ausführungsformen für die Erfindung ausführlich beschreibt, ist es selbstverständlich, daß die Erfindung nicht auf diese exakten beschriebenen Ausführungsformen beschränkt ist und daß verschiedene Modifikationen durchgeführt werden können, ohne vom Umfang der Erfindung, der in den beigefügten Ansprüchen definiert ist, abzuweichen.

Claims (12)

1. Erzeugungsgerät (100) zur Erzeugung eines Bildes als Reaktion auf dreidimensionale graphische Daten, wobei das Gerät umfaßt:
eine Graphikeinrichtung (116, 102), von der das Erzeugungsgerät die dreidimensionalen Graphikdaten, einschließlich Polygondaten und Texturdaten, empfängt, wobei die Texturdaten eine Textur definieren und Texturgrößendaten und eine Mehrzahl von Musterdaten umfassen, wobei Textur-Spezialfall- Daten in eine Mehrzahl von Abschnitten unterteilt sind, wobei jede der Musterdaten einen der Abschnitte darstellen, wobei jeder der Spezialfälle eine unterschiedliche Auflösung aufweist und einen am niedrigsten aufgelösten Fall und einen am höchsten aufgelösten Fall einschließen, wobei die Musterdaten einen Hauptanteil der Texturdaten ausmachen, wobei das Gerät zu Beginn von den Graphikeinrichtungen (116, 102) nur die Polygondaten, die Texturgrößendaten und diejenigen der Musterdaten empfängt, die den am niedrigsten aufgelösten Textur-Spezialfall darstellen;
einen Referenzspeicher (126) mit Speicherzellen, die den Pixeln eines Bildschirms entsprechen; und
eine Erzeugungsmaschine (120) zur Durchführung einer anfänglichen Rasterisierungsoperation nur unter Verwendung der Polygon- und Texturgrößendaten zur Erzeugung und Speicherung in jeder der Speicherzellen des Referenzspeichers von Texturkoordinaten für ein entsprechendes der Pixel des Bildschirms, und zur wiederholten Durchführung einer Anzeige-und-Ladeoperation, wobei die Erzeugungsmaschine:
Farbwerte, die das Bild darstellen, unter Anwendung der Musterdaten eines am höchsten aufgelösten Falls der Textur-Spezialfälle, die in das Erzeugungsgerät geladen werden, erzeugt,
als Reaktion auf die im Referenzspeicher gespeicherten Texturkoordinaten, diejenigen der Musterdaten für den nächst höher aufgelösten Textur- Spezialfall identifiziert, die zum Erzeugen von mindestens Teilen des Bildes mit einer höheren Auflösung notwendig sind, und
veranlaßt, daß diejenigen der Musterdaten, die zur Erzeugung der höher aufgelösten Mindestteile des Bildes als erforderlich identifiziert sind, von den Graphikeinrichtungen (116, 102) geladen werden,
wobei die Erzeugungsmaschine zur wiederholten Durchführung der Anzeige-und-Ladeoperation ausgelegt ist, bis die Farbendwerte sämtlicher Pixel des Bildschirms unter Verwendung von verschiedenen der Musterdaten, die in das Erzeugungsgerät geladen werden, erzeugt sind.
2. Erzeugungsgerät nach Anspruch 1, bei dem:
die erste, von der Erzeugungsmaschine (120) durchgeführte Vektor-/Rastergrafik-Wandlungsoperation zusätzlich Intensitätskoeffizienten für jedes der Pixel des Bildschirms erzeugt; und
die Intensitätskoeffizienten zusätzlich in einer der Speicherzellen des Referenzspeichers, entsprechend jeweils einem der Pixel des Bildschirms, gespeichert.
3. Erzeugungsgerät nach Anspruch 1 oder 2, das zusätzlich einen Texturspeicher (130) umfaßt, in dem die über den Pfad geladenen Musterdaten in einer pyramidalen Datenstruktur gespeichert sind, wobei die pyramidale Datenstruktur Schichten umfaßt, in denen die Musterdaten der entsprechenden Textur- Spezialfälle gespeichert sind.
4. Erzeugungsgerät nach Anspruch 3, bei dem: bei dem:
die Musterdaten zu den Texturpixeln gehören, die in rechteckigen Fliesen aneinandergereiht sind;
der Texturspeicher (130) zusätzlich eine Fliesen- Ladeliste (136) für die Textur einschließt, wobei die Fliesen-Ladeliste einen Eintrag für jede der Fliesen einschließt; und
wobei die Erzeugungsmaschine ausgelegt ist, um als Reaktion auf die Identifikation derjenigen der Musterdaten des nächst höher aufgelösten Textur- Spezialfalls die Erzeugungsmaschine (120):
diejenigen der Fliesen zu erfassen, die diejenigen der Texturpixel einschließt, deren Musterdaten von der Erzeugungsmaschine zur Erzeugung der Farbwerte von den mehr als einem benachbarten Pixel des Bildschirms verwendet wurden, und
den Eintrag in der Fliesen-Ladeliste auf einen Ladezustand für jede der Fliesen einzustellen, die in dem nächst höher aufgelösten Textur-Spezialfall an einer Stelle, entsprechend denjenigen der Texturpixel, deren Musterdaten zur Erzeugung der Farbwerte des mehr als einen nächsten Pixels des Bildschirms verwendet wurden, angeordnet sind, wobei der Ladezustand anzeigt, daß die Musterdaten derjenigen der Fliesen des nächst höher aufgelösten Falles zum Erzeugen des Bildes mit der höheren Auflösung erforderlich sind.
5. Erzeugungsgerät nach Anspruch 4, bei dem die Erzeugungsmaschine ausgelegt ist, um als Reaktion auf das Bewirken des Ladens derjenigen der Musterdaten, die als erforderlich identifiziert wurden durch die Erzeugungsmaschine (120):
die geladenen Fliesen (136) für die Textur zu prüfen, um die Einträge zu identifizieren, die auf den Ladestatus eingestellt sind;
zu bewirken, daß aus der Graphikeinrichtung (116, 102) die Musterdaten für die Fliesen geladen werden, deren Einträge in der Fliesen-Ladeliste als auf den Ladestatus eingestellt identifiziert werden; und
den Eintrag in der Fliesen-Ladeliste für die Fliesen zu ändern, deren Musterdaten von dem Ladestatus auf einen geladenen Status geladen wurden, wobei der geladene Status anzeigt, daß die Musterdaten für die Fliesen geladen wurden.
6. Erzeugungsgerät nach Anspruch 4 oder 5, bei dem:
das Erzeugungsgerät zusätzlich eine Bild-Zugriffstabelle (142) für jeweils eine der Fliesen einschließt, deren Musterdaten in das Erzeugungsgerät geladen wurden, wobei die Bild-Zugriffstabelle einen Eintrag für jedes der Texturpixel der jeweils einen Fliese einschließt, wobei der Eintrag auf einen ersten Status initialisiert wird; und
wobei die Erzeugungsmaschine ausgelegt ist, um als Reaktion darauf, daß die Erzeugungsmaschine diejenigen der Fliesen erfaßt, die diejenigen der Texturpixel einschließen, deren Musterdaten zur Erzeugung der Farbwerte des mehr als einen nächsten Pixel des Bildschirms verwendet wurden, zu prüfen, ob der Bild-Zugriffsdatei-Eintrag für jedes der Texturpixel, deren Musterdaten von der Erzeugungsmaschine zur Erzeugung der Farbwerte verwendet wurden, sich in einem zweiten Status befindet, bevor der Eintrag für das eine der Texturpixel auf den zweiten Status eingestellt wird, wobei ein Testergebnis des Bild-Zugriffstabelle-Eintrags, der sich in dem zweiten Status befindet, anzeigt, daß die Musterdaten des einen der Texturpixel zur Erzeugung der Farbwerte des mehr als einen nächstgelegenen Pixels des Abbildungsschirms verwendet wurden.
7. Verfahren zur Erzeugung eines Bildes als Reaktion auf dreidimensionale graphische Daten, wobei das Bild durch Farbwerte dargestellt wird, die den Pixeln eines Bildschirms entsprechen, wobei die dreidimensionalen graphischen Daten Polygondaten und zusätzlich Texturdaten einschließen, die eine Textur definieren, wobei die Texturdaten Texturgrößendaten und eine Mehrzahl von Musterdaten einschließen, wobei Textur-Spezialfall-Daten in eine Mehrzahl von Abschnitten unterteilt sind, wobei jede der Musterdaten einen der Abschnitte darstellen, wobei jeder der Spezialfälle eine unterschiedliche Auflösung aufweist und einen am niedrigsten aufgelösten Fall und einen am höchsten aufgelösten Fall einschließt, wobei die Musterdaten einen Hauptteil der Texturdaten ausmachen, wobei das Verfahren umfaßt:
Laden der Polygondaten, der Texturgrößendaten und der Musterdaten, die den am niedrigsten aufgelösten Textur-Spezialfall darstellen;
Durchführen einer ersten Rasterisierungsoperation unter Verwendung der Polygon- und Texturgrößendaten zur Erzeugung und Speicherung einer Texturkennung und von Texturkoordinaten für jedes der Pixel des Bildschirms; und
wiederholtes Durchführen einer Anzeige-und-Ladeoperation, wobei die Anzeige-und-Ladeoperation umfaßt:
Erzeugung der Farbwerte, die das Bild darstellen, unter Verwendung der zuvor geladenen Musterdaten eines am höchsten aufgelösten Textur-Spezialfalls,
als Reaktion auf die für die Bildschirmpixel gespeicherten Texturkoordinaten, Identifizieren derjenigen der Musterdaten eines nächst höher aufgelösten Textur-Spezialfalls, die zur Erzeugung von wenigstens Teilen des höher aufgelösten Bildes erforderlich sind, und
Laden derjenigen der Musterdaten, für die identifiziert wurde, daß sie die Erzeugung zumindest von Teilen des Bildes mit der höheren Auflösung erfordern,
wobei die Anzeige- und Ladeoperation wiederholt durchgeführt wird, bis die Farbendwerte sämtlicher Pixel des Bildschirms unter Anwendung verschiedener der Musterdaten erzeugt sind.
8. Bilderzeugungsverfahren nach Anspruch 7, bei dem
die anfängliche Rasterisierungsoperation zusätzlich Intensitätskoeffizienten für jeweilige Pixel des Bildschirms erzeugt;
wobei das Verfahren zusätzlich die Speicherung der Intensitätskoeffizienten zusammen mit der Texturkennung und den Texturkoordinaten für jeweilige Pixel des Bildschirms umfaßt.
9. Bilderzeugungsverfahren nach Anspruch 7 oder 8, bei dem
das Verfahren zusätzlich die Bereitstellung eines Texturspeichers (130) mit einer pyramidalen Datenstruktur umfaßt, wobei die pyramidale Datenstruktur Schichten umfaßt, in denen jeweils die Musterdaten gespeichert werden, die einen unterschiedlichen Fall der Textur-Spezialfälle darstellen; und
wobei das Laden der jeweiligen Musterdaten die Speicherung der Musterdaten in einer anderen der Schichten der pyramidalen Datenstruktur des Texturspeichers umfaßt.
10. Bilderzeugungsverfahren nach einem der Ansprüche 7 -9, bei dem
die Musterdaten zu den Texturpixeln gehören, die in rechteckigen Fliesen aneinandergereiht sind;
wobei das Verfahren zusätzlich das Bereitstellen einer Fliesen-Ladeliste (136) umfaßt, wobei die Fliesen-Ladeliste einen Eintrag für jede der Fliesen umfaßt; und wobei
das Identifizieren derjenigen der Musterdaten für den nächst höher aufgelösten Textur-Spezialfall umfaßt:
Erfassen derjenigen der Fliesen, die diejenigen der Texturpixel umfassen, deren Musterdaten in dem am letzten durchgeführten Erzeugungsschritt zur Erzeugung der Farbwerte des mehr als einen benachbarten Pixels des Bildschirms verwendet wurden, und
Einstellen des Eintrags auf einen Ladezustand in der Fliesen-Ladeliste für jede der Fliesen, die in dem nächst höher aufgelösten Textur-Spezialfall in einer Position, entsprechend denjenigen der Texturpixel, deren Musterdaten zur Erzeugung der Farbwerte des mehr als einen benachbarten Pixels des Bildschirms verwendet wurden, angeordnet sind, wobei der Ladezustand anzeigt, daß die Musterdaten derjenigen Fliese der Fliesen des nächst höher aufgelösten Textur-Spezialfalls zur Erzeugung des Bildes mit der höheren Auflösung erforderlich sind.
11. Bilderzeugungsverfahren nach Anspruch 10, bei dem das Laden der als erforderlich identifizierten Musterdaten umfaßt:
Prüfen der Fliesen-Ladeliste (136) zur Identifizierung der Einträge, die auf den Ladestatus eingestellt sind;
Laden der Musterdaten der Fliesen, deren Einträge in der Fliesen-Ladeliste als auf den Ladestatus eingestellt identifiziert sind; und
Änderung der Einträge in der Fliesen-Ladeliste für die Fliesen, deren Musterdaten in dem Ladeschritt von dem Ladestatus auf einen geladenen Zustand geladen wurden, wobei der Ladestatus anzeigt, daß die Musterdaten der Fliesen geladen wurden.
12. Bildabbildungsverfahren nach Anspruch 10 oder 11, bei dem
das Verfahren zusätzlich die Bereitstellung einer Bild-Zugriffstabelle (142) für jede der Fliesen, deren Musterdaten geladen wurden, umfaßt, wobei die Bild-Zugriffstabelle einen Eintrag für jedes der Texturpixel der Fliesen einschließt, wobei der Eintrag auf einen ersten Status initialisiert wird; und
das Erfassen dieser betreffenden Fliesen einschließt:
Prüfen, ob der Bild-Zugriffstabelle-Eintrag für jedes der Texturpixels, deren Musterdaten in dem am letzten durchgeführten Schritt zur Erzeugung der Farbwerte verwendet wurden, sich in einem zweiten Zustand befindet, wobei der zweite Zustand anzeigt, daß die Musterdaten des einen der Texturpixel zur Erzeugung der Farbwerte des mehr als einen nächstgelegenen Pixels des Bildschirms verwendet wurden, und
Einstellung des Bild-Zugriffstabelle-Eintrags für das eine der Texturpixel auf den zweiten Status nach Durchführung des Testschritts.
DE69804126T 1997-10-31 1998-10-30 Verfahren und einrichtung zur dreidimensionalen graphikdarstellung Expired - Fee Related DE69804126T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP31587797 1997-10-31
JP6466598A JPH11195132A (ja) 1997-10-31 1998-02-28 テクスチャマッピング用バッファ、3次元グラフィクス処理装置、3次元グラフィクス処理システム、3次元グラフィクス処理方法および処理プログラムが記憶された記憶媒体
PCT/US1998/023163 WO1999023610A1 (en) 1997-10-31 1998-10-30 Three-dimensional graphics rendering apparatus and method

Publications (2)

Publication Number Publication Date
DE69804126D1 DE69804126D1 (de) 2002-04-11
DE69804126T2 true DE69804126T2 (de) 2002-09-05

Family

ID=26405763

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69804126T Expired - Fee Related DE69804126T2 (de) 1997-10-31 1998-10-30 Verfahren und einrichtung zur dreidimensionalen graphikdarstellung

Country Status (7)

Country Link
US (1) US6184888B1 (de)
EP (1) EP1025549B1 (de)
JP (1) JPH11195132A (de)
KR (2) KR20010031686A (de)
CN (1) CN1252648C (de)
DE (1) DE69804126T2 (de)
WO (1) WO1999023610A1 (de)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000004496A1 (en) * 1998-07-17 2000-01-27 Intergraph Corporation Graphics processor with texture memory allocation system
JP2000293705A (ja) * 1999-04-01 2000-10-20 Mitsubishi Electric Corp 3次元グラフィックス用描画装置、3次元グラフィックス用描画方法および3次元グラフィックス用描画プログラムを記録した媒体
US6473090B1 (en) * 1999-11-03 2002-10-29 Evans & Sutherland Computer Corporation MIP mapping based on material properties
US6396503B1 (en) * 1999-12-31 2002-05-28 Hewlett-Packard Company Dynamic texture loading based on texture tile visibility
US6618053B1 (en) 2000-01-10 2003-09-09 Vicarious Visions, Inc. Asynchronous multilevel texture pipeline
DE60120474T2 (de) * 2000-12-18 2007-01-04 Lightspace Technologies, Inc. Rasterung von dreidimensionalen bildern
JP2003016375A (ja) * 2001-06-29 2003-01-17 Matsushita Electric Works Ltd 対話型シミュレーションシステム、そのプログラム、シミュレーション支援方法
KR100420857B1 (ko) * 2001-07-12 2004-03-02 학교법인연세대학교 3차원 렌더링 프로세서의 픽셀 레스터라이재이션 처리방법 및 장치
JP2003076583A (ja) * 2001-09-04 2003-03-14 Fujitsu Ltd レンダリング計算処理状況監視プログラムおよび記憶媒体、装置、方法
KR20030039142A (ko) * 2001-11-12 2003-05-17 이한종 삼차원 디스플레이 장치
JP4083684B2 (ja) * 2002-01-23 2008-04-30 道彦 庄司 画像処理システムおよび画像処理装置
US7646927B2 (en) * 2002-09-19 2010-01-12 Ricoh Company, Ltd. Image processing and display scheme for rendering an image at high speed
JP2004213641A (ja) * 2002-12-20 2004-07-29 Sony Computer Entertainment Inc 画像処理装置、画像処理方法、情報処理装置、情報処理システム、半導体デバイス、コンピュータプログラム
US8872833B2 (en) 2003-09-15 2014-10-28 Nvidia Corporation Integrated circuit configuration system and method
WO2005094466A2 (en) * 2004-03-23 2005-10-13 Google Inc. Generating and serving tiles in a digital mapping system
US7091982B2 (en) * 2004-05-14 2006-08-15 Nvidia Corporation Low power programmable processor
KR100469820B1 (ko) 2004-06-29 2005-02-03 엔에이치엔(주) 화면 갱신 방법 및 그 시스템
US7684598B2 (en) * 2004-07-16 2010-03-23 Siemens Aktiengesellschaft Method and apparatus for the loading and postprocessing of digital three-dimensional data
US8711156B1 (en) 2004-09-30 2014-04-29 Nvidia Corporation Method and system for remapping processing elements in a pipeline of a graphics processing unit
JP4284285B2 (ja) * 2005-02-24 2009-06-24 株式会社東芝 画像処理装置、画像処理方法および画像処理プログラム
US7280107B2 (en) 2005-06-29 2007-10-09 Microsoft Corporation Procedural graphics architectures and techniques
US8068117B2 (en) * 2005-06-30 2011-11-29 Microsoft Corporation Parallel texture synthesis by upsampling pixel coordinates
US7436412B2 (en) * 2005-08-24 2008-10-14 Qualcomm Incorporated Graphics engine with efficient interpolation
KR100714672B1 (ko) * 2005-11-09 2007-05-07 삼성전자주식회사 스플렛을 이용한 깊이 기반의 영상 렌더링 방법 및 그방법을 채용한 시스템
US8209201B1 (en) 2005-12-08 2012-06-26 Hewlett-Packard Development Company, L.P. System and method for correlating objects
US9123173B2 (en) 2005-12-15 2015-09-01 Nvidia Corporation Method for rasterizing non-rectangular tile groups in a raster stage of a graphics pipeline
US8390645B1 (en) 2005-12-19 2013-03-05 Nvidia Corporation Method and system for rendering connecting antialiased line segments
US9117309B1 (en) 2005-12-19 2015-08-25 Nvidia Corporation Method and system for rendering polygons with a bounding box in a graphics processor unit
US8781845B1 (en) 2006-03-27 2014-07-15 Hewlett-Packard Development Company, L.P. Service configuration management system and method
US8928676B2 (en) 2006-06-23 2015-01-06 Nvidia Corporation Method for parallel fine rasterization in a raster stage of a graphics pipeline
US9070213B2 (en) * 2006-07-26 2015-06-30 Nvidia Corporation Tile based precision rasterization in a graphics pipeline
US8085264B1 (en) 2006-07-26 2011-12-27 Nvidia Corporation Tile output using multiple queue output buffering in a raster stage
US8237738B1 (en) 2006-11-02 2012-08-07 Nvidia Corporation Smooth rasterization of polygonal graphics primitives
US8059124B2 (en) 2006-11-28 2011-11-15 Adobe Systems Incorporated Temporary non-tiled rendering of 3D objects
US8300050B2 (en) * 2006-11-28 2012-10-30 Adobe Systems Incorporated Temporary low resolution rendering of 3D objects
CN101617354A (zh) 2006-12-12 2009-12-30 埃文斯和萨瑟兰计算机公司 用于校准单个调制器投影仪中的rgb光的系统和方法
US8823705B2 (en) * 2007-04-11 2014-09-02 Panasonic Corporation Image generating apparatus and image generating method for generating images by rendering a polygon
US20090015585A1 (en) * 2007-05-22 2009-01-15 Mark Klusza Raster image data association with a three dimensional model
JP4980153B2 (ja) * 2007-06-21 2012-07-18 株式会社ソニー・コンピュータエンタテインメント 画像表示装置および画像表示方法
KR101345379B1 (ko) * 2007-06-28 2014-01-22 삼성전자주식회사 3차원 그래픽스 데이터 렌더링 방법 및 장치
US7925100B2 (en) * 2007-07-31 2011-04-12 Microsoft Corporation Tiled packaging of vector image data
CN101178816B (zh) * 2007-12-07 2010-06-16 桂林电子科技大学 基于面采样的体绘制可视化方法
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8289333B2 (en) 2008-03-04 2012-10-16 Apple Inc. Multi-context graphics processing
US9418171B2 (en) * 2008-03-04 2016-08-16 Apple Inc. Acceleration of rendering of web-based content
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
KR100888155B1 (ko) * 2008-05-14 2009-03-10 팅크웨어(주) 텍스처 맵핑을 이용하여 3차원 지도를 표시하는 시스템 및방법
US8358317B2 (en) 2008-05-23 2013-01-22 Evans & Sutherland Computer Corporation System and method for displaying a planar image on a curved surface
US8702248B1 (en) 2008-06-11 2014-04-22 Evans & Sutherland Computer Corporation Projection method for reducing interpixel gaps on a viewing surface
JP5583127B2 (ja) * 2008-09-25 2014-09-03 コーニンクレッカ フィリップス エヌ ヴェ 三次元画像データ処理
US8077378B1 (en) 2008-11-12 2011-12-13 Evans & Sutherland Computer Corporation Calibration system and method for light modulation device
US8385669B2 (en) * 2009-03-04 2013-02-26 Microsoft Corporation Scalable mutable tiled multi-resolution texture atlases
KR100927128B1 (ko) * 2009-04-30 2009-11-18 주식회사 넥서스칩스 타일 더티 테이블을 이용한 3d 그래픽 처리 장치 및 처리 방법
JP5482394B2 (ja) * 2009-05-13 2014-05-07 セイコーエプソン株式会社 画像処理方法および画像処理装置
US9330494B2 (en) * 2009-10-26 2016-05-03 Pictometry International Corp. Method for the automatic material classification and texture simulation for 3D models
CN101789133B (zh) * 2010-01-27 2011-09-14 深圳市五巨科技有限公司 一种在移动终端中实现连续动画效果的方法和装置
US9331869B2 (en) 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
GB201004675D0 (en) * 2010-03-19 2010-05-05 Imagination Tech Ltd Memory management system
US9171350B2 (en) 2010-10-28 2015-10-27 Nvidia Corporation Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up
US9641826B1 (en) 2011-10-06 2017-05-02 Evans & Sutherland Computer Corporation System and method for displaying distant 3-D stereo on a dome surface
US8243102B1 (en) 2011-10-12 2012-08-14 Google Inc. Derivative-based selection of zones for banded map display
WO2013055507A1 (en) * 2011-10-12 2013-04-18 Google Inc. Use of banding to optimize map rendering in a three-dimensional tilt view
US10674135B2 (en) 2012-10-17 2020-06-02 DotProduct LLC Handheld portable optical scanner and method of using
US9332243B2 (en) 2012-10-17 2016-05-03 DotProduct LLC Handheld portable optical scanner and method of using
US9214138B2 (en) * 2012-12-28 2015-12-15 Microsoft Technology Licensing, Llc Redundant pixel mitigation
US9135742B2 (en) 2012-12-28 2015-09-15 Microsoft Technology Licensing, Llc View direction determination
US9025868B2 (en) * 2013-02-27 2015-05-05 Sony Corporation Method and system for image processing to determine a region of interest
EP2987322A4 (de) * 2013-04-16 2016-12-21 DotProduct LLC Tragbarer optischer handscanner und verfahren zur verwendung
US9710894B2 (en) 2013-06-04 2017-07-18 Nvidia Corporation System and method for enhanced multi-sample anti-aliasing
CN103678631B (zh) * 2013-12-19 2016-10-05 华为技术有限公司 页面渲染方法及装置
KR102282189B1 (ko) 2014-07-02 2021-07-27 삼성전자 주식회사 밉맵 생성 방법 및 장치
US10410398B2 (en) * 2015-02-20 2019-09-10 Qualcomm Incorporated Systems and methods for reducing memory bandwidth using low quality tiles
US10244241B2 (en) * 2015-03-22 2019-03-26 Innova Plex, Inc. Pyramidal file structure and method of use thereof
US9704217B2 (en) 2015-04-20 2017-07-11 Intel Corporation Apparatus and method for non-uniform frame buffer rasterization
US9600909B2 (en) * 2015-07-20 2017-03-21 Apple Inc. Processed texel cache
EP3437072B1 (de) * 2016-03-28 2020-10-14 Sony Corporation System und verfahren zur lückenlosen darstellung von punkten
WO2018123801A1 (ja) * 2016-12-28 2018-07-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元モデル配信方法、三次元モデル受信方法、三次元モデル配信装置及び三次元モデル受信装置
EP3435670A1 (de) * 2017-07-25 2019-01-30 Koninklijke Philips N.V. Vorrichtung und verfahren zur erzeugung einer unterteilten dreidimensionalen bilddarstellung einer szene
US10089796B1 (en) * 2017-11-01 2018-10-02 Google Llc High quality layered depth image texture rasterization
US11270474B2 (en) * 2018-12-05 2022-03-08 Sony Corporation Screen-tone look generator
US11481929B2 (en) * 2020-03-16 2022-10-25 Meta Platforms Technologies, Llc System and method for compressing and decompressing images using block-based compression format
US11523055B1 (en) * 2020-05-29 2022-12-06 Humane, Inc. Super resolution/super field of view (FOV) digital photography
CN114445522A (zh) * 2020-10-16 2022-05-06 华为技术有限公司 笔刷效果图生成方法、图像编辑方法、设备和存储介质
CN112488901B (zh) * 2020-12-18 2024-05-07 创意信息技术股份有限公司 一种地理信息系统无感加载方法、装置、终端及存储介质
US12064688B2 (en) * 2020-12-30 2024-08-20 Activision Publishing, Inc. Methods and systems for determining decal projections intersecting spatial units in a frame of a game space

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2684829A1 (fr) * 1991-12-04 1993-06-11 Philips Electronique Lab Methodes de synthese de signaux de texture et de transmission et/ou stockage de tels signaux, ainsi que dispositifs et systemes pour leur mise en óoeuvre.
US5438654A (en) * 1993-07-09 1995-08-01 Silicon Graphics, Inc. System and method for sharpening texture imagery in computer generated interactive graphics
US5490240A (en) * 1993-07-09 1996-02-06 Silicon Graphics, Inc. System and method of generating interactive computer graphic images incorporating three dimensional textures
US5596687A (en) * 1994-07-29 1997-01-21 David Sarnoff Research Center, Inc. Apparatus and method for addressing pixel values within an image pyramid using a recursive technique
US5760783A (en) * 1995-11-06 1998-06-02 Silicon Graphics, Inc. Method and system for providing texture using a selected portion of a texture map

Also Published As

Publication number Publication date
CN1252648C (zh) 2006-04-19
EP1025549A1 (de) 2000-08-09
KR20010031686A (ko) 2001-04-16
KR20010031608A (ko) 2001-04-16
US6184888B1 (en) 2001-02-06
WO1999023610A1 (en) 1999-05-14
EP1025549B1 (de) 2002-03-06
CN1278350A (zh) 2000-12-27
KR100516704B1 (ko) 2005-09-22
JPH11195132A (ja) 1999-07-21
DE69804126D1 (de) 2002-04-11

Similar Documents

Publication Publication Date Title
DE69804126T2 (de) Verfahren und einrichtung zur dreidimensionalen graphikdarstellung
DE69130123T2 (de) Anzeigegerät und Verfahren zum Betreiben eines solchen Geräts
DE3854543T2 (de) Prioritätsverwaltung eines Tiefendatenpuffers für Echtzeitrechnersysteme zur Bilderzeugung.
DE68928391T2 (de) Bildgenerator
DE69128731T2 (de) Schaltungsanordnung für die Konvertierung von pyramidenförmigen Texturkoordinaten und diese enthaltendes Anzeigegerät
DE69130545T2 (de) System zur Erzeugung einer texturierten Perspektivsicht
DE69331031T2 (de) Vorrichtung zur parallelen Bilderzeugung
DE69224499T2 (de) Dreidimensionale graphische Verarbeitung
DE60120474T2 (de) Rasterung von dreidimensionalen bildern
DE60033250T2 (de) System und Verfahren zur Darstellung mit Strahlverfolgung
DE60311359T2 (de) Vorrichtungen und Verfahren zur kontrollierbaren Texturabtastung
DE3686233T2 (de) Videosignalverarbeitung.
DE69908966T2 (de) Schattierung von 3-dimensionalen rechner-erzeugten bildern
DE112007002991B4 (de) Computergraphikschattenvolumen unter Verwendung von hierarchischem Okklusions-Culling
DE69431329T2 (de) Verfahren zur Erzeugung von Bilddaten
DE69126611T2 (de) Bilderzeugungsgerät
DE69830767T2 (de) Verfahren und Vorrichtung zum Zusammensetzen geschichteter synthetischer graphischer Filter
DE68927471T2 (de) Verfahren zur Schattierung eines graphischen Bildes
DE69631718T2 (de) Verfahren und Gerät zur leistungsfähigen Graphikdarstellung dreidimensionaler Szenen
DE3022454A1 (de) Optisches abbildesystem mit computererzeugtem bild fuer einen bodenfesten flugsimulator
DE69120407T2 (de) Bildgenerator
DE69818888T2 (de) Gerät und Verfahren zur Bildverarbeitung
DE102018125472B4 (de) Grafikprozessor, der Abtastungs-basiertes Rendering durchführt, und Verfahren zum Betreiben desselben
DE102015113240A1 (de) System, verfahren und computerprogrammprodukt für schattierung unter verwendung eines dynamischen objektraumgitters
DE69722139T2 (de) Dreidimensionale abbildung von bildtexturen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8339 Ceased/non-payment of the annual fee