DE3689271T2 - Verfahren zur Bildanzeige. - Google Patents

Verfahren zur Bildanzeige.

Info

Publication number
DE3689271T2
DE3689271T2 DE86102358T DE3689271T DE3689271T2 DE 3689271 T2 DE3689271 T2 DE 3689271T2 DE 86102358 T DE86102358 T DE 86102358T DE 3689271 T DE3689271 T DE 3689271T DE 3689271 T2 DE3689271 T2 DE 3689271T2
Authority
DE
Germany
Prior art keywords
data
processing
vertex
visible
triangular
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
DE86102358T
Other languages
English (en)
Other versions
DE3689271D1 (de
Inventor
Atsushi Kikuchi
Tetsuzo Kuragano
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.)
Sony Corp
Original Assignee
Sony Corp
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
Priority claimed from JP3707885A external-priority patent/JPS61195468A/ja
Priority claimed from JP3707785A external-priority patent/JPS61195467A/ja
Priority claimed from JP3707985A external-priority patent/JPH0814852B2/ja
Application filed by Sony Corp filed Critical Sony Corp
Publication of DE3689271D1 publication Critical patent/DE3689271D1/de
Application granted granted Critical
Publication of DE3689271T2 publication Critical patent/DE3689271T2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

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

Description

  • Die vorliegende Erfindung bezieht sich auf ein Verfahren zur Anzeige eines Bildes, insbesondere auf ein Verfahren zum Betreiben eines Computers zur Anzeige eines Bildes nach dem Oberbegriff von Patentanspruch 1.
  • Bei früheren graphischen Computeranzeigeverfahren werden graphische Bilddaten von einem Objekt oder von Objekten, die in einem dreidimensionalen Raum liegen, in einem Speicher als dreidimensionale Koordinateninformation gespeichert, die Informationsdaten werden aus dem Speicher der Reihe nach gelesen, und die gelesenen Daten werden gemäß vorgegebenen Berechnungsformeln bildtransformiert, um ein natürliches graphisches Bild auf einem Bildschirm darzustellen. Wenn die obigen Bildtransformationsberechnungen durchgeführt werden, um ein Bild auf dem zweidimensionalen Bildschirm abzubilden, werden üblicherweise drei Verfahren gewählt, um einen Eindruck der dreidimensionalen Merkmale des Objekts zu vermitteln, nämlich eine perspektivische Transformationsverarbeitung, eine Schattenverarbeitung und eine verborgene Oberflächenverarbeitung.
  • Durch die perspektivische Transformationsverarbeitung kann das Gefühl für die Entfernung durch Ändern der Größe des Objekts im Verhältnis zur Entfernung zu einem Beobachtungspunkt auf der Grundlage der Tatsache angezeigt werden, daß das Nahe als weit und das Weite als klein empfunden wird, wenn immer ein Objekt durch die menschlichen Augen gesehen wird.
  • Durch die Schattenverarbeitung wird das Auf und Ab der Oberflächen eines Objekts durch Änderung der sichtbaren Helligkeit der Beleuchtung auf jeder Oberfläche eines graphischen Bilds angezeigt, das auf einem Bildschirm auf der Grundlage der Tatsache dargestellt wird, daß die Neigungen der äußeren Oberflächen eines Objekts voneinander bezüglich einer Lichtquelle verschieden sind, die bei einem Punkt innerhalb eines dreidimensionalen Raums angeordnet ist, so daß das menschliche Auge das Objekt so sieht, als ob die Helligkeit auf jeder Oberfläche eines Objekts sich ändert.
  • Durch die verborgene Oberflächenverarbeitung kann das Gefühl für eine Entfernung dargestellt werden, indem man das graphische Bild von nichtsichtbaren Teilen nicht anzeigt. Dies rührt von der Tatsache her, daß, wenn Objekte von einem Beobachtungspunkt innerhalb eines dreidimensionalen Raums gesehen werden, man die hinteren Oberflächen eines Objekts oder die Oberflächen von rückwärts gerichtet positionierten Objekten nicht sehen kann, die von vorwärts gerichtet positionierten Objekten überlagert werden.
  • Diese drei Verarbeitungsverfahren sind Verfahren unter der Erwägung, durch die Objekte natürlich abgebildet werden können, wenn ein empirisches Gesetz, das erhalten wird, wenn man Objekte sieht, die innerhalb eines dreidimensionalen Raums sind, gemäß physikalischer Berechnungen realisiert wird. Um das empirische Gesetz zu realisieren, sind einige Algorithmen vorgeschlagen worden.
  • Diese Verarbeitungsverfahren sind bis zu einem gewissen Grad wirksam, sogar wenn sie unabhängig voneinander angewandt werden. Wenn sie jedoch kombiniert angewandt werden, sind, da es möglich ist, ein weiteres natürliches Gefühl von Wirklichkeit zu erhalten, die folgenden zwei Verfahren als Verfahren zur Ausführung dieser Verarbeitungsverfahren mittels eines Computers angewandt worden:
  • Bei dem ersten bekannten Verfahren wird die räumliche Beziehung der Position zwischen einem Beobachtungspunkt, einer Lichtquelle und einem Objekt vorher bestimmt, die Ergebnisse, die durch perspektivische Verarbeitung, Schattenverarbeitung und verborgene Oberflächenverarbeitung erhalten werden, werden in einen Speicher als Datenserien geschrieben, und die Daten werden, wenn nötig, aus dem Speicher gelesen, um ein graphisches Bild anzuzeigen.
  • Obwohl es viel Zeit beansprucht, Datenserien zu bilden, die in den Speicher einzuschreiben sind, besteht bei diesem ersten Verfahren ein Vorteil darin, daß man nicht viel Zeit braucht, die Bildinformation zu transformieren. Es bestehen jedoch noch Probleme darin, daß es nötig ist, vorher die räumliche Positionsinformation des Beobachtungspunkts zu bestimmen, und daß es nötig ist, eine Datenserie für jeden Beobachtungspunkt zu bilden, wenn die Anzahl der Beobachtungspunkte anwächst oder wenn sich der Beobachtungspunkt bewegt. Es existieren also Nachteile, die darin bestehen, daß es unmöglich ist, groß die Position eines Beobachtungspunkts zu ändern oder daß es notwendig ist, eine hohe Speicherkapazität vorzusehen, die groß genug ist, um mehrere Datenserien zu speichern. Das heißt, daß dieses Verfahren im praktischen Gebrauch nur zur Anzeige eines Objekts verwendet werden kann, das eine relativ einfache äußere Form aufweist.
  • Bei dem zweiten bekannten Verfahren wird die räumliche Beziehung der Position zwischen einer Lichtquelle und einem Objekt so eingestellt, als ob sie initialisiert sei; die perspektivische Transformationsverarbeitung, die Schattenverarbeitung und die verborgene Oberflächenverarbeitung werden durch eine Subroutine ausgeführt. Wenn die räumliche Information eines Beobachtungspunkts gegeben ist, können die obigen drei Verarbeitungsverfahren für eine bildliche Darstellung jeweils nacheinander ausgeführt werden.
  • Obwohl die räumliche Position eines Beobachtungspunkts während der perspektivischen Transformationsverarbeitung frei bestimmt werden kann, sollten die Schatten- und die verborgene Oberflächenverarbeitung für jedes Pixel ausgeführt werden, wodurch die Menge der zu verarbeitenden Daten bei der praktischen Anwendung riesig wird. In dem Fall beispielsweise, wenn das System durch 1000 · 1000 Pixel konfiguriert ist, sollten 1 000 000 Zeitberechnungen bei der perspektivischen Transformationsverarbeitung für einen Beobachtungspunkt der Schattenverarbeitung und der verborgenen Oberflächenverarbeitung wiederholt werden. Das Problem besteht demnach darin, daß man beispielsweise für die Verarbeitungsberechnung mehrere Stunden braucht.
  • Die FR-A 254 177 offenbart ein Verfahren zur Verarbeitung der Bilddaten, bei dem eine Oberfläche in dreieckige Flächen unterteilt ist, wobei perspektivische Daten in Bezug auf die Vertikalen der Flächen in eine zweidimensionale Ebene transformiert und dann Anzeigepunkte berechnet werden, wobei eine Dateninterpolation verbunden mit den Vertikalen der Dreiecksflächen verwendet wird.
  • Die Veröffentlichung W.N. Newman, R.F. Sproulli: "Principles of Interactive Computer Graphics", MacGraw-Hill, 1982, Seite 355-410 offenbart Anordnungen, bei denen das Objekt in einer Weise dargestellt wird, daß eine Seite auf einem Drahtrahmen angeordnet ist. Um die Ansicht anzuordnen, wird jedes Pixel individuell berechnet, was eine lange Rechenzeit zur Folge hat. Beispielsweise hat das Vorsehen eines groben Rahmens eine Rechenzeit zur Folge, die sich mit der Luminanz über der Ansicht erhöht. Das Objekt wird jedoch nicht fließend dargestellt. Nach einigen allgemeinen Bemerkungen bezüglich einer Schattenverarbeitung beschreibt das Dokument Verfahren einer verborgenen Oberflächenverarbeitung.
  • Aufgrund dieser Probleme ist es deshalb die Hauptaufgabe der vorliegenden Erfindung, ein Verfahren zum Anzeigen von Bilddaten vorzusehen, die stellvertretend für die Oberflächen eines Objekts sind, das innerhalb eines dreidimensionalen Raums liegt, auf einem zweidimensionalem Bildschirm gemäß einem perspektivischen Transformationsverfahren, wenn man es von einem vorgegebenen Beobachtungspunkt aus sieht, durch das es möglich ist, die Rechenzeit insbesondere verglichen mit den bekannten Verfahren beträchtlich zu reduzieren, die für die Schattenverarbeitung und die verborgene Oberflächenverarbeitung erforderlich ist.
  • Diese Aufgabe wird durch das Verfahren wie in den Ansprüchen beschrieben gelöst.
  • Der Ausdruck "dreieckige Flächeneinheit" soll zum Zweck der Beschreibung eine "kleine dreieckige Fläche" bedeuten. Der Ausdruck "Schwerkraftmittelpunkt" soll zum Zweck der Beschreibung einen "Flächenmittelpunkt" bedeuten.
  • Das Verfahren nach der vorliegenden Erfindung hat die folgenden Merkmale und Vorteile:
  • (1) Durch Aufteilen einer Oberfläche eines Objekts in eine Vielzahl von dreieckigen Flächeneinheiten, von denen jede eine Anzahl von verarbeiteten Punkten (Pixelpunkte) aufweist, und nur durch perspektivische Transformation der drei Scheitelpunktpositionsdaten von einem dreidimensionalen Raum auf eine zweidimensionale Ebene, wobei die Pixelpunkte nur durch drei Scheitelpunkt dargestellt werden, wird die Zeit, die für eine perspektivische Transformationsverarbeitung erforderlich ist, merklich reduziert.
  • (2) Es ist möglich, die Informationsdaten der Objektoberfläche (Luminanzdaten, sichtbare - nichtsichtbare Daten und Entfernungsdaten) bei jedem Pixel genau festgesetzt und einfach zu erhalten. Gemäß einem einfachen linearen Interpolationsverfahren werden die drei Bildinformationsdaten rechnerisch, vertikal bei den drei Scheitelpunkten jeder dreieckigen Flächeneinheit auf der zweidimensionalen Ebene eingestellt, um eine separate Datenebene für jede dreieckige Flächeneinheit zu bilden; eine Vielzahl von Geraden wird berechnet, um vertikal jeden Pixelpunkt zu durchlaufen, der innerhalb jeder dreieckigen Flächeneinheit eingeschlossen ist, und jeder Punkt eines Schnittpunktes zwischen der Ebene und der Geraden wird berechnet, wodurch die Zeit reduziert wird, die für die Berechnung der Bildinformation der Objektoberfläche bei jedem Pixel erforderlich wäre.
  • (3) Da eine Anzeigefläche, innerhalb der ein Objekt angezeigt werden soll, von der oben erwähnten Interpolationsberechnung bestimmt wird, ist es möglich, die notwendige Datenberechnung für die Verarbeitung nur bei den Pixels auszuführen, die innerhalb des Anzeigebereichs liegen, ohne sie für Pixel auszuführen, die außerhalb der Anzeigenfläche liegen, wodurch die Zeit reduziert wird, die für die Interpolationsberechnung erforderlich ist.
  • (4) Da jeder Schwerkraftmittelpunkt einer jeden dreieckigen Flächeneinheit auf der zweidimensionalen Ebene, und eine dreieckige Flächeneinheit, innerhalb der das laufende Pixel liegt, auf der Grundlage des berechneten Schwerkraftmittelpunkts und der drei Seiten der dreieckigen Flächeneinheit von der oben erwähnten Interpolationsberechnung bestimmt wird, ist es möglich, ohne weiteres nur die dreieckige Fläche auszuwählen, die für eine Interpolationsberechnung bei jedem Pixel notwendig ist, das innerhalb der festgelegten Anzeigefläche liegt, um alle anderen Pixel und dreieckigen Flächeneinheiten auszuschließen, wodurch die Zeit reduziert wird, die für die Interpolationsberechnung erforderlich ist.
  • (5) Da nur die Luminanzdaten, die die kleinsten Entfernungsdaten haben, angezeigt werden, wenn mehrere sichtbare Daten beim selben Pixelpunkt existieren, ist es möglich, das Bild auf der Grundlage einer verborgenen Oberflächenverarbeitung sicher wiederzugeben.
  • Zusammengefaßt wird bei dem automatischen Datenverarbeitungsverfahren nach der vorliegenden Erfindung (1) eine Oberfläche eines Objekts, die einem Flecken entspricht, in eine Vielzahl von dreieckigen Flächeneinheiten aufgeteilt; (2) Bildinformationsdaten (Luminanzdaten, sichtbare - nichtsichtbare Daten und Entfernungsdaten) werden bei jedem Scheitelpunkt gebildet;
  • (3) nur die drei Scheitelpunktpositionsdaten werden in eine zweidimensionale Ebene transformiert;
  • (4) ein Anzeigebereich wird vorher festgelegt;
  • (5) eine dreieckige Flächeneinheit einschließlich zu verarbeitender Pixel wird festgelegt; und
  • (6) Bildinformationsdaten werden nur bei jedem Pixel berechnet, das innerhalb des Anzeigenbereichs gemäß der Interpolation liegt, wodurch es möglich ist, merklich die Verarbeitungszeit zu reduzieren, die der Datenverarbeitungscomputer erfordert.
  • Kurzbeschreibung der Zeichnungen
  • Die Merkmale und Vorteile des Verfahrens zur Anzeige eines Bildes nach der vorliegenden Erfindung werden deutlicher aus der folgenden Beschreibung einer bevorzugten Ausführungsform der Erfindung verbunden mit den begleitenden Zeichnungen, in denen gleiche Bezugszeichen oder Symbole das gleiche oder ähnliche Elemente oder Teile zeigen, und in denen:
  • Fig. 1 ein Diagramm ist, das helfen soll, das Verarbeitungsprinzip einer Schattenbildung eines Objekts zu erklären;
  • Fig. 2 ein Diagramm ist, das helfen soll, das Verarbeitungsprinzip einer verborgenen Oberflächenbildung auf einem ersten Objekt aufgrund eines zweiten Objekts zu erklären;
  • Fig. 3 ein Diagramm ist, das helfen soll, das Prinzip einer Verarbeitung einer sichtbaren - nichtsichtbaren Positionsbestimmung auf einem Objekt zu erklären;
  • Fig. 4 ein Flußdiagramm ist, das den Verfahrensablauf einer Bildanzeigeverarbeitung nach der vorliegenden Erfindung zeigt;
  • Fig. 5 eine Tabelle ist, um verschiedene Daten zur Abbildung eines Bildes gemäß einem Verfahren nach der vorliegenden Erfindung zu speichern;
  • Fig. 6 ein Diagramm ist, das helfen soll, die Trennung von Einfleckendaten DATA in mehrere dreieckige Flächeneinheiten UA1, UA2 zu erklären;
  • Fig. 7 ein Diagramm ist, das helfen soll, um das Verfahren zur Bildung sichtbarer - nichtsichtbarer Daten zu erklären;
  • Fig. 8 ein Diagramm ist, das helfen soll, das Verfahren zur Bildung von Entfernungsdaten zu erklären;
  • Fig. 9 ein Diagramm ist, das helfen soll, das Verfahren zur Bildung von Luminanzdaten zu erklären, das auch Fig. 1 entspricht;
  • Fig. 10 ein Diagramm ist, das helfen soll, den Verfahrensablauf für die perspektivische Transformation einer gekrümmten Oberfläche eines Objekts auf einem Bildschirm zu erklären;
  • Fig. 11 ein Diagramm ist, das helfen soll, den Verfahrensablauf zur Bestimmung einer Anzeigefläche zu bestimmen;
  • Fig. 12 ein Diagramm ist, das helfen soll, den Verfahrensablauf zur Extrahierung von Scheitelpunktdaten DATAX, P(X, Y) bei dreieckigen Scheitelpunkten PX, die innerhalb des Anzeigebereichs ARE liegen, aus der X-Y-Tabelle zur Ausführung der Interpolationsberechnungsverarbeitung zu erklären;
  • Fig. 13 ein Diagramm ist, das helfen soll, die Bestimmung der dreieckigen Flächeneinheit, innerhalb der ein verarbeiteter Punkt (Pixel) liegt, in Abhängigkeit vom Schwerkraftmittelpunkt zu erklären;
  • Fig. 14(A), 14(B) und 14(C) Diagramme sind, um den Verfahrensablauf einer linearen Interpolation für sichtbare - nichtsichtbare Daten zu erklären;
  • Fig. 15 ein Diagramm ist, um den Verfahrensablauf einer linearen Interpolation für Luminanzdaten zu erklären; und
  • Fig. 16 ein Diagramm ist, um den Verfahrensablauf einer linearen Interpolation für Entfernungsdaten zu erklären.
  • Ausführliche Beschreibung der bevorzugten Ausführungsformen
  • Unter Bezugnahme auf die Zeichnungen wird die vorliegende Erfindung nun ausführlich für den Fall beschrieben, wo Bilddaten eines Objekts, das eine gekrümmte Oberfläche hat, gemäß einer Transformation verarbeitet werden.
  • Bei einem später beschriebenen Verfahren zur Transformation eines graphischen Bildes werden die Schattenverarbeitung und die Verarbeitung der verborgenen Oberfläche, die für die Wiedergabe eines graphisches Bildes auf einem zweidimensionalen Rasterschirm notwendig sind, nach einem unten beschriebenen Verfahren durchgeführt.
  • Schattenverarbeitung
  • Die Schattenverarbeitung soll die Darstellung von Schatten auf den Oberflächen eines graphischen Bildes ermöglichen, das auf einem Bildschirm sichtbar gemacht wird. Wenn, wie in Fig. 1 gezeigt ist, das Licht von einer Lichtquelle 2 auf eine gekrümmte Oberfläche 1A eines Objekts 1 auftreffen darf, das innerhalb eines dreidimensionalen Raums angeordnet ist, der durch absolute Koordinaten x, y, z bestimmt ist, ändert sich die Luminanz (d. h. die Helligkeit) bei einer Position P1 innerhalb einer Minutenfläche auf der gekrümmten Oberfläche 1A entsprechend dem Winkel R, der der Normalen der gekrümmten Oberfläche 1A bei der Position P1 und der Richtung der Lichtquelle 2 gegenüberliegt. Die Schattenverarbeitung wird ausgedrückt durch
  • I = (1 - D) · A + D (1)
  • wobei I die Luminanz bei der Position P1 ist, durch die ein Schatten, der durch die Lichtquelle 2 auf der Oberfläche des Objekts 1 erzeugt wird, dargestellt werden kann; D ist eine Konstante; und A ist eine Variable, die durch
  • ausgedrückt wird. Folglich kann die Variable A durch eine Formel ausgedrückt werden, bei der das innere Produkt des Lichtquellenvektors K* und des Normaleinheitsvektors N* bei Position P1 durch das Produkt der absoluten Werte des Lichtquellenvektors K* und des Normaleinheitsvektors N* dividiert wird. Diese Formel bezeichnet den Kosinus eines Winkels R, der zwischen dem Lichtquellenvektor K* und dem Normaleinheitsvektor N* gebildet wird.
  • In Fig. 1 wird die Position der Lichtquelle 2 durch einen Positionsvektor SS* in absoluten Koordinaten x, y, z und die Position P1 der gekrümmten Oberfläche 1A durch einen Positionsvektor S* für die gekrümmte Oberfläche ausgedrückt. Der Gradient der gekrümmten Oberfläche 1A bei dieser Position P1 wird durch den Normaleinheitsvektor N* auf der gekrümmten Oberfläche 1A ausgedrückt. Weiter wird die Richtung des Lichts, das von der Lichtquelle 2 auf die Position P1 auftrifft, durch einen Vektor K* ausgedrückt, der von der Position P1 zur Lichtquelle 2 aus verläuft. Der Einfallswinkel des Lichts wird durch einen Winkel R ausgedrückt, der zwischen dem Normaleinheitsvektor N* und dem Lichtquellenvektor K* gebildet wird.
  • Wie oben beschrieben, wird die Luminanz I bei der Position P1 auf der gekrümmten Oberfläche 1A durch die Variable A bestimmt. Wenn deshalb der Einfallswinkel R des Lichts, das von der Lichtquelle 2 auf die Position P1 auftreffen darf, variiert, variiert die Variable innerhalb des Bereichs zwischen -1 und +1 ansprechend der Änderung beim Winkel R. Wenn der Einfallswinkel R gleich 0º ist (d. h. die Lichtquelle befindet sich in der Richtung des Normaleinheitsvektors N* bei der Position P1 auf der gekrümmten Oberfläche 1A), ist die Luminanz bei der Position P1 am hellsten. Wenn der Einfallswinkel R innerhalb von ± 90º sich ändert, nimmt die Luminanz bei der Position P1 ab (d. h. die Luminanz I geht in Richtung Null).
  • Verborgene Oberflächenverarbeitung
  • Bei der verborgenen Oberflächenverarbeitung werden graphische Bilddaten in einer Weise verarbeitet, daß Objektoberflächen, die von einem Beobachtungspunkt aus nicht gesehen werden, nicht auf einem Bildschirm dargestellt werden. Bei dieser Verarbeitung werden, wie in Fig. 2 gezeigt, nur die sichtbaren Teile eines Objekts, die durch eine gekrümmte Oberfläche 4A dargestellt sind, aufgrund der Tatsache dargestellt, daß es Teile gibt, die gesehen werden (bezeichnet als sichtbare Teile) und daß es Teile gibt, die nicht gesehen werden (bezeichnet als nichtsichtbare Teile), wenn eine gekrümmte Oberfläche 4A eines Objekts 4 von einem Beobachtungspunkt 3 gesehen wird.
  • Die Bestimmung, ob ein Teil auf der gekrümmten Oberfläche 4A sichtbar ist oder nicht, geschieht auf der Grundlage der folgenden zwei Bedingungen: Bei der ersten Bedingung gibt es, wie in Fig. 2 dargestellt, wenn die gekrümmte Oberfläche 4A des Objekts 4 vom Beobachtungspunkt 3 aus entlang der Sichtlinie EL1 gesehen wird, Schnittpunkte P11, P12 und P13 der Sichtlinie EL1 und der gekrümmten Oberfläche 4A. Es ist selbstverständlich, daß diese Punkte nur für alle anderen Punkte auf der Oberfläche repräsentativ sind. Der Oberflächenteil zwischen der Position P12 und P13 ist verborgen, da dort eine Oberfläche existiert, die die Sichtlinie EL1 an der Position P11 auf der Seite des Beobachtungspunkts 3 schneidet. Der Oberflächenteil zwischen den Positionen P12 und P13 wird deshalb als nicht sichtbar bestimmt, und die graphische Bilddatentransformationsverarbeitung wird auf eine Weise ausgeführt, daß der sichtbare Oberflächenteil bei der Position P11 auf einem Phantombildschirm 5, der zwischen dem Objekt 4 und dem Beobachtungspunkt 33 angeordnet ist, sichtbar ist. Dieser "Phantombildschirm" ist ein rechnerischer Kunstgriff, der die Position des zweidimensionalen Bildschirms in Bezug auf das dreidimensionalen Objekt darstellt.
  • Die zweite Bedingung ist die, daß die Oberflächenteile, die angezeigt werden sollen, nicht durch andere Objekte verborgen sind, d. h. durch andere Oberflächen als die Oberfläche 4A. Da in Fig. 2 ein anderes Objekt 6 zwischen dem Beobachtungspunkt 3 und der gekrümmten Oberfläche 4A des Objekts 4 liegt, wenn das Objekt 4 von der Sichtlinie EL2 her gesehen wird, schneidet die Sichtlinie EL2 die gekrümmte Oberfläche 6A des Objekts 6, bevor die gekrümmte Oberfläche 4A des Objekts 4 geschnitten wird. Das heißt, daß der Oberflächenteil bei der Position P14 auf der gekrümmten Objektoberfläche 4A durch den Oberflächenteil bei der Position P15 auf der gekrümmten Objektoberfläche 6A verborgen ist. Die graphische Bilddatentransformationsverarbeitung wird daher so ausgeführt, daß der nichtsichtbare Oberflächenteil bei der Position P14 nicht angezeigt wird, der sichtbare Oberflächenteil bei der Position P15 auf einem Phantombildschirm 5 aber angezeigt wird.
  • Die erste Bedingung (d. h. sichtbar oder nichtsichtbar) kann nach dem in Fig. 3 gezeigten Verfahren festgelegt werden. Wenn ein Sichtlinieneinheitsvektor E*, der zum Beobachtungspunkt 3 zeigt, auf einem Objekt 7 (d. h. auf einem Kreis) gezeichnet wird, das eine geschlossene gekrümmte Oberfläche 7A hat, um ein inneres Produkt aus diesem Sichtlinieneinheitsvektors E* und dem Normaleinheitsvektors N* zu erhalten, kann die notwendige und ausreichende Bedingung, daß der Oberflächenteil bei Punkt P21 sichtbar ist, so ausgedrückt werden:
  • N* · E* > = 0 (3).
  • Hier ist, wenn der Winkel, der zwischen dem Sichtlinieneinheitsvektor E* und dem Normaleinheitsvektor N* liegt, Φ ist, das innere Produkt von E* und N*:
  • N* · E* = N* · E* cos Φ = cos Φ (4).
  • Es kann daher die Bedingung, die die Formel (3) erfüllt, aufgestellt werden, wenn Φ ein spitzer Winkel ist
  • 0 < &Phi; < &pi;/2 (5).
  • Wenn beispielsweise, wie in Fig. 3 gezeigt ist, der Winkel &Phi; beim Punkt P21 am Schnittpunkt der Sichtlinie EL3 mit der Oberfläche 7 spitz ist, wird, da das innere Produkt aus der Sichtlinienvektor E* und dem Normaleinheitsvektor N* positiv ist, die Bedingung der Formel (3) erfüllt werden, so daß für den Oberflächenteil bei Punkt P21 bestimmt wird, daß er sichtbar ist. Im Gegensatz dazu wird in Fig. 3, wenn der Winkel &Phi; zwischen der Sichtlinie EL3 und dem hinteren Oberflächenteil 7 bei einem Punkt P22 mehr als &pi;/2 ist, die Bedingung der Formel (3) nicht erfüllt, da das innere Produkt aus dem Sichtlinieneinheitsvektor E* und dem Normaleinheitsvektor N* negativ ist, so daß für den Oberflächenteil bei Punkt P22 festlegt wird, daß er nicht sichtbar ist.
  • Mit der obigen Bestimmung muß man beurteilen, ob der Gradient als Oberflächenteil bei jedem einzelnen Punkt, der auf der gekrümmten Oberfläche 7A liegt, dem Beobachtungspunkt 3 gegenüberliegt oder nicht. Solche Punkte werden als sichtbare Kandidatenpunkte bezeichnet. Für die sichtbaren Kandidatenpunkte wird demnach festgelegt, sichtbare Punkte zu bilden, wenn die obige zweite Bedingung erfüllt wird. Das heißt, wie unter Fig. 2 erklärt, daß ein sichtbarer Kandidatenpunkt P11 oder P15, der die kürzeste Entfernung zum Beobachtungspunkt 3 hat, aus einer Vielzahl von sichtbaren Kandidatenpunkten (P11, P12, P13) oder (P14, P15) ausgewählt wird, die auf der Sichtlinie EL1 oder EL2 liegen, und daß jeweils für den ausgewählten Punkt bestimmt wird, daß er ein sichtbarer Punkt ist.
  • Transformationsverarbeitungsablauf (Abläufe zur Bildung verschiedener Tabellen)
  • Ein Bildanzeigesystem, das ein graphisches Berechnungsverfahren annimmt, führt eine Transformationsverarbeitung für ein graphisches Bild nach der vorliegenden Erfindung durch eine zentrale Recheneinheit (CPU) nicht gezeigt) gemäß dem in Fig. 4 gezeigten Verarbeitungsablauf durch.
  • Beim Schritt SP1 beginnt das Steuerungsprogramm für die Transformationsverarbeitung. Beim Schritt SP2 werden die Daten, die die Positionen des Beobachtungspunkts 3 (Fig. 4) und der Lichtquelle sowie die Anzahl der Flecken, die für die Transformationsverarbeitung eines graphischen Bilds notwendig sind, durch eine Bedienungsperson in die CPU eingegeben.
  • Auf der Grundlage der dreidimensionalen graphischen Bilddaten, die vorher im digitalen Speicher der CPU gespeichert wurden, bildet die CPU eine perspektivische Transformationsmatrix, die zur Transformierung von Punkten auf den gekrümmten Oberflächen eines dreidimensionalen graphischen Bilds auf die entsprechenden Punkte auf einer Ansichtsebene 5 beim Schritt SP3 verwendet wird. Das heißt, daß die obige Matrix notwendig ist, wenn ein dreidimensionales graphisches Bild, das durch die graphischen Bilddaten dargestellt wird, perspektivisch auf der Anzeigeebene 5 (Fig. 2) angezeigt wird, die auf der Grundlage des Beobachtungspunkts 3 bestimmt wird, die bei Schritt SP2 voreingestellt wurde.
  • Danach liest, wie in Fig. 6 gezeigt, die CPU Daten DATA für einen Flecken von graphischen Bilddaten, die bei Schritt SP4 transformiert und angezeigt werden sollen, und sie unterteilt im Schritt SP5 die DATA, als ob die Flecken in dreieckige Formen geschnitten wären.
  • Bei dieser Ausführungsform geschieht das Unterteilen der Daten in Dreiecke wie folgt die Daten DATA für einen Flecken werden durch die CPU aus ihrem Speicher der Reihe nach ausgelesen, und die Schnittpunkte der beiden Gruppen der berechneten Schnittlinien L1 und L2 werden der Reihe nach auf der Grundlage der vorgegebenen Parameter berechnet. Die beiden Gruppen der Schnittlinien werden in regelmäßigen Intervallen angeordnet, wenn sie auch nicht notwendigerweise in regelmäßigen Intervallen auf der gekrümmten Oberfläche voneinander beabstandet sind. Hier ist die Zahl der Linien der Schnittliniengruppen L1 und L2 als fünf in der horizontalen und vertikalen Richtung so gewählt, daß die beiden Schnittliniengruppen L1 und L2 sich gegenseitig in einer Anordnung gleich einem Netz schneiden. Deshalb wird eine gekrümmte Oberfläche, die sich aus Einfleckendaten DATA zusammensetzt, in kleine Flächen UA geteilt, die von zwei angrenzenden Linien der Schnittliniengruppen L1 und L2 umgeben sind, und jede kleine Fläche UA wird so für eine Verarbeitung ausgeschnitten, daß sie von vier Schnittpunkten PX umgeben wird.
  • Die Größe dieser kleinen Fläche UA wird in Verbindung mit der Zahl der Flecken bestimmt, die bei Schritt SP2 eingegeben wurden. Wenn die kleine Fläche UA auf einem Abbildungsrasterbildschirm transformiert wird, kann die Anzahl der Pixel, die innerhalb des transformierten kleinen Bereichs eingeschlossen sind, automatisch bestimmt werden.
  • Die kleinen Flächen UA sind weiter in jeweils zwei dreieckige Flächeneinheiten UA1 und UA2 durch Diagonalen L3 geteilt, die zwei Punkte der Schnittlinie PX diagonal entgegengesetzt zueinander verbinde, so daß eine gekrümmte Oberfläche, die durch Daten DATA dargestellt wird, in eine Anzahl von dreieckigen Flächeneinheiten UA1 und UA2 geteilt wird. Der Anzahl der Pixel, die in jeder dreieckigen Fläche UA1 oder UA2 enthalten ist, ist beispielsweise 20 bis 30.
  • Nachdem das Schneiden einer gekrümmten Oberfläche in dreieckige Flächeneinheiten UA1 und UA2 ausgeführt wurde, berechnet die CPU einen Normaleinheitsvektor N* an drei Schnittpunkten, d. h. an den Scheitelpunkten einer jeden dreieckigen Flächeneinheit UA1 oder UA2.
  • Aufgrund der Tatsache, daß drei Daten bei drei Scheitelpunkten durch Teilen der gekrümmten Oberfläche erhalten werden, zeigen Daten DATA, die in zwei dreieckige Flächeneinheiten UA1 und UA2 verarbeitet werden sollen, an, daß, wenn die dreieckigen Flächeneinheiten UA1 und UA2 auf einen Anzeigerasterbildschirm transformiert werden, die Daten für 20 bis 30 Pixel, die in jeder transformierten dreieckigen Flächeneinheit enthalten sind, nur durch die drei Scheitelpunktdaten dargestellt werden können; d. h. daß die folgenden Verarbeitungsschritte können auf der Grundlage der drei Scheitelpunktdaten ausgeführt werden können, wodurch die Datenverarbeitungsgeschwindigkeit merklich erhöht wird, wie danach gezeigt werden wird.
  • Im folgenden Schritt SP6 berechnet die CPU eine Speichertabelle, die sichtbare und nichtsichtbare Daten enthält, die für eine verborgene Oberflächenverarbeitung verwendet werden. Bei diesem Schritt berechnet die CPU jeweils Sichtlinienvektoren E* bei den drei Scheitelpunkten der dreieckigen Flächeneinheiten UA1 und UA2, wie in Fig. 7 gezeigt ist; sie berechnet jedes innere Produkt aus dem Sichtlinieneinheitsvektor E* und dem Normaleinheitsvektor N*; und sie speichert der Reihe nach diese berechneten Ergebnisse in der Sichtbar-Nichtsichtbarkeitstabelle TABELLE 4 einer Tabelle 10, die im Speicher des Computers vorgesehen ist, wie in Fig. 5 gezeigt ist.
  • In der Tabelle 10 werden die Daten DATA (Fig. 6) der gekrümmten Oberfläche für einen Flecken als Daten von 25 Wörtern pro Flecken gespeichert, der jeweils in fünf Schnittpunkte in der Richtung geteilt ist, daß die Schnittliniengruppe L2 eingerichtet wird (bezeichnet als U-Richtung), und in der Richtung, daß die Schnittliniengruppe L1 eingerichtet wird (bezeichnet als V-Richtung).
  • In der Sichtbar-Nichtsichtbarkeistabelle TABELLE 4 werden daher die sichtbaren - nichtsichtbaren Daten für 25 Schnittpunkte PX für jeden Flecken gespeichert, um die Daten für die erste Bedingung zu bilden, die für eine verborgene Oberflächenbearbeitung notwendig sind, wie unter Bezugnahme auf Fig. 2 beschrieben wurde.
  • Anschließend bildet die CPU bei Schritt 7 eine Entfernungstabelle. Die Entfernungstabelle wird durch die CPU durch Berechnen eines Entfernungsvektors D* vom Scheitelpunkt PX zum Beobachtungspunkt 3 bei jedem Scheitelpunkt der Daten DATA der gekrümmten Oberfläche gebildet, wie in Fig. 8 gezeigt, und durch Speichern der berechneten Ergebnisse in einer Entfernungstabelle TABELLE 3 der Tabelle 10.
  • Die Entfernungsdaten D in dieser Entfernungstabelle TABELLE 3 werden dazu verwendet, die zweite Bedingung (Fig. 2) bei der verborgenen Oberflächenverarbeitung zu bestimmen. Der Entfernungsvektor vom Scheitelpunkt PX zum Beobachtungspunkt 3 kann berechnet werden als
  • D* = Eo* - S* (6).
  • Die Entfernungsdaten D werden durch Berechnen des absoluten Werts des Entfernungsvektors D* erhalten.
  • Wenn daher die Entfernungsdaten für mehrere gekrümmte Oberflächen beim gleichen Pixelpunkt auf dem Rasterbildschirm erhalten werden, ist es möglich, daß die CPU die Daten des gekrümmten Oberflächenteils, die dem Beobachtungspunkt 3 am nächsten sind, als die Entfernungsdaten berechnet, und daß sie die Entfernungsdaten für das gleiche Pixel ausschließt, das weiter entfernt ist, d. h. für einen Oberflächenpunkt, der gegenüber dem Beobachtungspunkt 3 verborgen ist.
  • Anschließend berechnet die CPU bei Schritt SP8 eine Luminanztabelle zur Speicherung in einem Speicher. Wie in Fig. 9 gezeigt ist, die der Fig. 1 entspricht, wird die Luminanz bei jedem Scheitelpunkt wie folgt berechnet: Es wird der Positionsvektor K* vom Scheitelpunkt PX zur Lichtquelle 2 berechnet. Dann wird der Kosinus des Einfallswinkels R auf der Grundlage des inneren Produkts aus dem berechneten Ergebnis K* und dem Normaleinheitsvektor N* beim Scheitelpunkt PX berechnet:
  • Das berechnete Ergebnis wird durch eine Variable A dargestellt.
  • Die Luminanz I kann durch die Verwendung der Variablen A wie folgt berechnet:
  • I = (1 - D) · A + D (9).
  • Obwohl hier der Wert der Konstanten D beispielsweise ungefähr 0,22 ist, da die Variable A innerhalb eines Bereichs von 0 bis 1 variiert (R ändert sich innerhalb von ± &pi;/2), ändert sich die Luminanz I hauptsächlich gemäß dem Wechsel im Licht, das von der Lichtquelle 2 auf den Scheitelpunkt PX auftreffen darf. Diese Daten werden in der Luminanztabelle TABELLE 2 der Tabelle 10 (Fig. 5) gespeichert und für die Schattenverarbeitung verwendet, wie unter Bezugnahme auf Fig. 1 beschrieben wurde.
  • Anschließend schreitet die CPU zu Schritt SP9 weiter, um die perspektivische Transformationsverarbeitung durchzuführen. Wie in Fig. 10 gezeigt, die der Fig. 2 entspricht, besteht die perspekitivische Transformationsverarbeitung darin, die Scheitelpunkte PX auf der gekrümmten Oberfläche 4A innerhalb einer dreidimensionalen X-Y-Ebene einer Sichtebene 5 zu transformieren, die den Rasterbildschirm darstellt, wenn die Positionen der Scheitelpunkte PX auf der gekrümmten Oberfläche 4A eines Objekts 4 perspektivisch auf der Sichtebene 5, die zwischen dem Objekt 4 und dem Beobachtungspunkt 3 angeordnet ist, gesehen werden. Die Transformationsverarbeitung kann durch Transformationsberechnen der Positionsdaten bei den Scheitelpunkten PX durchgeführt werden, die im obigen Schritt SP5 auf der X-Y-Ebene auf der Grundlage der perspektivischen Transformationsmatrix, die im Schritt SP3 gebildet wurde, erhalten wurde. Die berechneten Ergebnisse werden in der XY-Tabelle TABELLE 1 der Tabelle 10 gespeichert.
  • Wie oben beschrieben ist es durch die Verwendung von Fleckendaten in Tabelle 10 für die CPU möglich, Bilddaten zu bilden, die die Oberfläche eines Objekts bei jeder Scheitelpunktposition von den dreieckigen Flächen jedes Fleckens darstellen, in die die CPU aufgrund einer Berechnung die Oberfläche des Objekts geteilt hat. Im folgenden Schritt SP10 bestimmt die CPU, ob die Verarbeitung aller Daten für alle Flecken beendet wurde, die als Anfangswerte im Schritt SP2 gesetzt werden. Wenn sie nicht beendet wurde, kehrt die CPU zu Schritt SP4 zurück, um die folgenden Fleckendaten in der Tabelle 10 zu berechnen. Wenn bei Schritt SP10 JA erhalten wird, kann die CPU die ganze Information in ihrem Speicher speichern, die die Zustände der gekrümmten Oberfläche, die auf dem Bildschirm abgebildet werden sollen, in der Tabelle 10 jeweils in Beziehung zu drei Scheitelpositionsdaten der dreieckigen Flächeneinheit UA1 und UA2 (Fig. 6) dargestellen.
  • Wenn die obige Transformationsverarbeitung ausgeführt worden ist, ist es möglich, die Daten bei den Schnittpunkten auf einer gekrümmten Oberfläche, die innerhalb eines dreidimensionalen Raums liegen, als Daten auf der X-Y-Ebene zu handhaben. Es können daher die folgenden Verarbeitungen mit der X-Y-Ebene, d. h. mit dem Rasterbildschirm als Bezugsfläche, ausgeführt werden.
  • Lineare Interpolation, Schatten- und verborgene Oberflächenverarbeitung
  • Für die Information über die gekrümmte Oberfläche, die in der Tabelle 10 wie oben beschrieben gespeichert wurde, wird, da jede dreieckige Flächeneinheit UA1 oder UA2 20 bis 30 Pixels auf dem Anzeigebildschirm entspricht, in den folgenden Schritten SP11 bis SP18 eine lineare Interpolationsberechnung für jedes Pixel durch die Verwendung der Daten in der Tabelle 10 angeführt, um Bilddaten für die Schattenverarbeitung und die verborgene Oberflächenverarbeitung zu erhalten. Auf der Grundlage dieser Bilddaten ist es möglich, ein ebenes Bild auf dem Anzeigebildschirm natürlich wiederzugeben.
  • Im Schritt SP11 führt die CPU die Verarbeitung zur Bestimmung der Anzeigefläche aus. Dieser Verarbeitungsschritt ist dafür da, um eine Anzeigefläche so zu bestimmen, daß ein Bild in grobem Zustand an der Mittelposition eines Anzeigebildschirms in einer geeigneten Abmessung angezeigt werden kann. Wie in Fig. 11 gezeigt ist, werden alle Daten aus dem Speicher aus der XY-Tabelle TABELLE I (Fig. 5) der Tabelle 10 ausgelesen, um den Maximalwert Xmax und den Minimalwert Xmin in der X-Achsenrichtung und den Maximalwert Ymax und den Minimalwert Ymin in der Y-Achsenrichtung der perspektivisch transformierten Scheitelpunktpositionsdaten, die ein Anzeigebild DES konfigurieren, zu extrahieren. Danach wird die Mittelposition Xc zwischen dem Maximalwert Xmax und dem Minimalwert Xmin in der X-Richtung durch folgende Formel erhalten:
  • Xc = Xmax+Xmin/2 (10).
  • Die Mittelposition Yc zwischen dem Maximalwert Ymax und dem Minimalwert Ymin in der Y-Richtung wird durch die folgende Formel bestimmt:
  • Yc =Ymax+Ymin/2 (11).
  • Somit kann die Mittelposition (Xc, Yc) erhalten werden, und sie wird auf eine Mittelposition auf dem Rasterbildschirm 11 gesetzt. Gleichzeitig wird die Anzeigefläche ARE so bestimmt, daß das angezeigte Bild DES innerhalb der Kapazität eines Rahmenpufferspeichers untergebracht werden kann, der Speicherzellen hat, die Pixeln entsprechen, die den Anzeigebildschirm 11 konfigurieren.
  • Hier hat die Anzeigefläche eine Fläche, die sich vom Maximalwert Xmax zum Minimalwert Xmin in der X-Richtung und vom Maximalwert Ymax zum Minimalwert Ymin in der Y-Richtung erstreckt, wie in Fig. 11 dargestellt ist.
  • Wenn einmal die Anzeigefläche bestimmt ist, führt die CPU alle folgenden Verarbeitungsschritte nur für die Pixel aus, die innerhalb der Anzeigefläche ARE liegen. Dieser Gesichtspunkt reduziert wesentlich die Menge der Transformationsberechnung für ein Bild, das auf dem Rasterbildschirm sichtbar gemacht werden soll. Ausführlicher ausgedrückt wird in dem Fall, wo ein transformiertverarbeitetes Bild auf einem Rasterbildschirm abgebildet wird, das Verfahren zur Berechnung der Anwesenheit oder Abwesenheit und der Werte der Bilddaten für alle Pixel, die den Rasterbildschirm konfigurieren, auf konventionelle Weise angewandt, wobei danach die berechneten Ergebnisse in die entsprechenden Speicherplätze des Rahmenpufferspeichers gespeichert werden. Durch Anwendung des in Fig. 11 beschriebenen Verfahrens ist es, da für die Pixel, die keine anzuzeigenden Daten haben, keine Verarbeitungsberechnung gemacht wurde, möglich, beträchtlich die Menge der Bildtransformationsberechnungen als Ganzes zu reduzieren.
  • Beim Schritt SP12 liest die CPU die Positionsdaten DATAX (Fig. 12) für einen Flecken, der den Scheitelpunkten der dreieckigen Flächeneinheiten UA1 und UA2 in dieser Anzeigefläche ARE entspricht, der Reihe nach aus der XY-Tabelle TABELLE 1 der Tabelle 10, um eine Interpolationsberechnungsverarbeitung auszuführen. Das heißt, daß die CPU Daten liefert, die für Interpolationsberechnungen notwendig sind, um die Luminanz der Pixel zu bestimmen, die innerhalb der dreieckigen Flächen UA1X und UA2X eingeschlossen sind, die innerhalb der Anzeigefläche ARE auf dem Anzeigebildschirm liegen (Fig. 11 und 12).
  • Beim Schritt SP13 bestimmt die CPU dann, ob das laufende Pixel Pc (als Verarbeitungspunkt bezeichnet) zur dreieckigen Fläche UA1X oder UA2X gehört, d. h., ob der Verarbeitungspunkt Pc (Xc, Yx) innerhalb der dreieckigen Fläche UAX liegt oder nicht. Das Verfahren, um dies auszuführen, verwendet den Schwerkraftmittelpunkt Po (Xo, Yo) der dreieckigen Fläche UAX, der von drei Geraden DL1, DL2 und DL3 umgeben ist, die die Scheitelpunkte P1 (X1, Y1) P2 (X2, Y2) und P3 (X3, Y3) wechselseitig auf der XY-Ebene verbinden, die durch die drei perspektivisch transformierten Scheitelpunkte jeder dreieckigen Fläche UA1X oder UA2X erhalten werden, die im Schritt SP9 berechnet wurden (Fig. 4 und 10) und in TABELLE 1 gespeichert wurden, wie in Fig. 13 dargestellt ist.
  • Die Gleichung der Geraden DL1, die durch die Scheitelpunkte P1 und P2 läuft, kann so ausgedrückt werden:
  • Y - Y1 = Y2-Y1/X2-X1 · (X-X1) (12).
  • Umgeschrieben lautet sie
  • (Y-Y1) (x2-x1)-(Y2-Y1) (X-X1) = 0 (13).
  • Die obige Gleichung (13) zeigt jedoch, daß ihre linke Seite Null ist, wenn der X-Koordinatenwert und der Y-Koordinatenwert der Punkte, die auf der Geraden DL1 liegen, durch X und Y ersetzt werden.
  • Die linke Seite der Gleichung (13) wird daher durch F(X,Y) ersetzt:
  • F(X,Y)=(Y-Y1)(X2-X1)-(Y2-Y1)(X-X1) (14).
  • Wenn Punkte auf der Geraden DL1 ersetzt werden, ist F(X,Y) Null. Wenn jedoch die Koordinatenwerte der Punkte innerhalb oder außerhalb der Geraden DL1 ersetzt werden, ist F(X,Y) ein positiver oder negativer Wert.
  • Wenn man diesem Punkt Aufmerksamkeit zumißt, wenn die Koordinatenwerte des Schwerkraftmittelpunkt Po der dreieckigen Fläche UAX, die ausgedrückt werden als
  • Xo X1+X2+X3/3 (15)
  • Yo = Y1+Y2+Y3/3 (16)
  • in Gleichung (14) eingesetzt werden, kann die folgende erste Gleichung erhalten werden:
  • F(Fo,Yo) = (Yo-Y1)(X2-X1)-(Y2-Y1)(Xo-X1) (17).
  • Wenn andererseits die Koordinatenwerte des Verarbeitungspunkts Pc(Xc,Yc) in die Gleichung (14) eingesetzt werden, kann die folgende zweite Gleichung erhalten werden:
  • F(Xc,Yc)=(Yc-Y1)(X2-X1)-(Y2-Y1)(Xc-X1) (18).
  • Wenn daher das Produkt von beiden positiv ist, wie
  • F(Xo,Yo · F(Xc, Yc) > 0 (19)
  • ist es möglich, festzulegen, daß der Verarbeitungspunkt Pc(Xc,Yc) auf der Seite des Schwerkraftmittelpunkts Po(Xo,Yo) abseits der Geraden DL1 liegt. Da in diesem Fall der Schwerkraftmittelpunkt Po natürlich innerhalb der dreieckigen Fläche UAX liegt, ist es möglich, zu bestimmen, daß der Verarbeitungspunkt Pc(Xc,Yc), der die Bedingung der Gleichung (19) erfüllt, innerhalb der Geraden DL1 liegt:
  • Ähnliche Berechnungen werden für die Geraden DL2 und DL3, die die anderen Seiten der dreieckigen Fläche UAX bilden, wie folgt durchgeführt:
  • F(Xc,Yc)=(Yc-Y2)(X3-X2)-(Y3-Y2)(XcX2) (20)
  • F(Xc,Yc)=(Yc-Y3)(X1-X3)-(Y1-Y3)(Xc-X3) (21).
  • Wie unter Bezugnahme auf Gleichung (19) beschrieben wurde, liegt, wenn das durch die CPU berechnete Produkt aus F(Xo,Yo) und F(Xc,Yc) auf der Grundlage der berechneten Ergebnisse als positiv bestimmt wird, der Verarbeitungspunkt Pc( Xc,Yc) auf der Seite des Schwerkraftmittelpunkts Po(Xo,Yo) abseits aller Geraden DL1, DL2 und DL3, die drei Seiten der dreieckigen Fläche UAX bilden. Da es klar ersichtlich ist, daß der Schwerkraftmittelpunkt eines Dreiecks innerhalb der drei Seiten liegt, ist es daher möglich, festzulegen, daß der Verarbeitungspunkt Pc(Xc,Yc) innerhalb der dreieckigen Fläche UAX liegt.
  • Wenn dagegen ein negatives Ergebnis erhalten wird, wenn einer der Werte der Gleichungen (18), (20) und (21) wie folgt ist:
  • F(Xo,Yo) · F(Xc,Yc) < 0 (22)
  • muß der Verarbeitungspunkt Pc(Xc,Yc) dann auf der Seite gegenüber des Schwerkraftmittelpunkts Po(Xo,Yo) abseits von einer oder mehreren Geraden DL1, DL2 und DL3 liegen, womit der Verarbeitungspunkt Pc durch die CPU dazu bestimmt wird, daß er nicht innerhalb der dreieckigen Fläche UAX liegt.
  • Wenn der Verarbeitungspunkt Pc festgelegt wird, daß er außerhalb der dreieckigen Fläche UAX wie oben beschrieben liegt, führt die CPU die aufeinanderfolgenden Interpolationsberechnungen für diesen Punkt, d. h. für dieses Pixel beim Verarbeiten der Punkte für diese dreieckige Fläche nicht durch. Die gleiche Bestimmung wird für neue dreieckige Flächen UAX wiederholt, bis eine dreieckige Fläche UAX, die einen Verarbeitungspunkt Pc einschließt, herausgefunden ist.
  • Wenn bei Schritt SP13 eine dreieckige Fläche UAX, innerhalb der ein Verarbeitungspunkt Pc liegt, gefunden wird, schreitet die CPU als Folge davon zu einen folgenden Schritt SP14, um die Verarbeitung einer sichtbaren - nichtsichtbaren Bestimmung auf der Grundlage einer linearen Interpolation durchzuführen.
  • Zu diesem Zweck wird die sichtbare - nichtsichtbare Datentabelle TABELLE 4, die im Speicher durch Berechnung eines inneren Produkts aus dem Normaleinheitsvektor N und dem Sichtlinieneinheitsvektor E* von jedem Dreiecksscheitelpunkt PX zum Beobachtungspunkt 3, und durch Speichern der berechneten Ergebnisse, die jedem Scheitelpunkt PX entsprechen, im Computerspeicher gebildet werden, verwendet. In der Ausführungsform von Fig. 14 sind die sichtbaren - nichtsichtbaren Datenwerte so gesetzt, daß sie "+1" oder "-1" sind.
  • Das heißt, daß die CPU der Reihe nach die sichtbaren
  • - nichtsichtbaren Daten, die für jeden Dreiecksscheitelpunkt P1, P2, P3 gespeichert sind, aus der sichtbaren - nichtsichtbaren Tabelle TABELLE 4 (Fig. 5) der Tabelle 10 liest, um rechnerisch die entsprechenden sichtbaren - nichtsichtbaren Datenvektoren VI&sub1;, VI&sub2;, VI&sub3; bei den Positionen P1, P2, P3 auf dem Anzeigebildschirm, wie in Fig. 14 dargestellt, vertikal zu setzen, und um eine sichtbare - nichtsichtbare Ebene VPX zu berechnen, wobei alle Spitzen der gesetzten sichtbaren - nichtsichtbaren Datenvektoren VI&sub1;, VI&sub2;, VI&sub3; geschnitten werden. Diese sichtbare- nichtsichtbare Ebene VPX ändert sich in Abhängigkeit von den Werten der sichtbaren - nichtsichtbaren Daten VI&sub1;, VI&sub2;, VI&sub3;, die bei den Scheitelpunkten P1, P2, P3 wie folgt gesetzt werden; Wenn alle sichtbaren - nichtsichtbaren Daten VI&sub1; bis VI&sub3; einen Wert vom "+1" haben, ist es möglich, eine sichtbare - nichtsichtbare Ebene VPX zu erhalten, die sich parallel und über der Dreiecksfläche UAX erstreckt, wie in Fig. 14(A) dargestellt ist. Wenn im Gegensatz dazu alle sichtbaren - nichtsichtbaren Daten VI&sub1; bis VI&sub3; einen Wert von "-1" haben, ist es möglich, eine sichtbare - nichtsichtbare Ebene VPX zu erhalten, die sich parallel zu und unter der Dreiecksfläche UAX erstreckt, wie in Fig. 14(B) dargestellt ist.
  • Wenn weiter einer der beiden Teile (beispielsweise VI&sub1; und VI&sub2;) der sichtbaren - nichtsichtbaren Daten VI&sub1; bis VI&sub3; "+1" ist und der verbleibende Teil (beispielsweise VI&sub3;) "-1" ist, schneidet die sichtbare - nichtsichtbare Ebene VPX die Dreiecksfläche UAX, wie in Fig. 14(C) gezeigt ist, in einer Weise, daß die sichtbare - nichtsichtbare Ebene VPX, die auf den Seiten der Scheitelpunkte P1 und P2 abseits der Schnittpunktlinie LIN existiert, positiv ist und die Ebene VPX, die auf der Seite des Scheitelpunkts P3 abseits von der Linie LIN existiert, negativ ist.
  • Deshalb wird der Punkt VIpc des Schnittpunktes der Geraden LC1, die durch den Verarbeitungspunkt Pc läuft und senkrecht zur Dreiecksfläche UAX (z. B. zum Rasterbildschirm) ist, interpoliert, und die sichtbare - nichtsichtbare Ebene VPX und der Wert VIpc wird bestimmt als die sichtbaren - nichtsichtbaren Daten beim Verarbeitungspunkt. So sind beispielsweise die Werte von VIpc in den Fig. 14(A) und 14(C) positiv, und somit werden die Daten bei den Punkten Pc als sichtbare Daten eingestuft. Wenn andererseits die Werte von VIpc in Fig. 14(B) und VIpc in Fig. 14(C) negativ sind, werden nichtsichtbare Daten jeweils an den Punkten Pc (Fig. 14(B) und Pc' (Fig. 14(C)) angezeigt.
  • Wie oben beschrieben ist es mit nur drei sichtbaren - nichtsichtbaren Daten VI&sub1;, VI&sub2; und VI&sub3; bei den drei Scheitelpunkten P1, P2, P3, die aus einer anzuzeigenden dreidimensionalen gekrümmten Oberfläche erhalten werden, möglich, die sichtbaren - nichtsichtbaren Daten bei allen Verarbeitungspunkten Pc leicht zu erhalten, die innerhalb der dreieckigen Flächeneinheit UAX auf dem Anzeigebildschirm eingeschlossen sind (erinnere dich, daß diese Verarbeitungspunkte Pixel auf dem Anzeigebildschirm darstellen). Dies geschieht durch die CPU durch Berechnen (lineare Interpolationsrahmung) des Schnittpunkts zwischen der Geraden LC1, die durch den Verarbeitungspunkt Pc und die dreieckige sichtbare - nichtsichtbare Ebene VPX läuft; eine unkomplizierte Berechnung macht es durch die CPU möglich, eine definierte Auflösung ohne Schwierigkeit zu erhalten.
  • Anschließend schreitet die CPU zu Schritt SP15, um die Verarbeitung der Bestimmung der Luminanz gemäß einer linearen Interpolation auszuführen. Bei dieser Verarbeitung wird, wie in Fig. 15 gezeigt, die Luminanz Ipc beim Verarbeitungspunkt Pc eines Pixels, das innerhalb der Dreiecksfläche UAX eingeschlossen ist, auf der Grundlage der Luminanzdaten I1, I2, I3 bei den Scheitelpunkten P1, P2, P3 der Dreiecksfläche UAX auf dem Anzeigebildschirm nach einem Verfahren durch Interpolieren berechnet, das dem ähnlich ist, das für die Bestimmung der sichtbaren - nichtsichtbaren Daten verwendet wird.
  • Die Luminanzdaten I1, I2, I3 bei den Scheitelpunkten P1, P2, P3 der Dreiecksfläche UAX werden aus der Luminanztabelle TABELLE 2 der Tabelle 10 gelesen und computermäßig vertikal bei den entsprechenden Scheitelpunkten P1, P2, P3 auf dem Anzeigebildschirm gesetzt. Es wird eine Luminanzebene BPX berechnet, die jedes Spitzenende der Luminanzdatenvektoren I1, I2, I3 schneidet. Eine Gerade LC2 wird senkrecht zum Anzeigebildschirm beim Verarbeitungspunkt Pc eines jeden Pixels gesetzt, das innerhalb der Dreiecksfläche UAX eingeschlossen ist. Es werden der Schnittpunkt der Geraden LC2 und die Luminanzebene BPX erhalten. Der Wert beim Schnittpunkt auf der Luminanzebene BPX wird so festlegt, daß er die Luminanz Ipc beim Verarbeitungspunkt Pc ist.
  • Wie oben beschrieben, ist es, wenn alle Pixel, die innerhalb der Dreiecksfläche UAX eingeschlossen sind, der Reihe nach als Verarbeitungspunkte Pc ausgewählt werden, leicht möglich, alle Luminanzdaten für alle Pixel zu erhalten, wobei die drei Luminanzdaten verwendet werden, die aus der dreidimensionalen gekrümmten Oberfläche durch folgerichtiges Ausführen der obigen linearen Interpolationsberechnung für jeden Schnittpunkt zwischen den Geraden LC2 und der dreieckigen Luminanzebene BPX für jeden Verarbeitungspunkt Pc erhalten werden; ebenso ist eine unkomplizierte Berechnung möglich, die es der CPU ermöglicht, eine definierte Auflösung ohne Schwierigkeit zu erzielen.
  • Anschließend führt bei Schritt SP16 die CPU die Verarbeitung zur Bestimmung der Entfernung gemäß einer Interpolationsberechnung aus. Bei dieser Verarbeitung wird wie in Fig. 16 gezeigt die Entfernung von Beobachtungspunkt durch die CPU für jedes Pixel, das innerhalb der Dreiecksfläche UAX auf dem Anzeigebildschirm eingeschlossen ist, gemäß eines Verfahrens durch Interpolation berechnet, das dem eben gerade beschriebenen ähnlich ist. Zuerst werden die Entfernungsdaten D1, D2, D3 bei den Schnittpunkten P1, P2, P3 auf dem Anzeigebildschirm aus der Entfernungstabelle TABELLE 3 der Tabelle 10 gelesen, und sie werden durch den Rechner bei den Scheitelpunkten P1, P2, P3 vertikal gesetzt. Durch die CPU wird eine Entfernungsebene DPX berechnet, um jedes Spitzenende der Entfernungsdatenvektoren D1, D2, D3 zu schneiden. Der Schnittpunkt zwischen der Geraden LC3, die durch den Verarbeitungspunkt Pc und senkrecht zum Anzeigebildschirm ist, und der Entfernungsebene DPX wird durch die CPU berechnet. Der Wert bei diesem Schnittpunkt auf der Entfernungsebene DPX wird bestimmt, daß er die Entfernung Dpc zwischen dem Verarbeitungspunkt Pc und dem Beobachtungspunkt ist.
  • In diesem Fall ist es wie bei den oben beschriebenen Verfahren zur Bestimmung der Luminanz- und sichtbaren - nichtsichtbaren Daten für die Pixel möglich, die Entfernungsdaten Dpc beim Verarbeitungspunkt Pc gemäß der Interpolationsberechnung durch folgerichtiges Bestimmen aller Pixel innerhalb der Dreiecksfläche UAX wie beim Verarbeitungspunkt zu erhalten. Da diese Interpolationsberechnung wieder dafür da ist, eine Auflösung zwischen der Geraden LC3 und der Entfernungsebene DPX zu erhalten, ist es für die CPU möglich, eine definierte Auflösung ohne Schwierigkeit zu erzielen.
  • Danach schreitet die CPU zu Schritt SP17, um die Verarbeitung zur Bildung der Pixeldaten auf der Grundlage eines Entfernungsvergleichs durchzuführen.
  • Bei dieser Verarbeitung werden die Luminanzdaten Ipc (Fig. 15) und die sichtbaren - nichtsichtbaren Daten VIpc (Fig. 14), die einer gekrümmten Oberfläche entsprechen, mit den kleinsten Entfernungsdaten für alle die Pixel gesammelt, die innerhalb der Anzeigefläche ARE (Fig. 11) auf dem Anzeigebildschirm eingeschlossen sind. Die Luminanzdaten der gekrümmten Oberfläche, die die sichtbaren Daten und die kleinsten Entfernungsdaten Dpc haben, werden in der CPU als Pixeldaten zusammengezogen, um auf dem Anzeigebildschirm sichtbar gemacht zu werden.
  • In der Praxis hat die CPU einen Rahmenpufferspeicher, der eine Vielzahl von Speicherplätzen hat, wobei jeder einem Anzeigepixel entspricht, sowie einen Tiefenpufferspeicher, der jedem Pixel des Rahmenpufferspeichers entspricht. Beim Schritt SP16 werden, wenn die Entfernungsdaten Dpc bestimmt werden, die jedem Pixel entsprechen, und die kleinste Entfernungsdaten Dpc für das gleiche Pixel erhalten werden, die Entfernungsdaten in den Speicherflächen gespeichert, die den Pixeln des Tiefenpufferspeichers entsprechen, und gleichzeitig werden die Luminanzdaten, die im Schritt SP15 bestimmt wurden, im Rahmenpufferspeicher gespeichert. Deshalb müssen die Luminanzdaten Ipc, die aus der gekrümmten Oberfläche erhalten wurden, die die kleinsten Entfernungsdaten Dpc haben, in den Rahmenpufferspeicher geschrieben werden.
  • Die oben erwähnten seriellen Berechnungsverarbeitungen von SP12 bis SP17 werden für jedes Pixel durchgeführt, das in einem Flecken eingeschlossen ist. Wenn die Verarbeitung des Schritts SP17 abgeschlossen ist, bestimmt die CPU, ob die Berechnungsverarbeitung für alle Flecken im Schritt SP17 abgeschlossen ist. Wenn das Ergebnis NEIN ist, kehrt die CPU zu Schritt SP12 zurück, um die Berechnungsverarbeitung der Daten für neue Pixel wiederholen. Wenn dagegen das Ergebnis JA ist, schreitet die CPU zu Schritt SP19, um die Programmsteuerung zu beenden.
  • Arbeitsweise einer Ausführungsform
  • Nach dem in Fig. 4 gezeigten Datenverarbeitungsverfahren ist eine CPU programmiert, um perspektivisch die gekrümmten Oberflächen eines Objekts zu transformieren, das in einem dreidimensionalen Raum liegt, wenn man es von einem vorgegebenen Beobachtungspunkt aus auf einem zweidimensionalen Anzeigebildschirm zur Anzeige eines Bildes sieht. Die gekrümmten Oberflächen des Objekts innerhalb eines dreidimensionalen Raums werden computermäßig in ein Vielzahl von dreieckigen Flächeneinheiten UA1 und UA2 geteilt, um Informationsdaten über die Objektoberfläche zu erhalten, dargestellt bei drei Scheitelpunkten PX. Nachdem die drei Scheitelpunkte PX auf eine zweidimensionale Ebene, die durch den Rasterbildschirm repräsentiert wird, perspektivisch transformiert wurden, wird eine dreieckige Datenebene bestehend aus Informationsdaten der Objektoberfläche auf der gekrümmten Oberfläche bei den Scheitelpunkten P1, P2, P3 gebildet, die auf die zweidimensionale Ebene transformiert wurden, so daß es möglich ist, Bilddaten für alle die Pixel zu erhalten, die innerhalb der Dreiecksfläche auf den Bildschirm eingeschlossen sind, wobei lineare Interpolationsberechnungen verwendet werden.
  • Wenn man nur die drei Scheitelpunktdaten für jede dreieckige Flächeneinheit verwendet, um die Objektoberflächen innerhalb der dreidimensionalen Raums auf die zweidimensionale Ebene zu transformieren, wird die Zeit beträchtlich verringert, die für die Transformationsberechnung erforderlich ist. Weiterhin werden die Bilddaten für jedes Pixel durch eine Berechnung erhalten, wobei eine lineare Interpolation verwendet wird, sowie eine Auflösung eines Schnittpunktes zwischen der Datenebene und einer Geraden, die durch den Punkt in die zweidimensionale Ebene läuft, wobei der Punkt dem Pixel auf dem Anzeigebildschirm entspricht. Die Auflösung kann somit durch die CPU einfach und endgültig berechnet werden.
  • Insbesondere ist es nach dem in Fig. 4 gezeigten Bildanzeigeverfahren, da die Luminanzdatenebene durch die CPU auf der Grundlage der dreieckigen Flächeneinheit UAX auf der zweidimensionalen Ebene gebildet werden kann, leicht möglich, Schatten entsprechend der Position der Lichtquelle auf dem Bild vorzusehen, das auf dem Bildschirm angezeigt wird, um so das Auf und Ab auf den gekrümmten Oberflächen eines Objekts zu reproduzieren.
  • Weiter kann nach dem in Fig. 4 gezeigten Bildanzeigeverfahren, da es für die CPU möglich ist, klar die Grenze zwischen einer sichtbaren und nichtsichtbaren Fläche auf der Grundlage der Ergebnisse der linearen Interpolationsberechnung für jedes Pixel durch Vorsehen der sichtbaren - nichtsichtbaren Datenebene auf der zweidimensionalen Ebene zu bestimmen, sogar in dem Fall, wo sowohl die sichtbare Fläche als auch die nichtsichtbare Fläche innerhalb der Dreiecksfläche UAX auf der zweidimensionalen Ebene präsent sind, die CPU leicht die verborgene Oberflächenverarbeitung durchführen.
  • Für die verborgene Oberflächenverarbeitung kann, wenn eine Vielzahl von sichtbaren Daten für das gleiche Pixel erhalten wird, da die Bilddaten der gekrümmten Oberfläche, die die kürzeste Entfernung haben, durch die CPU als wirksam bestimmt werden, und da sie durch die Verwendung von Entfernungsdaten angezeigt werden, die repräsentativ für die Entfernung zwischen dem Beobachtungspunkt und der Flächeneinheit UA1 oder UA2 auf der gekrümmten Oberfläche sind, die CPU sicher die verborgene Oberflächenverarbeitung ohne Fehler ausführen, und sie kann somit ein Bild herstellen, das ein klares Gefühl einer Entfernung auf dem Anzeigebildschirm aufweist.
  • Bei dem in Fig. 4 gezeigten Bildanzeigeverfahren wird, wenn die Interpolationsberechnung bezüglich der Dreiecksfläche UAX, die durch perspektivische Transformation eines Bildes auf einer zweidimensionalen Ebene erhalten wird, durchgeführt wird, eine Dreiecksfläche UAX, zu der der Verarbeitungspunkt Pc (entsprechend dem laufend verarbeiteten Pixel) gehört, durch die CPU bestimmt, und zwar durch einfache Berechnung, ob der Verarbeitungspunkt Pc auf der Seite des Schwerkraftmittelpunkts Po liegt, wobei die drei Geraden DL1, DL2, DL3 verwendet werden, um die drei Seiten der Dreiecksfläche UAX zu bestimmen und um den Schwerkraftmittelpunkt Po der Dreiecksfläche UAX zu berechnen, wie oben ausführlich erklärt wurde. Dies erlaubt eine bedeutsame Reduzierung der Verarbeitungsrechenzeit verglichen mit Verfahren nach dem Stand der Technik, die nur die Daten für alle Pixel verarbeiteten.
  • Schließlich werden bei der Durchführung der obigen Bildtransformationsverarbeitung die Positionsdaten eines Objekts, die innerhalb eines dreidimensionalen Raums liegen und die von einem bestimmten Beobachtungspunkt gesehen werden, perspektivisch auf eine zweidimensionale Ebene transformiert; es wird ein Anzeigebereich ARE (Fig. 11) bestimmt, in welchem die transformierten Positionsdaten liegen; und die oben beschriebenen Folgen von Bildanzeigeverarbeitungsberechnungen (d. h. die Bestimmung einer Dreieckseckfläche, in der der Verarbeitungspunkt liegt, die Bestimmung einer sichtbaren
  • - nichtsichtbaren Fläche, die Bestimmung der Entfernung vom Beobachtungspunkt, die Bestimmung der sichtbaren Oberflächen) werden nur für diese Anzeigefläche ARE ausgeführt. Dies reduziert ebenfalls wesentlich die Zeit, die für die Berechnung erforderlich ist, verglichen mit den Verfahren nach dem Stand der Technik.
  • Variante
  • Bei der obigen Ausführungsform wurden die Daten bezüglich eines Objekts, das innerhalb eines dreidimensionalen Raums liegt, nur für den Fall von Daten erklärt, der repräsentativ für die Oberflächen eines Objekts sind, das von gekrümmten Oberflächen umgeben ist. Es ist jedoch ohne darauf beschränkt zu sein möglich, die vorliegende Erfindung auf Daten in ähnlicher Weise anzuwenden, die repräsentativ für Oberflächen eines Objekts sind, das von flachen Oberflächen umgeben ist.
  • Wenn weiter bei der obigen Ausführungsform die Anzeigefläche, die repräsentativ für einen Bereich ist, innerhalb dem ein Objekt auf einem Anzeigebildschirm angezeigt werden soll, bestimmt wird (Fig. 11), werden die Maximal- und Minimalwerte in sowohl der X- als auch der Y-Richtung bestimmt. Es ist jedoch auch möglich, die Anzeigefläche auf der Grundlage von irgendwelchen vorgegebenen Geraden oder Kurven zu bestimmen.
  • Wirkung der Erfindung
  • Wie oben beschrieben ist es bei der vorliegenden Erfindung möglich, die Bildtransformationsverarbeitung gemäß einfacher Berechnungen durchzuführen und die Verarbeitungszeit für die Bildtransformation merklich zu reduzieren, da die gekrümmte Oberfläche eines Objekts, die innerhalb eines dreidimensionalen Raums liegt, durch die CPU in dreieckige Flächeneinheiten UA1 und UA2 zu Rechenzwecken geteilt wird und die Bildinformation der Flächeneinheit UA1 oder UA2 durch drei Scheitelpunkte PX jeder Flächeneinheit UA1 oder UA2 dargestellt wird.
  • Weiter bestimmt bei der vorliegenden Erfindung, wenn die auf dem Bildschirm anzuzeigende Information erhalten wird, die CPU zuerst die Anzeigefläche, die eine Fläche darstellt, innerhalb der ein Objekt im wesentlichen angezeigt werden soll, und sie führt dann die Datentransformation und die Anzeigeverarbeitung nur für die Pixel durch, die innerhalb der bestimmten Anzeigefläche eingeschlossen sind. Somit wird eine Datentransformation und Anzeigeverarbeitung durch die CPU nicht für Pixel durchgeführt, die in anderen Flächen enthalten sind, innerhalb deren ein Objekt nicht angezeigt wird, wodurch es möglich ist, die Rechenzeit im Ganzen zu reduzieren.
  • Da auch eine dreieckige Flächeneinheit, innerhalb der jedes Pixel verarbeitet werden soll, durch die CPU bestimmt wird, wobei der Schwerkraftmittelpunkt und die drei Seiten der dreieckigen Flächeneinheit verwendet werden, wird die Interpolationsberechnungsverarbeitung weiter vereinfacht.
  • Da schließlich sichtbare - nichtsichtbare Daten durch die CPU bestimmt werden, wobei ein inneres Produkt der normalen Einheitsvektors und des Sichtlinieneinheitsvektors bei jedem Scheitelpunkt jeder dreieckigen Flächeneinheit verwendet wird und der sichtbare oder nichtsichtbare Punkt durch Überprüfen des Vorzeichens des inneren Produkts bestimmt wird, kann die CPU eine Schattenverarbeitung auf einfache Weise ausführen. Zusätzlich werden, wenn viele sichtbare Daten beim gleichen Pixel erhalten werden, nur die Luminanzdaten, die die kleinsten Entfernungsdaten haben, dazu veranlaßt, durch die CPU angezeigt zu werden. Dadurch ist es für die CPU möglich, sicher eine verborgene Oberflächenverarbeitung durchzuführen.

Claims (3)

1. Verfahren zum Betreiben eines programmierten Computers zur Anzeige eines Bildes eines Gegenstands (4), der innerhalb eines dreidimensionalen Raums liegt, auf einer zweidimensionalen Abbildungsebene (5), wobei der programmierte Computer eine Speichereinheit hat, in der dreidimensionale graphische Bildinformationsdaten, die Positionsdaten und andere assoziierte Daten aufweisen, vorher gespeichert sind, mit den folgenden Schritten:
(a) Eingeben von Daten in den Computer, die eine Position eines Beobachtungspunktes (3) darstellen, und Daten einer Anzahl von Flecken, in welche die gekrümmten Oberflächen (4A) des Gegenstandes (4) geteilt werden sollen, und wobei dann der programmierte Computer automatisch verwendet wird;
(b) Bilden einer perspektivischen Transformationsmatrix zur perspektivischen Transformation von Positionsdaten (DATA), die die gekrümmte Oberfläche (4A) des Gegenstandes (4) auf einer Blickebene (5) darstellen, die auf der Grundlage des Beobachtungspunktes (3) bestimmt ist;
(c) Lesen der graphischen Bildinformationsdaten, die einem einzigen Flecken der zu transformierenden Gegenstandsoberfläche (4A) entspricht, aus einem Speicher;
(d) Teilen der gelesenen Positionsdaten (DATA) in eine Vielzahl von dreieckigen Flächen (UA1, UA2) und Berechnen von Scheitelpunktpositionsdaten (Pi) bei jedem Dreiecksscheitelpunkt (PX);
gekennzeichnet durch:
(e) Eingeben einer Position einer Lichtquelle (2) zwischen den Schritten (a) und (b);
(f) Berechnen eines jeden Normaleinheitsvektors N* bei jedem Scheitelpunkt (PX) jeder Dreiecksfläche (UA1, UA2);
(g) Bilden einer sichtbaren - unsichtbaren Datentabelle (TABELLE 4) in einem Speicher durch Berechnen eines inneren Produkts aus dem Normaleinheitsvektor N* und einem Sichtlinieneinheitsvektor E* von jedem Dreiecksscheitelpunkt (PX) zum Beobachtungspunkt (3), und durch Speichern der berechneten Ergebnisse (VI&sub1;, VI&sub2;, VI&sub3;), die jedem Scheitelpunkt (PX) entsprechen, im Computerspeicher, wobei das Vorzeichen jedes Ergebnisses die Sichtbarkeit oder Unsichtbarkeit des Scheitelpunkts (PX) anzeigt;
(h) Bilden einer Entfernungstabelle (TABELLE 3) im Speicher durch Berechnen eines Entfernungsvektors D* von jedem Dreiecksscheitelpunkt (PX) zum Beobachtungspunkt (3), wobei ein Sichtlinienvektor Eo* und ein Dreiecksscheitelpunktpositionsvektor S* verwendet wird, und durch Speichern der Rechenergebnisse (D&sub1;, D&sub2;, D&sub3;), die jedem Scheitelpunkt (PX) entsprechen, innerhalb des Computerspeichers für eine verborgene Oberflächenverarbeitung;
(i) Bilden einer Luminanztabelle (TABELLE 2) im Speicher durch Berechnen eines Luminanzwertes (I) bei jedem Dreiecksscheitelpunkt (PX) aus dem Produkt von einem Lichtquellenpositionsvektor K* und dem Normaleinheitsvektor N* bei jedem Scheitelpunkt (PX), geteilt durch das Produkt ihrer absoluten Werte, und durch Speichern der berechneten Ergebnisse (I&sub1;, I&sub2;, I&sub3;), die jedem Scheitelpunkt (PX)entsprechen, im Computerspeicher;
(j) perspektivische Transformation aller Dreiecksscheitelpunktpositionsdaten (DATA) für die gekrümmte Oberfläche (4A) des Gegenstandes (4), die im Schritt (d) oben erhalten wurden, auf die zweidimensionale x-y-Ebene (5) gemäß der vorher gebildeten perspektivischen Transformationsmatrix, wobei die berechneten Ergebnisse im Computerspeicher als transformierte Positionsdaten (DATAX, P(X,Y)) gespeichert werden;
(k) Wiederholen der obigen Schritte (c) bis (i) für alle Flecken;
(l) Bildung von Pixeldaten durch lineare Interpolationsberechnung jeweils aus den Luminanzdaten, aus den sichtbaren - unsichtbaren Daten und den Entfernungsdaten; und
(m) Bildung einer zweidimensionalen Anzeige aus den Pixeldaten.
2. Verfahren nach Anspruch 1, gekennzeichnet durch die weiteren Schritte:
(n) Bestimmung einer Anzeigefläche (DES) auf der zweidimensionalen Ebene (5) durch Erhalten eines Mittelpunkts (xc, yc) auf der Grundlage der maximalen und minimalen Werte (xmax, xmin, ymax, ymin) der transformierten Positionsdaten(DATAX, P(X, Y)), wobei eine Durchschnittsberechnung verwendet wird; (o) folgerichtiges Lesen der Dreiecksscheitelpunktpositionsdaten (DATA) für jeden Flecken;
(p) Bestimmung einer Dreiecksfläche (UA1X, UA2X), innerhalb welcher der laufende Pixelpunkt liegt, durch Berechnen eines Flächenmittelpunkts (G) und von drei Seiten (DL1, DL2, DL3) des geschnittenen Dreiecks (UA1, UA2);
(q) Lesen der gespeicherten sichtbaren - unsichtbaren Daten (VI&sub1;, VI&sub2;, VI&sub3;), die den separaten Scheitelpunkten (PX) entsprechen, und Verwendung einer linearen Interpolationsberechnung, wobei jeder sichtbare - unsichtbare Wert (Vlpc) bei jedem Pixelpunkt bestimmt wird;
(r) Lesen der gespeicherten Luminanzdaten (I&sub1;, I&sub2;, I&sub3;), die den separaten Scheitelpunkten (PX) entsprechen, und Verwendung einer linearen Interpolationsberechnung, wobei jeder Luminanzwert (Ipc) bei jedem Pixelpunkt bestimmt wird;
(s) Lesen der gespeicherten Entfernungsdaten (D&sub1;, D&sub2;, D&sub3;), die den separaten Scheitelpunkten (PX) entsprechen, und Bestimmung jedes Entfernungswertes (Dps) bei jedem Pixelpunkt durch lineare Interpolationsberechnung:
(t) Bildung von Pixeldaten durch Sammeln von Luminanzdaten (Ipc) und sichtbaren - unsichtbaren Daten (Vlpc) für jeden Pixelpunkt, der die minimalen Entfernungsdaten (Dpc) hat, und durch Auswählen von Luminanzdaten (Ipc) bei jedem Pixelpunkt, bei dem sichtbare Daten erhalten werden; und
(u) Wiederholung der obigen Schritte (o) bis (t) für alle Flecken.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß es die weiteren Schritte eines folgerichtigen Lesens der Pixeldaten und eines Bildens einer zweidimensionalen Anzeige des dreidimensionalen Gegenstandes (4) einschließt.
DE86102358T 1985-02-26 1986-02-24 Verfahren zur Bildanzeige. Expired - Fee Related DE3689271T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP3707885A JPS61195468A (ja) 1985-02-26 1985-02-26 画像表示方法
JP3707785A JPS61195467A (ja) 1985-02-26 1985-02-26 画像表示方法
JP3707985A JPH0814852B2 (ja) 1985-02-26 1985-02-26 画像表示方法

Publications (2)

Publication Number Publication Date
DE3689271D1 DE3689271D1 (de) 1993-12-16
DE3689271T2 true DE3689271T2 (de) 1994-02-24

Family

ID=27289317

Family Applications (1)

Application Number Title Priority Date Filing Date
DE86102358T Expired - Fee Related DE3689271T2 (de) 1985-02-26 1986-02-24 Verfahren zur Bildanzeige.

Country Status (4)

Country Link
US (1) US4819192A (de)
EP (1) EP0193151B1 (de)
CA (1) CA1260638A (de)
DE (1) DE3689271T2 (de)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4928233A (en) * 1987-08-24 1990-05-22 International Business Machines System for providing three dimensional object descriptions
US4912659A (en) * 1987-10-30 1990-03-27 International Business Machines Corporation Parallel surface processing system for graphics display
US4866637A (en) * 1987-10-30 1989-09-12 International Business Machines Corporation Pipelined lighting model processing system for a graphics workstation's shading function
US4930091A (en) * 1987-11-04 1990-05-29 Schlumberger Systems, Inc. Triangle classification setup method and apparatus for 3-D graphics display system
GB2223384B (en) * 1988-07-14 1992-05-06 Daikin Ind Ltd Method and apparatus for applying shadowing operation to figures to be drawn for displaying on crt-display
US4985854A (en) * 1989-05-15 1991-01-15 Honeywell Inc. Method for rapid generation of photo-realistic imagery
US5060172A (en) * 1989-07-06 1991-10-22 Digital Equipment Corporation Method and apparatus for displaying smooth-shaded objects
JPH0776991B2 (ja) * 1989-10-24 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレーション Nurbsデータ変換方法及び装置
JP3019398B2 (ja) * 1990-01-21 2000-03-13 ソニー株式会社 自由曲面加工データ作成方法
US5481659A (en) * 1990-01-21 1996-01-02 Sony Corporation Method for generating free-form surface data
US5388202A (en) * 1990-02-02 1995-02-07 Viacom International Inc. Method and apparatus for generating window borders having pictorial frame elements
WO1991012588A1 (en) * 1990-02-16 1991-08-22 Silicon Graphics, Inc. Method and apparatus for providing a visually improved image by converting a three-dimensional quadrilateral to a pair of triangles in a computer system
US5222204A (en) * 1990-03-14 1993-06-22 Hewlett-Packard Company Pixel interpolation in perspective space
GB9009127D0 (en) * 1990-04-24 1990-06-20 Rediffusion Simulation Ltd Image generator
US5163126A (en) * 1990-05-10 1992-11-10 International Business Machines Corporation Method for adaptively providing near phong grade shading for patterns in a graphics display system
US5313560A (en) * 1990-05-11 1994-05-17 Hitachi, Ltd. Method for determining a supplemental transaction changing a decided transaction to satisfy a target
US5289383A (en) * 1990-05-17 1994-02-22 Sony Corporation Method for establishing data defining tool path for rough machining
US5268996A (en) * 1990-12-20 1993-12-07 General Electric Company Computer image generation method for determination of total pixel illumination due to plural light sources
US5455902A (en) * 1990-12-21 1995-10-03 Eastman Kodak Company Method and apparatus for performing real-time computer animation
US5343558A (en) * 1991-02-19 1994-08-30 Silicon Graphics, Inc. Method for scan converting shaded triangular polygons
JP3028116B2 (ja) * 1991-02-28 2000-04-04 ソニー株式会社 形状データ処理方法及び形状データ処理装置
DE69233717T2 (de) 1991-06-28 2008-10-30 Lim, Hong Lip, Darlington Verbesserungen in sichtbarkeit-berechnungen fuer 3d-rechner
WO1993001561A1 (en) * 1991-07-12 1993-01-21 Hong Lip Lim A beam tracing method for curved surfaces
US5706415A (en) * 1991-12-20 1998-01-06 Apple Computer, Inc. Method and apparatus for distributed interpolation of pixel shading parameter values
US5345541A (en) * 1991-12-20 1994-09-06 Apple Computer, Inc. Method and apparatus for approximating a value between two endpoint values in a three-dimensional image rendering device
US5566292A (en) * 1992-04-17 1996-10-15 International Business Machines Corporation Methods for detecting the closest existing point on a spline or polyline
FR2693012A1 (fr) * 1992-06-26 1993-12-31 Thomson Csf Procédé de visualisation d'images synthétiques de volumes en temps réel.
GB2270243B (en) * 1992-08-26 1996-02-28 Namco Ltd Image synthesizing system
US5684937A (en) * 1992-12-14 1997-11-04 Oxaal; Ford Method and apparatus for performing perspective transformation on visible stimuli
GB9303009D0 (en) * 1993-02-15 1993-03-31 Canon Res Ct Europe Ltd Processing image data
WO1994023390A1 (en) * 1993-03-29 1994-10-13 Matsushita Electric Industrial Co., Ltd. Apparatus for identifying person
US5495562A (en) * 1993-04-12 1996-02-27 Hughes Missile Systems Company Electro-optical target and background simulation
JP3840663B2 (ja) * 1995-11-14 2006-11-01 ソニー株式会社 画像処理装置及び方法
JP3926866B2 (ja) 1996-05-10 2007-06-06 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理方法、及び描画システム
WO1998050890A1 (fr) * 1997-05-07 1998-11-12 Sega Enterprises, Ltd. Procede d'obtention de fonction projecteur et processeur d'images utilisant ce procede
US6188399B1 (en) 1998-05-08 2001-02-13 Apple Computer, Inc. Multiple theme engine graphical user interface architecture
JP2001084405A (ja) * 1999-09-16 2001-03-30 Sega Corp ポリゴン画像形成方法及び、これを用いた画像処理装置
JP3641578B2 (ja) * 2000-08-31 2005-04-20 コナミ株式会社 ゲーム用3次元画像処理方法、装置、ゲーム用3次元画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体及びビデオゲーム装置
US20050168465A1 (en) * 2003-09-24 2005-08-04 Setsuji Tatsumi Computer graphics system, computer graphics reproducing method, and computer graphics program
CN1306460C (zh) * 2004-07-07 2007-03-21 中国科学院力学研究所 一种曲面测量方法
JP3961525B2 (ja) * 2004-09-22 2007-08-22 株式会社コナミデジタルエンタテインメント 画像処理装置、画像処理方法、ならびに、プログラム
JP4618305B2 (ja) * 2008-02-19 2011-01-26 ソニー株式会社 画像処理装置および画像処理方法、並びにプログラム
US9214036B1 (en) * 2012-06-26 2015-12-15 Pixar Animation engine for blending computer animation data
US9508119B2 (en) * 2012-07-13 2016-11-29 Blackberry Limited Application of filters requiring face detection in picture editor

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4538299A (en) 1981-12-04 1985-08-27 International Remote Imaging Systems, Inc. Method and apparatus for locating the boundary of an object
FR2524177B1 (fr) * 1982-03-25 1987-10-30 Dassault Electronique Procede et dispositif pour fournir a partir de donnees memorisees une image dynamique d'une surface, telle que le sol, vue d'un point d'observation mobile
JPS5952380A (ja) * 1982-09-17 1984-03-26 Victor Co Of Japan Ltd 補間装置
US4623977A (en) * 1984-09-10 1986-11-18 Allied Corporation Method and apparatus for linear interpolation

Also Published As

Publication number Publication date
DE3689271D1 (de) 1993-12-16
EP0193151B1 (de) 1993-11-10
US4819192A (en) 1989-04-04
EP0193151A3 (en) 1989-11-29
EP0193151A2 (de) 1986-09-03
CA1260638A (en) 1989-09-26

Similar Documents

Publication Publication Date Title
DE3689271T2 (de) Verfahren zur Bildanzeige.
DE3854543T2 (de) Prioritätsverwaltung eines Tiefendatenpuffers für Echtzeitrechnersysteme zur Bilderzeugung.
DE3650129T2 (de) Verfahren zur Kantenglättung für Rechnerbilderzeugungssystem.
DE69126611T2 (de) Bilderzeugungsgerät
DE69716877T2 (de) System und Verfahren zur genauen Gradientberechnung für die Texturabbildung in einem Computergraphiksystem
DE69428323T2 (de) Ein Bildanzeigevorrichtung
DE69408473T2 (de) Direktes rendering von texturierten höhenfeldern
DE68928391T2 (de) Bildgenerator
DE69428491T2 (de) Bildlinse
DE3750784T2 (de) Generation eines intrapolierten charakteristischen Wertes zur Anzeige.
DE69830767T2 (de) Verfahren und Vorrichtung zum Zusammensetzen geschichteter synthetischer graphischer Filter
DE69601880T2 (de) Verfahren und vorrichtung zur erstellung der lage einer fernsehkamera zur verwendung in einem virtuellen studio
DE68927471T2 (de) Verfahren zur Schattierung eines graphischen Bildes
DE3855231T2 (de) Prioritätsauflösungssystem zwischen Polygonen mit Antialiasing
DE69127915T2 (de) System und Verfahren von Prioritätsfarbabbildung
DE69908966T2 (de) Schattierung von 3-dimensionalen rechner-erzeugten bildern
DE69916450T2 (de) Verfahren zum suchen von bildern, basierend auf einer invarianten indizierung der bilder
DE3022454A1 (de) Optisches abbildesystem mit computererzeugtem bild fuer einen bodenfesten flugsimulator
DE69914355T2 (de) Bildverarbeitungsgerät
DE69120407T2 (de) Bildgenerator
DE60012917T2 (de) Verfahren und vorrichtung für eine antialiasing-operation auf impliziten kanten
DE69926986T2 (de) Rechnergrafiken-animationsverfahren und vorrichtung
DE102005050846A1 (de) Perspektiveneditierwerkzeuge für 2-D Bilder
DE69718291T2 (de) Verfahren und gerät zur erzeugung eines computergrafikbildes
DE19807013B4 (de) Volumetrisches Vorabschneidungsverfahren, das eine minimale Anzahl von Abtastpunkten durch ein Volumen gewährleistet

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee