DE69826996T2 - Scheinwerfer-kennzeichnende erzeugungsverfahren und bildprozessor-verwendung - Google Patents

Scheinwerfer-kennzeichnende erzeugungsverfahren und bildprozessor-verwendung Download PDF

Info

Publication number
DE69826996T2
DE69826996T2 DE69826996T DE69826996T DE69826996T2 DE 69826996 T2 DE69826996 T2 DE 69826996T2 DE 69826996 T DE69826996 T DE 69826996T DE 69826996 T DE69826996 T DE 69826996T DE 69826996 T2 DE69826996 T2 DE 69826996T2
Authority
DE
Germany
Prior art keywords
light
light sources
polygon
polygons
image processing
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
DE69826996T
Other languages
English (en)
Other versions
DE69826996D1 (de
Inventor
Seisuke Ohta-ku MORIOKA
Keisuke Ohta-ku YASUI
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.)
Sega Corp
Original Assignee
Sega 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
Application filed by Sega Corp filed Critical Sega Corp
Publication of DE69826996D1 publication Critical patent/DE69826996D1/de
Application granted granted Critical
Publication of DE69826996T2 publication Critical patent/DE69826996T2/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
    • G06T15/506Illumination models
    • 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/50Lighting effects
    • G06T15/80Shading

Landscapes

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

Description

  • Die Erfindung betrifft ein Bildverarbeitungsverfahren, mit dem Objekten, die mit einer Computergraphiktechnologie dargestellt werden, ein Beleuchtungseffekt verliehen wird, und ein Bildverarbeitungssystem, in dem das Verfahren angewendet wird.
  • In den letzten Jahren haben Bildverarbeitungssysteme eine starke Verbreitung erfahren, in den Computergraphiktechnologien für die graphische Darstellung von Objekten verwendet werden, die mit zahlreichen Polygonen in virtuellen dreidimensionalen Räumen erzeugt werden. In der Forschung und Entwicklung werden weitere Anstrengungen unternommen, damit die dargestellten Objekte zunehmend realistisch wirken.
  • Ein Aspekt derartiger Computergraphiktechnologien sind Schattierungsverfahren, mit denen den Oberflächen der dargestellten Objekte Beleuchtungseffekte verliehen werden. Das Verleihen von Sondereffekten, beispielsweise das Befeuchten eines Objekts mit einem Punktlicht, ist ein Verfahren, das zu diesen Schattierungsvorgängen gehört.
  • Das von Silicon Graphics entwickelte Open-GL-Verfahren (Warenzeichen) ist eine bekannte Vorgehensweise, mit der Punktlichteigenschaften verliehen werden. Betrachtet man einen Lichtvektor L, siehe 1, der von einer Punktlichtquelle O zu einem vorgeschriebenen Punkt P verläuft, und einen Lichtquellen-Achsenvektor D, der sich von der Punktlichtquelle O zum Objekt bewegt, so gibt das Open-GL-Verfahren (Warenzeichen) Parameter für die Punktlichteigenschaften mit den Namen "spotexp" und "cutoff" vor, die anhand von Gleichung 1, unten, berechnet werden. Die Eigenschaften des Punktlichteffekts sind debei durch die Kurven in 2 dargestellt.
  • Figure 00010001
  • Erteilt man "spotexp" einen großen Wert, siehe 2, so wird aus dem Punktlicht ein Punktlicht mit schmälerer Gestalt. Im tatsächlichen Einsatz werden die Punktlichteigenschaften jedoch in nahezu allen Fällen mit einem Punktlicht-Breitenwinkel verwendet. Daher muss man durch eine Umkehroperation denjenigen Wert von "spotexp" bestimmen, bei dem der "spotEffect" einen Wert gleich dem gewünschten oder kleiner als der gewünschte Punktlicht-Breitenwinkel hat. Eine derartige Umkehroperation ist mit Rechenvorgängen verbunden, die alles andere als einfach sind.
  • Nimmt man an, dass der Wert von "spotexp" durch eine Umkehroperation ermittelt worden ist, so ist die Form der Punktlicht-Kennlinie abhängig vom Wert von "spotexp" unterschiedlich, siehe 2. Aus diesem Grund besteht die Gefahr, dass sich das Ergebnis sehr stark von der Wahrnehmung eines Beobachters unterscheidet, der das gezeichnete Bild tatsächlich betrachtet.
  • Zudem wird die Form der Punktlicht-Kennlinie ausschließlich durch den Wert von "spotexp" festgelegt. Daher kann man die Punktlichtbreite und die Intensitätsverteilung nicht unabhängig vorgeben. Somit ist es nicht möglich, Charakteristiken zu erhalten, bei denen die Punktlichtbreite gering und die Intensitätsverteilung im Wesentlichen konstant ist, wie beispielsweise bei einem Scheinwerfer, und man erhält ein verschwommenes Punktlicht.
  • Andererseits ist der Parameter "cutoff" so beschaffen, dass bei Überschreitung eines gewissen Grenzwinkels der Wert von "spotEffect" zu Null gesetzt wird. Dies ist also ein Parameter, der einen Winkel festlegt und sich von "spotexp" unterscheidet; daher ist er einfach zu kontrollieren. Die Intensitätsverteilung wird jedoch unstetig, so dass man nur Punktlichteigenschaften erhalten kann, bei denen die Kante des Punktlichts schart und die Intensitätsverteilung konstant ist. Dies stellt einen Mangel dar.
  • Anders ausgedrückt stellt "cutoff" den Begrenzungswert der Lichtbreite dar, der bei Überschreitung dazu führt, dass der Punktlicht-Beleuchtungseffekt verschwindet. Wird ein Wert für "cutoff" gesetzt, so fällt der Begrenzungsbereich auf. Dies stellt eine Schwierigkeit dar.
  • Mittlerweile gibt es Verfahren, zu denen das von Microsoft entwickelte Softimage gehört, bei denen ein Abkling-Startwinkel (Konuswinkel) und ein Abkling-Endwinkel (Breitenwinkel) angegeben werden, siehe die Skizze in 3. Bei diesem Verfahren werden die Punktlichteigenschaften mit Hilfe der folgenden Gleichung 2 berechnet. Ver wendet man dieses zweite Verfahren, ist die Kontrolle leicht, und die Berechnungen sind einfach, da die Kennwerte als Winkel angegeben sind.
  • Figure 00030001
  • Die Kennwerte verhalten sich jedoch wie in 4 skizziert, d. h. sie ändern sich linear. Man kann also anders als bei Open GL (Warenzeichen) keine Punktüchteigenschaften erhalten, die eine geeignete Kurve annehmen.
  • Damit tritt die Schwierigkeit auf, die in 3 dargestellt ist. Am Ort des Abkling-Startwinkels (Konuswinkel) erscheint nämlich eine unnatürliche Kantenbetonung. Mit Kantenbetonung sei ein sichtbarer Effekt bezeichnet, bei dem die Helligkeitsänderung in Bereichen benachbart zu einer Grenzregion nicht stetig ist und die Grenzhelligkeit betont wird.
  • 5 zeigt ein Blockdiagramm eines herkömmlichen Bildverarbeitungssystems. In 5 kontrolliert eine CPU 1 die Ausführung von Programmen, die Bilder mit Hilfe von Palygonen verarbeiten. Diese CPU 1 liest Polygondaten aus einem Polygonpuffer 11 und gibt sie an einen Koordinatenumsetzer 2 aus.
  • Der Koordinatenumsetzer 2 wandelt dreidimensionale Polygondaten in zweidimensionale Koordinaten um, die dann auf einem CRT-Darstellungsmonitor 7 angezeigt werden können. Die in zweidimensionale Koordinaten umgewandelten Polygondaten-Koordinaten werden an eine Füllschaltung 30 und einen Texturgenerator 31 gesendet.
  • Die Füllschaltung 30 berechnet Information über Pixel, die sich in einem Bereich befinden, der von den Spitzen der Polygone eingeschlossen wird. Die Berechnung für den genannten Füllvorgang führt beispielsweise eine lineare Interpolation der Information über Pixel zwischen den Polygonspitzen aus, die auf Information über zwei entsprechende Spitzen beruht. Die Texturgeneratorschaltung 31 ist eine Schaltung, die die zu einem Pixel gehörende Textur aus einem internen Texturpuffer ausliest und die Farben für jedes Pixel durch Berechnungen festlegt. Das Ausgangssignal der Texturgeneratorschaltung 31 wird als Pixeldaten an die Schattierschaltung 32 gesendet.
  • Die Schattierschaltung 32 ist eine Schaltung, die die auf der Punktlichtbeleuchtung beruhenden Effekte ermittelt, beispielsweise auf den genannten Effekten, die von den Pixeldaten abhängen und den Pixeln erteilt werden. Das Ausgangssignal der Schattierschaltung 32 wird an eine Farbmodulationsschaltung 12 und eine Mischerschaltung 33 gesendet. Die Farbmodulationsschaltung 12 ist eins Schaltung, die die Farbmodulation bei jedem Pixel bewirkt, z. B. abhängig von den Ergebnissen, die die Schattierschaltung 32 ermittelt hat. Die Mischerschaltung 33 mischt Polygonpixel-Farbinformation mit vorher gezeichneter Farbinformation, und schreibt diese Daten in Form von Frames in einen Framepuffer 5. Die Information in diesem Framepuffer 5 wird auf dem CRT-Darstellungsmonitor 7 angezeigt.
  • Im Weiteren wird ein Lichtquellencharakteristik-Formungsverfahren beschrieben, das üblicherweise in der Schattierschaltung 32 eines Bildverarbeitungssystems implementiert wird, das wie beschrieben aufgebaut ist. Im Beispiel für den Stand der Technik, das in 5 skizziert ist, werden in manchen Fällen vier Lichtquellenregister 329 und vier zugehörige Lichtquellen-Arithmetikeinheiten (nicht dargestellt) in der Schattierschaltung 32 konfiguriert, die in der Lage ist, Informationen von vier Lichtquellen gleichzeitig zu verarbeiten.
  • Werden in einer Bildszene die Lichtquellen a, b, c und d verwendet, so werden die Informationen über jede Lichtquelle, nämlich a, b, c und d, vorab in den Lichtquellenregistern A, B, C und D gespeichert. Die Schattierschaltung 32 berechnet anhand der Informationen über die Lichtquellen a, b, c und d, die in den Lichtquellenregistern 329 gespeichert sind, welche Auswirkungen die Lichtquellen a, b, c und d auf jedes Pixel haben.
  • Die Lichtquelleninformationen umfassen beispielsweise Punktlicht-Axialrichtungsvektoren (Dx, Dy, Dz), einen Abschneidwinkel (Cutoff) und einen Abklingbreiten-Normierungskoeffizienten (Penumbra scale), die entweder in 1 oder 3 beschrieben sind. Die Schattierschaltung 6 führt Schattierungsberechnungen anhand derartiger Lichtquellendaten aus, addiert die Ergebnisse und berechnet die Auswirkungen, die die vier Lichtquellen auf jedes Pixel haben.
  • Damit werden gemäß dem Stand der Technik Lichtquellenregister 329 und Lichtquellen-Arithmetikeinheiten in einer Anzahl bereitgestellt, die exakt mit der Anzahl der Lichtquellen übereinstimmt, die in einer Bildszene verwendet werden können. Im Allgemeinen ist die Anzahl der Lichtquellen in einer Bildszene gleich der Anzahl der Lichtquellenregister 329 und der Lichtquellen-Arithmetikeinheiten. Da dies so ist, müssen für den Fall, dass beispielsweise 100 Lichtquellen in einer Bildszene verwendet werden, 100 Lichtquellenregister 329 und eine gleiche Anzahl Lichtquellen-Arithmetikeinheiten bereitgestellt werden. Die Schattierungsberechnungen müssen für die 100 Lichtquellen ausgeführt werden, diese Ergebnisse müssen aufaddiert werden, und die Auswirkungen der 100 Lichtquellen müssen für jedes Pixel berechnet werden. Hinsichtlich des erforderlichen Hardwareumfangs ist dies jedoch nicht praktikabel.
  • Ist dagegen das System als Zustandsautomat (State Machine) aufgebaut, so kann man die Anzahl der sichtbaren Lichtquellen erhöhen, indem man nacheinander die Lichtquellenparameter überschreibt; dies ist jedoch schwierig zu verwalten. In einem System, das Z-Sortierungen oder ähnliche Vorgehensweisen umfasst, wobei die Zeichnungsreihenfolge der Polygone nicht erhalten bleibt, lässt sich die Anzahl der sichtbaren Lichtquellen nicht erhöhen.
  • Weitere herkömmliche Systeme sind in EP-A-0613099, US-A-4,709,231 und US-A-4,819,192 offenbart.
  • Wie beschrieben treten bei allen herkömmlichen Verfahren, die Beleuchtungseffekte verleihen, Schwierigkeiten auf. Daher besteht eine Aufgabe der Erfindung darin, ein Bildverarbeitungsverfahren bereitzustellen sowie ein Bildverarbeitungssystem, das dieses Verfahren verwendet, worin diese Probleme zumindest teilweise gelöst werden können.
  • Eine weitere Aufgabe der Erfindung besteht darin, ein Bildverarbeitungsverfahren bereitzustellen sowie ein Bildverarbeitungssystem, das dieses Verfahren verwendet, worin die komplizierten Operationen, die bisher durch Computerverarbeitung mit Hilfe von arithmetischen Einheiten implementiert wurden, in einigen Ausführungsformen der Erfindung mit Hilfe von Tabellen implementiert werden können.
  • In herkömmlichen Bildverarbeitungssystemen der beschriebenen Art ist es zudem erforderlich, wenn mehrere Lichtquellen in einer Bildszene verwendet werden, die Schattierungsberechnungen für jede der Lichtquellen eigens auszuführen und die Ergebnisse zu addieren. Das Bereitstellen von Lichtquellenregistern und Lichtquellen-Arithmetikeinheiten entsprechend der Anzahl der in einer Bildszene verwendeten Lichtquellen führt zu einem enormen Umfang der Hardware.
  • In einer Szene eines tatsächlichen Spielablaufs sind jedoch die herausragenden Effekte einer Lichtquelle auf ein Polygon auf diejenigen Lichtquellen begrenzt, die nahe an dem Polygon angeordnet sind, bzw. auf Lichtquellen mit starker Intensität. Auch wenn sich beispielsweise 100 Lichtquellen in einer Bildszene befinden, sind die wesentlichen Auswirkungen auf ein Polygon auf diejenigen vier oder fünf Lichtquellen in der Nähe dieses Polygons beschränkt. In derartigen Fällen ist es unnötig, die Auswirkungen aller Lichtquellen in der Bildszene zu berechnen. In den meisten Fällen wird es ausreichen, die Schattierungsberechnungen nur für diejenigen Lichtquellen auszuführen, von denen wesentliche Effekte ausgehen.
  • Da dies so ist, besteht eine weitere Aufgabe der Erfindung darin, ein Bildverarbeitungsverfahren und ein Bildverarbeitungssystem bereitzustellen, mit denen es möglich ist, die Anzahl der Lichtquellen zu erhöhen, die in einer Bildszene verwendet werden können, wobei die Anzahl der Lichtquellen unverändert bleibt, die mit der Schattierungsschaltung verarbeitet werden können.
  • Gemäß einem Aspekt der Erfindung wird ein Bildverarbeitungsverfahren nach dem beigefügten Anspruch 1 bereitgestellt.
  • Gemäß einem weiteren Aspekt der Erfindung wird ein Bildverarbeitungssystem nach dem beigefügten Anspruch 8 bereitgestellt.
  • In einer Ausführungsform der Erfindung können zahlreiche Kennwerte entsprechend einer vorgeschriebenen Punktlicht-Kennlinie in eine Tabelle aufgenommen werden. Die Kennlinie dieses Punktlichts wird aus Kennwerten gebildet, die aus dieser Tabelle gelesen werden, oder aus interpolierten Werten, die man durch Interpolation zwischen gegenseitig benachbarten Kennwerten findet, die aus dieser Tabelle gelesen werden.
  • Zahlreiche Kennwerte entsprechend einer Punktlicht-Kennlinie können vorab in einer Tabelle aufgenommen werden. Die Anordnung kann auch so gestaltet sein, dass aus der Tabelle gelesene Kennwerte verwendet werden oder interpolierte Werte, die man durch Interpolation zwischen gegenseitig benachbarten Kennwerten findet, die aus der Tabelle gelesen werden. Damit kann man einer Punktlicht-Kennlinie zahlreiche Kennwerte zuordnen, wodurch sich jede beliebige Punktlichtcharakteristik bilden lässt.
  • Da vorab in eine Tabelle aufgenommene Kennwerte verwendet werden können, sind keine komplizierten Berechnungen erforderlich. In den Begriffen der besonderen Anordnung ausgedrückt können Kennwerte aus Tabellenadressen ausgelesen werden, die den inneren Produkten zwischen Vektoren der optischen Punktlichtachse und Lichtvektoren entsprechen, die von Lichtquellen zu Pixeln oder von Pixeln zu Lichtquellen verlaufen.
  • Zusätzlich ist es leicht, nicht kreisförmige Punktlichteffekte zu verleihen, indem man eine Konfiguration implementiert, in der: ein Vektor der optischen Punktlichtachse und mindestens zwei Achsen senkrecht zum Vektor der optischen Punktlichtachse definiert werden; Kennwerte entsprechend den Winkeln, die zwischen mindestens zwei Ebenen liegen, die durch einen Vektor der optischen Punktlichtachse und mindestens zwei Achsen senkrecht dazu definiert werden, aus der Tabelle gelesen werden, und senkrechte Projektionen für mindestens zwei Ebenen von Lichtvektoren, die von den Lichtquellen zu den Pixeln oder von den Pixeln zu den Lichtquellen verlaufen; und Punktlicht-Kennlinien aus den Kennwerten gebildet werden oder aus interpolierten Werten zwischen gegenseitig benachbarten Kennwerten, die aus der Tabelle gelesen werden.
  • Beruhend auf der Erfindung umfasst ein Bildverarbeitungssystem, das auf Lichtquellen gestützte Beleuchtungseffekte an Objekte verleiht, die graphisch durch zahlreiche Polygone dargestellt werden: einen Speicher, der Informationen bezüglich der zahlreichen Lichtquellen enthält; eine Vorrichtung, die einem Polygon Schattierungen abhängig von Information bezüglich einer vorgeschriebenen Anzahl Lichtquellen erteilt; und eine Vorrichtung, die die Information über die vorgeschriebene Anzahl Lichtquellen, die dem Polygon zugeordnet sind, aus dem Speicher ausliest, und diese Information an die Vorrichtung weitergibt, die die Schattierung ausführt.
  • Wird berechnet, wie die Lichtquellen jedes Polygon beeinflussen, ist es also nicht erforderlich, die Auswirkungen jeder Lichtquelle in einer Bildszene zu berechnen. Wird nur die Information über eine vorgeschriebene Anzahl Lichtquellen ausgelesen, die durch Lichtquellen-Kennzeichnungssymbole festgelegt werden, die an jedem Polygon angebracht sind, und wird die Schattierungsverarbeitung nur für diese Lichtquellen ausgeführt, so kann man in einer Bildszene eine Anzahl Lichtquellen verwenden, die offenkundig die Anzahl der Lichtquellen übersteigt, die gleichzeitig verwendet werden können.
  • Die Erfindung kann auch dadurch verwirklicht werden, dass man in ein Bildverarbeitungssystem, das auf Lichtquellen beruhende Beleuchtungseffekte an Objekte vermittelt, die graphisch durch zahlreiche Polygone dargestellt werden, aufnimmt: einen Speicher, der zahlreiche Informationsgruppen bezüglich der zahlreichen Lichtquellen enthält; eine Vorrichtung, die einem Polygon Schattierungen abhängig von Informationsgruppen über eine Anzahl Lichtquellen für ein Polygon erteilt; und eine Vorrichtung, die die Informationsgruppen über eine Anzahl Lichtquellen, die einem Polygon zugeordnet sind, aus dem Speicher ausliest, und diese Informationsgruppen an die Vorrichtung weitergibt, die die Schattierung ausführt.
  • Ist die Anzahl der Lichtquellen, die das Bildverarbeitungssystem gleichzeitig verwenden kann, größer als Eins, so kann die Information über diese Anzahl Lichtquellen gemeinsam als eine Gruppe in einem Puffer aufbewahrt werden, und die jedem Polygon zugeordneten Lichtquellen-Kennzeichnungssymbole können gruppenweise Lichtquelleninformation aus dem Puffer auslesen. Dadurch wird der Vorgang des Auswählens von Lichtquelleninformation für jedes Polygon überflüssig, und es wird möglich, die Verarbeitungsgeschwindigkeit zu verbessern.
  • Die Erfindung kann auch mit einem Bildverarbeitungsverfahren verwirklicht werden, bei dem Objekten, die graphisch durch zahlreiche Polygone dargestellt werden, Beleuchtungseffekte von Lichtquellen verliehen werden, umfassend die Schritte:
    • (1) Schreiben von Information bezüglich in einer Bildszene verwendeter Lichtquellen in den Speicher;
    • (2) Anbringen von Kennzeichnungssymbolen an allen Polygonen, die von einer Lichtquelle beeinflusst werden;
    • (3) Ausführen von Koordinatenumwandlungen auf den Polygondaten;
    • (4) Schreiben von Kennzeichnungssymbolen auf jedes Polygonpixel;
    • (5) Erzeugen einer Textur abhängig von den Pixeldaten;
    • (6) Lesen von Informationen bezüglich der Lichtquellen, die den Kennzeichnungssymbolen zugeordnet sind, aus dem Speicher;
    • (7) Schattieren der Pixel; und
    • (8) Schreiben der Pixeldaten in einen Framepuffer.
  • Da es somit nur erforderlich ist, für jedes Pixel in einem Polygon die Auswirkungen der Lichtquellen zu berechnen, die durch die Lichtquellen-Kennzeichnungssymbole festgelegt sind, ist es möglich, die Verarbeitungsgeschwindigkeit beim Schattieren zu verbessern.
  • Beruhend auf der Erfindung können zudem die Lichtquellen, die eine Lichtquellengruppe bilden, so verwendet werden, dass sich wenigstens einige davon bezüglich eines Polygons überlappen. Durch die Verwendung von Lichtquellen, von denen sich einige überlappen, kann man die Anzahl der Lichtquellen, die gleichzeitig verwendbar sind, unverändert lassen, und zugleich in einer Szene eine Anzahl Lichtquellen verwenden, die diese Anzahl übersteigt.
  • Weitere Merkmale und Eigenschaften von Ausführungsformen der Erfindung gehen aus den Ausführungsformen hervor, die im Weiteren anhand der Zeichnungen beschrieben werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Es zeigt:
  • 1 eine Skizze, die der Beschreibung des Open-GL-Verfahrens dient;
  • 2 eine Skizze, die die Punktlichteigenschaften beim Open-GL-Verfahren darstellt;
  • 3 eine Skizze, die ein Verfahren zum Bezeichnen eines Abkling-Startwinkels (Konuswinkel) und eines Abkling-Endwinkels (Breitenwinkel) für Punktlichter beschreibt;
  • 4 eine Skizze, die Punktlichteigenschaften anhand des in 3 dargestellten Verfahrens angibt;
  • 5 ein Blockdiagramm einer beispielhaften Anordnung eines herkömmlichen Bildverarbeitungssystems;
  • 6 ein Blockdiagramm einer beispielhaften Anordnung eines Bildverarbeitungssystems, mit dem man ein Verfahren zum Formen der Punktlichteigenschaften gemäß einer Entwicklung der Erfindung umsetzen kann;
  • 7 ein Blockdiagramm einer Anordnung einer Ausführungsform einer Schattierungsschaltung, in der die Erfindung anwendbar ist;
  • 8 ein Blockdiagramm einer beispielhaften Anordnung einer Erzeugungsschaltung für Punktlichteigenschaften, die in einer Schattierungsschaltung verwendet wird;
  • 9 zum Vergleich ein Beispiel einer herkömmlichen Anordnung, damit die Eigenschaften der in 8 skizzierten Schaltung erhellt werden;
  • 10 ein Blockdiagramm einer beispielhaften Anordnung eines Adressgenerators;
  • 11 eine Skizze, die einen Beleuchtungseffekt anhand einer Punktlichtquelle beschreibt, die einen Achsenvektor hat;
  • 12 eine Skizze, die eine Punktlichteffekt-Eigenschaft anhand eines Beispiels beschreibt, das auf einer Punktlichtquelle beruht, die einen Achsenvektor hat;
  • 13 eine Skizze, die der Erklärung einer weiteren Ausführungsform dient;
  • 14 ein Blockdiagramm einer ersten Beispielanordnung eines Bildverarbeitungssystems der Erfindung;
  • 15 ein Blockdiagramm einer zweiten Beispielanordnung eines Bildverarbeitungssystems der Erfindung;
  • 16 ein Blockdiagramm einer dritten Beispielanordnung eines Bildverarbeitungssystems der Erfindung;
  • 17 eine Skizze, die den Inhalt des Lichtquellenpuffers in der in 16 skizzierten Beispielanordnung angibt;
  • 18 ein Blockdiagramm einer Anordnung einer Ausführungsform einer Schattierungsschaltung, in der die Erfindung verwendet wird;
  • 19 ein Blockdiagramm einer Beispielanordnung einer Erzeugungsschaltung für Punktlichteigenschaften und eines Lichtquellenregisters gemäß der Erfindung;
  • 20 eine Skizze, die einen Beleuchtungseffekt anhand einer Punktlichtquelle beschreibt, die einen Achsenvektor hat;
  • 20 eine Skizze, die eine Bildszene in einer Ausführungsform der Erfindung beschreibt; und
  • 21 ein Verfahrens-Flussdiagramm für einen Aspekt der Erfindung.
  • Anhand der Zeichnungen werden nun Ausführungsformen beschrieben. In den Zeichnungen werden die gleichen Bezugszeichen bzw. Bezugssymbole für gleiche oder ähnliche Objekte verwendet.
  • 6 zeigt ein Blockdiagramm einer beispielhaften Anordnung eines Bildverarbeitungssystems, in dem ein Verfahren zum Ausbilden einer Punktlichteigenschaft verwendet wird.
  • In 6 dient eine CPU 1 dem Steuern der Ausführung von Programmen, die Bilder mit Hilfe von Polygonen verarbeiten. Bei fortschreitendem Programmablauf speichert die CPU 1 zeitweilig Spitzendaten für Polygone, die auf einem Anzeigemonitor 12 darzustellen sind, und Registereinstellfunktionen in einem Polygonpuffer 11.
  • Die aus diesem Polygonpuffer 11 ausgelesenen Daten werden in einen Geometrieprozessor 2 eingegeben. Der Geometrieprozessor 2 wandelt die Eingabedaten in ein zweidimensionales Koordinatensystem um, damit die im dreidimensionalen Raum angeordneten Polygone auf dem Anzeigemonitor 7 dargestellt werden können, wenn die CPU 1 das Programm abarbeitet.
  • Ein Wiedergabeprozessor 3 ist angeschlossen, der den darzustellenden Polygonen Farbe, Schattierung und Textur verleiht. Auf der Ausgangsseite des Wiedergabeprozessors 3 ist ein Framepuffer 5 angeschlossen, in dem ein Datensatz für einen anzuzeigenden Bildschirminhalt gespeichert ist.
  • Mit dem Framepuffer 5 ist über eine D/A-Umsetzschaltung 6 ein CRT oder ein anderer Anzeigemonitor 7 verbunden, auf dem die Inhalte des Framepuffers 5 nacheinander dargestellt werden.
  • Der angesprochene Geometrieprozessor 3 liest aus dem Polygonpufferspeicher 11 Polygonspitzendaten (die Spitzenkoordinaten, Spitzenfarben, Texturabbildungskoordinaten, Spitzentransparenz, Spitzennormalenvektoren usw. umfassen) und Registereinstellfunktionen, und zwar entsprechend der Verarbeitungsgeschwindigkeit und dem Fortschritt des Programms durch die CPU 1.
  • Der Geometrieprozessor 2 ordnet Polygone abhängig von den Spitzenkoordinatendaten im dreidimensionalen Raum an und führt Darstellungsfensterentscheidungen hinsichtlich der Bereiche aus, die für eine Darstellung in den dreidimensionalen Raum aufzunehmen sind, usw. Er führt auch Abschneidevorgänge aus, d. h. das Entfernen von Polygonspitzen, die über das Darstellungsfenster hinausragen. Er führt auch Koordinatenumsetzungen vom dreidimensionalen in den zweidimensionalen Raum aus; dabei projiziert er abhängig von einem festgelegten Blickpunkt in einem Darstellungsfenster angeordnete Polygone auf eine zweidimensionale Ebene.
  • Die in zweidimensionale Koordinaten umgesetzten Polygondatenkoordinaten werden an den Wiedergabeprozessor 3 weitergeleitet. Der Wiedergabeprozessor 3 um fasst eine Füllschaltung 30, eine Texturanbringschaltung 31, eine Schattierschaltung 32 und eine Mischerschaltung 33.
  • Die Füllschaltung 30 besitzt Funktionen zum Berechnen von Information für Pixel, die in einem Bereich liegen, der von den Polygonspitzen eingeschlossen wird, und zum Übermitteln dieser Information an die anderen Schaltungen im Wiedergabeprozessor 3. Die Berechnungen für den angesprochenen Füllvorgang bestehen beispielsweise aus linearen Interpolationen zwischen Polygonspitzen, und zwar abhängig von der Information über zwei Spitzen, die der Information über Spitzen zugeordnet ist.
  • Die Texturanbringschaltung 31 ist eine Schaltung, die aus einem Texturpuffer 4 zu den Pixel gehörige Texturen liest und die Farben für jedes Pixel berechnet. Die Schattierschaltung 32 ist eine Schaltung, die den Polygonen anhand der Polygonspitzendaten Beleuchtungseffekte verleiht. In dieser Schaltung kann ein Verfahren zum Ausbilden der Punktlichteigenschaften gemäß einer Entwicklung der Erfindung implementiert werden. Die Einzelheiten und Funktionen dieser Schattierschaltung 32 werden im Folgenden beschrieben.
  • Das Ausgangssignal der Schattierschaltung 32 wird an die Mischerschaltung 33 geleitet. Die Mischerschaltung 33 mischt je nach Bedarf Pixelfarbinformation für bereits gezeichnete Polygone, die aus dem Framepuffer 11 eingelesen werden, mit Pixelfarbinformation für neu verarbeitete Polygone, und schreibt die Ergebnisse in den Framepuffer 5. Die Information in diesem Framepuffer 5, die für eine vollständige Bildschirmdarstellung gedacht ist, wird über die D/A-Umsetzschaltung 6 an den Anzeigemonitor 7 gesendet und dargestellt.
  • Obgleich dies in der Skizze in 6 nicht dargestellt ist, enthält der Wiedergabeprozessor 3 auch eine Tiefenprüfungs-Funktionseinheit. Diese Tiefenprüfungs-Funktionseinheit vergleicht den Längsrichtungs-Zusammenhang zwischen mehreren Polygonen und speichert Daten über Polygone, die in einem Tiefenpuffer (nicht dargestellt) an vorderster Stelle stehen.
  • Anders ausgedrückt sind im Tiefenpuffer die Z-Achsen von Pixeln für die graphische Darstellung (Polygone) gespeichert, die bereits gezeichnet wurden. Ist ein neues Polygon in einer Position zu zeichnen, die ein bereits auf den Bildschirm gezeichnetes Polygon überlagert, so werden die Z-Achsen der Pixel, die das neue Polygon bilden, mit den Z-Achsen der Pixel des bereits gezeichneten Polygons verglichen und aus dem Tiefenpuffer gelesen. Ergibt dieser Vergleich, dass die neuen Polygonpixel vorne liegen, so werden die Z-Achsen für diese Pixel in den Tiefenpuffer geschrieben.
  • Nun wird ein Verfahren zum Ausbilden der Punktlichteigenschaften beschrieben, in dem die Erfindung verwendbar ist, und in der Schattierschaltung 32 im wie oben beschrieben aufgebauten Bildverarbeitungssystem implementiert werden kann, sowie eine Anordnung einer Ausführungsform für die Schattierungsschaltung.
  • 7 zeigt ein Blockdiagramm einer Anordnung einer Ausführungsform der Schattierungsschaltung 32, in der die Erfindung anwendbar ist.
  • Eine Koordinateninverterschaltung 320 ist eine Schaltung, die eingegebene zweidimensionale Koordinatenpolygondaten in dreidimensionale Koordinatenpolygondaten umsetzt. Die von der Koordinatenkonverterschaltung 320 in dreidimensionale Koordinaten umgesetzten Pixeldaten werden aufgeteilt. Ein Teil wird in eine Lichtvektorschaltung 321 eingegeben, und der andere Teil wird in eine Reflexionsvektorschaltung 327 eingegeben.
  • Die Lichtvektorschaltung 321, die von Positionen der Punktlichtquellen im virtuellen dreidimensionalen Raum und von dreidimensionalen Koordinaten ausgeht, ermittelt Lichtvektoren, die von den Punktlichtquellen zu den Pixeln verlaufen. Sie ermittelt auch Daten über die Entfernungen zwischen Lichtquellen und Pixeln.
  • Die solcherart ermittelten Lichtvektoren werden in eine Punktlichteigenschafts-Generatorschaltung 322 eingegeben. Die auf diese Weise bestimmten Entfernungsdaten zwischen Lichtquellen und Pixeln werden in eine Dämpfungsverarbeitungsschaltung 323 eingegeben.
  • Eine beispielhafte Anordnung für die Punktlichteigenschafts-Generatorschaltung 322, die der Erfindung folgen kann, wird im Weiteren beschrieben. In dieser Schaltung, siehe die Skizze in 11, werden jedoch die Punktlichteffekt-Eigenschaften ermittelt, die von einer Punktlichtquelle O mit dem Achsenvektor 70 stammen. Ein Beispiel hierfür ist in 12 angegeben.
  • In der Punktlichteigenschafts-Generatorschaltung 322 wird das innere Produkt 60 des Achsenvektors 70 der Punktlichtquelle mit dem für jedes Pixel eingegebenen Lichtvektor ermittelt, d. h. der Cosinuswert. Dieser wird als Intensität des Lichts ausgegeben, das von der Punktlichtquelle in der Richtung der Pixel entsteht.
  • Die Dämpfungsverarbeitungsschaltung 323 berechnet Lichtdämpfungsgrößen ausgehend vom Abstand zwischen der Punktlichtquelle O und den in Frage kommenden Vektoren. Daraufhin bestimmt eine Lichtintensitäts-Syntheseschaltung 324 die Lichtintensitäten für die in Frage kommenden Pixel, und zwar anhand der aus der Punktlichteigenschafts-Generatorschaltung 322 stammenden Lichtintensitäten in Richtung der Pixel, die die Punktlichtquelle erzeugt, und anhand der aus der Dämpfungsverarbeitungsschaltung 323 stammenden Lichtdämpfungsgrößen abhängig von den Entfernungen der Punktlichtquelle zu den in Frage kommenden Pixeln.
  • Anders ausgedrückt werden die Lichtintensitäten für jedes Pixel aus den Dämpfungsgrößen ermittelt, die vom Winkel abhängen, der zwischen dem Punktlichtquellen-Achsenvektor 70 und dem Lichtvektor des in Frage kommenden Pixels auftritt, und von den Dämpfungsgrößen, die von der Entfernung zwischen der Punktlichtquelle und der Position der in Frage kommenden Pixel abhängen.
  • Nun werden ausgehend von den Lichtintensitäten für die Pixel, die die Lichtintensitäts-Syntheseschaltung 324 ermittelt hat, den Pixeln Schattierungseffekte verliehen. Die Schattierungseffekte umfassen einen diffusen Reflexionseffekt und einen Spiegelungs-Reflexionseffekt.
  • Der diffuse Reflexionseffekt ist eine sogenannte unregelmäßige Reflexion, die durch Licht entsteht, das die Oberfläche eines Objekts durchdringt, absorbiert und erneut abgestrahlt wird. Dieses diffus reflektierte Licht strahlt gleichmäßig in alle Richtung ab.
  • Aus diesem Grund besteht kein Zusammenhang mit dem Betrachtungspunkt eines Beobachters. Wichtig ist der Winkel, den die Richtung von der Lichtquelle zum in Frage kommenden Pixel mit der Richtung der Normalen zur Oberfläche des in Frage kommenden Pixels einschließt. Überschreitet dieser Winkel π/2, so tritt die Lichtquelle in den Schatten des Objekts ein, und es erfolgt keine diffuse Lichtreflexion.
  • Die von der Lichtintensitäts-Syntheseschaltung 324 ermittelten Lichtintensitäten werden versehen mit einem konstanten diffusen Reflexionskoeffizienten in eine Diffusi onsschaltung 325 eingegeben, in der die Größen des diffus reflektierten Lichts ermittelt werden.
  • Dagegen bewirkt der Spiegelungs-Reflexionseffekt, dass bei einer perfekt reflektierenden Oberfläche der Winkel des reflektierten Lichts bezogen auf das einfallende Licht relativ zur Normalen gleich groß ist. Daher kann nur ein Beobachter, der sich auf einem Winkel befindet, der mit dem Winkel des reflektierten Lichts zusammenfällt, den Spiegelungs-Reflexionseffekt beobachten. Aus diesem Grund benötigt man den Sichtlinienvektor des Beobachters, damit man die Größe des reflektierten Lichts feststellen kann.
  • Die Spiegelungs-Reflexionsschaltung 326 nimmt Lichtintensitäten für Vektoren auf, die die Lichtintensitäts-Syntheseschaltung 324 ermittelt hat. Daraus bestimmt sie Einfallswinkel an den in Frage kommenden Pixeln und Reflexionsgrößen aus den Sichtlinienvektoren, die von einer Reflexionsvektorschaltung 327 stammen, und gibt sie aus.
  • Die diffusen Lichtmengen aus der angesprochenen Diffusionsschaltung 325 und die Spiegelungs-Reflexionslichtmengen aus der Spiegelungs-Reflexionsschaltung 326 werden in einer Modulationsschaltung 328 zusammengefasst und ausgegeben.
  • 8 zeigt ein Blockdiagramm einer beispielhaften Anordnung einer Punktlichteigenschafts-Generatorschaltung 322, in der eine Schattierungsschaltung gemäß der obigen Beschreibung verwendet wird. 9 zeigt zum Vergleich ein Beispiel einer herkömmlichen Anordnung, damit die Eigenschaften der in 8 skizzierten Schaltung erhellt werden.
  • In der Anordnung in 9 werden die Punktlichteigenschaften durch direkte arithmetische Operationen, die eine Arithmetikeinheit 40 ausführt, aus Pixeldaten und Koeffizientendaten ermittelt. In derartigen Fällen, die bereits im Zusammenhang mit 1 bis 4 beschrieben wurden, ist die Berechnung kompliziert, und es ist sehr schwierig, gewünschte Punktlichteigenschaften zu gestalten.
  • Bei der Erfindung, die ein Verfahren ist, bei dem eine Tabelle verwendet werden kann, siehe unten, sind keine komplizierten Berechnungen nötig, und man kann jede beliebige gewünschte Punktlichteigenschaft aus Daten bilden, die in den Tabellen gespeichert sind.
  • Die Punktlichteigenschaften, die die Punktlichteigenschafts-Generatorschaltung 322 erzeugt, siehe die beispielhafte Zeichnung in 12, sind so beschaffen, dass eine Kennlinie dadurch gebildet wird, dass die Lichtintensitäts-Kennwerte an kennzeichnenden Punkten a bis p im Bereich der Abklingregion (Penumbra scale) verbunden werden. Mit Abklingregion (Penumbra scale) wird hier eine Region innerhalb des in 11 eingetragenen Winkels 62 bezeichnet, die vom Anfangspunkt der Punktlichteigenschafts-Dämpfung bis zu dem Punkt reicht, an dem der Punktlicht-Beleuchtungseffekt verschwindet (cutoff).
  • In 12 wird die Lichtintensität der Punktlichtquelle O in der Richtung des Lichtachsenvektors auf 1 gesetzt. Die Winkel, die zwischen den Lichtachsenvektoren D und den Vektoren liegen, die zu den Pixeln laufen und den kennzeichnenden Punkten a bis p entsprechen, sind auf der horizontalen Achse aufgetragen. Die Punktlicht-Kennwerte sind auf der vertikalen Achse aufgetragen. Die Werte, die beim Normieren eines jeden Punkts auf eine Lichtintensität von 1 entstehen, sind eingezeichnet.
  • Die Punktlichteigenschafts-Generatorschaltung 322, siehe die Skizze in 8, umfasst eine Tabelle 8, in der Lichtintensitätswerte für die genannten kennzeichnenden Punkte a bis p aufgenommen sind, einen Adressgenerator 9, der Adressen zum Lesen der Lichtintensitätswerte der kennzeichnenden Punkte a bis p aus der Tabelle 8 erzeugt, und einen Interpolator 10, der eindimensional zwischen kennzeichnenden Punkten interpoliert.
  • Die Punktlichteigenschafts-Tabelle 8 der in 8 skizzierten Punktlichteigenschafts-Generatorschaltung 322 umfasst in einer Ausführungsform eine erste Bank 80 und eine zweite Bank 81. Eine Beispielanardnung für den Adressgenerator 9 ist in 10 skizziert.
  • In den Adressgenerator 9 werden Pixelinformationen L (Lichtquellenvektoren Lx, Ly, Lz) und Koeffizientendaten (Punktlichtachsen-Richtungsvektoren "Dx, Dy, Dz", Grenzwinkel "Cutoff", Abklingbreiten-Normierungskoeffizienten "Penumbra-scale" und Indizes "table-id" zum Auswählen der Kennwerttabelle 8) eingegeben.
  • In 10 wird das innere Produkt 60 (vergleiche 11) zwischen dem Lichtquellenvektor Lx, Ly, Lz und dem Punktlichtachsen-Richtungsvektor Dx, Dy, Dz in einer Skalarprodukt-Berechnungseinheit 90 ermittelt, und der Wert des Cosinus, den die beiden Vektoren erzeugen, wird bestimmt. Anteile, die den Abschneideteil 61 (vergleiche 11) überschreiten, werden von einem Subtrahierer 91 gelöscht.
  • Nun wird das Ausgangssignal des Subtrahierers 91, der die Anteile gelöscht hat, die den Abschneideteil 61 überschreiten, mit dem Abklingbreiten-Normierungskoeffizienten "Penumbra-scale" multipliziert, beispielsweise mit einem Koeffizienten von 10. Der Anteil, auf den der Penumbralteil 62 (vergleiche 11) angewendet wird (Abklingieil), wird von 0,1 bis 1,0 normiert. Übersteigt das Eingangssignal 1,0, so wird es auf 1,0 begrenzt, und hat es den Wert 0,0, so wird es auf 0,0 begrenzt, und zwar in einer Begrenzungsarithmetikeinheit 93.
  • Das Ausgangssignal der Begrenzungsarithmetikeinheit 93 dient zum Zugriff auf die Kennwerttabelle 8 und zum Interpolieren zwischen Kennwertenpunkten. Geht man davon aus, dass das Ausgangssignal der Begrenzungsarithmetikeinheit ein 16-Bit-Ausgangssignal ist, so kann man vier Bit für den Zugriff auf die Kennwerttabelle 8 verwenden, ein Bit für das Bankumschaltflag SF und 11 Bit für das Interpolieren zwischen Kennwertpunkten.
  • In der in 8 skizzierten Ausführungsform umfasst die Kennwerttabelle 8 eine erste Speicherbank 80 und eine zweite Speicherbank 81. In der Kennlinie in 12 sind benachbarte Kennwertdaten für die Kennwertpunkte a bis p abwechselnd in der ersten Speicherbank 80 und der zweiten Speicherbank 81 abgelegt. Durch eine derartige Anordnung ist es möglich, benachbarte Kennwerte gleichzeitig auszulesen und damit die Speicherzugriffszeit zu verkürzen.
  • Hat das Bankumschaltflag SF den Wert 0, so sind die Ausleseadresse OA (ungerade Adresse) für die erste Speicherbank 80 und die Ausleseadresse EA (gerade Adresse) für die zweite Speicherbank 81 gleich. Hat das Bankumschaltflag SF den Wert 1, so wird die Ausleseadresse EA (gerade Adresse) für die zweite Speicherbank 81 durch eine Inkrementierschaltung 94 bezogen auf die Ausleseadresse OA (ungerade Adresse) für die erste Speicherbank 80 um 1 fortgeschaltet.
  • Dies sei anhand eines besonderen Beispiels beschrieben. Hat das Bankauslese-Umschaltflag SF den Wert 0 und ist die Adresse 0000, so sind die Ausleseadresse EA für die erste Speicherbank 80 und die Ausleseadresse OA für die zweite Speicherbank 81 gleich. Dadurch werden die Daten des Kennwertpunkts a aus der ersten Speicherbank 80 gelesen, und die Daten des Kennwertpunkts b werden aus der zweiten Speicherbank 81 gelesen.
  • In diesem Fall nimmt der Interpolator 10 in 8 einen Interpolationsparameter t und die logische 0 des Bankauslese-Umschaltflags SF als Eingabegrößen auf. Zudem liest er Daten für die Kennwertpunkte a und b ein, die aus den Kennwerttabellen 80 und 81 ausgelesen werden.
  • Dementsprechend findet der Interpolator 10 den Wert zwischen den Kennwertpunkten a und b durch eindimensionale Interpolation aus dem Zusammenhang, den die folgende Gleichung 3 wiedergibt. Dta-b = tA + (1 – t)B (3)
  • In Gleichung 3 ist Dta-b der Punktlichteffekt-Wert für den Punkt des Interpolationsparameters t zwischen den Kennwertpunkten a und b, A ist der Punktlichteffekt-Wert für den Kennwertpunkt a, und B ist der Punktlichteffekt-Wert für den Kennwertpunkt b.
  • Ist im angegebenen besonderen Beispiel das Bankauslese-Umschaltflag SF eine logische 1, so erhöht die Inkrementierschaltung 94 die Ausleseadresse der ersten Kennwerttabelle 80 um 1; dies führt zu einer Adresse von 0001. An dieser Adresse sind die Daten für den Kennwertpunkt c gespeichert.
  • In diesem Fall ist im Interpolator 10 das Bankauslese-Umschaltflag SF eine logische 1. Dadurch erhält der aus der Kennwerttabelle 81 gelesene Kennwertpunkt b Vorrang, und man erhält die Interpolationsdaten Dtb-c zwischen den Kennwertpunkten b und c aus Gleichung 4 unten. Dtb-c = tB + (1 – t)C (4)
  • Es ist wie angegeben möglich, Punktlichteigenschaften mit einfachen arithmetischen Operationen zu formen.
  • Da man die in der Kennwerttabelle 8 gespeicherten Daten des Kennwertpunkts je nach Wunsch konfigurieren kann, lässt sich jede beliebige gewünschte Punktlichteigen schaft ausbilden. Anders ausgedrückt kann man die Punktlichteigenschaften von Open GL (Warenzeichen) nachbilden, indem man die Daten der Kennwertpunkte als exponentielle Potenzen konfiguriert, und man kann die Punktlichteigenschaften von Softimage annähern, indem man die Daten linear konfiguriert.
  • 13 zeigt eine Skizze, die eine Ausführungsform der Erfindung beschreibt. In der oben beschriebenen Ausführungsform werden die Punktlichteigenschaften durch einen Winkel mit einer gewissen Achse beschrieben, wodurch das Punktlicht stets kreisförmig wird. Im in 12 dargestellten Beispiel kann nur ein Punktlichteffekt erzeugt werden, der auf konzentrischen und kreisförmigen Punktlichteigenschaften beruht. Anders ausgedrückt können nur eindimensionale Punktlichteigenschaften hergestellt werden.
  • In der in 13 skizzierten Ausführungsform nimmt jedoch die Anzahl der Achsen weiter zu, und man kann zweidimensionale Daten für Kennwertpunkte in der Kennwerttabelle 8 halten. Mit dieser Anordnung erzeugen die Punktlichtcharakteristiken Punktlichter mit zweidimensionalen Eigenschaften.
  • In dem besonderen in 13 skizzierten Beispiel sind Achsen A und B senkrecht zu einer Punktlichtachse O definiert. Damit kann man eine Ebene OA und eine Ebene OB betrachten, die durch die Punktlichtachse und Achsen A und B definiert sind. Daraufhin wird auf eine zweidimensionale Tabelle zugegriffen, und zwar mit Hilfe der Winkel ψ und θ, die zwischen den Achsen A und B und den orthogonalen Projektionen C und D des Lichtvektors OB auf die OA-Ebene bzw. die OB-Ebene auftreten. Damit ist es möglich, Punktlichtcharakteristiken mit zweidimensionalen Eigenschaften zu erhalten. Es ist in vergleichbarer Weise auch möglich, eine Anzahl Achsen zu definieren, die senkrecht auf der Punktlichtachse O stehen.
  • Im Folgenden wird eine Ausführungsform eines Bildverarbeitungssystems der Erfindung beschrieben, in der das oben beschriebene Formungsverfahren für Punktlichtquellen-Charakteristiken verwendet werden kann. In dieser Ausführungsform der Erfindung kommen zahlreiche Lichtquellengruppen vor sowie Lichtquellen-Kennzeichnungssymbole (im Weiteren "Licht-IDs" genannt), die angeben, welche Lichtquellengruppe für jedes Polygon verwendet wird. Die Schattierungsschaltung liest die effektive Lichtquelleninformation anhand des Licht-IDs aus und verleiht ihnen eine Schattierung. 14 zeigt ein Blockdiagramm einer ersten beispielhaften Anordnung eines Bildverarbeitungssystems, in dem das Formungsverfahren für Lichtquellencharakteristiken der Erfindung verwendet wird.
  • Die CPU 1 kontrolliert die Ausführung der Programme, die die Bilder mit Hilfe von Polygonen verarbeiten. Die CPU 1 speichert gemäß dem Programmfortschritt zeitweilig Spitzendaten für Polygone, die auf dem CRT-Darstellungsmonitor 7 anzuzeigen sind, und Registereinstellfunktionen im Polygonpuffer 11. Die CPU 1 ordnet auch jedem Polygon eine Licht-ID zu; diese Information legt fest, von welcher Lichtquelle jedes Polygon beeinflusst wird.
  • Die aus dem Polygonpuffer 11 ausgelesenen Daten werden in den Koordinatenumsetzer 2 eingegeben. Der Koordinatenumsetzer 2 setzt die Eingabedaten in zweidimensionale Daten um, damit bei der Ausführung des Programms Polygone auf dem CRT-Darstellungsmonitor 7 dargestellt werden, die sich im dreidimensionalen Raum befinden. Die Polygondaten, die in zweidimensionale Koordinaten umgesetzt wurden, werden der Füllschaltung 30 und der Texturschaltung 31 zugeführt.
  • Die Füllschaltung 30 berechnet Information über Pixel, die sich in einem Bereich befinden, der von den Spitzen der Polygone eingeschlossen wird. Die Berechnungen für den genannten Füllvorgang sind beispielsweise lineare Interpolationen zwischen Polygonspitzen, die auf Information über zwei Spitzen beruhen, die der Information über Spitzen entsprechen. Die Füllschaltung 30 schreibt zudem die jedem Polygon zugeordneten Licht-IDs auf die Pixel, die das Polygon bilden. Dieser Schreibvorgang wird gemäß der Anzahl der Polygone entsprechend oft wiederholt.
  • Die Texturgeneratorschaltung 31 liest Texturen (nicht dargestellt) entsprechend der Pixel aus dem Texturpuffer und berechnet Farben für jedes Pixel. Das Ausgangssignal der Texturgeneratorschaltung 31 wird in Form von Pixeldaten an die Schattierschaltung 32 gesendet. Gleichzeitig versieht die Füllschaltung 30 die die Polygone konstituierenden Pixel mit zugeordneten Polygon-Licht-IDs. Die Schattierschaltung 32 führt ausgehend von diesen Licht-IDs eine Schattierungsverarbeitung für diejenigen Lichtquellen aus, die jedes der Pixel beeinflussen, die die Polygone bilden.
  • In der in 14 skizzierten Beispielanordnung sind in der Schattierschaltung 32 vier Lichtquellenregister 329 vorhanden, die mit A, B, C und D bezeichnet sind. Dies gilt für den Fall, dass die Schattierschaltung 32 vier Lichtquellen für eine Bildszene verarbeiten kann. In diesen vier Lichtquellenregistern 329 ist Information über diejenigen Licht quellen gespeichert, die die Polygone beeinflussen.
  • Im Lichtquellenpuffer 17 ist dagegen Information über alle Lichtquellen abgelegt. Diese Lichtquelleninformation ist in vier Einheiten mit den Licht-IDs bezeichnet; die Einheiten sind in den Lichtquellenregistern 329 in der Schattierschaltung 32 gespeichert. In diesem Fall wird jedem der Pixel in der Bildszene eine Licht-ID zugeordnet, wodurch die Schattierungsverarbeitung für die Pixel nur für die vier Lichtquellen erfolgt, die durch die Licht-IDs bezeichnet sind. Weiterhin berechnet die Schattierschaltung 32 ausgehend von der Lichtquelleninformation in den Lichtquellenregistern 329 Pixelbeleuchtungseffekte anhand der Polygonspitzendaten. Die Einzelheiten dieser Schattierschaltung 32 und ihre Funktionsweise werden im Weiteren beschrieben.
  • Das Ausgangssignal der Schattierschaltung 32 wird an die Farbmodulationsschaltung 12 und die Mischerschaltung 33 gesendet. Die Farbmodulationsschaltung 12 ist eine Schaltung, die die Farbmodulation bei jedem Pixel bewirkt, und zwar anhand der Ausgangssignale der Schattierschaltung 32.
  • Die Mischerschaltung 33 mischt die Farbinformation für die vorher gezeichneten Polygonpixel, die aus dem Framepuffer 5 eingelesen wird, mit der Farbinformation für neu verarbeitete Polygonpixel, und schreibt diese Information als Daten für einen Bildschirm in den Framepuffer 5. Die Information in diesem Framepuffer 11 wird auf dem CRT-Darstellungsmonitor 7 angezeigt.
  • 15 zeigt ein Blockdiagramm einer zweiten Beispielanordnung eines Bildverarbeitungssystems, in dem die Erfindung angewendet wird. Im Lichtquellenpuffer 17 in 15 sind Informationseinheiten über zahlreiche Lichtquellen abgelegt, wobei die Anzahl der Lichtquellen, die in einer Bildszene verarbeitet werden können, d. h. die Anzahl der Lichtquellenregister 329, eine Gruppe bilden. Ist in diesem Fall jedem Pixel eine Licht-ID zugeordnet, so kann die Schattierungsschaltung 6 anhand dieser Licht-ID Lichtquelleninformation aus dem Lichtquellenpuffer 17 lesen, wobei in dieser Ausführungsform vier Lichtquellen zu einer Gruppe zusammengefasst werden.
  • 16 zeigt ein Blockdiagramm einer dritten Beispielanordnung eines Bildverarbeitungssystems, in dem die Erfindung angewendet wird. In dieser Beispielanordnung ist Information über alle verwendeten Lichtquellen im Lichtquellenspeicher 8 abgelegt. Im Lichtquellenpuffer 17 ist Information für eine Gruppe von Lichtquellen gespeichert, die eine Auswirkung auf jedes Pixel haben. Jedem Pixel ist eine Licht-ID zugeordnet. Die Schattierschaltung 32 kann anhand der Licht-ID die Gruppe von Lichtquellen im Lichtquellenpuffer 17 erkennen, die eine Auswirkung auf das Pixel haben, und kann die Information bezüglich der Lichtquellen aus dem Lichtquellenspeicher 18 lesen.
  • In 17 zeigt ein Beispiel für den Inhalt des Lichtquellenpuffers 17 in der dritten Beispielanordnung des in 16 dargestellten Bildverarbeitungssystems skizziert. In diesem Fall ist die Licht-ID für jedes Pixel als 6-Bit-Adresse gegeben. An dieser Adresse ist im Lichtquellenpuffer 17 Information über eine Anzahl Lichtquellen gespeichert, die gleich der Anzahl der Lichtquellenregister ist. Diese Lichtquellen haben Einfluss auf jedes Pixel. Beispielsweise ist Information über eine Gruppe von Lichtquellen gespeichert, wobei die Gruppe aus vier Lichtquellen besteht.
  • Die Licht-IDs werden im Verlauf des Spielprogramms von der CPU 1 geliefert, und zwar als Information, von welchen vier Lichtquellen ein Polygon beeinflusst wird. Die derart bezeichneten Lichtquellen sind in der Regel Lichtquellen, die sich entweder nahe am Polygon befinden oder eine starke Intensität aufweisen.
  • Ist einem gewissen Polygon eine Licht-ID (000001) zugewiesen, so wird deswegen, siehe die Skizze in 17, das Polygon bzw. werden die in diesem Polygon enthaltenen Pixel einer Schattierungsverarbeitung aufgrund des Einflusses der Lichtquellen c, d, e und f unterzogen.
  • Verwendet man eine 6-Bit-Adresse, so sind 64 Kombinationen von Lichtquellengruppen möglich, und die Anzahl der sichtbaren Lichtquellen lässt sich erhöhen, obwohl die Anzahl der mit der Hardware verarbeitbaren Lichtquellen vier beträgt.
  • Im Weiteren wird ein Verfahren zum Ausbilden der Lichtquelleneigenschaften beschrieben, das in der Schattierschaltung 32 in einem Blldverarbeitungssystem implementiert ist, das die oben beschriebene Anordnung aufweist, sowie eine Ausführungsform der Schattierschaltung 32. 18 zeigt ein Blockdiagramm einer Ausführungsform der Schattierschaltung 32, in der die Erfindung verwendet wird.
  • Die Schattierschaltung 32 ist ein Schaltkreis, der berechnet, wie die in den Polygonen enthaltenen Pixel von den Lichtquellen beeinflusst werden. In dieser Ausführungsform umfasst die Schattierschaltung 32 vier Blöcke, nämlich eine Vektorarithmetikeinheit 331, Lichtquellen-Arithmetikeinheiten 330, Lichtquellenregister 329 und einen Akkumulator 328. Damit die Effekte von vier Lichtquellen gleichzeitig verarbeitet werden können, sind in dieser Ausführungsform die Lichtquellenregister 329 zum Speichern der Lichtquelleninformation und die Lichtquellen-Arithmetikeinheiten 330, die die Schattierungen der Pixel berechnen, jeweils in vier Sätzen bereitgestellt. In den Lichtquellenregister 329 A, B, C und D sind jeweils die Daten für vier Lichtquellen abgelegt, siehe die obige Beschreibung im Zusammenhang mit 14 bis 17.
  • Die Effekte auf jedes Pixel, die von vier Lichtquellen stammen, werden also von den Lichtquellen-Arithmetikeinheiten 330 A, B, C und D jeweils entsprechend der Lichtquellen berechnet. Die Auswirkungen der vier Lichtquellen auf die Pixel werden im Akkumulator 328 kombiniert. Die in den Lichtquellenregistern 329 gespeicherten Lichtquellendaten werden in den Lichtquellen-Arithmetikeinheiten 330 zum Erzeugen der Punktlichteigenschaften oder zum Verarbeiten der Lichtquellendämpfung verwendet.
  • Es wird nun die Arbeitsweise einer jeden in der Schattierschaltung 32 enthaltenen Teilschaltung erklärt. Die Vektorarithmetikeinheit 331 umfasst einen Koordinateninverter 320 und eine Reflexionsvektorschaltung 327. Der Koordinateninverter 320 ist eine Schaltung, die eingegebene zweidimensionale Pixeldatenkoordinaten in dreidimensionale Pixeldatenkoordinaten umsetzt. Das Ausgangssignal der Koordinateninverterschaltung 320 wird in dieser Ausführungsform in die vier Lichtquellen-Arithmetikeinheiten 330 (A, B, C, D) eingegeben. Daraufhin werden die Auswirkungen der vier Lichtquellen gleichzeitig berechnet. Das andere Ausgangssignal der Koordinateninverterschaltung 320 wird in die Reflexionsvektorschaltung 327 eingegeben. Die in der Koordinateninverterschaltung 320 in dreidimensionale Koordinatendaten konvertierten Daten, die in eine der Lichtquellen-Arithmetikeinheiten 330 eingegeben wurden, beispielsweise A, werden in die Lichtvektorschaltung 321 eingegeben.
  • Die Lichtvektorschaltung 321 ermittelt Lichtvektoren, die von den Lichtquellen zu den Pixeln verlaufen, und zwar anhand der Positionen dieser Lichtquellen im virtuellen dreidimensionalen Raum und der dreidimensionalen Koordinaten dieser Pixel. Diese Schaltung ermittelt auch Daten bezüglich der Entfernungen zwischen den Lichtquellen und den in Frage kommenden Pixeln.
  • Die auf diese Art ermittelten Lichtvektoren werden in die Punktlichteigenschafts-Generatorschaltung 322 eingegeben. Die Daten bezüglich der festgestellten Entfernun gen zwischen den Lichtquellen und den in Frage kommenden Pixeln werden in die Dämpfungsverarbeitungsschaltung 323 eingegeben. In dieser Dämpfungsverarbeitungsschaltung 323 werden die Punktlichteigenschaften ermittelt, die beispielhaft in 12 durch die Lichtquelle O mit dem Achsenvektor 70 dargestellt sind, siehe die Skizze in 11. Die Punktlichteigenschafts-Generatorschaltung 322 ermittelt das Skalarprodukt 60 zwischen dem Punktlichtquellen-Achsenvektor 70 und dem für jedes Pixel eingegebenen Lichtvektor, d. h. den Cosinus dafür, und gibt die Lichtintensität aus, die die Lichtquelle für das Pixel erzeugt.
  • Inzwischen berechnet die Dämpfungsverarbeitungsschaltung 323 den Umfang der Lichtdämpfung abhängig von der Entfernung zwischen der Punktlichtquelle O und dem in Frage kommenden Pixel. Nun wird anhand der Lichtintensität, die die Punktlichtquelle in Richtung des Pixels erzeugt, und die in der Punktlichteigenschafts-Generatorschaltung 322 ermittelt wurde, und dem Umfang der Lichtdämpfung abhängig von der Entfernung zwischen der Punktlichtquelle und dem in Frage kommenden Pixel, die in der Dämpfungsverarbeitungsschaltung 323 ermittelt wurde, die Lichtintensität für das in Frage kommende Pixel in der Lichtintensitäts-Syntheseschaltung 324 bestimmt.
  • Anders ausgedrückt wird die Lichtintensität für jedes Pixel ermittelt aus der Intensität, die die Lichtquelle selbst abgibt, aus dem Umfang der Dämpfung, die durch den Winkel entsteht, den der Punktlichtquellen-Achsenvektor 70 und der Lichtvektor für das in Frage kommende Pixel einschließen, und aus dem Umfang der Dämpfung, die durch die Entfernung von der Punktlichtquelle zur Position des in Frage kommenden Pixels entsteht.
  • Abhängig von der Lichtintensität für jedes Pixel, die in der Lichtintensitäts-Syntheseschaltung 324 ermittelt wurde, werden nun jedem Pixel Schattierungseffekte verliehen. Diese Schattierungseffekte umfassen einen diffusen Reflexionseffekt und einen Spiegelungs-Reflexionseffekt.
  • Beim diffusen Reflexionseffekt handelt es sich um eine so genannte irreguläre Reflexion, die durch Licht entsteht, das die Oberfläche eines Objekts durchdringt, absorbiert und erneut abgestrahlt wird. Dieses diffus reflektierte Licht strahlt gleichmäßig in alle Richtungen ab. Aus diesem Grund besteht kein Bezug zum Blickpunkt eines Beobachters. Wichtig ist der Winkel zwischen der Richtung von der Lichtquelle zum in Frage kommenden Pixel und der Richtung der Normalen der Oberfläche des in Frage kom menden Pixels. Überschreitet dieser Winkel π/2, so tritt die Lichtquelle in den Schatten des Objekts ein, und es erfolgt keine diffuse Lichtreflexion.
  • Dagegen bewirkt der Spiegelungs-Reflexionseffekt, dass bei einer perfekt reflektierenden Oberfläche der Winkel des reflektierten Lichts bezogen auf das einfallende Licht relativ zur Normalen gleich groß ist.
  • Daher kann nur ein Beobachter, der sich auf einem Winkel befindet, der mit dem Winkel des reflektierten Lichts zusammenfällt, den Spiegelungs-Reflexionseffekt beobachten. Aus diesem Grund benötigt man den Sichtlinien-Reflexionsvektor des Beobachters, damit man die Größe des reflektierten Lichts feststellen kann.
  • Die Spiegelungs-Reflexionsschaltung 326 nimmt Lichtintensitäten für Vektoren auf, die die Lichtintensitäts-Syntheseschaltung 324 ermittelt hat. Daraus bestimmt sie Einfallswinkel an den in Frage kommenden Pixeln und Reflexionsgrößen aus den Sichtlinienvektoren, die von einer Reflexionsvektorschaltung 327 stammen, und gibt sie aus.
  • Die diffusen Lichtmengen aus der angesprochenen Diffusionsschaltung 325 und die Spiegelungs-Reflexionslichtmengen aus der Spiegelungs-Reflexionsschaltung 326 werden im Akkumulator 328 zusammen mit den Ausgangssignalen der anderen Lichtquellen-Arithmetikeinheiten 330 B, C und D überlagert und ausgegeben.
  • 19 zeigt ein Blockdiagramm einer beispielhaften Anordnung einer Punktlichteigenschafts-Generatorschaltung 322, die in der Schattierungsschaltung 32 gemäß der obigen Beschreibung verwendet wird. In dieser Beispielanordnung ist es mit Hilfe eines Verfahrens, in dem eine Tabelle eingesetzt wird, möglich, siehe die folgende Beschreibung, jede beliebige Punktlichteigenschaft aus den in der Tabelle abgelegten Daten zu erzeugen, ohne dass komplizierte Berechnungen erforderlich sind. Man beachte, dass die Punktlichteigenschafts-Generatorschaltungen A, B, C und D gleich aufgebaut sind, so dass man die Beschreibung auf die Punktlichteigenschafts-Generatorschaltung A beschränken kann.
  • Die Punktlichteigenschaften, die die Punktlichteigenschafts-Generatorschaltung 322 erzeugt, siehe die Zeichnung in 12, sind so beschaffen, dass eine Kennlinie durch Verbinden der Lichtintensitäts-Kennwerte an Kennwertpunkten a bis p im Bereich der Abklingregion 62 (Penumbra scale) erzeugt wird (vergleiche 12).
  • Im Einzelnen, siehe 12, setzt man die Lichtintensität in der Richtung des Lichtachsenvektors des Punktlichtstrahls O zu 1, trägt den Winkel, der zwischen dem Lichtachsenvektor D und dem Vektor L auftritt, in der Richtung des Pixels entsprechend den Kennwertpunkten a bis p auf der horizontalen Achse auf, und den normierten Wert für die Lichtintensität von 1 an jedem Punkt auf der vertikalen Achse.
  • In dieser Beispielanordnung, siehe die Skizze in 19, umfasst die Punktlichteigenschafts-Generatorschaltung 322 eine Tabelle 80, in der die genannten Lichtintensitätswerte für die Kennwertpunkte a bis p gemäß der Punktlichteigenschaft abgelegt sind, einen Adressgenerator 90, der die Adressen zum Auslesen der Lichtintensitätswerte für die Kennwertpunkte a bis p aus der Tabelle 80 erzeugt, und einen Interpolator 100, der eine eindimensionale Interpolation zwischen den Kennwertpunkten ausführt.
  • In den Adressgenerator 90 werden eingegeben: Pixeldaten (Lx, Ly, Lz) als Pixelinformation, Punktlichtachsen-Richtungsvektoren (Dx, Dy, Dz) als Lichtquelleninformation, ein Abschneidewinkel (Cutoff), Abklingbreiten-Normierungskoeffizienten (Penumbrascales) und Indizes (table-ids) für die Auswahl der Eigenschaftstabelle 80.
  • Diese Lichtquellen-Informationseinheiten werden zudem für jede Lichtquelle a, b, c, ..., entweder in Lichtquellenpuffer 17, siehe 14 und 15, oder im Lichtquellenspeicher 18, siehe 16, abgelegt. In dieser beispielhaften Ausführungsform können die Auswirkungen von vier Lichtquellen auf jedes Pixel verarbeitet werden. Jedem Pixel wird von der CPU 1, siehe 14 usw., eine Licht-ID zugeordnet, die die vier Lichtquellen bezeichnet. Es sind vier Lichtquellenregister 329 vorhanden, nämlich die Register A, B, C und D. Aus dem Lichtquellenpuffer 7 oder dem Lichtquellenspeicher 8 werden anhand der Licht-ID vier Lichtquellen-Dateneinheiten eingelesen, und die Lichtquellendaten werden den Punktlichteigenschafts-Generatorschaltungen 322 (A, B, C, D) zugeführt.
  • In 19 wird das innere Produkt 60 (vergleiche 11) zwischen den Pixeldaten Lx, Ly, Lz und dem Punktlichtachsen-Richtungsvektor Dx, Dy, Dz ermittelt, und der Wert des Cosinus [des Winkels], den die beiden Vektoren einschließen, wird bestimmt. Der Anteil, der den Abschneideteil 61 (vergleiche 11) überschreitet, wird von einem Subtrahierer 92 gelöscht.
  • Nun wird das Ausgangssignal des Subtrahierers 92, der den Anteil gelöscht hat, der den Abschneideteil 61 überschreitet, in einem Multiplizierer 93 mit dem ganzzahligen Abklingbreiten-Normierungskoeffizienten Penumbra-scale multipliziert, d. h. beispielsweise mit einem Koeffizienten von 10. Der Anteil, der auf den Penumbralteil 62 (vergleiche 11) angewendet wird (Abklingteil), wird auf einen Wert im Bereich von 0,0 bis 1,0 normiert. Übersteigt das Eingangssignal 1,0, so wird es auf 1,0 begrenzt, und hat es einen kleineren Wert als 0,0, so wird es auf 0,0 begrenzt, und zwar in einer Begrenzungsarithmetikeinheit 94.
  • Das Ausgangssignal der Begrenzungsarithmetikeinheit 94 dient zum Zugriff auf die Kennwerttabelle 80 und zum Interpolieren zwischen Kennwertpunkten. Geht man davon aus, dass das Ausgangssignal der Begrenzungsarithmetikeinheit 94 ein 16-Bit-Ausgangssignal ist, so kann man vier Bit davon für den Zugriff auf die Kennwerttabelle 80 verwenden, ein Bit für das Bankumschaltflag SF und 11 Bit für das Interpolieren zwischen Kennwertpunkten.
  • In der in 19 skizzierten Ausführungsform umfasst die Kennwerttabelle 80 eine erste Speicherbank 81 und eine zweite Speicherbank 82. In der Kennlinie in 12 sind die Daten für die Kennwertpunkte a bis p abwechselnd in der ersten Speicherbank 81 und der zweiten Speicherbank 82 abgelegt.
  • Hat das Bankumschaltflag SF den Wert 0, so sind die Ausleseadresse OA (ungerade Adresse) für die erste Speicherbank 81 und die Ausleseadresse EA (gerade Adresse) für die zweite Speicherbank 82 gleich. Hat dagegen das Bankumschaltflag SF den Wert 1, so wird die Ausleseadresse EA (gerade Adresse) für die zweite Speicherbank 82 durch eine Inkrementierschaltung 94 bezogen auf die Ausleseadresse OA (ungerade Adresse) für die erste Speicherbank 81 um 1 fortgeschaltet.
  • Ein besonderes Beispiel hierfür gleicht dem bereits früher beschriebenen Beispiel. Hat das Bankauslese-Umschaltflag SF den Wert 0 und ist die Adresse 0000, so sind die Ausleseadresse EA für die erste Speicherbank 81 und die Ausleseadresse OA für die zweite Speicherbank 82 gleich. Dadurch werden die Daten des Kennwertpunkts a aus der ersten Speicherbank 81 gelesen, und die Daten des Kennwertpunkts b werden aus der zweiten Speicherbank 82 gelesen.
  • In diesem Fall nimmt der Interpolator 100 in 19 einen Interpolationsparameter t und die logische 0 des Bankauslese-Umschaltflags SF als Eingabegrößen auf. Zu dem liest er Daten für die Kennwertpunkte a und b ein, die aus den Kennwerttabellen 81 und 82 ausgelesen werden.
  • Dementsprechend findet der Interpolator 100 den Wert Dta-b zwischen den Kennwertpunkten a und b durch eindimensionale Interpolation aus dem Zusammenhang, den die obige Gleichung 3 wiedergibt.
  • Wird im angegebenen besonderen Beispiel das Bankauslese-Umschaltflag SF eine logische 1, so erhöht die Inkrementierschaltung 95 die Ausleseadresse der ersten Kennwerttabelle 81 um 1; dies führt zu einer Adresse von 0001. An dieser Adresse sind die Daten für den Kennwertpunkt c gespeichert.
  • In diesem Fall ist im Interpolator 100 das Bankauslese-Umschaltflag SF eine logische 1. Dadurch erhält der aus der Kennwerttabelle 82 gelesene Kennwertpunkt b Vorrang, und man erhält die Interpolationsdaten Dtb-c zwischen den Kennwertpunkten b und c aus Gleichung 4 oben.
  • Es ist daher wie angegeben möglich, Punktlichteigenschaften mit einfachen arithmetischen Operationen zu formen. Da man die in der Kennwerttabelle 80 gespeicherten Daten des Kennwertpunkts je nach Wunsch konfigurieren kann, lässt sich jede beliebige gewünschte Punktlichteigenschaft ausbilden.
  • In 20 ist ein praktisches Beispiel gemäß der Erfindung skizziert, in dem eine Straße mit zahlreichen Straßenlampen beleuchtet ist. Die Lichtquellen a, b, c, usw. sind zu beiden Seiten der Straße angeordnet. Den Polygonen, die die Straße bilden, sind Licht-IDs zugeordnet, die angeben, von welchen Lichtquellen Auswirkungen auftreten. In diesem Beispiel kann ein Polygon höchstens von vier Lichtquellen beeinflusst werden. Hat die Licht-ID für das Polygon P2 beispielsweise den Wert 000001, so wird dieses Polygon gemäß den Inhalten des in 17 skizzierten Lichtquellenpuffers von den Lichtquellen c, d, e, und f beeinflusst.
  • Ist jedem Polygon eine ID zugeordnet, die angibt, von welchen Lichtquellen es beeinflusst wird, und erfolgt die Lichtquellenverarbeitung dementsprechend, so kommen in der Szene mehr Lichtquellen zur Wirkung als gleichzeitig verarbeitet werden können.
  • Der Verarbeitungsablauf der Erfindung ist in 21 skizziert. Bei der Verarbei tung im Programminitialisierungsstatus werden die Routinen in Schritt 1 und Schritt 2 ausgeführt. Zuerst werden die Lichtquellenparameter in der Szene in den Lichtquellenpuffer 17 geschrieben (Schritt 1). Die Lichtquellenparameter umfassen die Lichtquellenposition, die Farbe, die Intensität, die Richtung usw. Die Szene kann so gestaltet werden, dass sie jede beliebige Anzahl Lichtquellen enthält, die der Lichtquellenpuffer 17 zulässt.
  • Anschließend werden jedem Polygon Lichtquellen-IDs (Licht-IDs) zugeordnet, die die Lichtquellen bezeichnen, die eine Auswirkung auf das Polygon haben (Schritt 2). Jedes Polygon wird in der Regel am stärksten von der nächstgelegenen Lichtquelle beeinflusst. In Systemen, in denen die Hardware die gleichzeitige Verarbeitung von vier Lichtquellen erlaubt, ist es möglich, im Lichtquellenpuffer Adressen zu verwenden, die vier Lichtquellen bezeichnen, die jedem Polygon am nächsten liegen. Hinsichtlich der Lichtquellen, die ein Polygon beeinflussen, können diese Lichtquellen anhand der Richtung der Spitzennormalenvektoren des Polygons und der Richtung, in die die Lichtquelle zeigt, ausgewählt werden.
  • Im Schritt 3 werden mit fortschreitendem Spiel Koordinatenumsetzungen und Transparenzumsetzungen entsprechend der Anzahl der Polygone wiederholt, d. h. für jedes Polygon in jeder Szene (Schritt 3). Ist diese Verarbeitung im Schritt 3 abgeschlossen, werden dreidimensionale Polygone in dreidimensionale Daten für den Bildschirm umgewandelt. Mit einer Transparenzumsetzung kann eine Verarbeitung erfolgen, die die Tiefenempfindung ändert, die zu Veränderungen in der Position des Blickpunkts gehört.
  • Nun wird jedes Polygon gefüllt, und eine Licht-ID wird für jedes Pixel geschrieben (Schritt 4). Daher werden in diesem Schritt 4 aus den zahlreichen Lichtquellen in der Szene vier Lichtquellen als diejenigen Lichtquellen bezeichnet, die eine Auswirkung auf ein Pixel haben. Im Schritt 5 erfolgt die texturerzeugung (Schritt 5). Diese Texturen umfassen Polygonobertlächenmuster und Materialstrukturen. Diese Muster usw. werden der Polygonoberfläche durch Abbildungen zugeordnet.
  • Anschließend werden gemäß einem Merkmal der Erfindung Lichtquellenparameter entsprechend den Licht-IDs aus dem Lichtquellenpuffer 17 gelesen (Schritt 6). Befindet sich anders ausgedrückt die Licht-ID an einer Adresse im Lichtquellenpuffer 17, so wird abhängig von dieser Adresse im Lichtquellenspeicher 18 abgelegte Lichtquelleninformation ausgelesen.
  • Nun erfolgt die Schattierungsverarbeitung (Schritt 7). In der Schattierungsverarbeitung werden abhängig von den Lichtquellen und den Daten auf den Objektpolygonen die Schirmhelligkeit, die Färbung und die Schattenverarbeitung durchgeführt. Anschließend wird ein Bildschirm mit Videodaten in den Framepuffer 5 geschrieben (Schritt 8). Die Verarbeitungsroutinen von Schritt 5 bis Schritt 8 werden entsprechend der Anzahl der Pixel wiederholt, die das Polygon bilden, und die im Framepuffer 5 gespeicherte Information für einen Bildschirm wird auf dem CRT-Darstellungsmonitor 7 angezeigt.
  • Gemäß den oben anhand der Zeichnungen beschriebenen Ausführungsformen wird mit dem Verfahren zum Ausbilden der Punktlichteigenschaften auf eine Kennwerttabelle zugegriffen, in der Kennwertpunktdaten vorab gespeichert sind. Es werden Winkel verwendet, die zwischen Punktlichtachsen und Lichtquellenvektoren auftreten. Dadurch ist es möglich, Punktlichteigenschaften mit hohen Freiheitsgraden herzustellen, und zwar verglichen mit Verfahren, bei denen Punktlichteigenschaften für jedes Pixel mit Berechnungsgleichung ermittelt werden, mit einfacheren Schaltungen.
  • Zudem lässt sich bei den Punktlichteigenschaften ein hoher Grad an Freiheit verwirklichen, und die Effektschaltung ist ebenfalls einfach. Erweitert man die vorbereitete Kennwerttabelle auf zwei Dimensionen, so kann man auch nicht kreisförmige Punktlichter ausbilden oder zahlreiche Punktlichter aus einer Lichtquelle formen. Wie beschrieben kann man gemäß der Erfindung zahlreiche Lichtquellengruppen handhaben und über die Licht-IDs auswählen. Dadurch ist es möglich, in einer Szene eine Anzahl Lichtquellen zu verwenden, die größer ist als die Anzahl Lichtquellen, die gleichzeitig verwendbar sind.

Claims (13)

  1. Bildverarbeitungsverfahren, mit dem Objekten, die graphisch durch zahlreiche Polygone (P1–P6) dargestellt werden, Beleuchtungseffekte von Lichtquellen (a-1) verliehen werden, umfassend die Schritte: Schreiben von Information bezüglich einer Anzahl in einer Bildszene verwendeter Lichtquellen (a-1) in einen Speicher (17, 18); Anbringen von Kennzeichnungssymbolen (Light-ID) an den Polygonen (P1–P6), die enthalten, von welchen Lichtquellen jedes Polygon beeinflusst wird; Ausführen von Koordinatenumwandlungen auf den Polygondaten für jedes Polygon, und Schreiben seines angebrachten Kennzeichnungssymbols auf die Pixel, die das Polygon aufbauen; Erzeugen einer Textur abhängig von den Pixeldaten; Lesen von Informationen bezüglich der Lichtquellen, die jedes Polygon (P1–P6) beeinflussen, und zwar entsprechend den Kennzeichnungssymbolen aus dem Speicher (17, 18); Schattieren der Pixel anhand der Lichtquelleninformationen, die aus dem Speicher (17, 18) ausgelesen werden; und Schreiben der Pixeldaten in einen Framepuffer (5).
  2. Bildverarbeitungsverfahren nach Anspruch 1, wobei im Schritt des Schattierens der Pixel die Punktlichteigenschaften, die den Pixeln verliehen werden, aus denen die Polygone bestehen, gebildet werden durch: Halten zahlreicher Kennwerte in einer zweidimensionalen Tabelle (80), die als Parameter zwei unabhängige Komponenten aufweist, die aus den Lichtvektoren entnommen werden, die von einer Punktlichtquelle zu Pixeln verlaufen oder von Pixeln zu einer Punktlichtquelle; Auslesen der Kennwerte aus der zweidimensionalen Tabelle (80) in Abhängigkeit der beiden Parameter; und Ausbilden einer Punktlicht-Kennlinie aus den Kennwerten, falls diese ausgelesen wurden, oder aus Werten, die zwischen gegenseitig benachbarten Kennwerten interpoliert werden, die aus der zweidimensionalen Tabelle (80) ausgelesen werden.
  3. Bildverarbeitungsverfahren nach Anspruch 2, worin die zwei unabhängigen Komponenten mit Hilfe der Lichtvektoren entnommen werden, die orthogonal auf zwei Ebenen projiziert werden, und jede Ebene aus einem Punktlicht-Achsenvektor und einer Achse senkrecht zum Punktlicht-Achsenvektor aufgebaut ist.
  4. Bildverarbeitungsverfahren nach irgendeinem vorhergehenden Anspruch, wobei für Objekte, die aus einer Anzahl Polygone (P1–P6) zusammengesetzt sind, die Schritte des Ausführens von Koordinatenumsetzungen und des Schreibens von Kennzeichnungssymbolen entsprechend der Anzahl der Polygone (P1–P6) wiederholt werden.
  5. Bildverarbeitungsverfahren nach Anspruch 4, wobei: für Polygone, die durch eine Anzahl Pixel gebildet werden, der Schritt des Texturerzeugens bis zum Schritt des Schreibens der Pixeldaten in einen Framepuffer (5) entsprechend der Anzahl der Pixel wiederholt wird.
  6. Bildverarbeitungsverfahren nach irgendeinem vorhergehenden Anspruch, worin: die Kennzeichnungssymbole eine Gruppe aus einer Anzahl Lichtquellen festlegen, die eine Auswirkung auf jedes Polygon haben.
  7. Bildverarbeitungsverfahren nach irgendeinem vorhergehenden Anspruch, worin: die Lichtquellen, die eine Auswirkung auf jedes Polygon haben, abhängig von der Entfernung zwischen dem Polygon und den Lichtquellen ermittelt werden.
  8. Bildverarbeitungssystem, mit dem Objekten, die graphisch durch zahlreiche Polygone (P1–P6) dargestellt werden, Beleuchtungseffekte verliehen werden, die auf Lichtquellen beruhen, umfassend: einen ersten Speicher (17, 18), in dem Informationen über die zahlreichen Lichtquellen (a-1) abgelegt werden; eine erste Vorrichtung (32), die Schattierungen ausführt, und zwar abhängig von Informationen über eine vorgeschriebene Anzahl von Lichtquellen, die durch Kennzeichnungssymbole (Light-ID) festgelegt sind, die den Polygonen verliehen werden und für jedes Polygon angeben, von welchen Lichtquellen es beeinflusst wird, wobei die Anzahl der zahlreichen Lichtquellen größer ist als die vorgeschriebene Anzahl von Lichtquellen; eine zweite Vorrichtung (30) zum Schreiben, und zwar für jedes Polygon, des am Polygon angebrachten Kennzeichnungssymbols auf die Pixel, aus denen es aufgebaut ist, so dass es möglich wird, Informationen über die vorgeschriebene Anzahl von Lichtquellen, die jedem Polygon entsprechen, aus dem ersten Speicher (17, 18) auszulesen, und die Informationen in die erste Vorrichtung (32) einzuspeisen.
  9. Bildverarbeitungssystem nach Anspruch 8, worin: die vorgeschriebene Anzahl von Lichtquellen abhängig von den Entfernungen zwischen den Polygonen und den Lichtquellen ermittelt wird.
  10. Bildverarbeitungssystem nach Anspruch 8 oder 9, worin die vorgeschriebene Anzahl von Lichtquellen so beschaffen ist, dass mindestens einige Lichtquellen davon unterschiedliche Polygone überlappen.
  11. Bildverarbeitungssystem nach Anspruch 8, 9 oder 10, zudem umfassend: einen zweiten Speicher (329), in dem zahlreiche Informationen über eine Gruppe aus einer Anzahl Lichtquellen abgelegt werden, wobei die erste Vorrichtung (32) Informationen über die Gruppe aus einer Anzahl Lichtquellen, die zu dem Kennzeichnungssymbol gehören, aus dem ersten Speicher (17, 18) ausliest und die Informationen im zweiten Speicher ablegt.
  12. Bildverarbeitungssystem nach Anspruch 11, worin: die Gruppe aus einer Anzahl Lichtquellen abhängig von den Entfernungen zwischen den Polygonen und den Lichtquellen ermittelt wird.
  13. Bildverarbeitungssystem nach Anspruch 11 oder 12, worin: die Lichtquellen in der Gruppe von zahlreichen Lichtquellen so beschaffen sind, dass mindestens einige Lichtquellen davon unterschiedliche Polygone überlappen.
DE69826996T 1997-05-07 1998-03-31 Scheinwerfer-kennzeichnende erzeugungsverfahren und bildprozessor-verwendung Expired - Fee Related DE69826996T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP11597197 1997-05-07
JP11597197 1997-05-07
JP17590497 1997-07-01
JP17590497 1997-07-01
PCT/JP1998/001475 WO1998050890A1 (fr) 1997-05-07 1998-03-31 Procede d'obtention de fonction projecteur et processeur d'images utilisant ce procede

Publications (2)

Publication Number Publication Date
DE69826996D1 DE69826996D1 (de) 2004-11-18
DE69826996T2 true DE69826996T2 (de) 2005-03-10

Family

ID=26454384

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69826996T Expired - Fee Related DE69826996T2 (de) 1997-05-07 1998-03-31 Scheinwerfer-kennzeichnende erzeugungsverfahren und bildprozessor-verwendung

Country Status (9)

Country Link
US (1) US6333742B1 (de)
EP (1) EP0974935B1 (de)
JP (1) JP4060375B2 (de)
KR (1) KR100295709B1 (de)
CN (1) CN1231041A (de)
DE (1) DE69826996T2 (de)
ES (1) ES2226109T3 (de)
TW (1) TW371746B (de)
WO (1) WO1998050890A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001084405A (ja) * 1999-09-16 2001-03-30 Sega Corp ポリゴン画像形成方法及び、これを用いた画像処理装置
US6753875B2 (en) * 2001-08-03 2004-06-22 Hewlett-Packard Development Company, L.P. System and method for rendering a texture map utilizing an illumination modulation value
US7948490B2 (en) * 2003-10-22 2011-05-24 Microsoft Corporation Hardware-accelerated computation of radiance transfer coefficients in computer graphics
EP2439728A3 (de) * 2006-06-02 2013-09-04 Samsung Display Co., Ltd. Anzeigesystem mit einem hohen dynamischen Kontrast mit einem mehrfachen segmentierten Rücklicht
US8913829B2 (en) * 2012-06-05 2014-12-16 Tandent Vision Science, Inc. Automatic processing scale estimation for use in an image process
CN104361863A (zh) * 2014-11-30 2015-02-18 南京巨鲨显示科技有限公司 基于等高圆近似的亮度均匀性调节方法
GB2545226A (en) * 2015-12-09 2017-06-14 Samsung Electronics Co Ltd Determining lighting in a 3D virtual scene

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60246481A (ja) * 1984-05-21 1985-12-06 Yokogawa Hokushin Electric Corp 図形表示装置
JPH0746391B2 (ja) * 1984-09-14 1995-05-17 株式会社日立製作所 図形シエ−デイング装置
EP0193151B1 (de) * 1985-02-26 1993-11-10 Sony Corporation Verfahren zur Bildanzeige
JP2806023B2 (ja) * 1990-09-19 1998-09-30 ソニー株式会社 画像表示処理装置
JP2973573B2 (ja) * 1991-04-12 1999-11-08 ソニー株式会社 画像変換装置
GB9301661D0 (en) * 1993-01-28 1993-03-17 Philips Electronics Uk Ltd Rendering an image
JPH06301794A (ja) * 1993-04-15 1994-10-28 Matsushita Electric Ind Co Ltd 3次元画像生成表示装置
JP2763502B2 (ja) * 1994-12-01 1998-06-11 株式会社ナムコ 画像合成装置及び画像合成方法
JPH1063874A (ja) * 1996-08-13 1998-03-06 Tsuneo Ikedo スポットライティング回路

Also Published As

Publication number Publication date
JP4060375B2 (ja) 2008-03-12
WO1998050890A1 (fr) 1998-11-12
DE69826996D1 (de) 2004-11-18
US6333742B1 (en) 2001-12-25
KR100295709B1 (ko) 2001-07-28
EP0974935B1 (de) 2004-10-13
KR20000023605A (ko) 2000-04-25
CN1231041A (zh) 1999-10-06
TW371746B (en) 1999-10-11
EP0974935A4 (de) 2003-04-16
ES2226109T3 (es) 2005-03-16
EP0974935A1 (de) 2000-01-26

Similar Documents

Publication Publication Date Title
DE69839277T2 (de) Verfahren und anordnung zur ausführung von farbschlüsseln, transparenz und nebelfunktionen
DE69333508T2 (de) Vorrichtung und Verfahren zur Verarbeitung von Videosignalen
DE60300788T2 (de) Bild mit Feldtiefe aus Z-Pufferbilddaten und Alphamischung
DE19709220B4 (de) System und Verfahren für eine beschleunigte Verdeckungsauslese
DE10296401B4 (de) Verbund-Rendering von 3-D-Graphikobjekten
DE69836924T2 (de) Block- und bandorientierter durchlauf in dreidimensionaler dreieckswiedergabe
EP0984397B1 (de) Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster
DE60120474T2 (de) Rasterung von dreidimensionalen bildern
DE69636599T2 (de) Verfahren und system zur wiedergabe von grafischen objekten durch teilung in bildstücke und zusammensetzen von bildlagen zu einem wiedergabebild
DE69932059T2 (de) Trilineare texturfilterung mit optimiertem speicherzugriff
DE19646194B4 (de) Echtzeit-Wiedergabeverfahren zum wahlweisen Ausführen von Bump-Mapping- und Phong-Schattierungs-Prozessen und zugehörige Vorrichtung
DE69914355T2 (de) Bildverarbeitungsgerät
DE602004003111T2 (de) Tiefen-basiertes Antialiasing
DE69631718T2 (de) Verfahren und Gerät zur leistungsfähigen Graphikdarstellung dreidimensionaler Szenen
DE102005035012A1 (de) Hochleistungsschattierung von großen volumetrischen Daten unter Verwendung von partiellen Schirmraumableitungen
DE102005050846A1 (de) Perspektiveneditierwerkzeuge für 2-D Bilder
EP0789328A2 (de) Bildverarbeitungsverfahren zur Darstellung von spiegelnden Objekten und zugehörige Vorrichtung
EP0862141A2 (de) Bilddarstellungsverfahren und Vorrichtung zur Durchführung des Verfahrens
DE19620263B4 (de) Datensynchronisation zwischen einer Mehrzahl von asynchronen Datenaufbereitungen
DE19723063A1 (de) Verfahren zum Halten eines zusammenhängenden Texturspeichers zur Cachekohärenz
DE69826996T2 (de) Scheinwerfer-kennzeichnende erzeugungsverfahren und bildprozessor-verwendung
DE19620858B4 (de) Computergraphiksystem mit Pixel-Tiefenhinweisgebung
DE69813992T2 (de) Bilderzeugungsgerät, -Verfahren und -Programaufzeichnungsmedium, Bildkompositionsgerät, -Verfahren und -Programmaufzeichnungsmedium
DE112011105126T5 (de) Texturkartierungsvorrichtung
DE69630261T2 (de) Verfahren und Vorrichtung zum Darstellen und Abbilden von Bildern

Legal Events

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