DE69817152T2 - Computergraphisches bump-mapping-verfahren und geraet - Google Patents

Computergraphisches bump-mapping-verfahren und geraet Download PDF

Info

Publication number
DE69817152T2
DE69817152T2 DE69817152T DE69817152T DE69817152T2 DE 69817152 T2 DE69817152 T2 DE 69817152T2 DE 69817152 T DE69817152 T DE 69817152T DE 69817152 T DE69817152 T DE 69817152T DE 69817152 T2 DE69817152 T2 DE 69817152T2
Authority
DE
Germany
Prior art keywords
surface structure
point
vector
normal
angle
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
DE69817152T
Other languages
English (en)
Other versions
DE69817152D1 (de
Inventor
Wilhelmus Cornelis VAN OVERVELD
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of DE69817152D1 publication Critical patent/DE69817152D1/de
Application granted granted Critical
Publication of DE69817152T2 publication Critical patent/DE69817152T2/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

Description

  • Die vorliegende Erfindung bezieht sich auf Computergraphik und insbesondere auf das Rendern von Spiegelreflexion von Oberflächenunebenheiten ("Bumps").
  • "Bump mapping" Techniken sind bekannt, beispielsweise aus einem Artikel von Mark Peercy. John Airey und Brian Cabral, mit dem Titel: "Efficient Bump Mapping Hardware", veröffentlicht in den "Siggraph Proceedings", 1997. Dieser Artikel wird als "Peercy u. a." bezeichnet. Bei Bump Mapping betrachtet man ein vorbestimmtes, zweidimensionales Höhenfeld f(u, v), das benutzt wird zum "Schützen" von Bumps auf verschiedenen Oberflächen. Für jede derartige Oberfläche in dem dreidimensionalen Raum wird eine Abbildung definiert, die jeden Punkt "r" auf der Oberfläche einer betreffenden Stelle (u, v) in dem Höhenfeld zuordnet. Es wird vorausgesetzt, dass die Oberfläche längs der Normalen in dem Punkt "r" um einen betrag verschoben wird, der dem Wert des Höhenfeldes an der diesem Punkt "r" zugeordneten Stelle entspricht.
  • Wenn ein Computer-Graphikbild einer der artigen Oberfläche erzeugt wird, führt dies zu Variationen in Reflexionen an der Oberfläche. Für einen realistischen Effekt ist es sehr erwünscht, Spiegelreflexionen (spiegelartige Reflexionen) von den Bumps zu berücksichtigen. Dies führt zu scharf definierten Intensitätsmaxima ("Highlights").
  • Der Grundgedanke von Bump Mapping ist, dass nur der Effekt von Bumps auf örtliche Oberflächenorientierung benutzt wird zum Berechnendes Äußern der Oberfläche, insofern dies eine diffuse und/oder Spiegelreflexion an der Oberfläche beeinträchtigt. Änderungen in der Positionen in dem Bild, wo Punkte auf der Oberfläche dargestellt sind, werden nicht erklärt.
  • Die Oberflächenorientierung wird durch die Normale N auf der Oberfläche bei jedem Punkt "r" auf der Oberfläche dargestellt. Die Normale N, kann, da sie durch die Bumps gestört wird, zum berechnen von Spiegelreflexion benutzt werden. Diese Reflexion ist maximal, wenn die Normale N mit dem Halbwinkelvektor H zusammenfällt (der Halbwinkelvektor H ist der Einheitsvektor, der den Winkel zwischen der Lichtquellenrichtung an dem Punkt "r" und der Richtung, woraus der Punkt "r" gesehen wird, halbiert). Je weiter die Normale N von dem Halbwinkelvektor H divergiert, umso mehr verringert die Spiegelreflexion. Dies kann unter Anwendung des durchaus bekannten Phong-Modells modelliert werden, indem das Skalierungsprodukt aus dem Halbwinkelvektor H und der gestörten Normalen berechnet wird und indem der Exponent zu der Potenz B (B > 1) des Ergebnisses genommen wird.
  • Die Berechnung der gestörten Normalen soll sehr sorgfältig durchgeführt werden. Allzu drastische Annäherungen führen leicht zu Artefakten, die durch den menschlichen Zuschauer unterschieden werden können. So ist es beispielsweise üblich in Computergraphiken der Oberfläche durch einen Satz von berührenden flachen Polygonen anzunähern. Wenn die betreffenden Normalen zu diesen Polygonen als Starpunkt für die Berechnung verwendet wurden, würde der Zuschauer leicht die Polygone unterscheiden. Deswegen wird die Normale kontinuierlich über die Polygone interpoliert.
  • Auf herkömmliche An und Weise wird die gestörte Normale durch Berechnung der Koordinaten einer Anzahl Punkte auf der Oberfläche als verschoben entsprechend dem Höhenfeld bestimmt und durch Berechnung der Normalen zu einer Ebene, durch solche Punkte bestimmt. Es hat sich herausgestellt, dass die Artefakte vermeidet aber dieses – Verfahren ist rechnerisch sehr aufwendig.
  • Es ist ebenfalls möglich, die Normale örtlich als eine Funktion des Punktes "r" zu berechnen, wobei die räumlichen Hergeleiteten des Höhenfeldes f(u, v) und die Abbildung verwendet werden. Peercy u. a. zeigen, dass die gestörte Normale an dem Punkt "r" etwa dadurch erhalten werden kann, dass ein Störungsvektor in einer Richtung senkrecht zu der nicht gestörten Normalen hinzugefügt wird. Dieser Störungsvektor an einem Punkt "r" ist eine Funktion des räumlichen Hergeleiteten des Höhenfeldes an der entsprechenden Stelle in dem Höhenfeld und die räumliche Hergeleitete der Abbildung, durch die das Höhenfeld auf die Oberfläche an dem Punkt "r" projiziert wird. Es ist aber ein wesentlichen rechnerischer Aufwand erforderlich um zu ermitteln, wie dieser Perturbationsvektor für eine bestimmte positionsabhängige Abbildung funktioniert.
  • Es ist erwünscht, diese Berechnung zu vereinfachen, aber auch hier führen Annäherungen, gemeint zur Vereinfachung der Berechnung des Störungsvektors, leicht zu wahrnehmbaren Artefakten. So ist es beispielsweise bekannt, dass es zu Artefakten kommt, wenn man jedes Polygon des Satzes von Polygonen nimmt, das zum Annähern der Oberfläche verwendet wird, und die Beziehung zwischen den räumlichen Hergeleiteten des Höhenfeldes und dem Störungsvektor in jedem Polygon linearisiert.
  • Peercy u. a. schlagen vor, Artefakte zu vermeiden und den rechnerischen Aufwand dadurch zu reduzieren, dass der Störungsvektor in einem tangierenden Koordinatensystem der Oberfläche berechnet wird. In diesem Koordinatensystem ist die nicht gestörte Normale positionsunabhängig und die Richtung des Störungsvektors ist abhängig von der räumlichen Hergeleiteten der Abbildung. Um das Skalierungsprodukt aus der gestörten Normalen und dem Halbwinkelvektor H zu berechnen, wie dies für die Spiegelreflexion erforderlich ist, muss aber der Halbwinkelvektor H in das tangierende Koordinatensystem transformiert werden. Diese Transformation von H ist abhängig von den räumlichen Hergeleiteten an der Abbildung und ist rechnerisch aufwendig.
  • Auch hier führt eine Annäherung, wobei ein einziger betreffender H für jedes Polygon verwendet wird, zu wahrnehmbaren Artefakten. Deswegen schlägt Peercy u. a. vor, die Bestimmung von H durch Berechnung der Transformation von H für eine begrenzte Anzahl Punkte auf der Oberfläche zu vereinfachen und H zwischen diese Punkte zu interpolieren. Die Interpolation von H und der übrigen Transformationen von H erfordern dennoch einen wesentlichen Betrag an rechnerischem Aufwand.
  • Es ist nun u. a. eine Aufgabe der vorliegenden Erfindung diesen betrag an rechnerischem Aufwand zu reduzieren.
  • Das Verfahren nach der vorliegenden Erfindung weist das Kennzeichen auf, dass Die Richtung, in der die Normale in verschiedenen Oberflächenstücken gestört wird, unter Ansteuerung derselben Stelle in der Bump-Abbildung die gleiche Richtung ist, ungeachtet der Form und der Orientierung jedes der Oberflächenstücke. Auf diese Weise wird der rechnerische Aufwand, erforderlich zum Transformieren der Störungsvektoren vermieden. Hervorhebungseffekte, verursacht durch die Form des nicht gestörten Oberflächenstücks werden einwandfrei gerendert, aber die Spiegelreflexionsmuster (Muster von Hervorhebungen), verursacht durch die Bump-Abbildung von verschiedenen Oberflächenstücken werden nicht mit denselben Höhenvariationen übereinstimmen. Im Wesentlichen ist es sogar möglich, dass es keine mögliche Höhenvariation gibt, die das Muster verursacht (dies wird ein inkonsistentes Muster genannt). Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass Zuschauer Muster von Hervorhebungen durch Spiegelreflexion auf einer rauhen Oberfläche als realistisch erfahren, ohne dass sie empfindlich sind für die Richtung und die Konsistenz solcher Muster von Hervorhebungen über die Oberfläche. Diese Intensität ist wahrscheinlich funktionell um Menschen zu helfen, Oberflächenformen zu verse hen, und zwar weitgehend unabhängig von der Richtung der Lichtquelle.
  • Außerdem hat es sich herausgestellt, dass der Zuschauer eine animierte Sequenz von Bildern als realistisch erfährt, (zeitveränderliche Position und Orientierung der Oberflächenstücke), die alle die gleiche Richtung von Störungen für ein zeitveränderliches Oberflächenstück benutzen. Folglich werden keine Artefakte erfahren, sogar in Animation.
  • 1 zeigt einen Schnitt durch eine Geometrie eines Oberflächenstücks,
  • 2 zeigt ein Modell eines Oberflächenstücks,
  • 3 zeigt ein Flussdiagramm zum Berechnen eines Bildes,
  • 4 zeigt eine Anordnung zum Berechnen eines Bildes.
  • Die Grundlagen der Spiegelreflexion und der Bump-Abbildung in Computergraphiken werden nachstehend näher erläutert.
  • 1 zeigt eine Geometrie zur Erläuterung der Berechnung von Reflexion an einem Oberflächenstück S mit einem Punkt r, durchgeschnitten über eine Schnittfläche, die einen Einheitsvektor V längs einer Sichtlinie von einem Gesichtspunkt zu dem Punkt r enthält, sowie einen Einheitsvektor L längs einer Lichtlinie von einer Lichtquelle zu dem Punkt r. 1 zeigt ebenfalls die Normale N auf dem Oberflächenstück N am Punkt r, projiziert auf die Querschnittsebene. Weiterhin ist ein Halbwinkelvektor H beim Punkt r dargestellt, der den Winkel zwischen der Sichtlinie und der Lichtlinie halbiert und eine einheitliche Länge hat.
  • Ein oft verwendeter Modellausdruck für das Licht, das an dem Oberflächenstück am Punkt r reflektiert wird, ist eine Summe zweier Terme.
  • Pd*(N, L) + ps*(N, H)β
  • Der erste Term gilt für diffuse Reflexion. Er enthält das Produkt aus einem Faktor pd und dem Skalierungsprodukt (N, L) aus der Normalen und dem Einheitsvektor L in der Richtung der Lichtlinie (Skalierungsprodukt, beispielsweise berechenbar als die Summe der Produkte aus den Vektorkomponenten der zwei Vektoren). Der Faktor pd ist die diffuse Farbe, üblicherweise ein Farbvektor mit drei Farbanteilen, die je ein Produkt aus einem Oberflächenfarbanteil und einem Lichtquellenfarbanteil sind.
  • Der zweite Term gilt für Spiegelreflexion entsprechend dem Phong-Modell. Der zweite Term enthält das Produkt aus einem Faktor ps und einer Potenz β des Skalie rungsproduktes (N, H) der Normalen N und des Halbwinkelvektors H. Der Faktor ps ist die Spiegelfarbe, üblicherweise ein Farbvektor; typischerweise der Farbvektor der Lichtquelle.
  • Im Allgemeinen wird Spiegelreflexion an einem Punkt r maximal sein, wenn die Normale N in der "Spiegelrichtung" geht: definiert, so dass die Lichtlinie durch einen flachen Spiegel mit der Normalen N des Oberflächenstücks S in eine Sichtlinie reflektiert wird. Spiegelreflexion wird schnell abnehmen, je nachdem die Normale N von der Spiegelrichtung abnimmt. Diese Winkelabhängigkeit wird beschrieben durch die Potenz ß des Skalierungsproduktes (N, H). Wenn die Spiegelbedingung erfüllt wird, fallen N und H zusammen. In dem Fall ist (N, H) gleich 1 und folglich ist (N, H)β ebenfalls gleich 1. β ist viel größer als 1. Ja nachdem die Sichtlinie und die Lichtlinie gegenüber der Oberfläche weiter von der Spiegelbedingung abweichen, wird (N, H) weiter von 1 absinken und (N, H)β wird schnell abnehmen.
  • Auf diese Weise wird der zweite Term zu "Hervorhebungen" führen: scharf definierte örtliche Reflexionsmaxima in der Nähe von Punkten, wo das Oberflächenstück S derart orientiert ist, dass die Normale N in der Spiegelrichtung H zeigt.
  • 2 zeigt ein Modell eines Oberflächenstücks, das für Computergraphik benutzt wird. Das Oberflächenstück wird modelliert unter Verwendung zweier flacher Dreiecke 20, 22, die zwei Ecken und den Schenkel zwischen diese zwei Ecken gemeinsam haben. Das Modell des Oberflächenstücks enthält ebenfalls Vektoren 23, 24, 25, 26, definiert für die Ecken der Dreiecke 20, 22. Das Modell nach 2 benutzt zwei Dreiecke als vereinfachtes Beispiel. In der Praxis wird ein Modell viel mehr Dreiecke enthalten, die miteinander verbunden sind zum Bilden eines Netzwerkes, das einer gekrümmten Oberfläche annähert, oder mehr im Allgemeinen Polygonen annähert.
  • Wenn ein Computergraphikbild des Oberflächenstücks aus 2 berechnet wird, definiert man eine Gesichtspunktposition (oder Richtung) gegenüber den Dreiecken und eine oder mehrere Lichtquellenpositionen (oder Richtungen) gegenüber den Dreiecken. Die flachen Dreiecke 20, 22 werden benutzt um zu ermitteln, welcher Punkt r in dem Modell an welcher Stelle in dem Computergraphikbild sichtbar ist. Daraufhin wird der Lichtbeitrag dieses Punktes r zu dem Bild ermittelt, und zwar unter Verwendung der Summe der diffusen und der Spiegelreflexion.
  • Zum Ermitteln des Lichtbeitrags ist es notwendig, den Normalvektor N an dem Punkt r zu ermitteln, Zum Ermitteln der Normalen benutzt man nicht die Normale auf dem flachen Dreieck 20, wozu der Punkt r gehört, sondern einen gewichteten Mittelwert der Vektoren 23, 24, 25, definiert für die Ecken des Dreiecks 20. Das dem Vektor 23, 24, 25 zugeordnete Gewicht, definiert für eine Ecke nimmt als eine Funktion des Abstandes von der Ecke 23, 24, 25 von 1 an der Ecke zu Null an dem Schenkel des Dreiecks 20 gegenüber der Ecke 23, 24, 25 ab. Auf diese Weise wird eine sich ständig ändernde Normale aus dem Oberflächenstück definiert, und zwar durch Interpolation zwischen den Vektoren 23, 24, 25 an den Ecken.
  • Der Einheitsvektor L in der Richtung der Lichtlinie und der Halbwinkelvektor H werden ebenfalls berechnet. Es wird oft vorausgesetzt, dass diese Vektoren über das Oberflächenstück konstant sind (was einer Lichtquelle und einem Gesichtspunkt auf unendlich entspricht), aber sie könnten ebenfalls an den Ecken berechnet und über die Dreiecke interpoliert werden.
  • Ein Oberflächenteil in jeder beliebigen Form kann auf die oben erwähnte Art und Weise modelliert werden. Dies würde aber einen riesigen rechnerischen Aufwand bedeuten, wenn kleine Einzelheiten auf dem Oberflächenstück eingeschlossen werden sollen. Dieser Aufwand kann dadurch reduziert werden, dass Bump Mapping angewandt wird.
  • Bei Bump Mapping betrachtet man eine Funktion f(u, v) von zwei Texturkoordinaten u, v. Diese Funktion wird auf dem Oberflächengebiet abgebildet, d. h. es wird eine Abbildung definiert, die jedem Punkt r auf dem Oberflächengebiet Texturkoordinaten u(r) zuordnet. (Umgekehrt bedeutet dies, dass wenigstens örtlich r als eine Funktion von u und v betrachtet werden kann: r(u, v)). Vorzugsweise wird eine separate lineare Abbildung für jedes Dreieck oder Polygon 20, 22 verwendet, das zum Konstruieren des Modells verwendet wird. Diese linearen Abbildungen werden derart selektiert, dass zu jedem Zeitpunkt, wo zwei der Dreiecke 20, 22 einen Schenkel sich teilen, die betreffenden Abbildungen dieser zwei Dreiecke dieselbe u, v längs dieses Schenkels ergeben. Auf diese Art und Weise wird die Abbildung kontinuierlich über das Oberflächenteil sein.
  • Die Funktion f definiert eine Verlagerung d der Oberfläche an dem Punkt r längs der Normalen an diesem Punkt: D(r) = N(r)*f(u(r), v(r)).
  • Wenn alle Punkte auf dem Oberflächenteil durch ihre Verlagerung d verlagert werden und die Funktion f von Punkt zu Punkt variiert, wird dies zu einer Störung der Normalen an jedem Punkt r führen. Die Idee von Bump Mapping ist, dass diese gestörte Normale benutzt wird zur Berechnung des reflektierten Lichtes statt der nicht gestörten interpolierten Normale. Sonst bleibt die Berechnung die gleiche: die Stelle in dem Bild wird noch immer durch die flachen Dreiecke bestimmt.
  • Die gestörte Normale kann beispielsweise dadurch berechnet werden, dass die Verlagerung d an einer Anzahl Punkte r berechnet wird und dass eine Oberfläche über die verlagerten Punkte gepasst wird, wobei die Normale der gepassten Oberfläche benutzt wird der Normalen anzunähern.
  • Eine andere Art und Weise ist, die Normale aus den räumlichen Herleitungen der Abbildung und der Funktion f(u, v) zu berechnen. Es hat sich herausgestellt, dass in einer Annäherung für geringfügige räumliche Herleitungen fu = ∂f(u, v)/∂u und fv = ∂f(u, v)/∂v oder f(u, v), die gestörte Normale wie folgt ausgedrückt werden kann: α*(Pu × Pv – fu*(Pv × N) + fv(Pu × N)) "x" bezeichnet das Vektorprodukt aus zwei Vektoren. In dieser Formel ist a ein Normalisierungsfaktor, selektiert um zu gewährleisten, dass die Länge der gestörten Normalen 1 ist; dieser Normalisierungsfaktor kann dadurch berechnet werden, dass die Länge des Terms zwischen Drain-Elektrode Klammers in der Formel invertiert wird. Der zweite und der dritte Term innerhalb der Klammern erzeugt die Störung der Normalen, diese Terme sind proportional zu fu und fv, den partiellen räumlichen Hergeleiteten der Funktion f gegnüber den Texturkoordinaten.
  • Pu und Pv werden als die Hergeleiteten des Punktes r gegenüber den Texturkoordinaten u, v definiert: Pu = ∂r(u, v)/∂u und Pv = ∂(u, v)/∂v
  • In der Praxis wird eine lineare Abbildung für jedes Dreieck 20, 22 in dem Modell verwendet. Die räumlichen Hergeleiteten einer derartigen Abbildung sind positionsunabhängig für jedes Dreieck 20, 22, aber weiche von Dreieck zu Dreieck 20, 22 ab, Es hat sich herausgestellt, dass dies zu sichtbaren Artefakten führt. Um diese Artefakte zu vermeiden, kann man Pu und Pv (oder N × Pu und N × Pv) wie N interpolieren: berechne die Werte der räumlichen Hergeleiteten Pu und Pv (oder die Vektorprodukte N × Pu und N × Pv) an den Ecken des Dreiecks 20, 22 und interpoliere sie in dem Innern der Dreiecke 20, 22.
  • Zum Erzeugen von Computergraphikbildern kann man fu und fv im Voraus bestimmen, ohne dass man die Form und die Orientierung des bestimmten Oberflächenstücks kennt, das auf die Bump-Abbildung projiziert wird.
  • Um die gestörte Normale zur Bestimmung der Spiegelreflexion an einem bestimmten Oberflächenstück zu berechnen, soll man auch Pu und Pv berechnen und eine Berechnung machen, wobei die räumlichen Hergeleiteten der spezifischen Abbildungsfunktion für dieses spezielle Oberflächenstück an jedem Punkt auf dem Oberflächenstück verwendet wird. Dies ist weil die Formel für die Störung der Normalen von den räumlichen Hergeleiteten der Funktion f und den räumlichen Hergeleiteten der Abbildung Pu, Pv abhängig ist.
  • Dies erfordert einen wesentlichen rechnerischen Aufwand und es ist erwünscht, eine Annäherung zu finden, die diesen Aufwand verringert, ohne dass dabei eine Degradation des visuellen Eindrucks des Computergraphikbildes für den Zuschauer eingeführt wird.
  • Eine derartige Reduktion kann durch Verwendung einer Störung "b" der Normalen verwirklicht werden, die aus einer Funktion f für ein Oberflächenstück als eine Störung der Normalen anderer Oberflächenstücke berechnet wird, ungeachtet der Form dieser Oberflächen und der verwendeten Abbildungen zum Projizieren der Bump-Abbildung auf diese Oberflächenstücke. D. h. eine Abbildung wird dennoch für jedes andere Oberflächenteil definiert, damit definiert wird, welche Stelle (u, v) mit irgendeinem Punkt r auf dem Oberflächengebiet assoziiert ist, aber die Störung b, die mit dieser Stelle (u, v) assoziiert ist, wird der nicht gestörten Normalen N hinzugefügt, ohne dass die verschiedenen räumlichen Hergeleiteten der verschiedenen Oberflächenstücke berücksichtigt werden: Npert = γ*(N + b(u, v))(γ ist ein Normalisierungsfaktor um zu gewährleisten, dass die Länge |Npert| der gestörten Normalen dem Wert 1 entspricht).
  • Selbstverständlich werden die Spiegelreflexionen (Hervorhebungen) erzeugt von dieser Annäherung meistens nicht dem Verlagerungsmuster f(u, v) entsprechen. Im Wesentlichen wird sogar nicht länger gewährleistet, dass diese Hervorhebungen einer physikalisch möglichen Oberfläche entsprechen, überall durch dieselbe Lichtquelle beleuchtet.
  • Es hat sich aber herausgestellt, dass das menschliche visuelle System dies kaum, wenn überhaupt, detektiert. Man kann über den Grund dafür diskutieren. Das menschliche visuelle System benutzt die Hervorhebungen als "Stichworte" zum Erhalten eines Eindrucks der Form, aber wahrscheinlich ist die Art und Weise, wie das menschliche visuelle System dies macht, mehr oder weniger unveränderlich für die Richtung der Be leuchtung und die Konsistenz dieser Richtung. Dies wäre eine Erklärung dafür, warum eine ungefähre Spiegelreflexion nicht als unrealistisch erfahren wird.
  • Vorzugsweise wird ein zweidimensionaler Störungsvektor b(u, v) verwendet, beispielsweise der Gradient (fu, fv) einer zweidimensionalen Funktion f(u, v) mit beispielsweise nur einem x- und einem y-Anteil aber ohne einen z-Anteil (oder mit einem Null z-Anteil: bx = fu, by = fv, bz = 0)). Dies reduziert den Betrag an rechnerischem Aufwand weiter, erforderlich zum Berechnen der gestörten Normalen, weil weniger Anteile der Normalen berechnet werden müssen.
  • Die Verwendung aber einer zweidimensionalen Normalen kann zu Anomalien führen, wenn die nicht gestörte Normale keinen Anteil hat, oder nur einen sehr geringfügigen Anteil, senkrecht zu dem Störungsvektor b (keinen z-Anteil falls b nur x, y Anteile hat).
  • Dieses Problem kann weitgehend dadurch vermieden werden, dass die Störung in "Schirmkoordinaten" angewandt wird, wobei die Anteile des Störungsvektors sich parallel zu der Schirmebene erstrecken, auf die das Bild des Oberflächenstücks projiziert wird zum Erhalten eines Computergraphikbildes. Auf diese Weise tritt die Situation, wo die nicht gestörte Normale keinen Anteil senkrecht zu dem Störungsvektor hat, nur längs der Umrisse auf (Positionen, wo die Lichtlinie eine Tangente zu dem Oberflächenstück ist), wo die Spiegelreflexion für den visuellen Eindruck sowieso nicht wichtig ist.
  • Selbstverständlich kann man befürchten, dass die Verwendung derselben b, ungeachtet der Orientierung einer Oberfläche zu Artefakten in der Animation führen könnte. In dem Fall sind Versionen derselben darunter liegenden Oberflächenform in aufeinander folgenden Animationsframes in einer Sequenz verschiedener Orientierungen dargestellt. Die Normalen werden für diese Orientierungen berechnet und in jedem Frame wird der gleiche Störungsvektor b der nicht gestörten Normalen an einem Punkt r des Oberflächenstücks hinzugefügt, ungeachtet, wie diese Normale durch die verschiedenen Orientierungen des Oberflächenstücks gedreht wird, d. h. nicht gedreht, wenn das Oberflächenstück gedreht wird. Die gestörte Normale wird zum Berechnen der Spiegelreflexion verwendet.
  • Es hat sich herausgestellt, dass die Verwendung desselben Störungsvektors b keine störenden Artefakte verursacht, sogar nicht in einer derartigen Animation. Im Gegensatz dazu macht die reduzierte Zeit zum Zuschauen einzelner Frames das Bild mehr überzeugend.
  • Die Länge der gestörten Normalen wird vorzugsweise auf 1 normalisiert. Dies ist besonders wichtig, wenn die Spiegelreflexion unter Verwendung einer Potenz des Skalierungsproduktes aus der gestörten Normalen und dem Halbwinkelvektor H berechnet wird, weil eine derartige Berechnung voraussetzt, dass das Skalierungsprodukt höchstens gleich 1 sein kann (wobei es ein Skalierungsprodukt aus Vektoren mit einheitlicher Länge ist). Wenn das Skalierungsprodukt größer als 1 werden würde, würde eine hohe Leistung zu Spiegelreflexionen mit einer unphysikalisch hohen Intensität führen.
  • Die Normalisierung kann beispielsweise dadurch verwirklicht werden, dass das Skalierungsprodukt aus dem Halbwinkelvektor H und der Summe N + b der nicht gestörten Normalen und dem Störungsvektor b durch die Länge der Summe vor der Potenzierung β geteilt wird. Dies erfordert aber einen wesentlichen rechnerischen Aufwand, weil eine derartige Berechnung drei Multiplikationen, eine Quadrierung und eine Teilung für jedes Pixel erfordert. Deswegen wird dieser Normalisierung vorzugsweise beispielsweise dadurch angenähert, dass eine stückweise Polynomannäherung angewandt wird für 1/Quadratwurzel, oder dadurch, dass Folgendes geschrieben wird: [(N + b, H)/sqrt((N + b, N + b))]β – 2β(log(N+b,H)–0,5*log((N+b,N+b)))und unter durch Anwendung einer stückweisen linearen Annäherung von "log x" und " 2x". Es hat sich herausgestellt, dass wenn die Größe der Stücke, in denen diese Funktionen linear angenähert werden, so klein ist, dass der Fehler kleiner ist als 4%, die beiden Annäherungen perzeptuell akzeptierbare Bilder liefert.
  • 3 zeigt ein Flussdiagramm zum Implementieren des Verfahrens. Das Flussdiagramm enthält einen Ausgangsschritt 30, in dem ein Modell eines Szene konstruiert oder aus einem Speicher geladen wird, wobei das Modell eine Beschreibung eines Oberflächenstücks enthält, beispielsweise in Termen von Dreiecken, Normalen an den Ecken der Dreiecke und Abbildungen von Punkten auf den Dreiecken auf Bump-Abbildungen. Weiterhin wird die Position und die An der Lichtquellen beschrieben und die Position und die Attitüde des Gesichtspunktes. Wenn der Gesichtspunkt und die Lichtquelle(n) weit weg sind, wird auch der Halbwinkelvektor H bestimmt, in einem Sehraum-Koordinatensystem, d. h. abhängig von der Schauattitüde. Sonst wird der Halbwinkelvektor auf Pixelbases in späteren Schritten bestimmt, ebenfalls in dem Sehraum-Koordinatensystem.
  • In einem zweiten Schritt 31 wird für die Pixel eines Bildes bestimmt, welches Oberflächengebiet an jedem bestimmten Pixel entsprechend dem Modell sichtbar ist. Daraufhin werden die bestimmten Pixel einzeln betrachtet, beispielsweise längs Abtastlinien. In einem dritten Schritt 32 bestimmt man die Texturkoordinaten, u, v des Punktes r, der bei einem bestimmten Pixel und der Normalen N an dem Punkt in dem Sehraum-Koordinatensystem sichtbar ist. Diese Bestimmung erfolgt beispielsweise mit Hilfe von Vorwärtsdifferenzen von einem vorhergehenden Pixel.
  • In einem vierten Schritt 33 wird ein Störungsvektor b entsprechend den Texturkoordinaten u, v aus einem Speicher ausgelesen und der Normalen hinzugefügt (anstelle von b können Höhen f ausgelesen werden und für eine Anzahl benachbarter u, v Werte können die Bestandteile von b als räumliche Differenzen in diesen Höhen berechnet werden). Der Störungsvektor b wird nicht in das Sehraumkoordinatensystem transformiert: derselbe Störungsvektor b wird verwendet, ungeachtet der Form des Oberflächenstücks, der Orientierung des Oberflächenstücks an dem Punkt r und der Abbildung von Punkten auf Texturkoordinaten, sogar obschon der normale Vektor N, festgestellt für den Punkt r selbstverständlich abhängig ist von der Orientierung des Oberflächenstücks bei dem Punkt r.
  • In einem fünften Schritt 34 wird ein Skalierungsprodukt (H, N + b) aus dem Halbwinkelvektor H und der Summe der Normalen und des Störungsvektors bestimmt. Dieses Skalierungsprodukt wird normalisiert zum Ausgleichen von Abweichungen der Länge von N + b von Eins, und die Potenz ß des Skalierungsproduktes wird genommen. Diese Potenz wird benutzt zum Berechnen des Beitrags der Spiegelreflexion zu dem Bild von Licht, herrührend von dem Oberflächenstück an dem Punkt r.
  • In einem sechsten Schritt 35 wird getestet, ob alle Pixel eines Oberflächenstücks (wenigstens auf einer einzigen Abtastzeile) verarbeitet worden sind. Sollte dies nicht der Fall sein, so wird das Verfahren vom Schritt 32 an wiederholt. Sonst wird in einem siebenten Schritt 36 getestet, ob alle Dreiecke behandelt worden sind. Sollt dies der Fall sein, so wird das Verfahren beendet, sonst wird das Verfahren für ein neues Dreieck vom zweiten Schritt 31 an wiederholt.
  • 4 zeigt eine Anordnung zum berechnen eines graphischen Bildes. Diese Anordnung umfasst eine Modell/Dreieckverarbeitungseinheit 40, eine Pixelverarbeitungseinheit 42, einen Bump Map Speicher 44 und eine Wiedergabeeinheit 46. Im Betrieb ermittelt die Modell/Dreieckverarbeitungseinheit 40 das Modell usw. Sie ermittelt ebenfalls, welche Dreiecke bei welchen Pixeln sichtbar sind. Diese Information wird der Pixelverarbeitungseinheit 42 mitgeteilt, welche die nicht gestörte Normale N in Sehraumkoordinaten und Texturkoordinaten, die mit dem Punkt r, der bei dem Pixel sichtbar ist, assoziiert ist, ermittelt.
  • Die Texturkoordinaten werden benutzt zum Adressieren des Bump Map Speichers 44, damit der Störungsvektor b zurückgewonnen werden kann. Dieser Vektor wird dann der nicht gestörten Normalen zugefügt, ungeachtet der Orientierung der Normalen und der verwendeten Abbildung zum Ermitteln der Texturkoordinaten. Die Summe der nicht gestörten Normalen N und der Störungsvektor b wird verwendet zum Berechnen der Spiegelreflexion. Das Ergebnis wird der Wiedergabeeinheit 46 zugeführt zum Wiedergeben für einen Zuschauer. Es kann ebenfalls in einer (nicht dargestellten) Speichereinheit gespeichert werden, und zwar zur späteren Wiedergabe an einer Wiedergabeeinheit.
  • Die Modell/Dreieckverarbeitungseinheit 40 kann ebenfalls Animation verarbeiten, indem die Berechnung einer Folge von Bildframes gestartet wird, wobei die gleichen Oberflächenstücke gezeigt werden, aber mit einer variierenden Orientierung und/oder Position oder von mehreren Gesichtspunkten aus.

Claims (5)

  1. Verfahren zum Erzeugen eines oder mehrerer computergraphischen Bilder unter Verwendung einer Bump Map angebracht auf unterschiedlich gekrümmten Oberflächenstrukturen, wobei dieses Verfahren für jede Oberflächenstruktur Folgendes umfasst: – das Anbringen einer Mapping u(r), v(r), das Zuordnen einer Stelle u, v in der Bump Map zu jedem Punkt r auf der Oberflächenstruktur; – das Berechnen eines Halbwinkelvektors H, der einen Winkel zwischen einer Sichtlinie V auf die Oberflächenstruktur und einer Lichtlinie L auf die Oberflächenstruktur halbiert, wobei der Halbwinkelvektor H in einem Koordinatensystem berechnet wird, das für alle Punkte auf der Oberflächenstruktur dasselbe ist; – das für einen Punkt r auf der Oberflächenstruktur Berechnen einer Normalen N auf der Oberflächenstruktur in dem genannten Koordinatensystem, und zwar in Abhängigkeit von einer Form der Oberflächenstruktur; – das Berechnen eines Skalierungsproduktes aus dem Halbwinkelvektor H und einem Vektor Npert, erhalten durch Störung der Normalen N mit einem Vektor b(u, v), ausschließlich definiert durch die Bump Map an der Stelle u, v, zugeordnet zu dem genannten Punkt r, wobei der durch die Bump Map definierte Vektor b(u, v) für jede verschiedene Oberflächenstruktur, wo die genannte Stelle u, v benutzt wird, derselbe ist, ungeachtet der Mapping und der Form, der Orientierung und der räumlichen Abgeleiteten der Oberflächenstruktur, – das Berechnen einer Spiegelreflexion von dem Oberflächenstruktur an dem genannten Punkt r aus dem Skalierungsprodukt (Npert, H).
  2. Verfahren nach Anspruch 1, wobei das Koordinatensystem ein Schirm-Koordinatensystem ist, wobei der Vektor b(u, v) parallel zu einer Schirmebene senkrecht zu einer Sichtlinie zu einer Mitte des Bildes liegt, und zwar für jeden Punkt auf der Oberflächenstruktur, ungeachtet einer Richtung der Normalen zu diesem Punkt.
  3. Verfahren nach Anspruch 1 mit der Normalisierung des Skalierungsproduk tes zum Kompensieren von Abweichungen von der Einheitslänge einer gestörten Normalen, erhalten durch die genannte Störung der Normalen.
  4. Mit dem Computer auslesbares Medium, das ein Computerprogramm speichert, das ein Verfahren nach 1 implementiert und vorgesehen ist um es zu ermöglichen, dass ein Computer das Verfahren durchführt.
  5. Anordnung zum Erzeugen eines oder mehrerer Computergraphiken, wobei eine Bump Map verwendet wird, die auf verschiedenen gekrümmten Oberflächenstrukturen abgebildet ist, wobei die Anordnung die nachfolghenden Elemente umfasst: – Mapping-Mittel (4244) zum Schaffen einer Mapping u(r), v(r), die eine Stelle u, v in der Bump Map jedem Punkt r auf jeder Oberflächenstruktur zuordnet; – Halbwinkelberechnungsmittel (4042) zum Berechnen eines Halbwinkelvektors H, der einen Winkel zwischen einer Sichtlinie V auf die Oberflächenstruktur und einer Lichtlinie L auf die Oberflächenstruktur halbiert, wobei der Halbwinkelvektor H in einem Koordinatensystem berechnet wird, das für alle Punkte auf der Oberflächenstruktur dasselbe ist; – nicht gestörte normale Rechenmittel (42) um für einen Punkt r auf der Oberflächenstruktur eine Normale N auf der bestimmten Oberflächenstruktur in dem genannten Koordinatensystem zu berechnen, und zwar in Abhängigkeit von einer Form der Oberflächenstruktur; – Skalierungsproduktberechnungsmittel (42) zum Berechnen eines Skalierungsproduktes aus dem Halbwinkelvektor H und einem Vektor Npert, erhalten durch Störung der Normalen N mit einem Vektor b(u, v), ausschließlich definiert durch die Bump Map an der Stelle u, v, zugeordnet zu dem genannten Punkt r, wobei der durch die Bump Map definierte Vektor b(u, v) für jede verschiedene Oberflächenstruktur, wo die genannte Stelle u, v benutzt wird, derselbe ist, ungeachtet der Mapping und der Form, der Orientierung und der räumlichen Abgeleiteten der Oberflächenstruktur, – Mittel zum Berechnen (42) einer Spiegelreflexion von dem Oberflächenstruktur an dem genannten Punkt r aus dem Skalierungsprodukt (Npert, H).
DE69817152T 1997-11-14 1998-10-19 Computergraphisches bump-mapping-verfahren und geraet Expired - Fee Related DE69817152T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP97203545 1997-11-14
EP97203545 1997-11-14
PCT/IB1998/001649 WO1999026201A1 (en) 1997-11-14 1998-10-19 Computer graphics bump mapping method and device

Publications (2)

Publication Number Publication Date
DE69817152D1 DE69817152D1 (de) 2003-09-18
DE69817152T2 true DE69817152T2 (de) 2004-06-09

Family

ID=8228922

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69817152T Expired - Fee Related DE69817152T2 (de) 1997-11-14 1998-10-19 Computergraphisches bump-mapping-verfahren und geraet

Country Status (6)

Country Link
US (1) US6407744B1 (de)
EP (1) EP0953187B1 (de)
JP (1) JP2001509934A (de)
DE (1) DE69817152T2 (de)
TW (1) TW432337B (de)
WO (1) WO1999026201A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1059612A1 (de) * 1999-06-08 2000-12-13 Sulzer Markets and Technology AG Verfahren zum Visualisieren eines räumlich aufgelösten Datensatzes
US6606089B1 (en) 1999-06-08 2003-08-12 Sulzer Market And Technology Ag Method for visualizing a spatially resolved data set
JP3502024B2 (ja) 1999-09-10 2004-03-02 株式会社ソニー・コンピュータエンタテインメント 画像処理装置、記録媒体および画像処理方法
US6674918B1 (en) * 2000-02-16 2004-01-06 Microsoft Corporation Image synthesis by illuminating a virtual deviation-mapped surface
KR100420859B1 (ko) * 2001-08-11 2004-03-02 학교법인연세대학교 범프 매핑 처리 장치 및 방법
JP2004252603A (ja) * 2003-02-18 2004-09-09 Canon Inc 三次元データ処理方法
US7973705B2 (en) * 2009-07-17 2011-07-05 Garmin Switzerland Gmbh Marine bump map display
US9965893B2 (en) * 2013-06-25 2018-05-08 Google Llc. Curvature-driven normal interpolation for shading applications
US10140751B2 (en) * 2013-08-08 2018-11-27 Imagination Technologies Limited Normal offset smoothing
US9754406B2 (en) 2015-12-28 2017-09-05 Volkswagon Ag Multiple light source simulation in computer graphics

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5369737A (en) * 1988-03-21 1994-11-29 Digital Equipment Corporation Normalization of vectors associated with a display pixels of computer generated images
US5253339A (en) * 1990-07-26 1993-10-12 Sun Microsystems, Inc. Method and apparatus for adaptive Phong shading
JP2682559B2 (ja) * 1992-09-30 1997-11-26 インターナショナル・ビジネス・マシーンズ・コーポレイション 物体の画像をディスプレイ装置上に表示する装置及び方法並びにコンピュータ・グラフィックス表示システム
US5900881A (en) * 1995-03-22 1999-05-04 Ikedo; Tsuneo Computer graphics circuit
DE19606357A1 (de) * 1996-02-12 1997-08-14 Gmd Gmbh Bildverarbeitungsverfahren zur Darstellung von spiegelnden Objekten und zugehörige Vorrichtung
JP3387750B2 (ja) * 1996-09-02 2003-03-17 株式会社リコー シェーディング処理装置
US5880736A (en) * 1997-02-28 1999-03-09 Silicon Graphics, Inc. Method system and computer program product for shading
US5949424A (en) * 1997-02-28 1999-09-07 Silicon Graphics, Inc. Method, system, and computer program product for bump mapping in tangent space
JP3294149B2 (ja) * 1997-04-23 2002-06-24 シャープ株式会社 立体テクスチャマッピング処理装置及びそれを用いた3次元画像生成装置

Also Published As

Publication number Publication date
EP0953187B1 (de) 2003-08-13
DE69817152D1 (de) 2003-09-18
US6407744B1 (en) 2002-06-18
TW432337B (en) 2001-05-01
WO1999026201A1 (en) 1999-05-27
EP0953187A1 (de) 1999-11-03
JP2001509934A (ja) 2001-07-24

Similar Documents

Publication Publication Date Title
DE19646194B4 (de) Echtzeit-Wiedergabeverfahren zum wahlweisen Ausführen von Bump-Mapping- und Phong-Schattierungs-Prozessen und zugehörige Vorrichtung
DE69908966T3 (de) Schattierung von 3-dimensionalen rechner-erzeugten bildern
EP0984397B1 (de) Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster
DE3022454A1 (de) Optisches abbildesystem mit computererzeugtem bild fuer einen bodenfesten flugsimulator
DE69914355T2 (de) Bildverarbeitungsgerät
DE69924699T2 (de) Verfahren zur Schaffung von als Oberflächenelemente dargestellten grafischen Objekten
DE102004063838A1 (de) Verfahren und Einrichtung zum Berechnen computer generierter Videohologramme
DE19807013B4 (de) Volumetrisches Vorabschneidungsverfahren, das eine minimale Anzahl von Abtastpunkten durch ein Volumen gewährleistet
WO2007118842A1 (de) Verfahren zum rendern und generieren computer-generierter videohologramme in echtzeit
DE102012210521A1 (de) Unbeschnittene Zeit- und Linsen-Begrenzungen für verbesserte Probentest- Effizienz bei Bild-Rendering
DE69817152T2 (de) Computergraphisches bump-mapping-verfahren und geraet
DE602004003111T2 (de) Tiefen-basiertes Antialiasing
EP0862141A2 (de) Bilddarstellungsverfahren und Vorrichtung zur Durchführung des Verfahrens
DE60118222T2 (de) Skalieren von bildern
DE102006023633A1 (de) Gleichzeitige Projektion von mehrfach verzweigten Gefäßen und ihrer Umgebung auf einem einzigen Bild
DE102018125472A1 (de) Grafikprozessor, der Abtastungs-basiertes Rendering durchführt, und Verfahren zum Betreiben desselben
DE602004010628T2 (de) Dreieck-rendering unter verwendung von direkter evaluierung
DE4100691B4 (de) Verfahren zur Darstellung eines dreidimensionalen Modells
DE19620858B4 (de) Computergraphiksystem mit Pixel-Tiefenhinweisgebung
DE112011105126T5 (de) Texturkartierungsvorrichtung
DE69816469T2 (de) Verfahren und vorrichtung zur schnellen wiedergabe eines bildes in abhängigkeit von dreidimensionalen graphikdaten in einer umgebung mit begrenzter datengeschwindigkeit
DE60030401T2 (de) Anzeigetechniken für dreidimensionale virtuelle Realität
CA2043176A1 (en) Z-buffer quantization of three-dimensional lines
DE60020234T2 (de) Verfahren und vorrichtung zur bildwiedergabe
DE69826996T2 (de) Scheinwerfer-kennzeichnende erzeugungsverfahren und bildprozessor-verwendung

Legal Events

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