DE69630261T2 - Verfahren und Vorrichtung zum Darstellen und Abbilden von Bildern - Google Patents

Verfahren und Vorrichtung zum Darstellen und Abbilden von Bildern Download PDF

Info

Publication number
DE69630261T2
DE69630261T2 DE69630261T DE69630261T DE69630261T2 DE 69630261 T2 DE69630261 T2 DE 69630261T2 DE 69630261 T DE69630261 T DE 69630261T DE 69630261 T DE69630261 T DE 69630261T DE 69630261 T2 DE69630261 T2 DE 69630261T2
Authority
DE
Germany
Prior art keywords
point
polygon
section
pixels
representation
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
DE69630261T
Other languages
English (en)
Other versions
DE69630261D1 (de
Inventor
Tsutomu Moriguchi-shi Hashimoto
Makoto Suita-shi Hirai
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Application granted granted Critical
Publication of DE69630261D1 publication Critical patent/DE69630261D1/de
Publication of DE69630261T2 publication Critical patent/DE69630261T2/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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft eine Wiedergabevorrichtung und ein Wiedergabeverfahren für eine Computergrafik-Verarbeitung (CG). Genauer gesagt, betrifft die vorliegende Erfindung eine Abbildungsvorrichtung und ein Abbildungsverfahren, um eine Textur-Abbildung auszuführen, um hochqualitative Bilder zu erzeugen. Die vorliegende Erfindung kann auch auf verschiedene Berechnungen im Zusammenhang mit Computergrafiken angewendet werden, beispielsweise eine Beleuchtungsberechnung, eine Opazitäts- bzw. Lichtundurchlässigkeitsberechnung und eine Bump- bzw. Unebenheitsberechnung.
  • 2. Beschreibung des verwandten Standes der Technik
  • In den letzten Jahren ist auf dem Gebiet der Computergrafik und von Spielgeräten eine Polygondarstellungsverarbeitung, die eine Textur- bzw. Oberflächenstruktur-Abbildung verwendet, oftmals eingesetzt worden. Im Allgemeinen werden bei einer Textur-Abbildungstechnik, die inverse Abbildung (inverse mapping) genannt wird, Koordinaten (u, v) eines Textur- bzw. Oberflächenmusters aus entsprechenden Bildschirm-Koordinaten (Xs, Ys) berechnet und wird die Farbe bei der Stelle der berechneten Koordinaten (der entsprechenden Stelle) der Textur auf die Bildschirm-Koordinaten (Xs, Ys) reflektiert bzw. abgebildet.
  • In vielen Fällen wird die vorgenannte Berechnung der entsprechenden Stelle mit Hilfe eines inkrementellen Algorithmus realisiert (bei dem Berechnungsresultate in dem vorhergehenden Schritt in jedem Schritt inkrementiert werden), weil durch Verwendung eines inkrementellen Algorithmus eine Verarbeitung schnell ist und die Schaltungskonfiguration vereinfacht werden kann (G. Wollberg, "Digital Image Warping", S. 189–204).
  • Die 37 und 38 zeigen eine Textur-Abbildungsverarbeitung, die einen inkrementellen Algorithmus verwendet. Es sei angenommen, dass die Beziehung, die durch die Gleichungen 1 und 2 nachfolgend repräsentiert wird, zwischen Bildschirm-Koordinaten (x, y) einer Stelle innerhalb eines Polygons und Textur-Koordinaten (u, v) einer Stelle auf einer Textur eingerichtet seien. Nachfolgend wird die Berechnung zum Bestimmen der Textur-Koordinaten (u, v) aus den Gleichungen 1 und 2 als die Berechnung einer entsprechenden Stelle bezeichnet. u = F(x, y) = a × x + b × y + c (1) v = G(x, y) = d × x + e × y + f (2)
  • In der 37 repräsentiert jedes Quadrat ein Pixel eines Bildschirms. Das Dreieck repräsentiert ein Polygon bzw. Vieleck, das auf den Bildschirm projiziert wird. Die Punkte 1401, 1402 und 1403 repräsentieren Eckpunkte dieses Polygons, das heißt den nullten Eckpunkt, den ersten Eckpunkt bzw. den zweiten Eckpunkt, deren Bildschirm-Koordinaten und entsprechende Textur-Koordinaten (8, 0, 0, 0), (0, 6, 0, 16) bzw. (11, 9, 16, 16) betragen. Die Linien 1404, 1405 und 1406 repräsentieren eine Seite 01, die den nullten Eckpunkt 1401 und den ersten Eckpunkt 1402 verbindet, eine Seite 12, die den Eckpunkt 1402 und den zweiten Eckpunkt 1403 verbindet, und eine Seite 20, welche den zweiten Eckpunkt 1403 und den nullten Eckpunkt 1401 verbindet. Die Punkte 1002, 1004 und 1006 repräsentieren Darstellungspunkte auf dem Bildschirm, die unter Verwendung eines inkrementellen Algorithmus berechnet werden. Die Darstellungspunkte werden im Innenbereich des Polygons gelegt, das auf den Bildschirm projiziert wird, wenn das Polygon abgebildet bzw. dargestellt wird. Ein Pixelwert, der für jedes Pixel gegeben ist, wird auf der Grundlage der Koordinaten eines entsprechenden Darstellungspunktes bestimmt. Ein inkrementeller Algorithmus wird oftmals dazu verwendet, um den Darstellungspunkt zu bestimmen. Bei dem inkrementellen Algorithmus wird der Darstellungspunkt unter Verwendung eines Punktes auf einer Kante (einem Rand) des Polygons berechnet. Insbesondere bei einer Abbildungsvorrichtung wird die Abbildung durch Bestimmen eines entsprechenden Punktes vorgenommen, der jedem Darstellungspunkt auf einem Abbildungsbild (beispielsweise einem Texturbild) entspricht, und durch Reflektieren bzw. Abbilden des Pixelwerts des entsprechenden Punktes auf das Pixel auf dem Bildschirm. Der entsprechende Punkt wird mit Hilfe der entsprechenden Punktberechnung bestimmt.
  • Nachfolgend wird die Berechnung eines entsprechenden Punktes im Detail beschrieben werden. In der 38 repräsentiert jedes Quadrat ein Pixel des Bildschirms. Die 38 ist eine teilweise vergrößerte Ansicht der 37, welche den Abschnitt, der die Seite 1404 enthält, in einer vergrößerten Darstellung zeigt. Die Punkte 1002, 1004 und 1006 bezeichnen in der 3 dieselben Darstellungspunkte wie diejenigen, die in der 37 gezeigt sind. Eine Kante 1001 des Polygons, das mit Hilfe der Textur-Abbildung abgebildet werden soll, ist ein Abschnitt der Seite 1404 des Polygons. Das Polygon befindet sich auf der rechten Seite der Kante 1001. Der Punkt 1002 ist der Darstellungspunkt auf der Polygonkante, der in dem vorhergehenden Schritt des inkrementellen Algorithmus erhalten wird, und der Pixelwert des Kantendarstellungspunktes 1002 wird auf ein Pixel 1003 reflektiert. In gleicher Weise ist der Punkt 1004 der Darstellungspunkt auf der Polygonkante, der in dem aktuellen Schritt erhalten wird, und wird der Pixelwert des Kantendarstellungspunktes 1004 auf ein Pixel 1005 reflektiert.
  • Die Darstellungspunkte auf der Polygonkante und die entsprechenden Punkte, die den Darstellungspunkten entsprechen, werden durch sukzessives Verschieben einer Abtastzeile berechnet. Nach Beendigung des Abtastens des gesamten Polygons durch die Abtastzeile wird die Verarbeitung für die Polygonkante beendet. Dabei ist die Abtastzeile eine horizontale Zeile auf dem Bildschirm und wird das gesamte Polygon durch Verschieben der Abtastzeile von oben nach unten abgetastet. Mit anderen Worten, die Abtastung des Polygons ist gleichbedeutend mit dem sequenziellen Addieren von 1 zu dem y-Wert der Abtastzeile.
  • Wenn die Bildschirm-Koordinaten des Kantendarstellungspunktes 1002 und die Textur-Koordinaten des entsprechenden Punktes (x0, y0, u0, v0) betragen, und die Bildschirm-Koordinaten des Kantendarstellungspunktes 1004 und die Textur-Koordinaten des entsprechenden Punktes (x1, y1, u1, v1) betragen, können diese durch die nachfolgende Gleichung 3 repräsentiert werden: (x1, y1, u1, v1) = ( x0 + dx/dy, y0 + 1, u0 + du/dy, v0 + dv/dy) (3)
  • Die Gleichung 4 nachfolgend ist ein allgemeiner Ausdruck für die Berechnung eines entsprechenden Punktes für die Textur-Abbildung in Bezug auf die Kante. Die tiefgestellten Zahlen in der Gleichung repräsentieren die Nummer der Abtastzeile. (xn + dx/dy, yn + 1, un + du/dy, vn + dv/dy) (4)(aus den Gleichungen 1 und 2 können u und v nach y abgeleitet werden)
  • Die Koordinaten der Darstellungspunkte auf der Polygonkante (die Bildschirm-Koordinaten) und die Koordinaten der entsprechenden Punkte (die Textur-Koordinaten) können dadurch berechnet werden, dass die Verarbeitung, die durch die Gleichung 4 repräsentiert wird, für die Punkte auf der Polygonkante von deren Beginn bis zu deren Ende ausgeführt wird.
  • In der vorgenannten Gleichung sind die Parameter (DDA-Parameter), die für den inkrementellen Algorithmus benötigt werden, dx/dy, du/dy, dv/dy, die repräsentiert werden durch: dx/dy = (0 – 8)/(6 – 0) = –8/6 du/dy = (0 – 0)/(6 – 0) = 0/6 dv/dy = (16 – 0)/(6 – 0) = 16/6 (5)
  • Die Bildschirm-Koordinaten und die Textur-Koordinaten für Punkte entlang einer Polygonkante, die in der 37 gezeigt ist, können wie folgt berechnet werden. In diesem Fall wird die Seite 1404 verwendet.
  • Figure 00050001
  • Die Berechnung eines entsprechenden Punktes für Punkte auf dem Polygonbereich (innerhalb des Polygons) wird nun beschrieben werden. Der Punkt 1004 ist ein Punkt auf dem Polygonbereich (nachfolgend als Bereichspunkt bezeichnet), der in dem vorherigen Schritt erhalten wird, und der Pixelwert des Bereichspunktes 1004 wird auf das Pixel 1005 reflektiert. Der Punkt 1006 ist ein Bereichspunkt auf dem Polygonbereich, der in dem aktuellen Schritt erhalten wird, und der Pixelwert des Bereichspunktes 1006 wird auf ein Pixel 1007 reflektiert. Die Polygon-Bereichspunkte beinhalten die Polygon-Kantenpunkte und somit ist der Polygon-Bereichspunkt 1004 derselbe wie der Polygon-Kantenpunkt 1004.
  • Die Darstellungspunkte auf dem Polygonbereich und die entsprechenden Punkte werden dadurch berechnet, dass sequenziell abzubildende Pixel (nachfolgend als Darstellungspixel bezeichnet) vertauscht werden. Nach Beendigung der Abbildung für den gesamten Polygonbereich wird die Verarbeitung für den Polygonbereich beendet. In der nachfolgenden Beschreibung werden die Darstellungspixel von links nach rechts geändert, was gleichbedeutend ist mit einem sequenziellen Addieren von 1 zu der Bildschirm-Koordinate x.
  • Wenn die Bildschirm-Koordinaten des Bereichspunktes 1004 und die Textur-Koordinaten des entsprechenden Punktes (x1, y1, u1, v1) betragen und die Bildschirm-Koordinaten des Bereichspunktes 1006 und die Textur-Koordinaten des entsprechenden Punktes (x2, y2, u2, v2) betragen, können diese durch die nachfolgende Gleichung 6 repräsentiert werden. (x2, y2, u2, v2) = (x1 + 1, y1, u1 + δu/δx, v1 + δv/δx) (6)
  • Die nachfolgende Gleichung 7 ist ein allgemeiner Ausdruck für die Berechnung eines entsprechenden Punktes für die Textur-Abbildung in Bezug auf den Bereich. Die tiefgestellten Zahlen in der Gleichung repräsentieren die Nummer des Darstellungspixels. xn+1, yn+1, un+1, vn+1 (xn + 1, yn, un + δu/δx, vn + δv/δx) (7) (aus den Gleichungen 1 und 2 können u und v nach x abgeleitet werden)
  • Die Koordinaten der Darstellungspunkte (die Bildschirm-Koordinaten) und die Koordinaten der entsprechenden Punkte (die Textur-Koordinaten) innerhalb des Polygons können dadurch berechnet werden, dass die Verarbeitung, die durch die Gleichung 7 repräsentiert wird, für die Punkte von dem Beginn bis zum Ende des Polygonbereichs ausgeführt wird.
  • In der vorgenannten Gleichung sind die Parameter (DDA-Parameter), die für den inkrementellen Algorithmus benötigt werden, δu/δx und δv/δx, die repräsentiert sind durch: δu/δx = –{(6 – 0)(16 – 0) – (9 – 6)(0 – 0)}/{(0 – 8)(9 – 6) –(11 – 0)(6 – 0)} = 96/90 δv/δx = –{(6 – 0)(16 – 16) – (9 – 6)(16 – 0)}/((0 – 8)(9 – 6) –{11 – 0)(6 – 0)} = –48/90 (8)
  • Die Bildschirm-Koordinaten und die Textur-Koordinaten für den in der 37 gezeigten Polygonbereich können wie folgt berechnet werden. In diesem Fall wird der Bereich, welcher den Bereichspunkt 1004 beinhaltet, verwendet.
  • Figure 00070001
  • Die Berechnung der Bereichspunkte wird so lange fortgesetzt, bis die Abtastung die rechte Kante erreicht, wie in der 37 gezeigt.
  • Mit dem zuvor beschriebenen inkrementellen Algorithmus kann die Berechnung eines entsprechenden Punkte bei der Textur-Abbildung korrekt und mit hoher Geschwindigkeit vorgenommen werden. Das Texturbild wird unter Verwendung der so berechneten Textur-Koordinaten (u, v) abgeleitet und auf das Darstellungspixel reflektiert. Auf diese Weise wird die Textur-Abbildung realisiert. Im Allgemeinen entspricht jedes Darstellungspixel einem Punkt, der durch Weglassen der Dezimalstellen der Werte des berechneten Darstellungspunktes (u, v) erhalten wird. Beispielsweise, wie in der 38 gezeigt, reflektieren die Pixel 1003, 1005, 1007 Pixelwerte auf dem Texturbild, das unter Verwendung der Textur-Koordinaten (u0, v0), (u1, v1) bzw. (u2, v2) abgeleitet wird.
  • Auf diese Weise kann bei der Berechnung eines entsprechenden Punktes unter Verwendung eines inkrementellen Algorithmus, weil die Operation auf der Grundlage von Berechnungsergebnissen in dem vorherigen Schritt ausgeführt wird, eine Operation mit hoher Geschwindigkeit und mit einer einfachen Konfiguration realisiert werden. Dieses Berechnungsverfahren hat jedoch ein Problem mit der Erzeugung von Fehlern, was nachfolgend beschrieben wird.
  • Nachfolgend wird der Fall, dass die Berechnung eines entsprechenden Punktes für ein Darstellungspixel nicht korrekt ist, anhand der 39 beschrieben werden. Dieselben Elemente werden mit denselben Bezugszeichen wie in den 37 und 38 bezeichnet.
  • Wie in der 39 gezeigt, werden die Textur-Koordinaten (u2, v2) des Polygonbereichspunktes 1006 (x2, y2, u2, v2), die anhand des Polygon-Kantenpunktes 1002 (x0, y0, u0, v0) berechnet werden, durch die nachfolgende Gleichung 9 repräsentiert (die aus den Gleichungen 1, 2 und 6 erhalten wird). Das Darstellungspixel 1007 wird mit den Werten abgebildet, die auf der Grundlage der durch die Gleichung 9 repräsentierten Textur-Koordinaten erhalten werden. (u2, v2) = ( u1 + δu/δx, v1 + δv/δx) = (u0 + du/dy + δu/δx, v0 + dv/dy + δv/δx) = (u0 + (a × dx/dy + b) + a, v0 +(d×dx/dy + e) + d) = (u0 + a × (1 + dx/dy) + b, v0 + d×(1 + dx/dy) + e) (9)
  • Die Textur-Koordinaten des Darstellungspixels 1007 in Bezug auf das Darstellungspixel 1003 werden jedoch durch die nachfolgend Gleichung 10 repräsentiert. In dieser Beziehung wird der Polygon-Kantenpunkt 1002 (x0, y0, u0, v0) als die Koordinaten des Darstellungspixels 1003 verwendet. Ein Punkt 1111 (x', y', u', v') wird durch Verschieben des Polygon-Kantenpunktes 1002 um ein Pixel entlang der y-Achse erhalten und als die Koordinaten für das Darstellungspixel 1007 verwendet. (u2', v2') = (u0 + δu/δy, v0 + δn/δy) = (u0 + b, v0 + e) (10)
  • Wenn die Differenz zwischen dem wahren Wert und dem Wert, der mit Hilfe des inkrementellen Algorithmus erhalten wird, in Bezug auf den Wert u mit E bezeichnet wird, wird E durch die nachfolgende Gleichung 11 repräsentiert. E = u2' – u2 = –a×(1 + dx/dy) (11)
  • Deshalb liegt die Differenz E innerhalb des Bereichs, der in der nachfolgenden Gleichung 12 angezeigt ist: –a < E < a(∵ – 2 < dx/dy < 0 aus Figur 38)
  • Bevor der Fehler, der in der Gleichung 12 angezeigt wird, diskutiert wird, wird die Differenz zwischen dem Darstellungspunkt und dem Probenpunkt beschrieben werden. Der Probenpunkt wird als der Punkt definiert, der sich für jedes Pixel bei einer festen Position befindet. Beispielsweise kann der Mittelpunkt für jedes Pixel als der Probenpunkt definiert werden. Dies bedeutet, dass, falls die Pixel regelmäßig in Form eines Gitters angeordnet sind, die Probenpunkte der Pixel ebenfalls regelmäßig angeordnet sind. Andererseits sind die Darstellungspunkte nicht notwendigerweise regelmäßig angeordnet, weil diese durch die Positionsbeziehung zwischen dem darzustellenden Polygon (insbesondere der Polygonkante) und den Pixeln bestimmt werden.
  • In der 39 wird der Punkt in unmittelbarer Nähe zu dem Ursprung in jedem Pixel (die obere linke Ecke von jedem Pixel, das in der 39 gezeigt ist, mit 0 markiert) als der Probenpunkt von jedem Pixel verwendet. Abstände 1108, 1109 und 1110 zwischen den Darstellungspunkten (den Kantendarstellungspunkten 1002 und 1004 und den Bereichsdarstellungspunkten 1006, die unter Verwendung des inkrementellen Algorithmus berechnet werden) und den Probenpunkten der Pixel 1003; 1005 und 1007, welche diese Darstellungspunkte reflektieren, werden durch L1, L2 bzw. L3 bezeichnet. Die Abstände L2 und L3 sind dieselben wie aus der 7.
  • Fehler E1, E2 und E3 zwischen den Probenpunkten und den Darstellungspunkten, die unter Verwendung des inkrementellen Algorithmus berechnet wurden, in Bezug auf den Wert u werden durch die nachfolgende Gleichung 13 repräsentiert: E1 = L1 × δu/δx E2 = L2 × δu/δx E3 = L3 × δu/δx (13)
  • Die nachfolgende Gleichung 14 ist ein allgemeiner Ausdruck, um einen Fehler E' zu erhalten. E' = < δu/δx (∵ der Abstand zwischen dem Probenpunkt und dem < a Darstellungspunkt ist kleiner als 1) (14)
  • Somit rührt der Fehler bei der Berechnung des entsprechenden Punktes unter Verwendung des inkrementellen Algorithmus von der Differenz zwischen dem Probenpunkt von jedem Pixel und dem Darstellungspunkt her, der unter Verwendung des inkrementellen Algorithmus berechnet wird. Die 40A bis 40C zeigen ein Beispiel einer Verschlechterung in der Bildqualität auf Grund des Berechnungsfehlers, wobei gezeigt ist, dass eine Textur, die auf ein Polygon abgebildet wird, auf Grund des Berechnungsfehlers diskontinuierlich ist. Die 40A, 40B und 40C zeigen ein auf ein Polygon abzubildendes Texturbild, ein Bild, das mit Hilfe eines konventionellen Verfahrens erhalten wird, bzw. ein ideal abgebildetes Bild. Man kann anhand der 40A bis 40C beobachten, dass eine Verschlechterung in der Bildqualität auftritt, wenn die Abbildung mit Hilfe des herkömmlichen Verfahrens ausgeführt wird.
  • Die Fehler, die durch die Gleichungen 12 und 14 repräsentiert werden, sind verschieden, weil in der Gleichung 12 der Probenpunkt nicht für jedes Pixel fest ist. Nachfolgend wird der Fall von festen Probenpunkten für den Fehler bei der Berechnung des entsprechenden Punktes übernommen. Das heißt, die Gleichung 14 wird für den Fehler bei der Berechnung des entsprechenden Punktes verwendet.
  • In der vorstehenden Beschreibung wurde der Wert u verwendet. Der Wert v wird durch die Gleichung 2 repräsentiert, während die Farbe (R, G, B) und die Opazität bzw. Lichtundurchlässigkeit A durch die nachfolgenden Gleichungen 15 bzw. 16 repräsentiert werden. Wie man aus diesen Gleichungen ersehen kann, treten auch Berechnungsfehler ähnlich zu den vorstehend Beschriebenen bei den Berechnungen des Wertes v, der Farbe und der Lichtundurchlässigkeit auf. R = Fr(x, y) = (ar × x + br × y + cr) G = Fg(x, y) = (ag × x + bg × y + cg) B = Fb(x, y) = (ab × x + bb × y + cb) (15) A = Fa(x, y) = (aa × x + ba × y + ca) (16)
  • Mit anderen Worten, Fehler treten auf, wenn der inkrementelle Algorithmus für die Berechnungen der entsprechenden Punkte, der Farbe, der Lichtundurchlässigkeit und dergleichen zum Darstellen eines Polygons verwendet wird.
  • Fehler treten bei jeder beliebigen Berechnung eines entsprechenden Punktes unter Verwendung des inkrementellen Algorithmus auf, und zwar nicht nur in der Beziehung zwischen dem Polygon und der Textur, die durch die Gleichungen 1 und 2 repräsentiert wird. Jegliche Beziehungsgleichung des Polygons (x, y) mit der Textur (u, v), der Farbe (R, G, B) und der Licltundurchlässigkeit A kann für eine Textur-Abbildung unter Verwendung des inkrementellen Algorithmus verwendet werden, solange diese nach y abgeleitet und nach x partiell abgeleitet werden kann. Beispielsweise kann die Beziehung mit dem entsprechenden Punkt durch die Gleichungen 17 und 18 nachfolgend repräsentiert werden: u = F(x, y) = (a × x + bxy + c)/(g × x + h × y + i) (17) v = G(x, y) = (d × x + e × y + f)/(g × x + h × y + i) (18)(Koeffizienten a, b, c, d, e und f in den Gleichungen 17 und 18 sind verschieden zu den Koeffizienten in den Gleichungen 1 und 2.)
  • Berechnungsfehler ähnlich zu denjenigen, die vorstehend beschrieben wurden, treten dennoch bei Verwendung der Gleichungen 17 und 18 auf, was die Beziehung zwischen dem Polygon und der Textur anbelangt.
  • Es ist deshalb unmöglich, das Auftreten von Fehlern bei der Berechnung der entsprechenden Punkte, der Farbe, der Lichtundurchlässigkeit und dergleichen zu vermeiden, welche Beziehungsausdrücke auch immer verwendet werden.
  • Somit kann die Berechnung der entsprechenden Punkte, der Farbe, der Lichtundurchlässigkeit, von Unebenheiten, einer Verschiebung und dergleichen in Bezug zu den Darstellungspixeln nicht korrekt ausgeführt werden, wenn der herkömmliche inkrementelle Algorithmus verwendet wird.
  • Der Fehler bei der Berechnung des entsprechenden Punktes unter Verwendung des inkrementellen Algorithmus entsteht auf Grund der Verschiebung von maximal einem Pixel auf dem Bildschirm. Folglich kann der durch die Gleichungen 12 und 14 repräsentierte Fehler verkleinert werden, falls die Größe der Textur gleich oder kleiner ist als die Größe des Polygons. Wenn die Textur stark vergrößert wird, wird jedoch der Fehler im Verhältnis zu dem Vergrößerungsverhältnis größer, was die Verschlechterung in der Bildqualität erhöht, wenn ein Textur-Abbildungsbild erzeugt wird. Bei einer Vorrichtung für die Abbildung von Bildern in Echtzeit, die in Echtzeit abgespeichert werden, könnte das Vergrößerungsverhältnis der Textur zuvor nicht bestimmt werden. Folglich ist es nicht möglich, die Verschlechterung in der Bildqualität zu vermeiden, wenn ein beliebiges Polygon auf ein beliebiges Polygon abgebildet wird.
  • Deshalb ist es das Ziel der vorliegenden Erfindung, tatsächlich und theoretisch eine korrekte Berechnung eines entsprechenden Punktes durch tatsächliches Eliminieren des Fehlers, der in dem inkrementellen Algorithmus auftritt, zu realisieren. Eine Vorrichtung, um diese Berechnung zu realisieren, sollte im Aufbau einfach sein, mit hoher Geschwindigkeit betrieben werden und einfach herzustellen sein. Die Berechnung eines entsprechenden Punktes in korrekter Weise und mit hoher Geschwindigkeit bei der Abbildung ist wichtig, und zwar nicht nur für das Gebiet von Computergrafiken, sondern auch für Multimedia-Vorrichtungen, beispielsweise Heimspielgeräte und Karaoke-Systeme. Es gibt deshalb vielfältigste Anwendungen. Man erwartet auch, dass in der Zukunft die Nachfrage nach einer Abbildung in Echtzeit steigen wird.
  • Nachfolgend wird der Fehler, der in den Koordinaten (u, v) enthalten ist, wie mit der herkömmlichen DDA berechnet werden, anhand der 6 beschrieben werden.
  • In der 6 wird das Koordinatensystem für den Bildschirmbereich durch die durchgezogenen Linien angezeigt, während das Koordinatensystem für den Texturraum durch die gestrichelten Linien angezeigt ist. Die eingekreisten Zahlen repräsentieren die Skalen der u- und v-Achsen des Koordinatensystems für den Texturraum. Ein Bildschirm-Pixel 603 befindet sich bei den Bildschirm-Koordinaten (0, 2), während sich ein Textur-Pixel 604 bei den Textur-Koordinaten (2, 3) befindet.
  • Das Bezugszeichen 605 bezeichnet ein Polygon, das durch die Koordinaten (x, y, u, v) = (7, 0, 0, 0), (0, 5, 0, 4), (3, 9, 4, 4) und (10, 4, 4, 0) definiert ist.
  • Die Bezugszeichen 601-a, 601-b, 601-c, 601-d und 601-e bezeichnen DDAs in der Kantenrichtung, während die Bezugszeichen 602-a, 602-b, 602-c, 602-d, 602-e und 602-f DDAs in der Bereichsrichtung auf der Abtastzeile von y = 3 bezeichnen. Der Punkt, wo der Pfeil, der jedes DDA-Ende repräsentiert (der Punkt, der durch den Pfeil angezeigt wird), ist dort, wo jedes DDA in der Bereichsrichtung erzeugt (ein solcher Pfeil wird als DDA-Pfeil bezeichnet).
  • Bei der Textur-Abbildung werden die Pixel in dem Texturraum, die durch die Pfeile der DDAs 601 und 602 bezeichnet werden, auf die Pixel in dem Bildschirmraum, die durch die Pfeile der DDAs 601 und 602 angezeigt werden, reflektiert.
  • Genauer gesagt, werden die nachfolgenden Beziehungen für die Abtastzeile von y = 3 eingerichtet.
  • Figure 00150001
  • Bei dem Bildschirm-Pixel (6, 3) ist das Textur-Pixel, das für die Reflexion verwendet wird, (1, 0), (1, 1), (2, 1) oder (2, 0), was davon abhängt, welcher Punkt in dem Bildschirm-Pixel zum Ableiten der Textur verwendet wird. Welches dieser vier Textur-Pixel in der DDA erzeugt wird, hängt somit davon ab, welcher Punkt in dem Bildschirm-Pixel zum Ableiten der Textur verwendet wird. Dies bedeutet, dass das Bild, das durch die Textur-Abbildung erzeugt wird, in Abhängigkeit davon variiert, welcher Punkt in dem Bildschirm-Pixel zum Ableiten der Textur verwendet wird. Falls der Punkt in dem Bildschirm-Pixel, der zum Ableiten der Textur verwendet wird, unter den Pixeln in dem Polygon abweicht, was wahrscheinlich insbesondere in dem Bereich auftritt, verschlechtert sich die resultierende Bildqualität.
  • Das vorstehende Phänomen wird unter Verwendung der nachfolgenden Gleichungen beschrieben werden.
  • Bei der Textur-Abbildung werden die Textur-Koordinaten (u, y) und die Polygon-Koordinaten (x, y) durch die nachfolgenden Gleichungen 19 und 20 repräsentiert. u = f(x, y) (19) v = g(x, y) (20)
  • Die Gleichung 19 wird in der nachfolgenden Beschreibung verwendet. Die Beschreibung ist im Wesentlichen dieselbe, wenn die Gleichung 20 verwendet wird.
  • Wenn die Polygon-Koordinaten zum Ableiten der Textur (x0, y0) betragen und die Bildschirm-Koordinaten, die durch Quantisieren der Polygon-Koordinaten (x0, y0) erhalten werden, (X, Y) sind, werden die Polygon-Koordinaten durch die Gleichungen 21 und 22 nachfolgend ausgedrückt: x0 = X + ex (21) y0 = Y + ey (22)
  • Das heißt, der Wert u der Textur-Koordinate wird durch die nachfolgende Gleichung 23 ausgedrückt, welche anzeigt, dass die Textur-Koordinaten auf Grund des Quantisierungsfehlers variieren. u = f(X + ex, Y + ey) (23)
  • Somit ist bei dem herkömmlichen Verfahren die Verschlechterung der Bildqualität signifikant, weil die Position in dem Bildschirm-Pixel, bei welchem die Textur abgeleitet wird, nicht fest ist.
  • Es kann Bezug genommen werden auf SAKAS G. et al.: "Sampling and Anti-Aliasing of Discrete 3-D Volume Density Textures", Computers and Graphics, Band 16, Nr. 1, 1. Januar 1992, S. 121–134. Dieses Dokument schlägt zwei Vari anten eines neuen Bildraums, von vorne nach hinten, eine Konstantzeit-Filtertechnik zum Abtasten und zur Entzerrung von 3D-Dichte-Voxel-Feldern vor. Solche Voxel-Felder beschreiben die Verteilung einer skalaren Variablen (Dichte) in einem 3D-Raum und werden zum Visualisieren von verschiedenen Volumeneffekten (Dunst, Nebel, Rauch, Wolken etc.), zur Synthese von realistischen Bilden in optischen Flug-, Schiff- und Fahrsimulatoren und auch in verschiedenen Fällen einer wissenschaftlichen Visualisierung eingesetzt. Als Erstes widmet sich das Dokument Problemen, die auftreten können, wenn solche 3D-Texturen abgetastet (sampled) werden, insbesondere wenn ein Monte-Carlo-Punktabtastungsverfahren verwendet wird. "Abstandsabtastung" (distance sampling) und "Pyramidenvolumen-Abtastung" (pyramidal-volume sampling) werden dann diskutiert. Die erste Technik tastet die Textur entlang einer geraden Linie ab, die durch die Augenposition und die Mitte des Pixels definiert ist, während die Pyramidenvolumen-Technik das Volumen der Pyramide, die durch das Auge und die vier Pixel-Ecken festgelegt wird, ungefähr abtastet. Im Vergleich mit anderen existierenden Verfahren sollen beide Verfahren Verzerrungsfehler und eine Berechnungszeit in erheblichem Maße verringern.
  • Es kann auch Bezug genommen werden auf Heckbert P. "Survey of Texture Mapping", IEEE Computer Graphics and Applications, Band 6, Nr. 11, IEEE Press, 1986. Dieses Dokument gibt einen Überblick über die Grundlagen der Textur-Abbildung, von der man sagen kann, dass diese in zwei Themenkomplexe unterteilt ist: der geometrischen Abbildung, die eine Textur auf eine Oberfläche wirft; und der Filterung, die zum Vermeiden einer Bildverzerrung notwendig ist.
  • Bezuggenommen werden kann auch auf Haeberli P. et al. "Texture Mapping as a Fundamental Drawing Primitive", Fourth Eurographics Workshop on Rendering, Juni 1993. Dieses Dokument gibt einen Überblick über Anwendungen einer Textur-Abbildung, einschließlich einer Abbildung von einfachen Texturen, von Projektionstexturen und einem Bild-Drüberlegen (Image Warping). Textur- Abbildungstechniken zum Zeichnen von entzerrten Zeilen, Airbrushes und entzerrtem Text werden beschrieben. Eine Textur-Abbildung wird dann als grundlegende Grafik-Routine für eine Volumendarstellung, eine Umgebungsabbildung, eine Farbinterpolation, ein Konturenzeichnen und andere Anwendungen diskutiert.
  • Es ist eine Aufgabe der vorliegenden Erfindung, eine Darstellungsvorrichtung und ein Darstellungsverfahren bereitzustellen, die bzw. das in der Lage ist, hochqualitative Bilder mit hoher Geschwindigkeit bei der Darstellungsverarbeitung in Computergrafiken zu erzeugen, wobei insbesondere bei der Abbildungsverarbeitung die Berechnung eines entsprechenden Punktes in korrekter Weise mit einer einfachen Struktur und mit hoher Geschwindigkeit ausgeführt werden kann. Die Abbildungsprozedur beinhaltet nicht nur eine Textur-Abbildung, sondern auch eine Abbildung einer Farbe, einer Lichtundurchlässigkeit, von Unebenheiten (Bumps), einer Verschiebung und dergleichen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß einem Gesichtspunkt, wie dieser im Patentanspruch 1 niedergelegt ist, beinhaltet die Abbildungs- bzw. Darstellungsvorrichtung gemäß dieser Erfindung: eine Vorrichtung zum Durchführen einer Darstellungs- bzw. Wiedergabeberechnung, basierend auf einem Darstellungspunkt auf einem Polygon, projiziert auf eine Ebene mit einer Mehrzahl von Pixeln, und zum Ausgeben eines Berechnungsergebnisses; eine Vorrichtung zum Bestimmen einer Mehrzahl von Pixeln, auf welchen ein Textur-Pixel eines Texturbildes entsprechend dem Darstellungspunkt auf dem Polygon abgebildet ist; eine Vorrichtung zum Bestimmen eines Gewichtungskoeffizienten für jedes der Mehrzahl von Pixeln, basierend auf einer Position des Darstellungspunktes in Bezug auf die Mehrzahl von Pixeln; und eine Vorrichtung zum Zuweisen eines Pixelwertes, der gleich einem Verhältnis des Berechnungsergebnisses ist, zu jedem der Mehrzahl von Pixeln basierend auf jeweiligen Gewichtungskoeffizienten für die Mehrzahl von Pixeln.
  • Gemäß einem anderen Gesichtspunkt der Erfindung, wie in Patentanspruch 13 niedergelegt, wird ein Wiedergabe- bzw. Darstellungsverfahren bereitgestellt. Das Wiedergabe- bzw. Darstellungsverfahren gemäß dieser Erfindung umfasst die Schritte: Durchführen einer Wiedergabeberechnung basierend auf einem Darstellungspunkt auf einem Polygon, projiziert auf eine Ebene mit einer Mehrzahl von Pixeln, und Ausgeben eines Berechnungsergebnisses; Bestimmen einer Mehrzahl von Pixeln, die partiell durch ein Textur-Pixel auf ein Texturbild entsprechend dem Darstellungspunkt abgebildet werden; Bestimmen eines Gewichtungskoeffizienten für jedes der Mehrzahl von Pixeln, basierend auf einer Position des Darstellungspunkts relativ zu der Mehrzahl von Pixeln; und Zuweisen bzw. Zuordnen eines Verhältnisses bzw. Teils des Berechnungsergebnisses basierend auf jeweiligen Gewichtungskoeffizienten für die Mehrzahl von Pixeln zu jedem der Mehrzahl von Pixeln.
  • Somit wird gemäß der Wiedergabe- bzw. Darstellungsvorrichtung und der Abbildungsvorrichtung gemäß der vorliegenden Erfindung, um einen Fehler, der in einem Pixelwert, der basierend auf den Koordinaten eines Darstellungspunktes auf einer Polygonkante eines Polygons, das auf einen Bildschirm projiziert wird, erhalten wird, enthalten ist, zu korrigieren, eine Wiedergabe bzw. Darstellung oder eine Berechnung des entsprechenden Punktes zu einem Abbildungsbild basierend auf den Koordinaten eines Probenpunktes vorgenommen, der einem Pixel entspricht, welches den Darstellungspunkt enthält, um einen Pixelwert für jedes Pixel zu erhalten. Mit Hilfe dieses Verfahrens kann ein hochqualitatives Bild erzeugt werden.
  • Genauer gesagt, wird gemäß der ersten Ausführungsform der vorliegenden Erfindung der Kantendarstellungspunkt mit derselben y-Koordinate wie der Probenpunkt eines zuvor definierten Pixels mit Hilfe des Kantenerzeugungsabschnittes berechnet. Bei dieser Berechnung tritt der Berechnungsfehler, der durch die Gleichung 14 repräsentiert wird, zwischen dem definierten Probenpunkt und dem berechneten Kantendarstellungspunkt auf. Die Korrektur, die durch die nachfolgende Gleichung 24 repräsentiert ist, wird für den Berechnungsfehler gemäß der Gleichung 14 wie auch für den entsprechenden Punkt (Berechnung der Textur-Koordinaten (u, v)) von dem Korrekturabschnitt vorgenommen. u = u – L × δu/δx v = v – L × δv/δc (24)
  • L ist der Abstand, entlang der x-Achse, zwischen dem Probenpunkt und dem Kantendarstellungspunkt. Mit Hilfe dieser Korrektur kann eine Korrekturtextur bzw. Korrektur-Oberflächenstruktur entsprechend dem Punkt berechnet werden.
  • Dieselbe Verarbeitung kann für andere Parameter als die Textur-Koordinaten vorgenommen werden, beispielsweise für den Farbwert und die Lichtundurchlässigkeit (Gleichung 24).
  • Falls der Kantendarstellungspunkt, welcher den Anfangs- bzw. Startwert für Bereichsdarstellungspunkte darstellt, identisch ist zu dem Probenpunkt des Pixels, sind sämtliche der Bereichsdarstellungspunkte, die in dem Bereich enthalten sind, identisch zu den jeweiligen Probenpunkten der Pixel. Dies bedeutet, dass die Berechnung des entsprechenden Punktes für die Bereichsdarstellungspunkte korrekt ohne die Notwendigkeit einer Parameterkorrektur vorgenommen werden kann.
  • Somit kann durch Korrigieren von Parametern für die Berechnung des entsprechenden Punktes auf den Kantendarstellungspunkt die Berechnung des Korrekturpunktes für sämtliche der Pixel, die in dem Polygon enthalten sind, korrekt vorgenommen werden.
  • Der Wert L in Gleichung 24 zur Korrektur bezeichnet den Dezimalteil der x-Koordinate des Kantendarstellungspunktes, der mit Hilfe des Kantenerzeugungsabschnittes berechnet wird, welcher durch die nachfolgende Gleichung 25 repräsentiert werden kann: L = x – [x] (25)
  • Weil die Parameter δu/δx und δv/δx in dem Bereichserzeugungsabschnitt verwendet werden, brauchen diese nicht erneut berechnet werden. Die Genauigkeit der Multiplikation in der Gleichung 24 braucht nicht größer zu sein als die Genauigkeit des Dezimalteils der x-Koordinate des Kantenpunktes, der von dem Kantenerzeugungsabschnitt berechnet wird. Es reicht aus, falls dafür gesorgt ist, dass mehrere Bits für die Auflösung des Pixels, das erzeugt werden soll, zulässig sind. Deshalb ist die Konfiguration des Korrekturabschnittes vergleichsweise einfach und kann die resultierende Vorrichtung als Ganzes auf Grund der Verwendung des inkrementellen Algorithmus vereinfacht werden.
  • Weil die Korrektur mit Hilfe des Korrekturabschnittes mit einer Multiplikation und einer Addition (Gleichung 24) realisiert werden kann, ist die Verzögerung in der gesamten Verarbeitung auf Grund der Korrektur extrem klein. Außerdem können die Elemente der Vorrichtung, beispielsweise der Kantenerzeugungsabschnitt, der Korrekturabschnitt und die Bereichserzeugung, in einem Pipeline- bzw. Fließbandverfahren als Ganzes betrieben werden. Als Folge kann die Hochgeschwindigkeitsverarbeitung unter Verwendung des inkrementellen Algorithmus als Ganzes beibehalten werden.
  • Bei einer Anti-Aliasing-Verarbeitung (Entzerrung) für Kanten muss ein Punkt auf dem Bildschirm-Koordinatensystem, der sich außerhalb des Polygonbereichs befindet, abgetastet bzw. gesampelt werden. Ein solcher Punkt kann aus der Gleichung 24 unter Verwendung von L als dem Abstand zwischen dem abzutastenden Punkt und dem Abtast- bzw. Probenpunkt berechnet werden, der sich innerhalb des Polygonbereichs als Nächstes zu dem abzutastenden Punkt in der x-Achsenrichtung befindet, und unter Verwendung der Parameter für den Abtast- bzw. Probenpunkt.
  • Somit kann bei der ersten Ausführungsform der Textur-Abbildungsvorrichtung gemäß der vorliegenden Erfindung die Berechnung des entsprechenden Punktes korrekt vorgenommen werden, kann die Konfiguration vereinfacht werden und kann die Verarbeitung mit hoher Geschwindigkeit ausgeführt werden.
  • Gemäß der zweiten Ausführungsform der vorliegenden Erfindung wird der Abtast- bzw. Probenpunkt auf den Punkt in jedem Pixel, z. B. in unmittelbarer Nähe zu dem Ursprung, eingestellt. Mit dieser Konfiguration kann der Betriebsaufwand, der für die Korrektur benötigt wird, reduziert werden und kann die Schaltung vereinfacht werden.
  • Bei der vorgenannten ersten und zweiten Ausführungsform der Abbildungsvorrichtung wird der Fehler bei der Berechnung des entsprechenden Punktes durch Korrigieren der Parameter eliminiert, die für die Berechnung des resultierenden entsprechenden Punktes verwendet werden. Bei der dritten Ausführungsform gemäß der vorliegenden Erfindung wird ein Pixelwert, der von einem Textur- bzw. Oberflächenstrukturbild erhalten wird, einer Mehrzahl von Pixeln zugewiesen, und zwar in Abhängigkeit von der Fläche, die mit dem Textur-Pixel geteilt wird, und werden die zugewiesenen Pixelwerte in den jeweiligen Pixeln gespeichert. Bei dem inkrementellen Algorithmus verursacht die Verschiebung des berechneten Darstellungspunktes von dem Abtastpunkt von jedem Pixel eine Verschlechterung in der Bildqualität. Wenn ein Textur-Pixel, das unter Verwendung des berechneten Darstellungspunktes abgeleitet wird, in einen Bildspeicher geschrieben wird, beeinflusst das Textur-Pixel Idealerweise maximal vier Pixel in dem Bildspeicher. Gemäß der vorliegenden Erfindung wird der Pixelwert diesen vier Pixeln in dem Bildspeicher in Abhängigkeit von dem Verhältnis der Flächeninhalte zugeordnet, die von dem jeweiligen der vier Bildpixel mit dem Textur-Pixel geteilt bzw. gemeinsam genutzt werden. Mit dieser Konfiguration, wie auch bei den vorgenannten Konfigurationen, kann man hochqualitative Bilder mit verschiedenen Arten einer Abbildung (mapping) erzielen.
  • Bei der dritten Ausführungsform ist eine Korrektur von Parametern nicht erforderlich, aber der Zugriffsumfang auf den Bildspeicher erhöht sich. Weil jedoch das vorgenannte zugewiesene bzw. allozierte Speichern nur lokal ausgeführt wird, kann ein kleiner Zwischenpufferspeicher auf dem Weg zu dem Bildspeicher vorgesehen sein, um so die Erhöhung des Zugriffsumfangs abzudecken.
  • Gemäß der vierten Ausführungsform der Abbildungsvorrichtung gemäß der vorliegenden Erfindung werden Daten für eine Polygonkante mit Hilfe von zwei Kantenerzeugungsabschnitten berechnet und werden die Berechnungsergebnisse von dem Auswählabschnitt geeignet ausgewählt. Auf diese Weise können Bildschirm-Koordinaten und Textur- bzw. Oberflächenstruktur-Koordinaten für die Polygonkante Idealerweise berechnet werden.
  • Bei der vierten Ausführungsform, obwohl zwei Kantenerzeugungsabschnitte benötigt werden, kann die Korrektur nur durch die Auswahl zwischen zwei Berechnungsergebnissen erzielt werden. Weil der Auswählabschnitt mit Hilfe von Selektoren bzw. Wählern realisiert werden kann, ist im Vergleich zu der Korrekturverarbeitung ein hochschneller Betrieb möglich. Auch die Schaltung des Auswählabschnittes kann vereinfacht werden.
  • Der Betrieb von einem der beiden Kantenerzeugungsabschnitte kann unter der Steuerung des Auswählabschnittes abgebrochen werden. Dies verringert den Stromverbrauch der gesamten Vorrichtung.
  • Gemäß der fünften Ausführungsform der Abbildungsvorrichtung gemäß der vorliegenden Erfindung sind die beiden Kantenerzeugungsabschnitte in einen einzigen Abschnitt kombiniert. Dies ist durch geeignetes Auswählen von einem der Inkrementwerte für die Inkrementverarbeitung durch den Kantenerzeugungsabschnitt möglich. Dies vereinfacht die Schaltung.
  • Gemäß der sechsten Ausführungsform der Abbildungsvorrichtung gemäß der vorliegenden Erfindung ist der Inkrementwert, der von dem Betriebsabschnitt berechnet wird und von dem Kantenerzeugungsabschnitt verwendet wird, ein solcher Wert, der die Korrektur durch den Korrekturabschnitt vereinfachen kann. Mit anderen Worten, eine normale Inkrement-Verarbeitung wird von dem Kantenerzeugungsabschnitt vorgenommen und der resultierende Datenwert, der von dem Kantenerzeugungsabschnitt erzeugt wird, erfordert nur eine einfache Korrektur durch den Korrekturabschnitt.
  • Bei der sechsten Ausführungsform kann der Korrekturabschnitt vereinfacht werden. Der Betriebsumfang, der für die Berechnung des Inkrementwertes von dem Betriebsabschnitt benötigt wird, ist nicht so groß wie im Vergleich zu den herkömmlichen Konfigurationen. Folglich können die Bildschirm-Koordinaten und die entsprechenden Textur- bzw. Oberflächenstruktur-Koordinaten Idealerweise mit hoher Geschwindigkeit unter Verwendung der Vorrichtung mit dieser einfachen Konfiguration berechnet werden.
  • Gemäß der siebten Ausführungsform der Abbildungsvorrichtung gemäß der vorliegenden Erfindung kann die Verarbeitung durch den Korrekturabschnitt und den Bereichserzeugungsabschnitt bei der sechsten Ausführungsform mit Hilfe einer gemeinsamen Schaltung realisiert werden. Die Verarbeitungsgeschwindigkeit wird durch die Verwendung einer gemeinsamen Schaltung nicht herabgesetzt. Somit kann dieselbe Funktion mit der Konfiguration realisiert werden, die einfacher ist als die Konfiguration der sechsten Ausführungsform.
  • Die relative Positionsbeziehung zwischen dem Darstellungspunkt, der unter Verwendung des inkrementellen Algorithmus berechnet wird, und dem entsprechenden Pixel ist nicht stets fest. Unter Berücksichtigung dieses Punktes wird gemäß einer Abbildungsvorrichtung gemäß der vorliegenden Erfindung jeder Pixelwert unter Verwendung der Positionsinformation des Abtast- bzw. Probenpunktes, der jedes Pixel repräsentiert, bestimmt, um so die Bildqualität zu verbessern.
  • Gemäß einer anderen Abbildungsvorrichtung gemäß der vorliegenden Erfindung wird jeder Pixelwert, der basierend auf der Positionsinformation des Darstellungspunktes, der mit Hilfe des inkrementellen Algorithmus berechnet wird, bestimmt wird, einer Mehrzahl von Pixeln, die zueinander benachbart sind, zugewiesen, und zwar basierend auf deren relativer Positionsbeziehung zu dem Pixelwert, um so im Wesentlichen denselben Effekt zu erzielen.
  • Das Problem eines Fehlers, der bei der Berechnung unter Verwendung des inkrementellen Algorithmus herrührt, beeinflusst nicht nur die Abbildung, sondern erstreckt sich auch auf den allgemeinen Wiedergabe- bzw. Darstellungsalgorithmus. Folglich kann die vorliegende Erfindung intensiv allgemein auf die Darstellung bzw. Wiedergabe angewendet werden.
  • Die Verschlechterung einer Bildqualität tritt auf, weil die Position in jedem Bildschirm-Pixel, bei welcher die Textur bzw. die Oberflächenstruktur abgeleitet wird, nicht fest ist. Folglich kann die Verschlechterung in der Bildqualität dadurch verhindert werden, dass die Position in jedem Bildschirm-Pixel fixiert wird, bei welcher die Textur- bzw. Oberflächenstruktur abgeleitet wird, und zwar über den gesamten Bildschirm-Koordinatenraum.
  • Die Beziehungsgleichung für die Textur-Abbildung wird durch die Gleichungen 19 und 20 repräsentiert, wie vorstehend beschrieben. Nachfolgend wird, um die Be schreibung zu vereinfachen, die Beziehung unter Verwendung der nachfolgenden Gleichung 26 beschrieben. u = f(x) = A × x + B (26)
  • Im Prinzip, obwohl dies auch auf die Gleichungen 19 und 20 angewendet werden kann.
  • Der Wert x kann durch die nachfolgende Gleichung 27 ausgedrückt werden, wenn x der Wert nach der Quantisierung ist und ex der Quantisierungsfehler ist. x = X + ex (27)
  • Die nachfolgende Gleichung 28 wird etabliert, wenn E der Fehler zwischen dem Wert u, der mit dem Wert x vor der Quantisierung berechnet wurde, und dem Wert u ist, der mit dem Wert X nach der Quantisierung berechnet wurde. E = f(x) – f(R) = f(X + ex) – f(x) = f(ex) (28)
  • Dies deutet an, dass kein Fehler zwischen den Werten u vor und nach einer Quantisierung auftritt, falls der Quantisierungsfehler in dem x-Raum eliminiert ist.
  • Der Wert E wird durch Fixieren des Quantisierungsfehlers festgehalten. Dies liegt daran, weil sämtliche der berechneten Werte u einen gleichmäßigen Fehler aufweisen, so dass kein Relativfehler in dem u-Raum auftritt.
  • Somit können durch Festhalten der Koordinaten (x, y), die für die Berechnung der Textur- bzw. Oberflächenstruktur in sämtlichen der Bildschirmraumpixel verwendet werden, die Textur-Koordinaten ohne irgendeinen Fehler in dem Texturraum berechnet werden. Folglich kann die Berechnung der Polygon- und Textur-Koordinaten ohne Fehler ausgeführt werden und kann somit eine Verschlechterung in der Qualität von Bildern, die durch Textur-Abbildung erzeugt werden, verhindert werden.
  • Somit ermöglicht die hierin beschriebene Erfindung die Vorteile, dass (1) eine Wiedergabe- bzw. Darstellungsvorrichtung und eine Abbildungsvorrichtung bereitgestellt werden, womit hochqualitative Bilder mit hoher Geschwindigkeit in der Wiedergabe- bzw. Darstellungsverarbeitung von Computergrafiken erzeugt werden können, und dass (2) ein Wiedergabe- bzw. Darstellungsverfahren und ein Abbildungsverfahren für solche Vorrichtungen bereitgestellt werden.
  • Diese und andere Vorteile gemäß der vorliegenden Erfindung werden dem Fachmann auf diesem Gebiet beim Lesen und Verstehen der nachfolgenden ausführlichen Beschreibung, die Bezug nimmt auf die beigefügten Figuren, ersichtlicher werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt eine Konfiguration einer Abbildungsvorrichtung gemäß der vorliegenden Erfindung.
  • 2 zeigt eine Konfiguration eines Wiedergabe- bzw. Darstellungsprozessors der Abbildungsvorrichtung gemäß der vorliegenden Erfindung.
  • 3 zeigt eine Konfiguration eines Kantenerzeugungsabschnittes der Abbildungsvorrichtung gemäß der vorliegenden Erfindung.
  • 4 zeigt eine Konfiguration eines Korrekturabschnittes der Abbildungsvorrichtung gemäß der vorliegenden Erfindung.
  • 5 zeigt eine Konfiguration eines Bereichserzeugungsabschnittes der Abbildungsvorrichtung gemäß der vorliegenden Erfindung.
  • 6 ist eine Ansicht, die eine Verschiebung einer Textur bzw. Oberflächenstruktur auf Grund eines Quantisierungsfehlers in dem Wert x zeigt.
  • 7 zeigt eine Konfiguration eines Adresserzeugungsabschnittes der Abbildungsvorrichtung nach Beispiel 1 gemäß der vorliegenden Erfindung.
  • 8 ist eine Ansicht, die die Parameterkorrektur in dem Beispiel 1 zeigt.
  • 9 zeigt eine Konfiguration eines Korrekturabschnittes in dem Beispiel 1.
  • 10 zeigt eine Konfiguration einer Textur-Abbildungsvorrichtung gemäß der vorliegenden Erfindung.
  • 11 zeigt eine Konfiguration einer Helligkeits- bzw. Farbabbildungsvorrichtung gemäß der vorliegenden Erfindung.
  • 12 ist eine Ansicht, die die Parameterkorrektur in dem Beispiel 2 gemäß der vorliegenden Erfindung zeigt.
  • 13 zeigt eine Konfiguration eines Korrekturabschnittes in dem Beispiel 2.
  • 14 zeigt eine Konfiguration der Abbildungsvorrichtung nach Beispiel 3 gemäß der vorliegenden Erfindung.
  • 15 ist eine Ansicht, welche die Pixelkorrektur in dem Beispiel 3 zeigt.
  • 16 ist eine vergrößerte Ansicht eines gemeinsam genutzten Bereichs in dem Beispiel 3.
  • 17 zeigt eine Konfiguration eines Speicherabschnittes für erzeugte Bilder in dem Beispiel 3.
  • 18 zeigt eine Konfiguration eines Adresserzeugungsabschnittes der Abbildungsvorrichtung nach Beispiel 4 gemäß der vorliegenden Erfindung.
  • 19 ist eine Ansicht, die die Parameterkorrektur in dem Beispiel 4 zeigt.
  • 20 ist eine vergrößerte Ansicht, welche die Parameterkorrektur in dem Beispiel 4 zeigt.
  • 21 zeigt einen Fluss von Prozessen, die von dem ersten und zweiten Kantenerzeugungsabschnitt und einem Auswählabschnitt in dem Beispiel 4 vorgenommen werden.
  • 22 zeigt eine Konfiguration des ersten Kantenerzeugungsabschnitts in dem Beispiel 4.
  • 23 zeigt eine Konfiguration des Auswählabschnittes in dem Beispiel 4.
  • 24 ist ein Flussdiagramm, das die Prozessschritte in dem Beispiel zeigt.
  • 25 zeigt ein Polygon, das in dem Beispiel 4 verwendet wird.
  • 26 zeigt eine Konfiguration eines Adresserzeugungsabschnittes der Abbildungsvorrichtung nach Beispiel 5 gemäß der vorliegenden Erfindung.
  • 27 zeigt einen Fluss von Prozessschritten, der in dem Beispiel 5 ausgeführt wird.
  • 28 zeigt eine Konfiguration eines Kantenerzeugungsabschnittes in dem Beispiel 5.
  • 29 zeigt eine Konfiguration eines Inkrement-Wechselabschnittes in dem Beispiel 5.
  • 30 zeigt eine Konfiguration eines Adresserzeugungsabschnittes der Abbildungsvorrichtung nach Beispiel 6 gemäß der vorliegenden Erfindung.
  • 31 ist eine Ansicht, welche die Inkrement- und Korrektur-Prozessschritte in dem Beispiel 6 zeigt, und auch ein Polygon, das in dem Beispiel 6 verwendet wird.
  • 32 zeigt einen Fluss von Prozessschritten, der in dem Beispiel 6 ausgeführt wird.
  • 33 zeigt eine Konfiguration eines Kantenerzeugungsabschnittes in dem Beispiel 6.
  • 34 zeigt eine Konfiguration eines Korrekturabschnittes in dem Beispiel 6.
  • 35 zeigt eine Konfiguration eines Adresserzeugungsabschnittes der Abbildungsvorrichtung nach Beispiel 7 gemäß der vorliegenden Erfindung.
  • 36 zeigt eine Konfiguration eines Bereichserzeugungsabschnittes in dem Beispiel 7.
  • 37 ist eine Ansicht, die ein Polygon zeigt, das bei der Abbildung unter Verwendung des inkrementellen Algorithmus verwendet wird.
  • 38 ist eine Ansicht, welche die Berechnung des entsprechenden Punktes für die Textur-Abbildung unter Verwendung des inkrementellen Algorithmus zeigt.
  • 39 ist eine Ansicht, die Darstellungspunkte von Pixeln, die unter Verwendung des inkrementellen Algorithmus erzeugt wurden, und ideale Abtast- bzw. Probenpunkte der Pixel zeigt.
  • 40A bis 40C sind Ansichten, die ein Texturbild, ein verschlechtertes Bild bzw. ein ideales Bild bei der Abbildung zeigen.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Das Prinzip der Abbildungsvorrichtung gemäß der vorliegenden Erfindung kann intensiv ganz allgemein bei der Wiedergabe bzw. Darstellung angewendet werden. Zur Vereinfachung der Beschreibung werden jedoch Abbildungsvorrichtungen zur Beschreibung der vorliegenden Erfindung in den nachfolgenden Beispielen verwendet. Wenn die vorliegende Erfindung auf die Wiedergabe bzw. Darstellung mit Ausnahme der Abbildung angewendet wird, können die Koordinaten eines Abtastpunktes, der jedem Darstellungspunkt entspricht, und ein Attributwert für jedes Polygon dazu verwendet werden, um einen gewünschten Wiedergabevorgang auszuführen, anstatt dass der Wiedergabevorgang unter Verwendung der Koordinaten für jeden Darstellungspunkt ausgeführt wird. Der Attributwert, wie er hierin verwendet wird, bezieht sich auf einen Wert, der das Material des Polygons repräsentiert, beispielsweise die Reflektivität, Durchsichtigkeit und den Brechungsindex des Polygons.
  • (Beispiel 1)
  • Das erste Beispiel der Abbildungsvorrichtung gemäß der vorliegenden Erfindung wird unter Bezugnahme auf die 1 bis 11 beschrieben werden.
  • Die 1 zeigt eine Konfiguration der Abbildungsvorrichtung gemäß der vorliegenden Erfindung. Gemäß der 1 umfasst die Abbildungsvorrichtung einen Hauptprozessor 1, einen Hauptspeicher 2, einen Wiedergabeprozessor 3, einen Pixelspeicher 4, einen Digital-zu-Analog-Wandler (DAC) 5, einen Monitor 6 und einen Systembus 7.
  • Der Hauptprozessor 1 führt die geometrische Operation für eine dreidimensionale Grafikdatenverarbeitung zum Ausführen einer Textur- bzw. Obeiflächenstruktur-Abbildung, die Steuerung des Wiedergabeprozessors 3, des DAC 5 und dergleichen und die Steuerung des gesamten Systems aus. Der Hauptspeicher 2 speichert Programme, die von dem Hauptprozessor 1 ausgeführt werden, sowie Daten, die für Prozessschritte benötigt werden, beispielsweise Polygondaten. Der Wiedergabeprozessor 3 stellt Polygone für den Pixelspeicher 4 basierend auf der Steuerung den Hauptprozessor 1 dar. Der Pixelspeicher 4 speichert Bilder, die von dem Wiedergabeprozessor 3 dargestellt werden, und Texturen, die abgebildet werden sollen. Der Systembus 7 verbindet den Hauptprozessor 1, den Hauptspeicher 2, den Wiedergabeprozessor 3 und den Pixelspeicher 4 mit Eingabe-/Ausgabevorrichtungen (nicht gezeigt). Erzeugte Bilder werden über den DAC 5 an den Monitor 6 ausgegeben.
  • Die 2 zeigt eine Konfiguration des Wiedergabeprozessors 3. Der Wiedergabeprozessor 3 umfasst einen DDA-Koeffizient-Betriebsabschnitt 201, einen Abbildungs-Adresserzeugungsabschnitt 208 und einen Originalbild-Pixelverarbeitungsabschnitt 207.
  • Der DDA-Koeffizient-Betriebsabschnitt 201 erzeugt einen DDA-Koeffizienten aus der Beziehung zwischen den Eckpunkten eines Polygons und einer Textur- bzw. Oberflächenstruktur, die über den Systembus 7 eingegeben wird. Der DDA-Koeffizient umfasst einen Differenzwert von y (longitudinaler DDA) und einen Differenzwert von x (lateraler DDA) und wird von dem Abbildungs-Adresserzeugungsabschnitt 208 verwendet. Der Abbildungs-Adresserzeugungsabschnitt 208 führt eine Wiedergabe- bzw. Darstellungsverarbeitung unter Verwendung des DDA aus und beinhaltet einen Kantenerzeugungsabschnitt 202, einen Korrekturabschnitt 203 und einen Bereichserzeugungsabschnitt 204 und führt eine Wiedergabe unter Verwendung des DDA aus.
  • Wie in der 3 gezeigt, umfasst der Kantenerzeugungsabschnitt 202 DDA-Verarbeitungsabschnitte 301, 302, 303 bzw. 304 für Werte x, y, u bzw. v. Die DDA-Verarbeitungsabschnitte 301, 302, 303 und 304 berechneten Koordinaten (x, y, u, v) eines Punktes auf einer Polygonkante unter Verwendung des Differenzwertes von y, der von dem DDA-Koeffizient-Betriebsabschnitt 201 berechnet wurde. Genauer gesagt wird die Verarbeitung, die durch die nachfolgende Gleichung 29 wiedergegeben wird, ausgeführt. (X(n+1), y(n+1), u(n+1), v(n+1)) = (x(n), y(n), u(n), v(n)) + (dx/dy, 1, du/dy, dv/dy) (29)
  • In der Gleichung 29 steht (x(n+1), y(n+1), u(n+1), v(n+1)) für Koordinaten eines Punktes auf der Polygonkante eine Abtastzeile unmittelbar nach der Abtastzeile, auf welcher sich die Koordinaten (x(n), y(n),u(n),v(n)) befinden. Die Werte dx/dy, du/dy und dv/dy werden von dem DDA-Koeffizient-Betriebsabschnitt 201 berechnet und dem Kantenerzeugungsabschnitt 202 zur Verfügung gestellt.
  • Wie in der 4 gezeigt, umfasst der Korrekturabschnitt 203 Sub-Korrekturabschnitte 401, 402, 403 bzw. 404 für die Werte x, y, u bzw. v. Die Sub- Korrektuiabschnitte 401, 402, 403 und 404 führen die Korrektur aus, die durch die Gleichung 32 wiedergegeben wird. Die Werte du/dy, δu/δx und dergleichen, die für die Korrektur benötigt werden, werden von dem DDA-Koeffizient-Betriebsabschnitt 201 berechnet.
  • Wie in der 5 gezeigt, umfasst der Bereichserzeugungsabschnitt 204 DDA-Verarbeitungsabschnitte 501, 503 bzw. 504 für die Werte x, u bzw. v. Kein DDA-Verarbeitungsabschnitt wird für den Wert y benötigt, weil der Wert y sich nicht in der Bereichsverarbeitung ändert.
  • Die DDA-Verarbeitungsabschnitte 501, 503 und 504 berechnen Koordinaten (x, y, u, v) eines Punktes auf einer Polygonkante unter Verwendung des Differenzwertes von y, der von dem DDA-Koeffizient-Betriebsabschnitt 201 berechnet wird. Genauer gesagt, wird die Verarbeitung, die durch die nachfolgende Gleichung 30 wiedergegeben wird, ausgeführt. (X(n+1), y(n+1), u(n+1), v(n+1)) = (x(n), y(n), u(n), v(n)) + (1, 0, δu/δx, δv/δx) (30)
  • In der Gleichung 30 steht (xn+1, yn+1, un+1, v(n+1)) für Textur- bzw. Oberflächenstruktur-Koordinaten eines Punktes in einem Pixel als Nächstes zu dem Pixel, wo der Punkt der Koordinaten (x(n), y(n), u(n), v(n)) sich in der Bereichsrichtung befindet.
  • Der Pixelspeicher 4 umfasst einen Speicherabschnitt für erzeugte Bilder 205 und einen Speicherabschnitt für ein Originalbild 206. Der Speicherabschnitt für erzeugte Bilder 205 speichert ein Bild, das von dem Wiedergabeprozessor 3 dargestellt wird, während der Originalbild-Speicherabschnitt 206 ein Originalbild (Textur- bzw. Oberflächenstruktur) speichert, das von dem Wiedergabeprozessor dargestellt werden soll.
  • Die 7 zeigt eine Konfiguration des Adresserzeugungsabschnittes der Abbildungsvorrichtung nach Beispiel 1. Der Adresserzeugungsabschnitt umfasst einen Betriebsabschnitt 101, einen Kantenerzeugungsabschnitt 102a, einen Korrekturabschnitt 103a und einen Bereichserzeugungsabschnitt 104. Der Betriebsabschnitt 101 berechnet einen Parameter, der zur Berechnung eines Darstellungspunktes innerhalb eines Polygons und eines entsprechenden Punktes gemäß dem inkrementellen Algorithmus, der die Position eines Eckpunktes des Polygons und des entsprechenden Punktes des Polygon-Eckpunktes verwendet, verwendet wird. Der Kantenerzeugungsabschnitt 102a berechnet die Positionen des Darstellungspunktes und des entsprechenden Punktes auf einer Polygonkante, und zwar unter Verwendung des Parameters, der von dem Betriebsabschnitt 101 berechnet wird. Der Korrekturabschnitt 103a korrigiert den entsprechenden Punkt (Texturbild), der von dem Kantenerzeugungsabschnitt 102a erzeugt wird, unter Verwendung des Parameters, der von dem Betriebsabschnitt 101 berechnet wird, und des Darstellungspunktes, der von dem Kantenerzeugungsabschnitt 102a bestimmt wird. Der Bereichserzeugungsabschnitt 104 berechnet den Polygonbereichs-Darstellungspunkt und den entsprechenden Punkt unter Verwendung des Parameters, der von dem Betriebsabschnitt 101 berechnet wird, und der Daten, die von dem Korrekturabschnitt 103a erzeugt werden.
  • Der Betrieb des Adresserzeugungsabschnittes der Abbildungsvorrichtung mit der vorstehenden Konfiguration wird nun beschrieben werden.
  • Die 8 ist eine vergrößerte Ansicht eines Pixels, über das die in der 37 gezeigte Seite 1404 verläuft. Das in der 8 gezeigte Pixel entspricht dem Abschnitt, der von den Koordinaten (x, y) = (2, 4), (2, 5), (3, 5) und (3, 4) festgelegt ist. Das Bezugszeichen 201 bezeichnet ein Pixel auf dem Bildschirm und das Bezugszeichen 202 bezeichnet eine Kante eines Polygons, das auf dessen rechter Seite gebildet ist. Das Bezugszeichen 203 bezeichnet einen Kantendarstellungspunkt (x0, y0) vor einer Korrektur, die von dem Kantenerzeugungsabschnitt 102a erzeugt wird. Das Bezugszeichen 204 bezeichnet einen Abtast- bzw. Probenpunkt (X, Y) des Pixels 201. Das Bezugszeichen 205 bezeichnet einen Punkt (x', y'), das zum Beschreiben der Korrektur von dem Korrekturabschnitt 103a verwendet wird. Der Punkt 205 befindet sich auf der Polygonkante 202 und es gilt y' = Y. Die Beziehung, die durch die Gleichungen 1 und 2 wiedergegeben wird, wird zwischen einem Punkt (x, y) auf dem Polygon und einem Punkt (u, v) auf einem Texturbild eingerichtet. Die entsprechenden Punkte auf dem Texturbild, die dem Kantendarstellungspunkt 203, dem Abtastpunkt 204 und dem Punkt 205 entsprechen, werden durch (u0, v0), (U, V) bzw. (u', v') wiedergegeben.
  • Die Beziehung, die durch die nachfolgenden Gleichungen 31 und 32 wiedergegeben wird, wird unter diesen entsprechenden Punkten eingerichtet (siehe Gleichungen 4 und 7). (u', v') = (u0 + du/dy × (y – y0), v0 + dv/dy × (Y – y0)) (31) (U, V) = (u' + δu/δx × (X – x'), v' + vδ/δx × (X – x')) (32)
  • Weil die nachfolgende Gleichung 33 erfüllt ist, wird auch die Beziehung, die durch die nachfolgende Gleichung 34 wiedergegeben wird, zwischen den entsprechenden Punkten (u0, v0) und (U, V) eingerichtet. x' = x0 + dx/dy (33) (U, V) = (u0 + du/dy × (Y – y0) + δu/δa × (X – x0 – dx/dy), v0 + dv/dy ×(Y – y0) + δv/δx × (δ – x0 – dx/dy)) (34)
  • Genauer gesagt, wenn der Abtastpunkt die Mitte des Pixels ist, (X, Y) = (2,5, 4,5), wird die y-Koordinate des Darstellungspunktes so berechnet, dass diese 4,20 beträgt, (x0, y0, u0, v0) = (2, 40, 4, 20, 0, 00, 11, 20).
  • Folglich ergibt sich aus den Gleichungen 34, 5 und 8 (U, V) = (1,53, 11,24).
  • Das Polygon ist dasselbe wie dasjenige, das im Stand der Technik beschrieben wird, und die Werte von dx/dy, du/dy, dv/dy, δu/δx und δv/δx können dieselben sein wie diejenigen gemäß dem Stand der Technik. Durch Berechnen des Pixelwertes der Textur- bzw. Oberflächenstruktur unter Verwendung der Werte von (U, V) kann der korrekte Pixelwert auf das Bildschirm-Pixel reflektiert bzw. abgebildet werden. Genauer gesagt, kann ein idealer entsprechender Punkt des Pixels 201 durch Korrigieren des entsprechenden Punktes (u0, v0) für den Kantendarstellungspunkt 203 (x0, y0) berechnet werden, der von dem Kantenerzeugungsabschnitt 102a erzeugt wird, und zwar auf dem entsprechenden Punkt (u, v) für den Abtastpunkt 204 (X, Y) von dem Korrekturabschnitt 103a (siehe Gleichung 34). Außerdem können durch ideale Berechnung des entsprechenden Punktes eines Pixels am oberen Ende des Polygonbereichs die entsprechenden Punkte von Pixeln, die in dem Polygonbereich enthalten sind, in idealer Weise berechnet werden (siehe Gleichung 7).
  • Bezugnehmend auf die 9, wird die Konfiguration des Korrekturabschnittes 103a beschrieben werden. Die 9 zeigt nur die Konfiguration des Korrekturabschnittes 103a in Bezug auf die Textur-Koordinate u, weil die Korrektur für die Textur-Koordinate v im Wesentlichen dieselbe ist wie diejenige für die Textur-Koordinate u. In der vorstehenden Gleichung 34 werden (Y – y0) und (X – x0) jeweils 1 nicht überschreiten und werden diese durch den Abtast- bzw. Probenpunkt des Pixels festgelegt. Nämlich, Y – y0 = Dezimalteil von Y – Dezimalteil von y0 = 0,5 – Dezimalteil von y0 X – x0 = Dezimalteil Von X – Dezimalteil von x0 = 0,5 – Dezimalteil von x0
  • Bezugnehmend auf die 9, berechnet ein erster Multiplizierer 1601 den zweiten Ausdruck von Gleichung 34, welche U wiedergibt. Ein erster Addierer 1602 berechnet (X – x0 + dx/dy) des dritten Ausdrucks von Gleichung 34, die U wiedergibt. Ein zweiter Multiplizierer 1603 berechnet den dritten Ausdruck von Gleichung 34, die U wiedergibt. Ein zweiter Addierer 1604 addiert die ersten, zweiten und dritten Ausdrücke, um den Wert von U zu ergeben. Im Wesentlichen dieselbe Konfiguration wie die Vorstehende kann für die Koordinate v verwendet werden. Mit der vorstehenden Konfiguration kann die Korrektur, die durch die Gleichung 34 wiedergegeben wird, vorgenommen werden und kann somit der Korrekturabschnitt 103a dieses Beispiels realisiert werden.
  • Somit kann gemäß diesem Beispiel der entsprechende Punkt für den bzw. nach dem Kantendarstellungspunkt, der von dem Kantenerzeugungsabschnitt 102a erzeugt wird, von dem Korrekturabschnitt 103a korrigiert werden. Mit Hilfe dieser Korrektur kann ein idealer entsprechender Punkt für ein Pixel, welches den Darstellungspunkt beinhaltet, berechnet werden. Falls der obere Bereich von Bereichsdarstellungspunkten, das heißt der Kantendarstellungspunkt, ein idealer entsprechender Punkt ist, können ideale entsprechende Punkte für Pixel, die in dem Polygonbereich enthalten sind, berechnet werden. Mit anderen Worten können ideale entsprechende Punkte für sämtliche der Pixel, die in dem Polygon enthalten sind, berechnet werden, was in einer Verbesserung der Qualität von Abbildungsbildern resultiert.
  • Dieselben Variablen, die bei dem herkömmlichen inkrementellen Algorithmus verwendet werden, werden bei der Korrektur verwendet, die von dem Korrektur abschnitt 103a ausgeführt wird, was die Notwendigkeit einer Erzeugung von neuen Variablen eliminiert. Obwohl die gesamte Verarbeitung um die Korrektur verzögert ist, kann die Hochgeschwindigkeitsverarbeitung als Ganze beibehalten werden, weil sämtliche der in der 7 gezeigten Elemente in einem Fließband- bzw. Pipeline-Verfahren betrieben werden können.
  • Bei diesem Beispiel wurde die Beziehung zwischen dem Polygon- und dem Texturbild durch die Gleichungen 1 und 2 wiedergegeben. Die Beziehung, die durch die Gleichungen 17 und 18 wiedergegeben wird, kann beispielsweise auch dazu verwendet werden, um eine korrekte Berechnung eines entsprechenden Punktes vorzunehmen. Kurz gesagt, kann die vorliegende Erfindung auf beliebige Gleichungen für die Berechnung der entsprechenden Punkte angewendet werden.
  • Bei diesem Beispiel wurde die Berechnung von entsprechenden Punkten auf einem Bild für eine Polygon-Abbildung beschrieben. Dieselbe Verarbeitung kann auch auf die Berechnung einer Leuchtkraft bzw. Farbe und die Berechnung einer Undurchsichtigkeit angewendet werden. Wie für den Fall der Berechnung des entsprechenden Punktes, können diese Berechnungen auf beliebige relationale Ausdrücke angewendet werden.
  • Bei diesem Beispiel wurde das Verfahren ohne Anti-Aliasing bzw. Entzerrung verwendet. Dieselbe Verarbeitung kann jedoch auch vorgenommen werden, falls ein Anti-Aliasing vorgenommen wird. Auch kann im Wesentlichen dieselbe Korrektur vorgenommen werden, wenn eine Sub-Pixel-Positionierung vorgenommen wird.
  • Vorstehend wurde der Adresserzeugungsabschnitt zur Bestimmung der Position (Adresse) des entsprechenden Punktes auf dem Texturbild anhand der 7 beschrieben. Wenn der Adresserzeugungsabschnitt für eine Textur-Abbildung verwendet wird, sollte die Vorrichtung die Konfiguration haben, die in der 10 gezeigt ist. Ein Adresserzeugungsabschnitt 1701 empfängt die Beziehung zwischen dem Polygon und der Textur bzw. Oberflächenstruktur und erzeugt eine Polygonadresse (x, y) auf einem Bildschirm und die entsprechende Texturadresse (u, v). Ein Texturbild wird in einem Texturspeicher 1702 gespeichert und ein Bild, das erzeugt werden soll, wird in einem Bildspeicher 1703 gespeichert. Der Adresserzeugungsabschnitt 1701 gibt die Polygon-Darstellungs-Koordinaten (x, y) und die entsprechenden Textur-Koordinaten (u, v) aus. Ein Pixelwert (R, G, B), der aus dem Texturspeicher 1702 in Antwort auf die Textur-Koordinaten (u, v) ausgelesen wird, wird in dem Bildspeicher 1703 gespeichert. Die gespeicherte Adresse wird basierend auf den Koordinaten (x, y) bestimmt, die von dem Adresserzeugungsabschnitt 1701 ausgegeben werden.
  • Wenn die vorliegende Erfindung für eine Leuchtkraft- bzw. Farbabbildung (Farbtönung) verwendet wird, wird die in der 11 gezeigte Konfiguration eingesetzt. Ein Farbbetriebsabschnitt 1801 empfängt die Beziehung zwischen dem Polygon und der Leuchtkraft bzw. Farbe in dem Polygon und erzeugt eine Polygonadresse (x, y) auf einem Bildschirm und den entsprechenden Pixelwert (R, G, B), der die Farbe des entsprechenden Polygons wiedergibt. Ein erzeugtes Bild wird in einem Bildspeicher 1803 gespeichert. Die Polygon-Darstellungs-Koordinaten und die entsprechenden Pixelwerte (R, G, B) werden von dem Farbbetriebsabschnitt 1801 ausgegeben. Die ausgegebenen Pixelwerte (R, G, B) werden in dem Bildspeicher 1803 gespeichert. Die Speicheradresse wird basierend auf den Koordinaten (x, y) bestimmt, die von dem Farbbetriebsabschnitt 1801 ausgegeben werden.
  • Andere Arten einer Abbildung für eine Undurchsichtigkeit, für Vorsprünge, eine Verschiebung und dergleichen können ebenfalls mit Hilfe von Abbildungsvorrichtungen mit Konfigurationen, die ähnlich sind zu der Vorgenannten, realisiert werden.
  • Bei den nachfolgenden Beispielen, wie bei dem Beispiel 1, kann die vorliegende Erfindung nicht nur auf eine Textur-Abbildung, sondern auch auf eine Abbildung für eine Textur bzw. Oberflächenstruktur, Farbe, Undurchsichtigkeit, Unebenheiten, eine Verschiebung und dergleichen angewendet werden, obwohl dies vorstehend nicht ausdrücklich erwähnt wurde.
  • (Beispiel 2)
  • Das zweite Beispiel für die Abbildungsvorrichtung gemäß der vorliegenden Erfindung wird anhand der 12 und 13 beschrieben werden. Die Konfiguration der Vorrichtung ist dieselbe wie diejenige gemäß dem Beispiel 1. Bei diesem Beispiel wird der Punkt in jedem Pixel, das am nächsten zu dem Ursprung liegt, als der Abtast- bzw. Probenpunkt bestimmt und werden der Kantendarstellungspunkt und der entsprechende Punkt so berechnet, dass diese dieselbe y-Koordinate wie der Abtast- bzw. Probenpunkt aufweisen. Auf diese Weise kann die Korrektur von dem Korrekturabschnitt eindimensional vorgenommen werden, was die Verarbeitung vereinfacht, wenn man dies mit dem Beispiel 1 vergleicht.
  • Die 12 ist eine vergrößerte Ansicht eines Pixels, durch das die in der 37 gezeigte Seite 1404 verläuft. Das in der 12 gezeigte Pixel entspricht dem Bereich, der durch die Koordinaten (x, y) = (2, 4), (2, 5), (3, 5) und (3, 4) festgelegt wird. Das Bezugszeichen 401 bezeichnet ein Pixel auf dem Bildschirm und das Bezugszeichen 402 bezeichnet eine Kante eines Polygons, das auf dessen rechter Seite ausgebildet ist. Das Bezugszeichen 403 bezeichnet einen Kantendarstellungspunkt (x0, y0) vor einer Korrektur, die von dem Kantenerzeugungsabschnitt 102a erzeugt wird. Das Bezugszeichen 404 bezeichnet einen Abtastpunkt (X, Y) des Pixels 401. Die Beziehung, die durch die Gleichungen 1 und 2 wiedergegeben wird, wird zwischen einem Punkt (x, y) auf dem Polygon und einem Punkt (u, v) auf einem Texturbild eingerichtet. Die entsprechenden Punkte des Texturbildes für den Kantendarstellungspunkt 403 und den Abtastpunkt 404 werden durch (u0, v0) bzw. (U, V) wiedergegeben.
  • Die Beziehung, die durch die Gleichungen 31 und 32 wiedergegeben wird, wird unter diesen entsprechenden Punkten eingerichtet (siehe Gleichungen 4 und 7).
  • Bei diesem Beispiel wird der Punkt in jedem Pixel, das als Nächstes zu dem Ursprung liegt (die obere linke Ecke des in der 12 gezeigten Pixels), als der Abtast- bzw. Probenpunkt bestimmt und werden der Kantendarstellungspunkt und der entsprechende Punkt so berechnet, dass diese dieselbe y-Koordinate wie der Abtast- bzw. Probenpunkt aufweisen. Auf diese Weise kann der Kantenpunkt, wie er in der 12 gezeigt ist, erzeugt werden.
  • Zu diesem Zeitpunkt wird die Beziehung, die durch die nachfolgende Gleichung 35 wiedergegeben ist, unter diesen entsprechenden Punkten eingerichtet (siehe Gleichungen 4 und 7). (U, V) = (u0 – δu/δu × (x0 – X), v0 – δv/δx × (x0 – x)) (35)
  • Weil der Abtast- bzw. Probenpunkt 404 der nächste Punkt zu dem Ursprung in dem Pixel 401 ist, wird die nachfolgende Gleichung 36 eingerichtet und kann die vorstehende Gleichung 35 in die nachfolgende Gleichung 37 geändert werden. (X, Y) = ([x0], y0) (36) (U, V) = (u0 – δu/δx ×(x0 – [x0]), v0 – δv/δx ×(x0 – [x0])) (37)
  • Genauer gesagt, wenn sich der Abtast- bzw. Probenpunkt bei der oberen linken Ecke des Pixels befindet, gilt (X, Y) = (2, 0, 4, 0) und ist die y-Koordinate des Darstellungspunktes, der berechnet werden soll, dieselbe wie diejenige des Abtastpunkts, (x0 ,y0, u0, v0) = (2,67, 4,00, 0,00, 10,67),und aus den Gleichungen 34, 5 und 8 folgt, (u, v) = (–0,71, 11,03).
  • Der resultierende Wert von U ist negativ. Weil der Abtast- bzw. Probenpunkt außerhalb des Polygons liegt, ist die Tatsache, dass dieser einen negativen Wert aufweist, ziemlich ideal für die Berechnung des entsprechenden Punktes.
  • Das Polygon ist dasselbe wie dasjenige, das im Stand der Technik beschrieben ist, und die Werte für dx/dy, du/dy, dv/dy, δu/δx und δv/δx können dieselben sein wie diejenigen im Stand der Technik. Es ist möglich, den korrekten Pixelwert auf das Bildschirm-Pixel durch Berechnen des Pixelwertes auf dem Texturbild unter Verwendung des Wertes von (U, V zu reflektieren bzw. abzubilden. Genauer gesagt, kann der ideale entsprechende Punkt des Pixels 401 durch Korrigieren des entsprechenden Punktes (u0, v0) für bzw. nach dem Kantendarstellungspunkt 403 (x0, y0), der von dem Kantenerzeugungsabschnitt 102a erzeugt wird, zu dem entsprechenden Punkt (U, V) für den Abtastpunkt 404 (X, Y) von dem Korrekturabschnitt 103a berechnet werden (siehe Gleichung 37). Außerdem können durch ideale Berechnung des entsprechenden Punktes eines Pixels bei dem oberen Bereich des Polygonbereichs die entsprechenden Punkte von Pixeln, die in dem Polygonbereich enthalten sind, ideal berechnet werden (siehe Gleichung 7).
  • Bezugnehmend auf die 13, wird die Konfiguration des Korrektur-Adresserzeugungsabschnittes 103a dieses Beispiels beschrieben werden. Die 13 zeigt nur die Konfiguration des Korrekturabschnittes 103a in Bezug auf die Textur-Koordinate u, weil die Korrektur für die Textur-Koordinate v dieselbe ist wie diejenige für die Textur-Koordinate u. In der Gleichung 37 gibt (x0 – [x0]) den Dezimalteil von x0 wieder. Wie in der 13 gezeigt, berechnet ein Multiplizieren 1901 den zweiten Ausdruck von Gleichung 37, die U wiedergibt. Ein Addierer 1902 addiert die ersten und zweiten Ausdrücke, um den Wert von U zu erhalten. Im Wesentlichen dieselbe Konfiguration wie die vorstehende kann für die Koordinate V verwendet werden. Mit der vorgenannten Konfiguration kann die Korrektur basierend auf der Gleichung 37 ausgeführt werden und kann somit der Korrekturabschnitt 103a dieses Beispiels realisiert werden.
  • Somit kann gemäß diesem Beispiel der entsprechende Punkt (u0, v0) für den Kantendarstellungspunkt 403 (x0, y0), der von dem Kantenerzeugungsabschnitt 102a erzeugt wird, zu dem entsprechenden Punkt (U, V) für den Abtast- bzw. Probenpunkt 404 (X, Y) von dem Korrekturabschnitt 103a korrigiert werden (Gleichung 37). Mit Hilfe dieser Korrektur kann für das Pixel 401 der ideale entsprechende Punkt berechnet werden. Außerdem können durch ideale Berechnung des entsprechende Punktes eines Pixels bei dem oberen Bereich des Polygonbereiches die entsprechenden Punkte von Pixeln, die in dem Polygonbereich enthalten sind, in idealer Weise berechnet werden.
  • Somit erzeugt gemäß diesem Beispiel der Kantenerzeugungsabschnitt 102a den Kantendarstellungspunkt mit derselben y-Koordinate wie der Probenpunkt des Pixels und der entsprechende Punkt und korrigiert der Korrekturabschnitt 103a die Parameter für die Polygonkante, die von dem Kantenerzeugungsabschnitt 102a erzeugt wird. Als Ergebnis können, wie bei dem Beispiel 1, die idealen entsprechenden Punkte für sämtliche der Pixel, die in dem Polygon enthalten sind, be rechnet werden und kann somit die Qualität von Textur-Abbildungsbildern verbessert werden.
  • Wie man aus der Konfiguration des Korrekturabschnittes 103a, der in der 13 gezeigt ist, ableitet, kann die Korrektur mit einer Multiplikation und mit einer Addition realisiert werden und kann die Berechnung von (x0 – [x0]) durch Maskieren von höchstwertigen Bits realisiert werden. Folglich kann die Schaltung im Vergleich zu dem Fall gemäß Beispiel 1 vereinfacht werden. Dies bedeutet, dass die Verzögerung der gesamten Verarbeitung auf Grund der Korrektur extrem reduziert werden kann. Auch kann die Hochgeschwindigkeitsverarbeitung als Ganze beibehalten werden, weil sämtliche der Elemente in einem Fließband- bzw. Pipelinebetrieb betrieben werden können.
  • Bei diesem Beispiel war der Abtast- bzw. Probenpunkt von jedem Pixel der nächste Punkt zu dem Ursprung. Andere Stellen können ebenfalls für den Abtast- bzw. Probenpunkt verwendet werden. Beispielsweise kann der am weitesten zu dem Ursprung entfernte Punkt als der Abtast- bzw. Probenpunkt verwendet werden.
  • Bei diesem Beispiel wurde die Beziehung zwischen dem Punkt auf dem Polygon und dem Punkt auf der Textur durch die Gleichungen 1 und 2 wiedergegeben. Die Beziehung, die durch die Gleichungen 17 und 18 wiedergegeben wird, kann beispielsweise auch dazu verwendet werden, um eine korrekte Berechnung eines entsprechenden Punktes vorzunehmen. Kurz gesagt, kann die vorliegende Erfindung auf jegliche Gleichungen für die Berechnung der entsprechenden Punkte angewendet werden.
  • Bei diesem Beispiel wurde die Berechnung von entsprechenden Punkten auf einem Bild für eine Polygon-Abbildung beschrieben. Dieselbe Verarbeitung kann auch auf die Berechnung einer Leuchtkraft bzw. Farbe und die Berechnung einer Un durchsichtigkeit (opacity) angewendet werden. Wie bei dem Fall der Berechnung eines entsprechenden Punktes können diese Berechnungen auf beliebige relationale Gleichungen angewendet werden.
  • Bei diesem Beispiel wurde das Verfahren ohne Anti-Aliasing verwendet. Dieselbe Verarbeitung kann jedoch auch vorgenommen werden, falls ein Anti-Aliasing vorgenommen wird. Auch kann im Wesentlichen dieselbe Korrektur vorgenommen werden, wenn eine Sub-Pixel-Positionierung ausgeführt wird.
  • (Beispiel 3)
  • Das dritte Beispiel gemäß der vorliegenden Erfindung wird anhand der 14 bis 17 beschrieben werden.
  • Die 14 zeigt eine Konfiguration der Abbildungsvorrichtung gemäß Beispiel 3. Die Abbildungsvorrichtung umfasst einen Betriebsabschnitt 501, einen Kantenerzeugungsabschnitt 502, einen Bereichserzeugungsabschnitt 503, einen Originalbild-Speicherabschnitt 504, einen Speicherabschnitt für ein erzeugtes Bild 505 und einen Bildspeicher-Verarbeitungsabschnitt 506. Der Betriebsabschnitt 501 berechnet einen Parameter, der zur Berechnung eines Darstellungspunktes innerhalb eines Polygons und eines entsprechenden Punktes gemäß einem inkrementellen Algorithmus verwendet wird, der die Position eines Eckpunktes des Polygons und des entsprechenden Punktes für den Polygon-Eckpunkt verwendet. Der Kantenerzeugungsabschnitt 502 berechnet den Darstellungspunkt und den entsprechenden Punkt auf einer Polygonkante unter Verwendung der Daten, die von dem Betriebsabschnitt 501 erzeugt werden. Der Bereichserzeugungsabschnitt 503 berechnet den Polygonbereichs-Darstellungspunkt und den entsprechenden Punkt unter Verwendung der Daten, die von dem Betriebsabschnitt 501 erzeugt werden, und dem entsprechenden Punkt, der von dem Kantenerzeugungsabschnitt 502 erzeugt wird. Der Originalbild-Speicherabschnitt 504 speichert ein Originalbild (Abbildungsbild).
  • Der Speicherabschnitt für ein erzeugtes Bild 505 speichert ein erzeugtes Bild. Der Bildspeicher-Verarbeitungsabschnitt 506 speichert einen Teil von Pixeldaten, die in dem Originalbild-Speicherabschnitt 504 gespeichert sind, in einem oder mehreren Teilen von benachbarten Pixeldaten in dem Speicherabschnitt für ein erzeugtes Bild 505 unter Verwendung der Daten, die von dem Bereichserzeugungsabschnitt 503 erhalten werden.
  • Der Betrieb der Abbildungsvorrichtung mit der vorgenannten Konfiguration wird nun beschrieben werden.
  • Die 15 ist eine vergrößerte Ansicht eines Pixels, durch welches die in der 37 gezeigte Seite 1404 verläuft. Das in der 15 gezeigte Pixel entspricht dem Abschnitt, der durch die Koordinaten (x, y) = (2, 4), (2, 6), (4, 6) und (4, 4) festgelegt wird. Die Bezugszeichen 601a, 601b, 601c und 601d bezeichnen Pixel auf dem Bildschirm und die Koordinaten der Punkte, die am nächsten zu dem Ursprung (der oberen linken Ecke) in den jeweiligen Pixeln liegen, sind (x, y) = (2, 4), (3, 4), (2, 5) und (3, 5). Das Bezugszeichen 602 bezeichnet eine Kante (die Seite 1404) eines Polygons, das auf dessen rechter Seite ausgebildet ist. Das Bezugszeichen 603 bezeichnet einen Darstellungspunkt (x0 ,y0) = (2,40, 4,20), der von dem Bereichserzeugungsabschnitt 503 erzeugt wird.
  • Bei diesem Beispiel ist der Abtast- bzw. Probenpunkt von jedem Bildschirm-Pixel der Punkt, der am nächsten zu dem Ursprung (in der 15 die obere linke Ecke) liegt. Genauer gesagt, ist der Abtast- bzw. Probenpunkt des Pixels 601a ein Punkt 604a (X, Y) = (2, 4), ist der Abtastpunkt des Pixels 601b ein Punkt 604b (X + 1, Y) = (3, 4), ist der Abtastpunkt des Pixels 601c ein Punkt 604c (X, Y + 1) = (2, 5) und ist der Abtastpunkt des Pixels 601d ein Punkt 604d (X + 1, Y + 1) = (3, 5). Das Bezugszeichen 605 bezeichnet ein Textur-Pixel, das dem Darstellungspunkt 603 entspricht, was zeigt, wie das Textur-Pixel auf den Bildschirm projiziert wird. Das Textur-Pixel wird aus dem Originalbild-Speicherabschnitt 504 ausgelesen und es wird angenommen, dass es dieselbe Größe aufweist wie das Bildschirm-Pixel.
  • Wie früher beschrieben, und zwar bei der Textur- bzw. Oberflächenstruktur-Abbildung, ist der entsprechende Punkt (u0, v0) für den Darstellungspunkt 603, der von dem Bereichserzeugungsabschnitt 503 erzeugt wird, nicht immer derselbe wie der entsprechende Punkt für den Abtast- bzw. Probenpunkt des Pixels 601a.
  • In diesem Beispiel wird eine solche Inkonsistenz zwischen den entsprechenden Punkten für den Darstellungspunkt und den Abtast- bzw. Probenpunkt des Pixels durch Speichern von Daten des Pixels gelöst, das auf dem Bildschirm in einer Mehrzahl von Pixeln auf dem Bildschirm dargestellt werden soll.
  • Genauer gesagt, werden Daten des Textur- bzw. Oberflächenstrukturpixels 605, das durch den entsprechenden Punkt (u0, v0) für den Darstellungspunkt 603 (x0, y0) dargestellt wird, aus dem Originalbild-Speicherabschnitt 504 ausgelesen. Der Datenwert des Textur-Pixels 605 wird den Pixeln 601a, 601b, 601c und 601d auf dem Bildschirm zugewiesen und darin gespeichert. Diese Zuweisung wird in Abhängigkeit von dem Bereich vorgenommen, der von dem Textur-Pixel 605 und jedem Bildschirm-Pixel gemeinsam genutzt wird. Konkret wird ein Gewichtungskoeffizient für jedes Bildschirm-Pixel in Abhängigkeit von einem von diesen gemeinsam genutzten Bereich berechnet und wird der durch Multiplizieren des Pixelwertes des Textur-Pixels 605 mit jedem Gewichtungskoeffizienten erhaltene Wert jedem Bildschirm-Pixel zugeführt. Der Bruchteil des gemeinsam genutzten Bereiches kann beispielsweise als der Gewichtungskoeffizient verwendet werden.
  • Bezugnehmend auf die 15, hat ein Bereich 606a, der gemeinsam mit dem Textur-Pixel 605 benutzt wird, eine gemeinsam genutzte Fläche Sa, hat ein Bereich 606b des Bildschirm-Pixels 601b, der gemeinsam mit dem Textur-Pixel 605 genutzt wird, eine gemeinsam benutzte Fläche Sb, hat ein Bereich 606c des Bild schirm-Pixels 601c, der gemeinsam mit dem Textur-Pixel 605 genutzt wird, eine gemeinsam genutzte Fläche Sc und hat ein Bereich 606d des Bildschirm-Pixels 601d, der gemeinsam genutzt wird mit dem Textur-Pixel 605, eine gemeinsam genutzte Fläche Sd. Die gemeinsam genutzten Flächen Sa bis Sd werden durch die nachfolgenden Gleichungen 38 bis 41 jeweils wiedergegeben. Sa = (1 – (x0 – X)) × (1 – (y0 – Y)) (38) Sb = (x0 – X) × (1 – (y0 – Y)) (39) Sc = (1 – (x0 – X)) × (y0 – Y) (40) Sd = (x0 – X) × (y0 – Y) (41)
  • Die speziellen gemeinsam genutzten Flächen sind wie folgt (siehe 16, bei der es sich um eine vergrößerte Ansicht der vier gemeinsam genutzten Bereiche, die in der 15 gezeigt sind, handelt). Sa = (1 – 2.4 – 2)*(1 – 4.2 – 4) – 0.6*0.8 = 0.48 Sb = (2.4 – 2)*(1 – 4.2 – 4) = 0.4*0.8 = 0.32 Sc = (1 – 2.4 – 2)*(4.2 – 4) = 0.6*0.2 = 0.12 Sa = (2.4 – 2)*(4.2 – 4) = 0.4*0.2 = 0.8
  • Zu diesem Zeitpunkt, wenn der Pixelwert des Textur-Pixels 605 (R, G, B) = (192, 64, 32) ist, sind die Daten, die in den Pixeln 601a, 601b, 601c bzw. 601d gespeichert sind (R, G, B) = (92,16, 30,72, 15,36), (61,44, 20,48, 10,24), (23,04, 7,68, 3,84) bzw. (15,36, 5,12, 2,56).
  • Die vorstehende Verarbeitung wird von dem Bildspeicher-Verarbeitungsabschnitt 506 vorgenommen. Der Texturdatenwert (Pixelwert), der in dem Originalbild-Speicherabschnitt 504 gespeichert wird, wird ausgelesen und der vorgenannten Verarbeitung für den Speicherabschnitt für ein erzeugtes Bild 505 unterzogen. Der Originalbild-Speicherabschnitt 504 und der Speicherabschnitt für ein erzeugtes Bild 505 werden beispielsweise mit Hilfe von Speichern realisiert, während der Bildspeicher-Verarbeitungsabschnitt 506 mit Hilfe einer Konfiguration realisiert wird, wie diese in der 17 gezeigt ist.
  • Bezugnehmend auf die 17, berechnet ein Multiplizierer 2101 die gemeinsam genutzte Fläche Sa, berechnet ein Multiplizierer 2102 die gemeinsam genutzte Fläche Sc, berechnet ein Multiplizierer 2103 die gemeinsam genutzte Fläche Sb und berechnet ein Multiplizierer 2104 die gemeinsam genutzte Fläche Sd. Ein Multiplizierer 2105 berechnet einen Pixelwert, der in dem Pixel 601a gespeichert werden soll, ein Multiplizierer 2106 berechnet einen Pixelwert, der in dem Pixel 601c gespeichert werden soll, ein Multiplizierer 2107 berechnet einen Pixelwert, der in dem Pixel 601b gespeichert werden soll, und ein Multiplizierer 2108 berechnet einen Pixelwert, der in dem Pixel 601d gespeichert werden soll. Mit dieser Konfiguration wird der Bildspeicher-Verarbeitungsabschnitt 506 realisiert.
  • Somit wird gemäß diesem Beispiel der Wert des Textur-Pixels, das auf das Bildschirm-Pixel reflektiert bzw. abgebildet werden soll, einer Mehrzahl von Bildschirm-Pixeln in Abhängigkeit von der Verschiebung des Darstellungspunktes von bzw. zu dem Probenpunkt zugewiesen, der in dem inkrementellen Algorithmus auftaucht und in den Bildschirm-Pixeln mit Hilfe des Bildspeicher-Verarbeitungsabschnittes 506 gespeichert ist. Dies macht es möglich, korrekte Pixelwerte der Textur- bzw. Oberflächenstruktur auf sämtliche der Pixel auf dem Bildschirm bei der Textur-Abbildung zu reflektieren bzw. abzubilden, was eine korrekte Textur-Abbildung auf dem Bildschirm realisiert. Während die Position des Darstellungspunktes in den Beispielen 1 und 2 korrigiert ist, ist das Darstellungspixel in diesem Beispiel korrigiert.
  • Der Betrieb, der von dem Bildspeicher-Verarbeitungsabschnitt 506 gemäß diesem Beispiel ausgeführt wird, umfasst die folgenden Verarbeitungsschritte: Berechnen der von dem Textur-Pixel mit den Bildschirm-Pixeln gemeinsam benutzten Flächen (Gleichungen 38 bis 41); Zuweisen des Textur-Pixelwerts zu den Bildschirm-Pixeln in Abhängigkeit von den gemeinsam genutzten Flächen; und Speichern der gemeinsam genutzten Textur-Pixelwerte in den entsprechenden Bildschirm-Pixeln.
  • Die Berechnung der gemeinsam genutzten Flächen und die Zuweisung des Pixelwerts, die von den in der 17 gezeigten Multiplizierern ausgeführt wird, kann mit Hilfe von Schiebern bzw. Schieberegistern und Addierern realisiert werden. Mit anderen Worten, jeder Multiplizierer in der 17 ist nicht ein reiner Multiplizierer, sondern besteht aus einem Schieberegister und einem Addierer. Durch Herabsetzen der Genauigkeit, die für die vorgenannten Prozessschritte erforderlich ist, kann die Anzahl von Addierern reduziert werden und kann somit die Verzögerung auf Grund der Addition reduziert werden. Eine hohe Auslastung ist für diese Verarbeitungsschritte nicht erforderlich und somit wird die Verarbeitungsgeschwindigkeit nicht herabgesetzt. Bei der Verarbeitung zum Speichernn der zugewiesenen Pixelwerte zu einer Mehrzahl von Bildschirm-Pixeln kann, weil die Bildschirm-Pixel zueinander benachbart sind, der Bildspeicher-Verarbeitungsabschnitt 506 einen Parallelzugriff auf den Speicherabschnitt für ein erzeugtes Bild 505 ausführen und/oder kann dieser parallel mit anderen Elementen betrieben werden. Somit ist die Konfiguration des Bildspeicher-Verarbeitungsabschnittes 506 nicht kompliziert und wird dessen Verarbeitungsgeschwindigkeit nicht herabgesetzt.
  • Bei diesem Beispiel wurde der am nächsten zu dem Ursprung befindliche Punkt als der Abtast- bzw. Probenpunkt in jedem Pixel verwendet. Andere Stellen können ebenfalls für den Proben- bzw. Abtastpunkt verwendet werden.
  • Bei diesem Beispiel sind die y-Koordinate des Darstellungspunktes, der von dem Kantenerzeugungsabschnitt 502 erzeugt wird, und die y-Koordinate des Proben punkts des Pixels nicht gleich. Der Zugriffsumfang auf den Speicherabschnitt für ein erzeugtes Bild 505 kann reduziert werden, falls der Kantenerzeugungsabschnitt 502 ausgelegt ist, um einen Darstellungspunkt zu erzeugen, welcher dieselbe y-Koordinate wie der Probenpunkt aufweist.
  • Bei diesem Beispiel wurde die Berechnung des entsprechenden Punktes für eine Textur- bzw. Oberflächenstruktur-Abbildung beschrieben. Die vorstehende Verarbeitung kann auch auf eine Leuchtkraft- bzw. Farbberechnung und eine Undurchsichtigkeitsberechnung angewendet werden. Wie bei dem Fall einer Berechnung des entsprechenden Punktes können diese Berechnungen auf jegliche relationale Gleichung angewendet werden.
  • Bei diesem Beispiel wurde das Verfahren ohne ein Anti-Aliasing verwendet. Dieselbe Verarbeitung kann jedoch auch ausgeführt werden, falls ein Anti-Aliasing vorgenommen wird. Auch im Wesentlichen dieselbe Korrektur kann ausgeführt werden, wenn eine Sub-Pixel-Positionierung ausgeführt wird.
  • Bei diesem Beispiel weist ein Textur-Pixel vier mit vier Bildschirm-Pixeln gemeinsam genutzte Bereiche auf. Die Anzahl von gemeinsam genutzten Bereichen wird maximal zwei betragen, falls der Darstellungspunkt mit derselben y-Koordinate wie der Probenpunkt erzeugt wird. Diese Konfiguration macht es möglich, den Zugriffsumfang auf den Speicherabschnitt für ein erzeugtes Bild in großem Umfang zu reduzieren.
  • (Beispiel 4)
  • Das vierte Beispiel der Abbildungsvorrichtung gemäß der vorliegenden Erfindung wird anhand der 18 bis 25 beschrieben werden.
  • Die 18 zeigt eine Konfiguration eines Adresserzeugungsabschnittes der Abbildungsvorrichtung gemäß dem Beispiel 4. Der Adresserzeugungsabschnitt umfasst einen Betriebsabschnitt 701, einen ersten Kantenerzeugungsabschnitt 702a, einen zweiten Kantenerzeugungsabschnitt 702b, einen Auswählabschnitt 703 und einen Bereichserzeugungsabschnitt 704. Der Betriebsabschnitt 701 berechnet Parameter, die für die Berechnung eines Darstellungspunktes innerhalb eines Polygons verwendet werden und für den entsprechenden Punkt, welcher die Position eines Polygon-Eckpunktes verwendet, und des entsprechenden Punktes für den Polygon-Eckpunkt. Der erste Kantenerzeugungsabschnitt 702a berechnet einen Punkt-Kandidaten, der dem Darstellungspunkt auf einer Polygonkante und dem entsprechenden Punkt entspricht, und zwar unter Verwendung des Parameters, der von dem Betriebsabschnitt 701 erzeugt wird. Der zweite Kantenerzeugungsabschnitt 702b berechnet einen Punkt-Kandidaten, der dem Darstellungspunkt auf einer Polygonkante und dem entsprechenden Punkt entspricht, und zwar unter Verwendung des Parameters, der von dem Betriebsabschnitt 701 erzeugt wird. Der Auswählabschnitt 703 wählt das Ergebnis aus, das von dem ersten Kantenerzeugungsabschnitt 702a erzeugt wird, oder das Ergebnis, das von dem zweiten Kantenerzeugungsabschnitt 702b erzeugt wird, und gibt das Auswahlergebnis an den ersten und den zweiten Kantenerzeugungsabschnitt 702a und 702b aus. Der Bereichserzeugungsabschnitt 704 berechnet den Polygonbereich-Darstellungspunkt und den entsprechenden Punkt unter Verwendung des Parameters, der von dem Betriebsabschnitt 701 berechnet wurde, und gibt das Auswahlergebnis von dem Auswählabschnitt 703 aus und gibt das Berechnungsergebnis aus.
  • Der Betrieb des Adresserzeugungsabschnittes der Abbildungsvorrichtung mit der vorstehenden Konfiguration wird nun beschrieben werden.
  • Die 19 zeigt Pixel, durch welche Kanten des darzustellenden Polygons verlaufen. Das Bezugszeichen 801 bezeichnet eine Kante des Polygons, das auf dessen rechter Seite ausgebildet ist. Die Beziehung, die durch die Gleichungen 1 und 2 wiedergegeben wird, wird zwischen dem Polygon und einer Textur bzw. Oberflächenstruktur eingerichtet. Die Polygonkante 801 passiert einen Punkt p0 (6, 0) und einen Punkt p4 (0, 4) auf dem Bildschirm. Der erste und zweite Kantenerzeugungsabschnitt 702a und 702b berechnen einen Punkt-Kandidaten, der dem Kantendarstellungspunkt und dem entsprechenden Punkt mit derselben y-Koordinate, wie ein zuvor definierter Probenpunkt desselben Bildschirm-Pixels, entspricht. Bei diesem Beispiel wird der Punkt, der, sich am nächsten zu dem Ursprung in jedem Pixel befindet, als der Abtast- bzw. Probenpunkt des Pixels verwendet. Die Punkte 802a, 802b, 802c, 802d bzw. 802e sind Darstellungspunkte p0, p1, p2, p3 bzw. p4, die unter Verwendung des inkrementellen Algorithmus in der Richtung der Abtastzeile berechnet werden. Die Pixel 803a, 803b, 803c, 803d bzw. 803e werden durch Reflektieren bzw. Abbilden der Darstellungspunkte 802a, 802b, 802c, 802d bzw. 802e erhalten und haben Probenpunkte 804a, 804b, 804c, 804d bzw. 804e. Die Pfeile 805a, 805b, 805c und 805d zeigen Verschiebungen der Probenpunkte der abgebildeten Pixel entlang der Polygonkante. Das Polygon, das für die Textur-Abbildung verwendet wird, ist ein Dreieck mit Eckpunkten, deren Bildschirm-Koordinaten und Textur- bzw. Oberflächenstruktur-Koordinaten wie folgt lauten (x, y, u, v) = (6, 0, 0, 0), (0, 4, 0, 16) und (8, 5, 16, 16).
  • Die 20 ist eine vergrößerte Ansicht des Bereichs in der Nähe des Darstellungspunktes p0 (802a), der in der 19 gezeigt ist. Ein Punkt 901 bezeichnet den Probenpunkt, der sich am nächsten zu dem Darstellungspunkt 802b auf der linken Seite des Darstellungspunktes 802b befindet (identisch zu dem Darstellungspunkt 804b in der 19). In ähnlicher Weise bezeichnet ein Punkt 902 den Probenpunkt, der sich am nächsten zu dem Darstellungspunkt 802b auf der rechten Seite des Darstellungspunktes 802b befindet. Die Probenpunkte 901 und 902 sind Punkt-Kandidaten des Darstellungspunktes 802b. Die Pfeile 903 und 904 geben die Verschiebung von dem Probenpunkt 804a zu dem Probenpunkt 901 bzw. die Verschiebung von dem Probenpunkt 804a zu dem Probenpunkt 902 wieder.
  • Aus den Abständen der Probenpunkte 901 und 902 zu dem Darstellungspunkt 802b wird die Verschiebung in der Koordinate u in dem Pfeil 903 (du/dy(L)) durch die nachfolgende Gleichung 42 wiedergeben, während die Verschiebung in der Koordinate u in dem Pfeil 904 (du/dy(R)) durch die nachfolgende Gleichung 43 wiedergegeben wird. (Die Verschiebung in der Koordinate u des entsprechenden Punktes von dem Probenpunkt 804a zu dem Darstellungspunkt 802b beträgt du/dy.) du/dy(L) = du/dy – δu/δx × (dx/dy – [dx/dy] (42) du/dy(R) = du/dy + δu/δx (1 – dx/dy – [dx/dy]) (43)
  • Die idealen entsprechenden Punkte für die Pixel 803a, 803b, 803c, 803d und 803e können durch geeignete Auswahl zwischen den zwei Verschiebungen in der Koordinate u des entsprechenden Punktes berechnet werden, weil die Probenpunkte 804a, 804b, 804c, 804d und 804e in dieser Reihenfolge verschoben sind. In der 19 wird du/dy(L) für 805a und 805c verwendet, während du/dy(R) für 805b und 805d für die Berechnung des entsprechenden Punktes verwendet wird.
  • Die Auswahl zwischen den beiden Verschiebungen in der Koordinate u des entsprechenden Punktes (du/dy(L) und du/dy(R)) wird in der folgenden Weise vorgenommen. Der Fehler (Abstand) E in der Koordinate x zwischen dem Darstellungspunkt und dem Probenpunkt wird durch E (Gleichung 46) akkumuliert bzw. aufsummiert, während der inkrementelle Algorithmus wiederholt wird, obwohl die akkumulierte bzw. aufsummierte Fehlergröße 1 nicht überschreiten wird. In ähnlicher Weise haben auch die Koordinate u, die Koordinate x des Darstellungspunktes und die Koordinate v des entsprechenden Punktes zwei Inkremente. Diese werden ebenfalls wie vorstehend beschrieben ausgewählt. Die beiden Inkremente in der Koordinate x des Darstellungspunktes und der Koordinate v des entsprechenden Punktes werden durch dx/dy(L) und dx/dy(R) und dv/dy(L) bzw. dv/dy(R) wie dergegeben, die mit Hilfe des Betriebsabschnittes 701 basierend auf den nachfolgenden Gleichungen 44 bzw. 45 berechnet werden. dx/dy(L) = [dx/dy] dx/dy(R) = [dx/dy] + 1 (44) dv/dy(L) = dv/dy – δv/δx × (ds/dy – [dx/dy]) dv/dy(R) = dv/dy + δv/δx ×(1 – dx/dy + [dx/dy]) (45)
  • Die Auswahl zwischen den beiden Inkrementen wird durch Akkumulieren der Differenz (des Fehlers) zwischen dem Darstellungspunkt und dem Probenpunkt ausgeführt, der durch die nachfolgende Gleichung 46 wiedergegeben wird, und unter Verwendung von dx/dy(R), du/dy(R) und dv/dy(R) (Inkrement von (R)), wenn der akkumulierte Fehler 1 beträgt oder größer ist, oder unter Verwendung von dx/dy(L), du/dy(L) und dv/dy(L) (Inkrement von (L)), wenn der akkumulierte Fehler kleiner ist als 1. E = dx/dy – [dx/dy] (46)
  • In der 19 wird, wenn der Probenpunkt 804a zu dem Probenpunkt 804b verschoben wird, ein akkumulierter Fehler E0 in der Koordinate x durch die nachfolgende Gleichung 47 wiedergegeben, welche anzeigt, dass die Inkremente von (R) für die Koordinate x des Darstellungspunktes und die Koordinaten u und v des Darstellungspunkt verwendet werden. E0 = dx/dy – [dx/dy] = 1.5 – [1.5] 0.5 < 1.0 (47)
  • Wenn der Probenpunkt 804b zu dem Probenpunkt 804c verschoben wird, wird ein akkumulierter Fehler E 1 in der Koordinate x in der nachfolgenden Gleichung 48 wiedergegeben, welche angibt, dass die Inkremente von (L) für die Koordinate x des Darstellungspunktes und die Koordinaten u und v des Darstellungspunktes verwendet werden. E1 = E0 + dx/dy – [dx/dy] 0.5 + 1.5 – [1.5] = 1.0 > = 1.0 (48)
  • Wenn der Probenpunkt 804c zu dem Probenpunkt 804d verschoben wird, wird ein akkumulierter Fehler E2 in der Koordinate x durch die nachfolgende Gleichung 49 wiedergegeben, welche angibt, dass die Koordinate x des Darstellungspunktes und die Koordinaten u und v des Darstellungspunktes verwendet werden. E2 = El + dx/dy – [dx/dy] = 0 + 1.5 – [1.5](∵ E1 = E1 – 1 since E1 exoeeds 1) = 0.5 < 1.0 (49)
  • Wenn der Probenpunkt 804d zu dem Probenpunkt 804e verschoben wird, wird ein akkumulierter Fehler E3 in der Koordinate x durch die nachfolgende Gleichung 50 wiedergegeben, welche angibt, dass die Inkremente von (R) für die Koordinate x des Darstellungspunktes und die Koordinaten u und v des Darstellungspunktes verwendet werden. E3 = E2 + dx/dy – [dx/dy] = 0.5 + 1.5 – [1.5] = 1.0 > = 1.0 (50)
  • Genauer gesagt, wird der entsprechende Punkt in der folgenden Weise berechnet. Zunächst werden dx/dy, du/dy, dv/dy, dx/dy, dx/dy(L), du/dy(L), dv/dy(L), dx/dy(L), dx/dy(R), du/dy(R), dv/dy(R), dx/dy(R), δu/δx und δv/δx der drei Sei ten, welche das Polygon ausbilden, von dem Betriebsabschnitt 701 aus der Beziehung zwischen den Bildschirm-Koordinaten und den Textur-Koordinaten des Polygons berechnet, das für die Textur-Abbildung verwendet wird (das Dreieck von (x, y, u, v) = (6, 0, 0, 0), (0, 4, 0, 16), (8, 5, 16, 16)). Nachfolgend wird als ein Beispiel die Kante 801 berechnet (Gleichung 51).
  • Figure 00570001
  • Basierend auf den Parametern, die in der Gleichung 51 gezeigt sind und durch die vorgenannte Berechnung von dem Betriebsabschnitt 701 erhalten werden, werden die Verarbeitungsschritte von dem ersten Kantenerzeugungsabschnitt 702a, von dem zweiten Kantenerzeugungsabschnitt 702b und von dem Auswählabschnitt 703 beschrieben werden.
  • Der erste Kantenerzeugurgsabschnitt 702a empfängt das Inkrement von (L), das von dem Betriebsabschnitt 701 berechnet wird, und die Bildschirm- und Textur-Koordinaten (6, 0, 0, 0) bei dem Punkt p0 als die Anfangswerte. Der zweite Kantenerzeugungsabschnitt 702b empfängt das Inkrement von (R), das von dem Betriebsabschnitt 701 berechnet wird, und die Bildschirm- und Textur-Koordinaten (6, 0, 0, 0) bei dem Punkt p0 als die Anfangswerte. Der Auswählabschnitt 703 empfängt die Differenz (den Fehler) E zwischen dem Darstellungspunkt, der von dem Betriebsabschnitt 701 berechnet wird, und dem Probenpunkt (siehe Gleichung 51).
  • Die Kantenerzeugungsabschnitte 702a und 702b addieren ein Inkrement zu den Koordinaten (x, y, u, v) des Polygon-Eckpunktes als die Anfangswerte bei dem Anfangsschritt oder zu den Koordinaten (x, y, u, v), die in den nachfolgenden Schritten von dem Auswählabschnitt 703 ausgegeben werden. Der erste Kantenerzeugungsabschnitt 702a verwendet die Inkremente von (L), während der zweite Kantenerzeugungsabschnitt 702b die Inkremente von (R) verwendet, um die Koordinaten (x, y, u, v) für den nächsten Schritt zu berechnen.
  • Der Auswählabschnitt 703 addiert sukzessive den Wert von E (= dy/dy – [dx/dy]), wenn die Kantenpunkte berechnet werden, um so den akkumulierten Fehler zu berechnen. Der Auswählabschnitt 703 wählt die Koordinaten (x, y, u, v), die von dem ersten Kantenerzeugungsabschnitt 702a ausgegeben werden, aus, wenn der akkumulierte Fehler kleiner ist als 1, oder wählt die Koordinaten (x, y, u, v), die von dem zweiten Kantenerzeugungsabschnitt 702b ausgegeben werden, aus, wenn der akkumulierte Fehler 1 beträgt oder größer ist.
  • Die 21 zeigt den Strom der Prozessschritte, die von dem ersten Kantenerzeugungsabschnitt 702a, von dem zweiten Kantenerzeugungsabschnitt 702b und von dem Auswählabschnitt 703 ausgeführt werden.
  • Bezugnehmend auf die 21 werden die Verarbeitungsschritte 2201, 2203, 2205 und 2207 von dem ersten Kantenerzeugungsabschnitt 702a ausgeführt. Die Verarbeitungsschritte 2202, 2204, 2206 und 2208 werden von dem zweiten Kantenerzeugungsabschnitt 702b ausgeführt. Die Verarbeitungsschritte 2211, 2212, 2213 und 2214 werden von dem Auswählabschnitt 703 ausgeführt. Die Auswahl von Daten wird basierend auf dem Wert vorgenommen, der in diesen Prozessschritten erhalten wird. Die Bezugszeichen 2221, 2222, 2223 und 2224 zeigen an, wie die Daten in dem Auswählabschnitt 703 ausgewählt werden. In der 21 sind die Werte (Daten), die in den grau getönten, gepunkteten Bereichen gezeigt sind, Werte, die von dem Betriebsabschnitt 701 berechnet werden. Daten, die von dem Auswählabschnitt 703 ausgegeben werden, sind unterstrichen.
  • Die Berechnung der Bildschirm-Koordinaten und der Textur-Koordinaten der Punkte auf dem Polygon wird nachfolgend beschrieben werden. In der nachfolgenden Beschreibung sind die y-Koordinaten der Punkte p0 bis p4 0, 1, 2, 3 bzw. 4.
  • Schritt 0:
  • Die Koordinaten (6, 0, 0, 0) des Punktes p0 als ein Eckpunkt des Polygons werden als die Anfangswerte für die nachfolgenden Prozessschritte verwendet. Die Werte (6,0,0,0) werden von dem Auswählabschnitt 703 und dem Bereichserzeugungsabschnitt 704 ausgegeben.
  • Schritt 1:
  • Die Anfangswerte für den inkrementellen Algorithmus sind die Koordinaten (6, 0, 0, 0) des Punktes p0 als Eckpunkt des Polygons. Der erste und zweite Kantenerzeugungsabschnitt 702a und 702b führen die Prozessschritte 2201 bzw. 2202 aus, um die Inkremente, die von dem Betriebsabschnitt 701 bereitgestellt werden, zu addieren.
  • Gleichzeitig führt der Auswählabschnitt 703 den Verarbeitungsschritt 2211 aus, um den Fehler E, der von dem Betriebsabschnitt 701 bereitgestellt wird, zu akkumulieren. Nach der Beendigung der Prozessschritte 2201, 2202 und 2211 wählt der Auswählabschnitt 703 Daten basierend auf dem Wert des akkumulierten Fehlers E (Summe(E) in der 21) aus. Weil der Wert in diesem Fall kleiner als 1 ist, werden die Koordinaten (x, y, u, v), die von dem ersten Kantenerzeugungsabschnitt 702a ausgegeben werden, ausgewählt. Genauer gesagt, werden die Koordinaten (4,00, 1,00, –0,84, 4,21) ausgewählt (Auswahl bei 2221). Dies entspricht der Berechnung des Inkrements von 805a, die in der 19 gezeigt ist.
  • Schritt 2:
  • Der erste bzw. zweite Kantenerzeugungsabschnitt 702a bzw. 702b führt die Verarbeitungsschritte 2203 bzw. 2204 aus. Der Auswählabschnitt 703 addiert das Inkrement zu dem zuvor ausgewählten Datenwert (4,00, 1,00, –0,84, 4,21).
  • Gleichzeitig führt der Auswählabschnitt 703 den Verarbeitungsschritt 2212 aus, um den Fehler E, der von dem Betriebsabschnitt 701 bereitgestellt wird, zu akkumulieren. Nach der Beendigung der Prozessschritte 2203, 2204 und 2212 wählt der Auswählabschnitt 703 Daten basierend auf dem Wert des akkumulierten Fehlers E (Summe(E) in der 21) aus. Weil der Wert 1 beträgt oder in diesem Fall größer ist, werden die Koordinaten (x, y, u, v), die von dem zweiten Kantenerzeugungsabschnitt 702b ausgegeben werden, ausgewählt. Genauer gesagt, werden die Koordinaten (3,00, 2,00, 0,00, 8,00) ausgewählt (Auswahl bei 2222). Dies entspricht der Berechnung des Inkrements von 805b, die in der 19 gezeigt ist. Weil der akkumulierte Fehler E 1 überschritten hat, wird die Verarbeitung zum Subtrahieren von 1 von E gleichzeitig ausgeführt (Fehlerkorrektur).
  • Schritt 3:
  • Der erste bzw. zweite Kantenerzeugungsabschnitt 702a bzw. 702b führt die Verarbeitungsschritte 2205 bzw. 2206 aus. Der Auswählabschnitt 703 addiert das Inkrement zu den zuvor ausgewählten Daten (3,00, 2,00, 0,00, 8,00).
  • Gleichzeitig führt der Auswählabschnitt 703 den Verarbeitungsschritt 2213 aus, um den Fehler E, der von dem Betriebsabschnitt 701 bereitgestellt wird, zu akkumulieren. Nach der Beendigung der Verarbeitungsschritte 2205, 2206 und 2213 wählt der Auswählabschnitt 703 Daten basierend auf dem Wert des akkumulierten Fehlers E (Summe(E) in der 21) aus. Weil der Wert in diesem Fall kleiner als 1 ist, werden die Koordinaten (x, y, u, v), die von dem ersten Kantenerzeugungsabschnitt 702a ausgegeben werden, ausgewählt. Genauer gesagt, werden die Koordinaten (1,00, 3,00, –0,84, 12,21) ausgewählt (Auswahl bei 2223). Dies entspricht der Berechnung des Inkrements von 805c, die in der 19 gezeigt ist.
  • Schritt 4:
  • Der erste bzw. zweite Kantenerzeugungsabschnitt 702a bzw. 702b führt die Verarbeitungsschritte 2207 bzw. 2208 aus. Der Auswählabschnitt 703 addiert das Inkrement zu den zuvor ausgewählten Daten (1,00, 3,00, –0,84, 12,21).
  • Gleichzeitig führt der Auswählabschnitt 703 den Verarbeitungsschritt 2214 aus, um den Fehler E, der von dem Betriebsabschnitt 701 bereitgestellt wird, zu akkumulieren. Nach der Beendigung der Prozessschritte 2207, 2208 und 2214 wählt der Auswählabschnitt 703 Daten basierend auf dem Wert des akkumulierten Fehlers E (Summe(E) in der 21) aus. Weil der Wert in diesem Fall 1 beträgt oder größer ist, werden die Koordinaten (x, y, u, v), die von dem zweiten Kantenerzeugungsabschnitt 702b ausgegeben werden, ausgewählt. Genauer gesagt, werden die Koordinaten (0,00, 4,00, 0,00, 16,00) ausgewählt (Auswahl bei 2224). Dies entspricht der Berechnung des Inkrements von 805d, die in der 19 gezeigt ist.
  • Somit kann man durch Ausführen der Prozessschritte in den Schritten 0 bis 4 die korrekten Bildschirm- und Textur-Koordinaten der Darstellungspunkte auf der Polygonkante erhalten. Mit anderen Worten, die Darstellungspunkte und die entsprechenden Punkte auf der Polygonkante können in idealer Weise berechnet werden.
  • Als Nächstes wird die Konfiguration des ersten Kantenerzeugungsabschnittes 702a, des zweiten Kantenerzeugungsabschnittes 702b und des Auswählabschnittes 703 beschrieben werden.
  • Die 22 zeigt eine Konfiguration des ersten Kantenerzeugungsabschnittes 702a. In der nachfolgenden Beschreibung wird angenommen, dass die Koordinaten (x, y, u, v), die von dem Betriebsabschnitt 701 ausgegeben werden, Ganzzahlen sind. Mit anderen Worten, die Koordinaten der Eckpunkte des Polygons und der Textur bzw. Oberflächenstruktur, die für die Abbildung verwendet wird, sind Ganzzahlen. Selektoren bzw. Auswähler 2301a bis 2301d wählen die Daten (x, y, u, v) aus, die von dem Betriebsabschnitt 701 ausgegeben werden, oder die Daten (x, y, u, v) aus, die von den Addierern 2302a bis 2302b ausgegeben werden. Die Selektoren 2301a bis 2301d wählen die Werte x, y, u bzw. v aus. Die Selektoren 2301a bis 2301d wählen die Koordinaten (x, y, u, v) aus, die von dem Betriebsabschnitt 701 ausgegeben werden, wenn der erste Kantenpunkt berechnet wird, oder wählen die Daten (x, y, u, v) aus, die von den Addierern 2302a bis 2302d ausgegeben werden, und zwar jeweils für die nachfolgenden Prozessschritte.
  • Der Addierer 2302a nimmt das Inkrement für die Koordinate x vor, indem der Inkrementwert dx/dy(L) (siehe Gleichung 51) zu dem Wert x addiert wird, der von dem Auswählabschnitt 703 ausgegeben wird. In ähnlicher Weise nimmt der Addierer 2302b das Inkrement für die Koordinate y vor, indem der Inkrementwert 1 zu dem Wert y addiert wird, der von dem Auswählabschnitt 703 ausgegeben wird. Der Addierer 2302c nimmt das Inkrement für die Koordinate u vor, indem der Inkrementwert du/dy(L) (siehe Gleichung 51) zu dem Wert u addiert wird, der von dem Auswählabschnitt 703 ausgegeben wird. Der Addierer 2302d nimmt das Inkrement für die Koordinate v vor, indem der Inkrementwert dv/dy(L) (siehe Gleichung 51) zu dem Wert v addiert wird, der von dem Auswählabschnitt 703 ausgegeben wird. Diese Inkrementwerte ändern sich so lange nicht, bis die Verarbeitung für eine Kante beendet ist.
  • Auf diese Weise wird der erste Kantenerzeugungsabschnitt 702a zum Ausführen der Prozessschritte 2201, 2203, 2205 und 2207 realisiert. Dieselbe Konfiguration kann für den zweiten Kantenerzeugungsabschnitt 702b verwendet werden, weil die Verarbeitung von dem zweiten Kantenerzeugungsabschnitt 702b im Wesentlichen dieselbe ist wie diejenige des ersten Kantenerzeugungsabschnittes 702b. Die Beschreibung des zweiten Kantenerzeugungsabschnittes 702b wird deshalb ausgelassen.
  • Die 23 zeigt einen Teil der Konfiguration des Auswählabschnittes 703. Bezugnehmend auf die 23 weist ein Addierer 2401 einen Anfangswert auf, welcher die Differenz (Fehler E) zwischen dem Darstellungspunkt, der unter Verwendung des inkrementellen Algorithmus berechnet wird, und dem Probenpunkt des Bildschirm-Pixels darstellt, und akkumuliert den Fehler E in der Koordinate x für jede Abtastzeile auf (Gleichung 51), um den akkumulierten Fehler Summe(E) zu erhalten. Der Fehler E ändert sich so lange nicht, bis die Verarbeitung für eine Kante beendet ist. Die Selektoren 2402a, 2402c und 2402d wählen das Ausgangssignal von dem ersten Kantenerzeugungsabschnitt 702a oder das Ausgangssignal von dem zweiten Kantenerzeugungsabschnitt 702b basierend auf dem akkumulierten Fehler, der von dem Addierer 2401 berechnet wird, aus. Die Selektoren 2402a, 2402c und 2402d setzen die Koordinaten x, u bzw. v in Beziehung. Kein Selektor für die Koordinate y ist vorgesehen, weil die Ausgangssignale von dem ersten Kantenerzeugungsabschnitt 702a und von dem zweiten Kantenerzeugungsabschnitt 702b dieselben sind.
  • Falls der Addierer 2401 nur den Wert von kleiner als 1 akkumuliert bzw. aufaddiert, können die Verarbeitungsschritte, die durch die Gleichungen 47 bis 50 wiedergegeben werden, die Verarbeitungsschritte in den vorgenannten Schritten 0 bis 4 und die Verarbeitungsschritte 2211 bis 2214, die in der 21 gezeigt sind, dadurch realisiert werden, dass selektiert wird, ob das akkumulierte bzw. aufsummierte Ergebnis überläuft oder nicht. Wenn das akkumulierte Ergebnis überläuft, werden die Werte (x, y, u, v), die von dem zweiten Kantenerzeugungsabschnitt 702b ausgegeben werden, ausgewählt. Wenn das akkumulierte Ergebnis nicht überläuft, werden die Werte (x, y, u, v), die von dem ersten Kantenerzeugungsabschnitt 702a ausgegeben werden, ausgewählt.
  • Die 24 zeigt das Flussdiagramm der Verarbeitungsschritte, die von der Abbildungsvorrichtung gemäß diesem Beispiel ausgeführt werden. Die 25 zeigt das Dreieck, das für die Abbildung verwendet wird, die gemäß den in der 24 gezeigten Prozessschritten vorgenommen wird. In der 25 sei angenommen, dass die Koordinaten (ix, iy, iu, iv) der Eckpunkte des Polygons Ganzzahlen sind und dass die Koordinaten der Eckpunkte und der entsprechenden Punkte die nachfolgende Gleichung 52 erfüllen. iy0 < iy1 = iy2 ix1 < ix0 < ix2 (52)
  • Bezugnehmend auf die 24 wird in dem Schritt 1301 die Verarbeitung von dem Betriebsabschnitt 701 ausgeführt. In dem Schritt 1302 gibt der Bereichserzeugungsabschnitt 704 die Werte des Darstellungspunktes (x, y) und des entsprechenden Punktes (u, v) aus. In dem Schritt 1303 berechnet der Bereichserzeugungsabschnitt 704 den Darstellungspunkt und den entsprechenden Punkt in der Bereichsrichtung (siehe Gleichung 7). In dem Schritt 1304 wird die Bedingung zum Beenden der Verarbeitung von dem Bereichserzeugungsabschnitt 704 in dem Schritt 1303 dargestellt. In dem Schritt 1305 berechnen der erste und der zweite Kantenerzeugungsabschnitt 702a und 702b den Kantendarstellungspunkt (siehe Gleichung 4) und den Fehler E, der durch die Gleichung 46 wiedergegeben wird. Der Fehler E wird für die Auswahl in dem nachfolgenden Schritt 1306 verwendet. In dem Schritt 1306 wählt der Auswählabschnitt 703 du/dy(L) oder du/dy(R) basierend auf dem Fehler E aus. In dem Schritt 1307 berechnet der erste Kantenerzeugungsabschnitt 702a den entsprechenden Punkt. In dem Schritt 1308 berechnet der zweite Kantenerzeugungsabschnitt 702b den entsprechenden Punkt. In dem Schritt 1309 werden die Bedingungen für den Abbruch der gesamten Verarbeitung wiedergegeben. Somit wird die Verarbeitung der Abbildungsvorrichtung beendet.
  • Auf diese Weise kann die korrekte Berechnung eines entsprechenden Punktes durch Berechnen des Darstellungspunktes und des entsprechenden Punktes für das in der 25 gezeigte Polygon gemäß den in der 24 gezeigten Prozessschritten realisiert werden.
  • Genauer gesagt, können als die Parameter, die für die Berechnung des entsprechenden Punktes verwendet werden, du/dy(L) für 805a und 805c ausgewählt werden, während du/dy(R) für 805b und 805d ausgewählt werden kann. Die vorstehende Auswahl des Inkrements in der Koordinate u des entsprechenden Punktes wird von dem Auswählabschnitt 703 vorgenommen. Obwohl die vorstehende Beschreibung für die Koordinate u für den entsprechenden Punkt erfolgte, kann diese auch auf die Koordinate v für den entsprechenden Punkt, die Leuchtkraft bzw. Farbe, die Undurchsichtigkeit und dergleichen angewendet werden.
  • Genauer gesagt, kann der ideale entsprechende Punkt in dem Pixel, das eine Polygonkante aufweist, durch Auswählen zwischen den entsprechenden Punkten, die von dem ersten und dem zweiten Erzeugungsabschnitt 702b und 702b erzeugt werden, mit Hilfe des Auswählabschnittes 703 berechnet werden (siehe Gleichungen 47 bis 50). Außerdem können durch ideale Berechnung des entsprechenden Punktes eines Pixels bei dem oberen Bereich des Polygonbereichs die entsprechenden Punkte von Pixeln, die in dem Polygonbereich enthalten sind, in idealer Weise berechnet werden (siehe Gleichung 7).
  • Somit kann man gemäß der Abbildungsvorrichtung dieses Beispiels mit dem Auswählabschnitt 703, der unter den Parametern auswählt, die von dem ersten und dem zweiten Kantenerzeugungsabschnitt 702a und 702b erzeugt werden, den idealen entsprechenden Punkt für das Darstellungspixel erhalten. Dies macht es möglich, die idealen entsprechenden Punkte für sämtliche der Pixel zu berechnen, auf welche das Polygon projiziert wird, wie in den Beispielen 1 bis 3, um so die Qualität der Bildabbildung zu verbessern.
  • Die Rechenlast, die dem ersten und dem zweiten Kantenerzeugungsabschnitt gemäß diesem Beispiel auferlegt wird, ist im Wesentlichen dieselbe wie diejenige, die für den herkömmlichen inkrementellen Algorithmus benötigt wird. Die Berechnung der Parameter (Inkrementwerte), die für die jeweilige Kantenkorrektur verwendet wird, kann im Voraus für die Kante des Polygons vorgenommen werden, was deshalb die Rechenbelastung nicht signifikant erhöht, die für die Berechnung benötigt wird.
  • Bei diesem Beispiel werden zwei Kantenerzeugungsabschnitte benötigt. Mit dieser Konfiguration wird nur eine Verzögerung durch Auswählen von Parametern, die von den beiden Abschnitten erzeugt werden, neu im Vergleich zu der herkömmlichen Konfiguration hervorgerufen. Somit kann die Hochgeschwindigkeitsverarbeitung als ganze beibehalten werden.
  • Bei diesem Beispiel werden der erste und zweite Kantenerzeugungsabschnitt 702a und 702b gleichzeitig betrieben. Es ist jedoch möglich, den Betrieb von einem der beiden Kantenerzeugungsabschnitte dadurch zu stoppen, dass im Voraus die Berechnung des akkumulierten Fehlers durch den Auswählabschnitt 703 vorgenommen wird. Diese Operation wird anhand des Flussdiagramms gemäß der 21 beschrieben werden. Nach der Beendigung des Prozessschrittes 2211 für die Fehlerakkumulation ist es möglich zu erkennen, welche Daten von dem ersten Kantenerzeugungsabschnitt oder von dem zweiten Kantenerzeugungsabschnitt ausgewählt werden sollten. Weil das Ergebnis des Verarbeitungsschrittes 2211 in diesem Fall ausgewählt wird, kann der zweite Kantenerzeugungsabschnitt 702b, welcher den Verarbeitungsschritt 2202 ausführt (Verarbeitungsschaltung), gestoppt werden, ohne dass dies irgendwelche Schwierigkeiten hervorruft. Mit anderen Worten ist es möglich, die Operation von einem der Kantenerzeugungsabschnitte dadurch zu stoppen, dass im Voraus die Berechnung des akkumulierten Fehlers durch den Auswählabschnitt 703 ausgeführt wird. Dies dient dazu, den Stromverbrauch der gesamten Vorrichtung zu verringern.
  • Bei diesem Beispiel wurde der Punkt, der sich am nächsten zu dem Ursprung befindet, als der Probenpunkt von jedem Pixel ausgewählt. Statt dessen kann ein beliebiger Punkt als der Probenpunkt ausgewählt werden.
  • Bei diesem Beispiel wurde die Beziehung zwischen dem Polygon und der Textur bzw. Oberflächenstruktur durch die Gleichungen 1 und 2 wiedergegeben. Die Beziehung, die durch die Gleichungen 17 und 18 wiedergegeben wird, kann beispielsweise auch dazu benutzt werden, um eine korrekte Berechnung eines entsprechenden Punktes vorzunehmen. Kurz gesagt, kann die vorliegende Erfindung auf jegliche Gleichungen für die Berechnung der entsprechenden Punkte angewendet werden.
  • Bei diesem Beispiel wurde die Berechnung von entsprechenden Punkten für eine Polygon-Abbildung beschrieben. Dieselbe Verarbeitung kann auch auf die Leuchtkraft- bzw. Farbberechnung, die Undurchsichtigkeitsberechnung, die Unebenheits-Abbildungsberechnung und dergleichen angewendet werden. Auch für den Fall einer Berechnung des entsprechenden Punktes können diese Berechnungen auf beliebige relationale Gleichungen angewendet werden.
  • Die 10 und 11 zeigen Beispiele der gesamten Konfiguration, um eine Textur-Abbildung bzw. eine Farbabbildung zu realisieren. Durch Verwenden der in diesem Beispiel beschriebenen Konfigurationen für den Adresserzeugungsabschnitt 1701 und den Farbbetriebsabschnitt 1801, die in den 10 und 11 gezeigt sind, kann die Textur- bzw. Oberflächenstruktur-Abbildung und die Farbabbildung gemäß diesem Beispiel realisiert werden. Auch eine Undurchsichtigkeits-Abbildung, eine Unebenheits-Abbildung (bump mapping) und dergleichen kann durch entsprechende Vorrichtungen mit Konfigurationen, die vergleichbar zu der vorstehenden sind, realisiert werden. Die in den 10 und 11 gezeigten Konfigurationen wurden in dem Beispiel 1 beschrieben. Deren Beschreibung wird deshalb hier ausgelassen.
  • Bei diesem Beispiel wurde das Verfahren ohne Anti-Aliasing verwendet. Dieselbe Verarbeitung kann jedoch auch ausgeführt werden, falls ein Anti-Aliasing vorgenommen wird. Dieselbe Korrektur kann auch dann vorgenommen werden, wenn eine Sub-Pixel-Positionierung vorgenommen wird.
  • (Beispiel 5)
  • Das fünfte Beispiel gemäß der vorliegenden Erfindung wird anhand der 26 bis 29 beschrieben werden.
  • Die 26 zeigt eine Konfiguration eines Adresserzeugungsabschnittes der Abbildungsvorrichtung gemäß Beispiel 5 der vorliegenden Erfindung. In der 26 werden dieselben Elemente mit denselben Bezugszeichen wie in der 18 bezeichnet. Ein Kantenerzeugungsabschnitt 2502 berechnet Bildschirm-Koordinaten und entsprechende Textur-Koordinaten durch Ausführen einer Inkrementberechnung basierend auf einem ausgewählten Inkrementwert unter Verwendung von Daten, die von dem Betriebsabschnitt 701 erzeugt werden. Ein Inkrementänderungsabschnitt 2503 bestimmt den, Inkrementwert für den Kantenerzeugungsabschnitt 2502 unter Verwendung von Daten, die von dem Betriebsabschnitt 701 erzeugt werden. Das in der 19 gezeigte Polygon wird in diesem Beispiel für die Abbildung verwendet, wie bei dem Beispiel 4, und die Beziehung, die durch die Gleichungen 1 und 2 wiedergegeben wird, wird für die entsprechenden Punkte eingerichtet.
  • Die Textur-Abbildung bei diesem Beispiel wird beschrieben werden. Der Betriebsabschnitt 701 berechnet Parameter, die in den nachfolgenden Schritten verwendet werden (siehe Gleichungen 42, 43, 44 und 45). In der Praxis werden die in der Gleichung 51 gezeigten Werte verwendet.
  • Der Kantenerzeugungsabschnitt 2502 wechselt unter Inkrementwerten von dx/dy(L), du/dy(L), dv/dy(L), dx/dy(R), du/dy(R) und dv/dy(R) in Abhängigkeit von einem Signal next_inc_ident, das von dem Inkrement-Wechselabschnitt 2503 bereitgestellt wird, und führt eine Inkrementverarbeitung (DDA-Verarbeitung) unter Verwendung des ausgewählten Inkrementwertes aus.
  • Der Inkrement-Wechselabschnitt 2503 akkumuliert den Fehler E, der in dem Beispiel 4 beschrieben wurde (Gleichung 46 und 51), um den Wechsel basierend auf dem akkumulierten Ergebnis zu steuern, das heißt, um den Inkrementwert auszuwählen, der bei dem Kantenerzeugungsabschnitt 2502 verwendet wird. Der Wechsel, der von dem Inkrement-Wechselabschnitt 2503 ausgeführt wird, ist derselbe wie der Wechsel, der von dem Auswählabschnitt 703, der in dem Beispiel 4 beschrieben wurde, ausgeführt wird. Genauer gesagt, werden die Inkrementwerte dx/dy(L), du/dy(L) und dv/dy(L) ausgewählt, wenn der akkumulierte Fehler (Summe(E)) kleiner ist als 1, während die Inkrementwerte dx/dy(R), du/dy(R) und dv/dy(R) ausgewählt werden, wenn der akkumulierte Fehler 1 beträgt oder größer ist. Wenn der akkumulierte Fehler 1 überschreitet, wird 1 von dem akkumulierten Fehler Summe(E) wie bei dem Beispiel 4 subtrahiert.
  • Die 27 zeigt den Fluss der Prozessschritte von dem Kantenerzeugungsabschnitt 2502 und dem Inkrement-Wechselabschnitt 2503. (Das in der 19 gezeigte Polygon wird in diesem Beispiel für die Abbildung verwendet, wie in dem Beispiel 4.)
  • Bezugnehmend auf die 27, werden die Verarbeitungsschritte 2601, 2602, 2603 und 2604 von dem Kantenerzeugungsabschnitt 2502 ausgeführt. Die Verarbeitungsschritte 2611, 2612, 2613 und 2614 werden von dem Inkrement-Wechselabschnitt 2503 ausgeführt. In der 27 sind die Werte (Daten), die in den grau schraffierten, gepunkteten Bereichen dargestellten sind, Inkrementwerte (Bildschirm-Koordinaten und Textur-Koordinaten), die von dem Inkrement-Wechselabschnitt 2503 gesteuert und in dem Kantenerzeugungsabschnitt 2502 verwendet werden. Daten (x, y, u, v), die von dem Kantenerzeugungsabschnitt 2502 ausgegeben werden, sind unterstrichen.
  • Schritt 0:
  • Die Koordinaten (6, 0, 0, 0) des Punktes p0 als Eckpunkt des Polygons werden als die Anfangswerte für die nachfolgenden Prozessschritte verwendet. Der Anfangs wert des akkumulierten Fehlers Summe(E) beträgt 0. Die Werte (6, 0, 0, 0) werden von dem Kantenerzeugungsabschnitt 2502 ausgegeben.
  • Schritt 1:
  • Der Inkrement-Wechselabschnitt 2503 akkumuliert den Fehler E (Verarbeitungsschritt 2611). Weil der akkumulierte Fehler zu diesem Zeitpunkt kleiner ist als 0, instruiert der Inkrement-Wechselabschnitt 2503 den Kantenerzeugungsabschnitt 2502, den Inkrementwert (L) zu verwenden, und zwar über das in der 26 gezeigte Signal next_inc_ident.
  • Beim Empfang dieses Signals akkumuliert der Kantenerzeugungsabschnitt 2502 die (L)-Inkrementwerte (–2,00, 1,00, –0,84, 4,21) zu den Ergebnissen (Anfangswerten) von dem Schritt 0 und gibt die akkumulierten bzw. aufsummierten Ergebnisse aus (Verarbeitungsschritt 2601). Als Folge werden Werte (4,00, 1,00, –0,84, 4,21) ausgegeben. Diese Verarbeitung entspricht der Inkrementberechnung von 805a, wie in der 19 gezeigt ist.
  • Schritt 2:
  • Weil der akkumulierte Fehler 1 überschritten hat (Verarbeitungsschritt 2612), instruiert der Inkrement-Wechselabschnitt 2503 den Kantenerzeugungsabschnitt 2502, den Inkrementwert von (R) zu verwenden, und zwar über das in der 26 gezeigte Signal next_inc_ident.
  • Beim Empfang dieses Signals akkumuliert der Kantenerzeugungsabschnitt 2502 die (R)-Inkrementwerte (–1,00, 1,00, 0,84, 3,79) zu den Ergebnissen von dem Schritt 1 und gibt die akkumulierten Ergebnisse aus (Verarbeitungsschritt 2602). Als Ergebnis werden Werte (3,00, 2,00, 0,00, 8,00) ausgegeben. Diese Verarbeitung entspricht der Inkrementberechnung von 805b, die in der 19 gezeigt ist.
  • Weil der akkumulierte Fehler E 1 überschritten hat, subtrahiert der Inkrement-Wechselabschnitt 2503 1 von dem akkumulierten Fehler.
  • Schritt 3:
  • Der Inkrement-Wechselabschnitt 2503 akkumuliert den Fehler E (Verarbeitungsschritt 2613). Weil der akkumulierte Fehler zu diesem Zeitpunkt kleiner ist als 1, instruiert der Inkrement-Wechselabschnitt 2503 den Kantenerzeugungsabschnitt 2502, den Inkrementwert von (L) zu verwenden, und zwar über das Signal next_inc_ident.
  • Auf den Empfang dieses Signals akkumuliert der Kantenerzeugungsabschnitt 2502 die (L)-Inkrementwerte (–2,00, 1,00, –0,84, 4,21) zu den Ergebnissen von dem Schritt 2 und gibt die akkumulierten Ergebnisse aus (Verarbeitungsschritt 2603). Als Folge werden Werte (1,00, 3,00, –0,84, 12,21) ausgegeben. Diese Verarbeitung entspricht der Inkrementberechnung von 805c, wie in der 19 gezeigt ist.
  • Schritt 4:
  • Weil der akkumulierte Fehler E 1 überschritten hat, instruiert der Inkrement-Wechselabschnitt 2503 den Kantenerzeugungsabschnitt 2502, den Inkrementwert von (R) zu verwenden, und zwar über das Signal next_inc_ident.
  • Beim Empfang dieses Signals akkumuliert der Kantenerzeugungsabschnitt 2502 die (R)-Inkrementwerte (–1,00, 1,00, 0,84, 3,79) zu den Ergebnissen von dem Schritt 3 und gibt die akkumulierten Ergebnisse aus (Verarbeitungsschritt 2614). Als Folge werden Werte (0,00, 4,11, 0,00, 16,00) ausgegeben. Diese Verarbeitung entspricht der Inkrementberechnung von 805d, wie in der 19 gezeigt ist.
  • Weil der akkumulierte Fehler E 1 überschritten hat, subtrahiert der Inkrement-Wechselabschnitt 2503 1 von dem akkumulierten Fehler.
  • Somit können durch Ausführung der Verarbeitungsschritte in den Schritten 0 bis 4 vorstehend ideale Polygon-Koordinaten und Textur-Koordinaten für Punkte auf der Polygonkante erhalten werden.
  • Als Nächstes wird die Konfiguration des Kantenerzeugungsabschnittes 2502 und des Inkrement-Wechselabschnittes 2503 beschrieben werden.
  • Die 28 zeigt ein Beispiel der Konfiguration des Kantenerzeugungsabschnittes 2502. Selektoren bzw. Auswähler 2701a, 2701c und 2701d wechseln zwischen den Anfangswerten (R) und (L), die in dem Kantenerzeugungsabschnitt 2502 verwendet werden, in Abhängigkeit von dem in der 26 gezeigten Signal next_inc_ident.
  • Addierer 2702a bis 2702d addieren die von den Selektoren 2701a, 2701c und 2701d ausgewählten Inkrementwerte zu den Werten, die von dem Kantenerzeugungsabschnitt 2502 ausgegeben werden. In der 28 werden Werte, die von dem Kantenerzeugungsabschnitt 2502 ausgegeben werden, zurückgegeben, um in die Addierer 2702a bis 2702d eingegeben zu werden. Auf diese Weise werden die Verarbeitungsschritte 2601, 2602, 2603 und 2604 realisiert.
  • Die Selektoren 2703a bis 2703d wählen die Werte (x, y, u, v), die von dem Betriebsabschnitt 701 ausgegeben werden, aus, wenn der erste Kantenpunkt berechnet wird, oder wählen ansonsten Daten (x, y, u, v) aus, die von den Addierern 2702a bis 2702d ausgegeben werden. Dies ermöglicht die sukzessive Berechnung der Werte (x, y, u, v) aus den Anfangswerten für die Polygonkante.
  • Die 29 zeigt ein Beispiel der Konfiguration des Inkrement-Wechselabschnittes 2503. Wie in der 29 gezeigt, akkumuliert ein Addierer 2801 den Fehler E (Gleichung 51) in der Koordinate x für jede Scanzeile, um den akkumulierten Fehler Summe(E) zu erhalten.
  • Ein Indikator bzw. Hinweis wird in dem Inkrement-Wechselabschnitt 2503 verwendet, um zwischen den Inkrementwerten zu wechseln, um den Inkrementwert zu steuern, der in dem Kantenerzeugungsabschnitt 2502 verwendet wird. Der Indikator wechselt zwischen den Inkrementwerten in Abhängigkeit davon, ob der akkumulierte Fehler (Summe(E)) 1 überschreitet oder nicht, und subtrahiert 1 von dem akkumulierten Fehlerwert, wenn der akkumulierte Fehler 1 überschreitet. Genauer gesagt, beinhaltet der Inkrement-Wechselabschnitt 2503 einen Akkumulator, der nur eine Größe, die kleiner ist als 1, akzeptiert und bestimmt, ob das akkumulierte Ergebnis überläuft oder nicht. Somit werden die Verarbeitungsschritte 2611, 2612, 2613 und 2614 realisiert.
  • Somit können die vorstehend beschriebenen Schritte 0 bis 4 unter Verwendung des Kantenerzeugungsabschnittes 2502 und des Inkrement-Wechselabschnittes 2503 mit der vorstehenden Konfiguration realisiert werden.
  • Bei diesem Beispiel berechnet deshalb der Inkrement-Wechselabschnitt 2503 die Differenz (Fehler) zwischen den Werten x der Bildschirm-Koordinaten und dem Probenpunkt des Bildschirm-Pixels durch Akkumulieren bzw. Aufsummieren der Werte, die von dem Betriebsabschnitt 701 bereitgestellt werden. In der Praxis bestimmt der Inkrement-Wechselabschnitt 2503 nur, ob das akkumulierte Ergebnis überläuft oder nicht. Das Ergebnis wird dem Kantenerzeugungsabschnitt 2502 bereitgestellt, um dazu verwendet zu werden, um den Inkrementwert (L) oder (R) für die Berechnung der Bildschirm-Koordinaten und der Textur-Koordinaten für die Polygonkante auszuwählen.
  • Der Kantenerzeugungsabschnitt 2502 führt eine Inkrementberechnung unter Verwendung des Inkrementwertes aus, der von dem Inkrement-Wechselabschnitt 2503 ausgewählt wird. Die resultierenden Bildschirm-Koordinaten und Textur-Koordinaten für Punkte, die das Polygon wiedergeben, sind für die Bildschirm-Pixel ideal.
  • Somit kann man gemäß der Abbildungsvorrichtung dieses Beispiels mit dem Kantenerzeugungsabschnitt 2502 und dem Inkrement-Wechselabschnitt 2503 ideale Bildschirm-Koordinaten und Textur-Koordinaten erhalten. Dies macht es möglich, die idealen entsprechenden Punkte für sämtliche Pixel, auf welche das Polygon projiziert bzw. abgebildet wird, wie in den vorherigen Beispielen zu berechnen, um so die Qualität einer Bildabbildung zu verbessern.
  • Die Schaltung des Kantenerzeugungsabschnittes 2502 wird nicht signifikant größer, obwohl Selektoren mit einer Anzahl, die gleich der Anzahl von Inkrementwerten ist, hinzugefügt sind. Die Verzögerung in der Verarbeitungsgeschwindigkeit ist vernachlässigbar. Deshalb hat die resultierende Abbildungsvorrichtung im Wesentlichen dieselbe Verarbeitungskapazität wie für den Fall, dass der herkömmliche inkrementelle Algorithmus verwendet wird.
  • Die Schaltung des Inkrement-Wechselabschnittes 2503 ist einfach und klein, wie in der 29 gezeigt.
  • Folglich hat die Abbildungsvorrichtung dieses Beispiels vom Standpunkt der Verarbeitungskapazität und Schaltung im Wesentlichen dieselbe Verarbeitungsgeschwindigkeit wie für den Fall, dass der konventionelle inkrementelle Algorithmus verwendet wird, und kann diese zusätzlich eine ideale Berechnung eines entsprechenden Punktes ausführen.
  • Bei diesem Beispiel wurde der Punkt, der am nächsten zu dem Ursprung liegt, als der Probenpunkt von jedem Pixel ausgewählt. Tatsächlich kann ein beliebiger Punkt als der Probenpunkt ausgewählt werden.
  • Bei diesem Beispiel wurde die Beziehung zwischen dem Polygon und der Textur bzw. Oberflächenstruktur die Gleichungen 1 und 2 wiedergegeben. Die Beziehung, die durch die Gleichungen 17 und 18 wiedergegeben ist, kann beispielsweise auch dazu verwendet werden, um eine korrekte Berechnung eines entsprechenden Punktes auszuführen. Kurz gesagt, kann die vorliegende Erfindung auf beliebige Gleichungen für die Berechnung der entsprechenden Punkte angewendet werden.
  • Bei diesem Beispiel wurde die Berechnung von entsprechenden Punkten für eine Polygon-Abbildung beschrieben. Dieselbe Verarbeitung kann auch auf eine Leuchtkraft- bzw. Farbberechnung angewendet werden, auf eine Undurchsichtigkeitsberechnung, einen Unebenheits-Abbildungsberechnung und dergleichen (siehe 10 und 11). Wie in dem Fall der Berechnung eines entsprechenden Punktes können diese Berechnungen auf beliebige relationale Gleichungen angewendet werden.
  • Bei diesem Beispiel wurde das Verfahren ohne ein Anti-Aliasing verwendet. Dieselbe Verarbeitung kann jedoch auch ausgeführt werden, falls ein Anti-Aliasing ausgeführt wird. Dieselbe Korrektur kann auch vorgenommen werden, wenn eine Sub-Pixel-Positionierung vorgenommen wird.
  • (Beispiel 6)
  • Das sechste Beispiel der vorliegenden Erfindung wird unter Bezugnahme auf die 30 bis 34 beschrieben werden.
  • Die 30 zeigt eine Konfiguration eines Adresserzeugungsabschnittes der Abbildungsvorrichtung gemäß Beispiel 6 der vorliegenden Erfindung. In der 30 werden dieselben Elemente wie in der 18 mit denselben Bezugszeichen bezeichnet. Ein Betriebsabschnitt 2901 berechnet Parameter, die zur Berechnung des Darstellungspunktes innerhalb eines Polygons und des entsprechenden Punktes unter Verwendung der Position eines Polygon-Eckpunktes und des entsprechenden Punktes für den Polygon-Eckpunkt verwendet werden. Der Kantenerzeugungsabschnitt 2902 berechnet Bildschirm-Koordinaten und entsprechende Textur-Koordinaten, indem eine Inkrementberechnung unter Verwendung der Parameter ausgeführt wird, die von dem Betriebsabschnitt 2901 erzeugt werden, und der Daten, die von dem Korrekturabschnitt 2903 korrigiert werden. Ein Korrekturabschnitt 2903 korrigiert den entsprechenden Punkt, der von dem Kantenerzeugungsabschnitt 2902 erzeugt wird, unter Verwendung der Parameter, die von dem Betriebsabschnitt 2901 erzeugt werden, und des Darstellungspunktes, der von dem Kantenerzeugungsabschnitt 2902 erzeugt wird. Dasselbe Polygon, das in der 19 gezeigt ist, wird für die Abbildung wie in dem Beispiel 4 verwendet und die Beziehung, die durch die Gleichungen 1 und 2 wiedergeben wird, wird für die entsprechenden Punkte eingerichtet.
  • Die Textur-Abbildungsverarbeitung in diesem Beispiel wird beschrieben werden. Anders als bei den Beispielen 4 und 5 berechnet der Betriebsabschnitt 2901 nur die Inkrementwerte von (L) (siehe Gleichungen 42, 44 und 45). Außerdem werden dx/dy(L), du/dy(L) und dv/dy(L), die in der Gleichung 51 gezeigt sind, berechnet. Auch die Differenz (E) zwischen dem Darstellungspunkt und dem Probenpunkt (Gleichung 46), die für die Bestimmung benötigt wird, ob eine Korrektur von dem Korrekturabschnitt 2903 vorgenommen werden sollte oder nicht, wird berechnet.
  • Der Kantenerzeugungsabschnitt 2902 führt eine Inkrementverarbeitung (DDA-Verarbeitung) mit den Anfangswerten (x, y, u, v), die von dem Betriebsabschnitt 2901 in dem Anfangsschritt bereitgestellt werden, und den Werten (x, y, u, v) aus, die von dem Korrekturabschnitt 2903 in den nachfolgenden Schritten ausgegeben werden, und zwar unter Verwendung dx/dy(L), du/dy(L) und dv/dy(L), die als Inkrementwert von dem Betriebsabschnitt 2901 berechnet werden.
  • Der Korrekturabschnitt 2903 korrigiert Daten (x, y, u, v), die von dem Kantenerzeugungsabschnitt 2902 ausgegeben werden. Die Korrektur ist erforderlich, wenn der akkumulierte Fehler (Summe(E)), bei dem es sich um die Differenz zwischen dem Darstellungspunkt, der von dem Betriebsabschnitt 2901 berechnet wird, und dem Probenpunkt handelt, 1 beträgt oder größer ist. Durch Ausführen der Korrektur, wann immer die Korrektur erforderlich ist, entspricht die Differenz zwischen dem Wert x vor der Korrektur und der Koordinate x des Probenpunktes stets einem Pixel. Nach der Korrektur wurde 1 von dem akkumulierten Fehler subtrahiert. Die Korrektur wird durch Ausführen der nachfolgenden Gleichung 53 für die berechneten Werte (x, y, u, v) vorgenommen. Somit kann man ideale Bildschirm-Koordinaten und Textur-Koordinaten berechnen. Die resultierenden Werte (x, y, u, v) werden von dem Korrekturabschnitt 2903 ausgegeben. x ← x + 1 y ← y u ← u + δu/δx v ← v + δv/δx (53)
  • Die Korrektur wird unter Verwendung des in der 19 gezeigten Polygons beschrieben werden. Die 31 zeigt die Verschiebung in der Inkrementverarbeitung und die Korrektur für das in der 19 gezeigte Polygon. In der 31 werden dieselben Elemente mit denselben Bezugszeichen wie in der 19 beschrieben. Pfeile 805a, 3005b, 805b und 3005d zeigen die Verschiebungen von Probenpunkten, die durch die von dem Kantenerzeugungsabschnitt 2902 ausgeführte Inkrementverarbeitung hervorgerufen werden. Pfeile 3001 und 3002 zeigen die Verschiebungen der Probenpunkte, die durch die von dem Korrekturabschnitt 2903 vorgenommene Korrektur hervorgerufen werden.
  • Die 32 zeigt den Fluss der Prozessschritte von dem Kantenerzeugungsabschnitt 2902 und dem Korrekturabschnitt 2903 für die Berechnung der Bildschirm- Koordinaten und der Textur-Koordinaten für das in der 31 gezeigte Polygon. Wie in der 32 gezeigt, werden Verarbeitungsschritte 3101, 3102, 3103 und 3104 von dem Kantenerzeugungsabschnitt 2902 vorgenommen. In den Verarbeitungsschritten 3111, 3112, 3113 und 3114 wird die Berechnung des akkumulierten Fehlers, wie vorstehend beschrieben, vorgenommen, um zu bestimmen, ob eine Korrektur von dem Korrekturabschnitt 2903 vorgenommen werden sollte oder nicht. Die Verarbeitungsschritte 3122 und 3124 werden von dem Korrekturabschnitt 2903 vorgenommen.
  • Die vorstehenden Verarbeitungsschritte werden in ihrer Reihenfolge entlang der Polygonkante 801 beschrieben.
  • Schritt 0:
  • Die Koordinaten (6, 0, 0, 0) des Punktes p0 als Eckpunkt des Polygons werden als die Anfangswerte für die nachfolgenden Verarbeitungsschritte verwendet. Der Anfangswert des akkumulierten Fehlers Summe(E) beträgt 0. Die Werte (6, 0, 0, 0) werden von dem Auswählabschnitt 2902 ausgegeben.
  • Schritt 1:
  • Der Kantenerzeugungsabschnitt 2902 addiert die Inkrementwerte (–2,00, 1,00, –0,84, 4,21) zu den Ergebnissen (Anfangswerten) von Schritt 0 und gibt die berechneten Ergebnisse (4,00, 1,00, –0,84, 4,21) an den Korrekturabschnitt 2903 aus (Verarbeitungsschritt 3101).
  • Der Korrekturabschnitt 2903 akkumuliert den Fehler E (Verarbeitungsschritt 3111). Weil der akkumulierte Wert in diesem Fall kleiner ist als 1, wird keine Korrektur vorgenommen. Das Ausgangssignal des Korrekturabschnittes 2903 beträgt deshalb (4,00, 1,00, –0,84, 4,21).
  • Schritt 2:
  • Der Kantenerzeugungsabschnitt 2902 addiert die Inkrementwerte (–2,00, 1,00, –0,84, 4,21) zu den Ergebnissen von Schritt 1 (4,00, 1,00, –0,84, 4,21) und gibt die berechneten Ergebnisse (2,00, 2,00, –1,68, 8,42) an den Korrekturabschnitt 2903 aus (Verarbeitungsschritt 3102).
  • Der Korrekturabschnitt 2903 akkumuliert den Fehler (Verarbeitungsschritt 3112). Weil der akkumulierte Fehler in diesem Fall 1 beträgt oder größer ist, wird die Korrektur dadurch vorgenommen, dass (1,00, 0,00, δu/δx, δv/δx) = (1,00, 0,00, 1,68, –0,42) zu dem Anfangswert (2,00, 2,00, –1,68, 8,42) addiert wird (Verarbeitungsschritt 3122). Die Ergebnisse der Korrektur (3,00, 2,00, 0,00, 8,00) werden von dem Korrekturabschnitt 2903 ausgegeben. Nach der vorstehenden Verarbeitung wird von dem akkumulierten Fehler in dem Korrekturabschnitt 2903 1 subtrahiert, um einen neuen akkumulierten Fehler zu erhalten.
  • Schritt 3:
  • Der Kantenerzeugungsabschnitt 2902 addiert die Inkrementwerte (–2,00, 1,00, –0,84, 4,21) zu den Ergebnissen von Schritt 2 (3,00, 2,00, 0,00, 8,00) und gibt die berechneten Ergebnisse (1,00, 3,00, –0,84, 12,21) an den Korrekturabschnitt 2903 aus (Verarbeitungsschritt 3103).
  • Der Korrekturabschnitt 2903 akkumuliert den Fehler E (Verarbeitungsschritt 3113). Weil der akkumulierte Wert in diesem Fall kleiner als 1 ist, wird keine Korrektur vorgenommen. Das Ausgangssignal des Korrekturabschnittes 2903 beträgt deshalb (1,00, 3,00, –0,84, 12,21).
  • Schritt 4:
  • Der Kantenerzeugungsabschnitt 2902 addiert die Inkrementwerte (–2,00, 1,00, –0,84, 4,21) zu den Ergebnissen des Schrittes 3 (1,00, 3,00, –0,84, 12,21) und gibt die berechneten Ergebnisse (–1,00, 4,00, –1,68, 16,42) an den Korrekturabschnitt 2903 aus (Verarbeitungsschritt 3104).
  • Der Korrekturabschnitt 2903 akkumuliert den Fehler E (Verarbeitungsschritt 3114). Weil in diesem Fall der akkumulierte Fehler 1 beträgt oder größer ist, wird die Korrektur dadurch ausgeführt, dass (1,00, 0,00, 1,68, –0,42) zu dem Eingabewert (1,00, 4,00, –1,68, 16,42) wie in dem Schritt 2 addiert wird (Verarbeitungsschritt 3124). Die Ergebnisse der Korrektur (0,00, 4,00, 0,00, 16,00) werden von dem Korrekturabschnitt 2903 ausgegeben. Nach der vorstehenden Verarbeitung wird von dem akkumulierten Fehler in den Korrekturabschnitt 2903 1 subtrahiert, um einen neuen akkumulierten Fehler zu erhalten.
  • Somit kann man durch Ausführen der vorstehenden Verarbeitungsschritte in den Schritten 0 bis 4 ideale Bildschirm- und Textur-Koordinaten für die Polygonkante erhalten.
  • Als Nächstes werden die Konfigurationen des Kantenerzeugungsabschnittes 2902 und des Korrekturabschnittes 2903 beschrieben werden.
  • Die 33 zeigt eine Konfiguration des Kantenerzeugungsabschnittes 2902. Addierer 3201a bis 3201b führen das Inkrernent der Werte x, y, u bzw. v aus, um so die Inkrement-Verarbeitungsschritte 3101 bis 3104 zu realisieren. Selektoren 3202a bis 3202b wählen die Koordinaten (x, y, u, v) aus, die von dem Betriebsabschnitt 2901 ausgegeben werden, wenn der erste Eckpunkt berechnet wird, oder wählen die Daten (x, y, u, v) aus, die nach der Inkrementverarbeitung für die Werte (x, y, u, v) erhalten werden, die von dem Korrekturabschnitt 2903 ausgegeben werden. Somit können die Werte (x, y, u, v) sukzessive aus dem Anfangswert für die Polygonkante berechnet werden.
  • Die 34 zeigt eine Konfiguration des Korrekturabschnittes 2903. Wie in der 34 gezeigt, führen die Addierer 3301a, 3301c und 3301d die durch die Gleichung 53 wiedergegebene Korrektur aus. Ein Addierer 3302 akkumuliert die Differenz (E) zwischen dem Darstellungspunkt, der unter Verwendung des inkrementellen Algorithmus berechnet wird, und dem Probenpunkt des Bildschirm-Pixels. Ob korrigierte Daten oder nicht korrigiert Daten ausgegeben werden, wird basierend auf den Ergebnissen des Addierers 3302 bestimmt. In diesem Beispiel wird der Bereich des Addierers 3302 auf kleiner als 1 eingestellt und wird bestimmt, ob korrigierte Daten oder nicht korrigierte Daten ausgegeben werden, in Abhängigkeit davon bestimmt, ob das akkumulierte Ergebnis des Addierers 3302 überläuft oder nicht. Selektoren 3303a, 3303c und 3303d geben die korrigierten Daten von den Addierern 3301a, 3301c und 3301d aus, wenn der Addierer 3302 überläuft, oder geben nicht korrigierte Daten aus, wenn der Addierer 3302 nicht überläuft.
  • Somit kann man unter Verwendung des Kantenerzeugungsabschnittes 2902 und des Korrekturabschnittes 2903 mit der vorstehenden Konfiguration die vorgenannten Schritte 0 bis 4 realisieren.
  • Somit kann man gemäß der Abbildungsvorrichtung dieses Beispiels mit dem Kantenerzeugungsabschnitt 2902 und dem Korrekturabschnitt 2903 ideale Bildschirm-Koordinaten und Textur-Koordinaten für das darzustellende Pixel erhalten. Dies macht es möglich, die idealen entsprechenden Punkte für sämtliche der Pixel zu berechnen, auf welche das Polygon projiziert bzw. abgebildet wird, wie bei den vorangegangenen Beispielen, um so die Qualität der Bildabbildung zu verbessern.
  • Der Kantenerzeugungsabschnitt 2902 hat dieselbe Schaltungsgröße wie für den Fall der herkömmlichen Inkrementberechnung. Er hat auch im Wesentlichen dieselbe Verarbeitungsgeschwindigkeit und Kapazität wie für den Fall des herkömmlichen inkrementellen Algorithmus. Die Schaltung des Korrekturabschnittes 2903 ist einfach und klein, wie in der 34 gezeigt. Folglich ist bei diesem Beispiel eine ideale Berechnung eines entsprechenden Punktes ohne Erhöhung der Schaltungsgröße und ohne Verringerung der Prozesskapazität möglich.
  • In diesem Beispiel wurde der Punkt, der am nächsten zum Ursprung ist, als der Probenpunkt von jedem Pixel ausgewählt. Statt dessen kann ein beliebiger Punkt als der Probenpunkt ausgewählt werden.
  • Bei diesem Beispiel wurde die Beziehung zwischen dem Polygon und der Textur bzw. Oberflächenstruktur durch die Gleichungen 1 und 2 wiedergegeben. Die Beziehung, die durch die Gleichungen 17 und 18 wiedergegeben wird, kann beispielsweise auch dazu verwendet werden, um eine korrekte Berechnung eines entsprechenden Punktes vorzunehmen. Kurz gesagt, kann die vorliegende Erfindung jeglichen Gleichungen für die Berechnung der entsprechenden Punkte entsprechen.
  • In diesem Beispiel wurde die Berechnung von entsprechenden Punkten für eine Polygon-Abbildung beschrieben. Dieselbe Verarbeitung kann auch auf eine Farbberechnung, eine Undurchsichtigkeitsberechnung, eine Unebenheits-Abbildungsberechnung und dergleichen angewendet werden (siehe 10 und 11). Wie für den Fall der entsprechenden Punktberechnung können diese Berechnungen auf eine beliebige relationale Gleichung angewendet werden.
  • Bei diesem Beispiel wurde das Verfahren ohne ein Anti-Aliasing verwendet. Dieselbe Verarbeitung kann jedoch auch vorgenommen werden, falls ein Anti-Aliasing ausgeführt wird. Dieselbe Korrektur kann auch vorgenommen werden, wenn eine Sub-Pixel-Positionierung vorgenommen wird.
  • (Beispiel 7)
  • Das siebte Beispiel gemäß der vorliegenden Erfindung wird anhand der 35 und 36 beschrieben werden.
  • Die 35 zeigt eine Konfiguration einer Textur-Abbildungsvorrichtung nach Beispiel 7 gemäß der vorliegenden Erfindung. In der 35 werden dieselben Elemente wie in der 30 mit denselben Bezugszeichen bezeichnet.
  • Wie in der 35 gezeigt, empfängt der Bereichserzeugungsabschnitt 3404 die Werte E, δu/δx und δv/δx, die von dem Betriebsabschnitt 2901 berechnet werden, und korrigiert die Differenz zwischen dem Darstellungspunkt, der von dem Kantenerzeugungsabschnitt 2902 berechnet wird, und dem entsprechenden Punkt und berechnet die Bildschirm-Koordinaten und die Textur-Koordinaten eines Bereichspunktes innerhalb des Polygons.
  • Die Textur-Abbildungsverarbeitung in diesem Beispiel wird beschrieben werden. Die Abbildungsvorrichtung dieses Beispiels umfasst den Bereichserzeugungsabschnitt 3404, der die Verarbeitungsschritte realisiert, die von dem Korrekturabschnitt 2903 und dem Bereichserzeugungsabschnitt 704 in dem Beispiel 6 gleichzeitig vorgenommen werden. Folglich kann man ideale Bildschirm-Koordinaten und Textur-Koordinaten von Punkten innerhalb des Polygons berechnen.
  • Die Operation ist dieselbe wie diejenige in dem Beispiel 6. Die Inkrementverarbeitung wird von dem Kantenerzeugungsabschnitt 2902 vorgenommen. In diesem Beispiel wird jedoch die durch die Gleichung 53 wiedergegebene Korrektur von dem Bereichserzeugungsabschnitt 3404 vorgenommen. Der Grund, weshalb der Bereichserzeugungsabschnitt 3404 sowohl die Korrektur als auch die Bereichsverarbeitung vornehmen kann, ist, dass die durch die Gleichung 53 wiedergegebene Korrektur dieselbe ist wie der Verarbeitungsschritt für die Bereichserzeugung, die durch die Gleichung 53 wiedergegeben wird.
  • Die 36 zeigt eine Konfiguration des Bereichserzeugungsabschnitts 3404. In der 36 werden dieselben Elemente wie in der 34 mit denselben Bezugszeichen bezeichnet. Wie in der 36 gezeigt, wird die Verarbeitung von dem in der 30 gezeigten Korrekturabschnitt 2903 (Gleichung 53) von dem Bereichserzeugungsabschnitt 3404 ausgeführt. Dies wird dadurch realisiert, dass der Verarbeitungsschritt eines Akkumulierens des Fehlers E für die Bestimmung, ob die Korrektur vorgenommen wird oder nicht, hinzugefügt wird.
  • Die Addierer 3301a, 3301c und 3301d werden für die Korrektur, wie sie vorstehend beschrieben wurde, verwendet. In diesem Beispiel empfangen die Addierer 3301a, 3301c und 3301d ein Triggersignal für eine Korrektur und ein Bereichsverarbeitungssignal, so dass die Korrektur und die Bereichsverarbeitung mit Hilfe derselben Schaltung realisiert werden können. Somit können die Korrektur und die Bereichsverarbeitung von dem Bereichserzeugungsabschnitt 3404 vorgenommen werden. Pufferspeicher 3501a bis 3501b sind Ausgabe-Pufferspeicher, die jeweils mit einem Freigabe- bzw. Auslöseanschluss versehen sind. Der Freigabeanschluss ist vorgesehen, um zu verhindern, dass Daten vor der Korrektur (Ausgangssignale der Addierer 3301a, 3301c und 3301d, bevor das Triggersignal für die Korrektur eingegeben wird) von dem Bereichserzeugungsabschnitt 3404 über den Pufferspeicher ausgegeben werden, weil diese Daten keine Bereichswerte darstellen.
  • Mit der vorgenannten Konfiguration, bei der die Korrektur und die Bereichsverarbeitung von derselben Schaltung ausgeführt werden, kann die Schaltungsgröße verkleinert werden.
  • Somit wird gemäß der vorliegenden Erfindung die Differenz zwischen dem Darstellungspunkt, der mit Hilfe des inkrementellen Algorithmus erhalten wird, und dem Probenpunkt von jedem Pixel dazu verwendet, um den entsprechenden Punkt auf dem Abbildungsbild zu korrigieren. Dies ermöglicht die Erzeugung eines hochqualitativen Bildes. Außerdem wird der Pixelwert, der unter Verwendung des Darstellungspunktes bestimmt wird, der unter Verwendung des inkrementellen Algorithmus erhalten wird, einer Mehrzahl von Pixelwerten basierend auf der Relativpositionsbeziehung zwischen dem Darstellungspunkt und dem Pixel zugewiesen. Dies ermöglicht auch die Erzeugung eines hochqualitativen Bildes. Die vorliegende Erfindung kann nicht nur auf die Abbildungsvorrichtungen angewendet werden, sondern allgemein auf Wiedergabe- bzw. Darstellungsvorrichtungen, die Computerbilder erzeugen, und ähnliche Ergebnisse können erzielt werden.
  • Zahlreiche andere Modifikationen werden dem Fachmann auf diesem Gebiet ersichtlich werden und von diesem ohne weiteres realisiert werden können, ohne von dem Schutzbereich dieser Erfindung abzuweichen. Folglich ist nicht beabsichtigt, dass der Schutzbereich der beigefügten Patentansprüche auf die hierin angegebene Beschreibung beschränkt ist, vielmehr sollen die Patentansprüche breit ausgelegt werden.

Claims (25)

  1. Abbildungsvorrichtung zur Wiedergabe mit: einer Vorrichtung (502) zum Durchführen einer Wiedergabe-Berechnung, basierend auf einem Darstellungspunkt auf einem Polygon, projiziert auf eine Ebene mit einer Mehrzahl von Pixeln, und zum Ausgeben eines Berechnungsergebnisses; einer Vorrichtung (503) zum Bestimmen einer Mehrzahl von Pixeln, auf welchen ein Textur-Pixel eines Textur-Bildes entsprechend dem Darstellungspunkt auf dem Polygon abgebildet ist; einer Vorrichtung (503) zum Bestimmen eines Gewichtungskoeffizienten für jedes der Mehrzahl der Pixel, basierend auf einer Position des Darstellungspunktes in Bezug auf die Mehrzahl der Pixel; und einer Vorrichtung (503) zum Zuweisen eines Pixelwertes, gleich einem Verhältnis des Berechnungsergebnisses basierend auf jeweiligen Gewichtungskoeffizienten für die Mehrzahl der Pixel, zu jedem der Mehrzahl der Pixel.
  2. Abbildungsvorrichtung nach Anspruch 1, weiter aufweisend: einen Betriebsabschnitt (101) zum Erzeugen eines inkrementalen Algorithmus-Parameters für ein Polygon, welches auf eine Ebene projiziert ist, mit einer Mehrzahl von Pixeln, basierend auf jeweiligen Positionen von Eckpunkten des Polygons und eines entsprechenden Punktes auf einem Textur-Bild, gegeben für jeden der Eckpunkte des Polygons; einen Kanten-Erzeugungsabschnitt (102a) zum Bestimmen einer Position eines ersten Darstellungspunktes auf einer Kante des Polygons und einer Position eines ersten entsprechenden Punktes auf dem Textur-Bild entsprechend dem ersten Darstellungspunkt, basierend auf dem Parameter; einen Bereichserzeugungsabschnitt (104) zum Berechnen einer Position eines zweiten Darstellungspunktes innerhalb des Polygons und einer Position eines zweiten entsprechenden Punktes auf dem Textur-Bild entsprechend dem zweiten Darstellungspunkt, aus dem inkrementalen Algorithmus-Parameter und dem Sample-Punkt; und einen Korrekturabschnitt (103a) zum Bestimmen eines Darstellungs-Pixels entsprechend dem ersten Darstellungspunkt, zur weiteren Bestimmung eines Sample-Punktes mit einer festen Position in dem Darstellungs-Pixel, und zum Korrigieren der Position des ersten entsprechenden Punktes auf dem Textur-Bild zu einem dritten entsprechenden Punkt auf dem Textur-Bild entsprechend dem Sample-Punkt.
  3. Abbildungsvorrichtung nach Anspruch 2, wobei der Korrekturabschnitt (103a) auf eine eindimensionale Art in Bezug auf den ersten Darstellungspunkt korrigiert.
  4. Abbildungsvorrichtung nach Anspruch 2, wobei der Kantenerzeugungsabschnitt (102a) einen Punkt bestimmt, welcher die Kante des Polygons und eine obere Kante des Darstellungspixels schneidet, als den ersten Darstellungspunkt, und der Korrekturabschnitt (103a) bestimmt einen Punkt, welcher am nächsten zu dem Ursprung liegt innerhalb des Darstellungs-Pixels als den Sample-Punkt.
  5. Abbildungsvorrichtung nach Anspruch 4, wobei eine Bit-Präzision, welche den Parameter darstellt, auf einen vorgegebenen Wert festgelegt wird, und der Korrekturabschnitt (103a) umfasst eine Verschiebevorrichtung und einen Addierer.
  6. Abbildungsvorrichtung nach Anspruch 1, weiter aufweisend: einen Betriebsabschnitt (501) zum Erzeugen eines inkrementalen Algorithmus-Parameters für ein Polygon, projiziert auf eine Ebene mit einer Mehrzahl von Pixeln, basierend auf jeweiligen Positionen von Eckpunkten des Polygons und eines entsprechenden Punktes auf einem Textur-Bild, gegeben für jeden der Eckpunkte des Polygons; einen Kanten-Erzeugungsabschnitt (502) zum Bestimmen einer Position eines ersten Darstellungspunktes auf einer Kante des Polygons und einer Position eines ersten entsprechenden Punktes auf dem Textur-Bild entsprechend dem ersten Darstellungspunkt, basierend auf dem Parameter; einen Bereichs-Erzeugungsabschnitt (503) zum Bestimmen einer Position eines zweiten Darstellungspunktes innerhalb des Polygons und einer Position eines zweiten entsprechenden Punktes auf dem Textur-Bild entsprechend dem zweiten Darstellungspunkt, basierend auf dem Parameter und dem ersten Darstellungspunkt; einen Abschnitt (505) zum Speichern eines erzeugten Bildes zum Speichern eines Wertes entsprechend einem jeden der Mehrzahl der Pixel in der Ebene; und einen Bildspeicher-Verarbeitungsabschnitt (506) zum Speichern eines Pixel-Wertes, erzeugt basierend auf entweder der Position des ersten Darstellungspunktes oder der Positi on des zweiten Darstellungspunktes als ein Wert entsprechend entweder der Mehrzahl der Pixel oder benachbarten Pixel der Mehrzahl der Pixel.
  7. Abbildungsvorrichtung nach Anspruch 6, wobei der Bildspeicher-Verarbeitungsabschnitt (506) aufweist: einen Flächenverhältnis-Berechnungsabschnitt zum Zuweisen des erzeugten Pixelwertes zu entweder der Mehrzahl der Pixel oder benachbarten Pixel der Mehrzahl der Pixel, basierend auf einem Verhältnis einer Fläche auf der Ebene, abgebildet durch entweder ein Textur-Pixel eines Textur-Bildes entsprechend dem ersten Darstellungspunkt oder ein Textur-Pixel eines Textur-Bildes entsprechend dem zweiten Darstellungspunkt, zu einer Fläche auf der Ebene welche belegt wird durch entweder die Mehrzahl der Pixel oder benachbarten Pixel der Mehrzahl der Pixel; und einen Pixelwert-Zuweisungsabschnitt zum Speichern des verteilten Wertes als ein Wert entsprechend entweder der Mehrzahl der Pixel oder benachbarten Pixel der Mehrzahl der Pixel.
  8. Abbildungsvorrichtung nach Anspruch 7, wobei (x, y) entweder die Position des ersten Darstellungspunktes oder die Position des zweiten Darstellungspunktes bezeichnet und wobei der Flächenverhältnis-Berechnungsabschnitt umfasst: einen ersten Multiplizierer (2101) zum Multiplizieren von (1 – x) mit (1 – y); einen zweiten Multiplizierer (2102) zum Multiplizieren von x mit (1 – y); einen dritten Mulitplizierer (2103) zum Multiplizieren von (1 – x) mit y; und einen vierten Multiplizierer (2104) zum Multiplizieren von x mit y; und wobei der Pixelwert-Verteilungsabschnitt aufweist: einen fünften Multiplizierer (2105) zum Multiplizieren der Ausgabe des ersten Multiplizierers mit dem erzeugten Pixelwert; einen sechsten Multiplizierer (2106) zum Multiplizieren der Ausgabe des zweiten Multiplizierers mit dem erzeugten Pixelwert; einen siebten Multiplizierer (2107) zum Multiplizieren der Ausgabe des dritten Multiplizierers mit dem erzeugten Pixtelwert; einen achten Multiplizierer (2108) zum Multiplizieren der Ausgabe des vierten Multiplizierers mit dem erzeugten Pixelwerten.
  9. Abbildungsvorrichtung nach Anspruch 8, wobei eine Bit-Präzision, welche den erzeugten Pixel-Wert darstellt, festgelegt wird auf einen vorgegebenen Wert, und jeder der ersten bis achten Multiplizierer enthält eine Verschiebevorrichtung und einen Addierer.
  10. Abbildungsvorrichtung nach Anspruch 8, wobei der Kanten-Erzeugungsabschnitt (502) einen Punkt bestimmt, welcher die Kante des Polygons und eine obere Kante des Darstellungspixels schneidet, als den ersten Darstellungspunkt, wodurch der zweite, vierte, sechste und achte Multiplizierer ausgelassen werden.
  11. Abbildungsvorrichtung nach Anspruch 1, weiter aufweisend: einen Betriebsabschnitt (701) zur Erzeugung eines inkrementalen Algorithmus-Parameters für ein Polygon, projiziert auf eine Ebene, mit einer Mehrzahl von Pixeln, basierend auf jeweiligen Positionen von Eckpunkten des Polygons und eines entsprechenden Punktes auf einem Textur-Bild, gegeben für jeden der Eckpunkte des Polygons; einen ersten Kanten-Erzeugungsabschnitt (702a) zum Bestimmen einer Position eines ersten Punkt-Kandidaten entsprechend einem ersten Darstellungspunkt auf einer Kante des Polygons und einer Position eines ersten entsprechenden Punktes entsprechend dem ersten Punkt-Kandidaten, basierend auf dem Parameter; einen zweiten Kanten-Erzeugungsabschnitt (702b) zur Bestimmung einer Position eines zweiten Punkt-Kandidaten entsprechend dem ersten Darstellungspunkt auf der Kante des Polygons und einer Position eines zweiten entsprechenden Punktes auf einem Textur-Bild entsprechend dem zweiten Punkt-Kandidaten, basierend auf dem Parameter; eine Auswahlvorrichtung (703) zum Auswählen von einer Ausgabe des ersten Kantenerzeugungsabschnitts oder einer Ausgabe des zweiten Kantenerzeugungsabschnitts; und einen Bereichserzeugungsabschnitt (704) zum Bestimmen einer Position eines zweiten Darstellungspunktes innerhalb des Polygons und einer Position eines dritten entsprechenden Punktes auf einem Textur-Bild entsprechend dem zweiten Darstellungspunkt, basierend auf dem Parameter und der Ausgabe, ausgewählt durch den Auswahlabschnitt.
  12. Abbildungsvorrichtung nach Anspruch 11, wobei während einer Periode in welcher einer der ersten und zweiten Kantenerzeugungs-Abschnitte arbeitet, der andere der ersten und zweiten Kantenerzeugungsabschnitte nicht arbeitet.
  13. Abbildungsvomchtung nach Anspruch 11, wobei der Betriebsabschnitt (701) eine Steigung der Kante des Polygons auf der Ebene berechnet, und der Auswählabschnitt (703) akkumuliert bzw. rechnet einen Dezimalteil der Steigung auf und wählt eine Ausgabe des ersten Kantenerzeugungsabschnittes (702a) oder eine Ausgabe des zweiten Kantenerzeugungsabschnittes (702b) aus, in Abhängigkeit davon, ob das akkumulierte Ergebnis einen vorgegebenen Wert überschreitet oder nicht.
  14. Abbildungsvorrichtung nach Anspruch 1, weiter aufweisend: einen Betriebsabschnitt (701) zum Erzeugen von mindestens zwei Sätzen von inkrementalen Algorithmus-Parametern für ein Polygon, projiziert auf eine Ebene, mit einer Mehrzahl von Pixeln basierend auf jeweiligen Positionen von Eckpunkten des Polygons und eines entsprechenden Punktes auf einem Textur-Bild, gegeben für jeden der Eckpunkte des Polygons; einen Inkrement-Schalt-Abschnitt (2503) zum Auswählen eines Satzes von Parametern aus mindestens zwei Sätzen von Parametern; einen Kanten-Erzeugungsabschnitt (2502) zum Bestimmen einer Position eines Sample-Punktes in einem Darstellungspixel entsprechend einem ersten Darstellungspunkt auf einer Kante des Polygons und einer Position eines ersten entsprechenden Punktes auf einem Textur-Bild entsprechend dem ersten Darstellungspunkt, basierend auf dem ausgewählten Satz von Parametern; und einen Bereichserzeugungsabschnitt (704) zur Bestimmung einer Position eines zweiten Darstellungspunktes innerhalb des Polygons und einer Position eines zweiten entsprechenden Punktes auf einem Texturbild entsprechend dem zweiten Darstellungspunkt, basierend auf dem ausgewählten Satz an Parametern und der Position des Sample-Punktes.
  15. Abbildungsvomchtung nach Anspruch 14, wobei der Betriebsabschnitt (701) eine Steigung der Kante des Polygons auf der Ebene berechnet, und der Inkrement-Schalt-Abschnitt (2503) akkumuliert einen Dezimalteil der Steigung und wählt einen Satz von Parametern aus den mindestens zwei Sätzen der Parameter aus, in Abhängigkeit davon ob das akkumulierte Ergebnis einen vorgegebenen Wert überschreitet oder nicht.
  16. Abbildungsvomchtung nach Anspruch 1, weiter aufweisend: einen Betriebsabschnitt (2901) zur Erzeugung eines inkrementalen Algorithmus-Parameters für ein Polygon, projiziert auf eine Ebene mit einer Mehrzahl von Pixeln ba sierend auf jeweiligen Positionen von Eckpunkten des Polygons und eines entsprechenden Punktes auf einem Texturbild, gegeben für jeden der Eckpunkte des Polygons; einen Kantenerzeugungsabschnitt (2902) zum Bestimmen einer Position eines Sample-Punktes in einem Darstellungspixel entsprechend einem ersten Darstellungspunkt auf einer Kante des Polygons und einer Position eines ersten entsprechenden Punktes auf einem Texturbild entsprechend dem ersten Darstellungspunkt, basierend auf dem Parameter; einen Korrekturabschnitt (2903) zum Korrigieren der Position des Sample-Punktes, wenn ein Abstand zwischen dem ersten Darstellungspunkt und dem Sample-Punkt einen vorgegebenen Wert überschreitet; einen Bereichs-Erzeugungsabschnitt (704) zum Bestimmen einer Position eines zweiten Darstellungspunktes innerhalb des Polygons und einer Position eines zweiten entsprechenden Punktes auf einem Texturbild entsprechend dem zweiten Darstellungspunkt, basierend auf dem Parameter und der Position des Sample-Punktes.
  17. Abbildungsvorrichtung nach Anspruch 16, wobei der Korrekturabschnitt (2903) in dem Bereichserzeugungsabschnitt (3404) enthalten ist, und der Bereichserzeugungsabschnitt führt beides durch, ein Verfahren zum Korrigieren der Position des Sample-Punktes und ein Verfahren zum Bestimmen der Position des zweiten Darstellungspunktes und der Position des zweiten entsprechenden Punktes.
  18. Abbildungsvorrichtung nach Anspruch 16, wobei der Betriebsabschnitt (2901) eine Steigung der Kante des Polygons auf der Ebene berechnete, und der Bereichserzeugungsabschnitt (704) akkumuliert einen Dezimalteil der Steigung und bestimmt ob die Position des Sample-Punktes korrigiert werden sollte oder nicht, in Abhängigkeit davon, ob der akkumulierte Dezimalteil einen vorgegebenen Wert überschreitet oder nicht.
  19. Abbildungsvorrichtung nach Anspruch 2, wobei die Eckpunkte des Polygons einen Attribut-Wert haben, welcher ein Material des Polygons darstellt, und die Abbildungsvorrichtung weist weiter eine Vorrichtung auf zur Erzeugung eines Wertes entsprechend dem ersten entsprechenden Punkt und dem zweiten entsprechenden Punkt, basierend auf dem Attribut-Wert.
  20. Abbildungsvorrichtung nach Anspruch 2, wobei die Eckpunkte des Polygons Koordinaten für eine Erhebung oder Verschiebung haben, und die Abbildungsvorrichtung weist weiter eine Vorrichtung zur Durchführung einer Erhebungs- oder Verschiebungs-Berechnung innerhalb des Polygons auf.
  21. Abbildungsvorrichtung nach Anspruch 2, wobei die Abbildungsvorrichtung weiter eine Vorrichtung zur Durchführung einer Bildkantenglättung (anti-aliasing)-Verarbeitung aufweist.
  22. Abbildungsvorrichtung nach Anspruch 2, wobei jedes der Mehrzahl der Pixel in der Ebene eine Mehrzahl von Unterpixeln hat, und der erste Darstellungspunkt wird bestimmt in Abhängigkeit von der Unterpixel-Positionierung.
  23. Abbildungsverfahren zur Wiedergabe mit den Schritten: Durchführen einer Wiedergabeberechnung basierend auf einem Darstellungspunkt auf einem Polygon, projiziert auf eine Ebene mit einer Mehrzahl von Pixeln, und zum Ausgeben eines Berechnungsergebnisses; Bestimmen einer Mehrzahl von Pixeln, welche zum Teil abgebildet werden durch ein Textur-Pixel auf einem Textur-Bild, entsprechend dem Darstellungspunkt; Bestimmen eines Gewichtungskoeffizienten für jedes der Mehrzahl der Pixel, basierend auf einer Position des Darstellungspunktes relativ zu der Mehrzahl der Pixel; und Zuordnen eines Verhältnisses des Berechnungsergebnisses zu jedem der Mehrzahl der Pixel basierend auf jeweiligen Gewichtungskoeffizienten für die Mehrzahl der Pixel.
  24. Abbildungsverfahren nach Anspruch 23, weiter aufweisend die Schritte: Erzeugen eines inkrementalen Algorithmus-Parameters für ein Polygon, welches auf eine Ebene projiziert ist mit einer Mehrzahl von Pixeln, basierend auf jeweiligen Positionen von Eckpunkten des Polygons und eines entsprechenden Punktes auf einem Textur-Bild, gegeben für jeden der Eckpunkte des Polygons; Bestimmen einer Position eines ersten Darstellungspunktes auf einer Kante des Polygons und einer Position eines ersten entsprechenden Punktes auf dem Textur-Bild entsprechend dem ersten Darstellungspunkt, basierend auf dem Parameter; Bestimmen eines Darstellungs-Pixels entsprechend dem ersten Darstellungspunkt, weiterhin Bestimmungen eines Sample-Punktes innerhalb des Darstellungspixels, und Korrigieren der Position des ersten entsprechenden Punktes zu einem dritten entsprechenden Punkt auf dem Textur-Bild entsprechend dem Sample-Punkt; und Berechnen einer Position eines zweiten Darstellungspunktes innerhalb des Polygons und einer Position eines zweiten entsprechenden Punktes auf dem Textur-Bild entsprechend dem zweiten Darstellungspunkt aus dem inkrementalen Algorithmus-Parameter und dem Sample-Punkt.
  25. Abbildungsverfahren nach Anspruch 23, weiter aufweisend die Schritte: Erzeugen eines inkrementalen Algorithmus-Parameters für ein Polygon, projiziert auf eine Ebene mit einer Mehrzahl von Pixeln, basierend auf jeweiligen Positionen der Eckpunkte des Polygons und eines entsprechenden Punktes, gegeben für jeden der Eckpunkte des Polygons; Bestimmen einer Position eines ersten Darstellungspunktes auf einer Kante des Polygons und einer Position eines ersten entsprechenden Punktes auf einem Textur-Bild entsprechend dem ersten Darstellungspunkt basierend auf dem inkrementalen Algorithmus-Parameter; Bestimmen einer Position eines zweiten Darstellungspunktes innerhalb des Polygons und einer Position eines zweiten entsprechenden Punktes auf dem Textur-Bild entsprechend dem zweiten Darstellungspunkt aus dem inkrementalen Algorithmus-Parameter und dem ersten Darstellungspunkt; Speichern eines Pixelwertes, erzeugt basierend auf entweder der Position des ersten Darstellungspunktes oder der Position des zweiten Darstellungspunktes, als ein Wert entsprechend entweder der Mehrzahl der Pixel oder benachbarten Pixel der Mehrzahl der Pixel.
DE69630261T 1995-06-30 1996-06-28 Verfahren und Vorrichtung zum Darstellen und Abbilden von Bildern Expired - Fee Related DE69630261T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP16666295 1995-06-30
JP16666295 1995-06-30

Publications (2)

Publication Number Publication Date
DE69630261D1 DE69630261D1 (de) 2003-11-13
DE69630261T2 true DE69630261T2 (de) 2004-08-05

Family

ID=15835415

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69630261T Expired - Fee Related DE69630261T2 (de) 1995-06-30 1996-06-28 Verfahren und Vorrichtung zum Darstellen und Abbilden von Bildern

Country Status (3)

Country Link
US (1) US5852446A (de)
EP (1) EP0751486B1 (de)
DE (1) DE69630261T2 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2227502C (en) * 1997-01-31 2006-06-13 Microsoft Corporation Method and system for determining and or using illumination maps in rendering images
US6226005B1 (en) * 1997-01-31 2001-05-01 LAFERRIèRE ALAIN M Method and system for determining and/or using illumination maps in rendering images
CN1156171C (zh) 1997-04-07 2004-06-30 松下电器产业株式会社 提高处理效率的图象声音处理装置
JP2001118049A (ja) * 1999-10-14 2001-04-27 Sega Corp マトリクス演算器を有する画像処理装置
US6724394B1 (en) 2000-05-31 2004-04-20 Nvidia Corporation Programmable pixel shading architecture
US6784894B2 (en) * 2000-08-24 2004-08-31 Sun Microsystems, Inc. Mapping time-sorted to direction-sorted triangle vertices
EP1489560A1 (de) * 2003-06-17 2004-12-22 Koninklijke Philips Electronics N.V. Grobe Vorabfilterung von Kanten
US7265760B2 (en) * 2004-03-25 2007-09-04 Hewlett-Packard Development Company, L.P. Method and system for defining border tile attributes for polygons
JP2012075088A (ja) * 2010-09-03 2012-04-12 Pentax Ricoh Imaging Co Ltd 画像処理システムおよび画像処理方法
US9842424B2 (en) * 2014-02-10 2017-12-12 Pixar Volume rendering using adaptive buckets
KR102512521B1 (ko) * 2015-10-12 2023-03-21 삼성전자주식회사 텍스쳐 처리 방법 및 장치
CN111028304B (zh) * 2019-12-16 2023-07-21 京东方科技集团股份有限公司 纹理数据压缩方法和装置、存储介质及电子设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4586038A (en) * 1983-12-12 1986-04-29 General Electric Company True-perspective texture/shading processor
US4855934A (en) * 1986-10-03 1989-08-08 Evans & Sutherland Computer Corporation System for texturing computer graphics images
US4851825A (en) * 1987-07-24 1989-07-25 Naiman Abraham C Grayscale character generator and method
CA2026527A1 (en) * 1989-10-11 1991-04-12 Douglas A. Fischer Parallel polygon/pixel rendering engine
US5343558A (en) * 1991-02-19 1994-08-30 Silicon Graphics, Inc. Method for scan converting shaded triangular polygons
GB2254751B (en) * 1991-04-09 1994-11-09 Sony Broadcast & Communication Digital video effects system
JPH05298455A (ja) * 1992-04-16 1993-11-12 Hitachi Ltd テクスチャマッピング装置
US5371843A (en) * 1992-10-16 1994-12-06 International Business Machines Corporation Method and system for filling non-complex polygons using vertical spans
US5402533A (en) * 1993-04-22 1995-03-28 Apple Computer, Inc. Method and apparatus for approximating a signed value between two endpoint values in a three-dimensional image rendering device
US5438656A (en) * 1993-06-01 1995-08-01 Ductus, Inc. Raster shape synthesis by direct multi-level filling
US5528737A (en) * 1993-12-14 1996-06-18 Silicon Graphics, Inc. Processor-based method for rasterizing polygons at an arbitrary precision
US5594854A (en) * 1995-03-24 1997-01-14 3Dlabs Inc. Ltd. Graphics subsystem with coarse subpixel correction

Also Published As

Publication number Publication date
EP0751486B1 (de) 2003-10-08
EP0751486A3 (de) 1997-12-29
DE69630261D1 (de) 2003-11-13
US5852446A (en) 1998-12-22
EP0751486A2 (de) 1997-01-02

Similar Documents

Publication Publication Date Title
DE69224499T2 (de) Dreidimensionale graphische Verarbeitung
DE3854543T2 (de) Prioritätsverwaltung eines Tiefendatenpuffers für Echtzeitrechnersysteme zur Bilderzeugung.
DE19646194B4 (de) Echtzeit-Wiedergabeverfahren zum wahlweisen Ausführen von Bump-Mapping- und Phong-Schattierungs-Prozessen und zugehörige Vorrichtung
DE69130123T2 (de) Anzeigegerät und Verfahren zum Betreiben eines solchen Geräts
DE69804126T2 (de) Verfahren und einrichtung zur dreidimensionalen graphikdarstellung
DE69331031T2 (de) Vorrichtung zur parallelen Bilderzeugung
DE69430962T2 (de) Bilddefokusierungsverfahren und -vorrichtung
DE69908966T2 (de) Schattierung von 3-dimensionalen rechner-erzeugten bildern
DE68928391T2 (de) Bildgenerator
DE69716877T2 (de) System und Verfahren zur genauen Gradientberechnung für die Texturabbildung in einem Computergraphiksystem
DE69122557T2 (de) Bilderzeugung
DE69329049T2 (de) Methode zur Verarbeitung von Daten, die dreidimensionale graphische Objekte repräsentieren
DE3688565T2 (de) Verfahren und System zur Bildveränderung.
DE69329572T2 (de) Bilderzeugungsgerät
DE69130545T2 (de) System zur Erzeugung einer texturierten Perspektivsicht
DE69812947T2 (de) System und verfahren zum erzeugen von bildelement-daten
DE3686233T2 (de) Videosignalverarbeitung.
DE69631718T2 (de) Verfahren und Gerät zur leistungsfähigen Graphikdarstellung dreidimensionaler Szenen
DE69630261T2 (de) Verfahren und Vorrichtung zum Darstellen und Abbilden von Bildern
DE69331486T2 (de) Bilddatenverarbeitung
DE69120407T2 (de) Bildgenerator
DE102005050846A1 (de) Perspektiveneditierwerkzeuge für 2-D Bilder
DE69722139T2 (de) Dreidimensionale abbildung von bildtexturen
DE4211385A1 (de) Daten-projektionssystem
DE19619288A1 (de) System und Verfahren zur Dreieck-Rasterung mit in zwei Dimensionen verschachtelten Rahmenpuffern

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: PANASONIC CORP., KADOMA, OSAKA, JP

8339 Ceased/non-payment of the annual fee