DE19940468A1 - Verfahren und Hardware für Bump- und Reflection-Shading - Google Patents

Verfahren und Hardware für Bump- und Reflection-Shading

Info

Publication number
DE19940468A1
DE19940468A1 DE1999140468 DE19940468A DE19940468A1 DE 19940468 A1 DE19940468 A1 DE 19940468A1 DE 1999140468 DE1999140468 DE 1999140468 DE 19940468 A DE19940468 A DE 19940468A DE 19940468 A1 DE19940468 A1 DE 19940468A1
Authority
DE
Germany
Prior art keywords
bump
reflection
shading
mapping
vector
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.)
Withdrawn
Application number
DE1999140468
Other languages
English (en)
Inventor
Andreas Kugler
Johannes Hirche
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.)
KUGLER, ANDREAS, DIPL.-ING., 72070 TUEBINGEN, DE
Original Assignee
Eberhard Karls Universitaet Tuebingen
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 Eberhard Karls Universitaet Tuebingen filed Critical Eberhard Karls Universitaet Tuebingen
Publication of DE19940468A1 publication Critical patent/DE19940468A1/de
Withdrawn 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

Landscapes

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

Abstract

Ein neues Verfahren zum Rendern von rauhen oder reflektierenden Oberflächen ermöglicht realistische Darstellungen von computergenerierten Bildern derartiger Oberflächen. Dieses Verfahren kann in einfacher Weise als Hardware realisiert werden und ermöglicht die schnelle Berechnung dieser Bilder. DOLLAR A Die Winkel-Kodierung wird zum Normalvektor hinzugefügt und führt so zu geringeren Datenmengen. Dadurch wird die auch Hardware-Integration von Look-up-Tabellen handhabbare Größe ermöglicht. DOLLAR A Eine spezielle Speicher-Architektur wurde entwickelt, die verschiedene Strukturen und Schraffuren über eine sogenannte Raster-Pipeline den Pixeln hinzufügt. Die neue Speicherarchitektur bietet eine kostengünstige Lösung für Bump- und Reflection-Mapping von strukturierten Oberflächen.

Description

Ein neues Verfahren ermöglicht Oberflächenshadingverfahren für Bump- und Reflection-Shading bei dreidimensionalen computergenerierten Bildern mit einer einfachen, effizienten Hardware durchzuführen und zu beschleunigen. Damit sind realistische Darstellungen von rauhen oder reflektierenden Oberflächen möglich.
Bisher eingesetzte Hardware-Architekturen besitzen komplizierte Designs, da eine Vielzahl von Berechnungen wie z. B. Vektornormierungen, Kreuzprodukten und Divisionen mit großen Datenmengen durchzuführen sind.
Das neue Verfahren ermöglicht einfache Hardware-Lösungen durch Berechnung in Kugelkoordinaten, ein neues Vektorrotationsverfahren und die Nutzung vorausbe­ rechneter Tabellen. In Kugelkoordinaten lassen sich Bump- und Reflection-Mapping sehr einfach durch Tabellen berechnen und in Hardware implementieren, wodurch zusätzlich die lokale Oberflächenbeleuchtung schnell berechnet werden kann.
Texture-Mapping [10] bezeichnet das Zusammenfügen von Oberflächendetails durch Projizieren einer digitalisierten Struktur auf eine Oberfläche. Reflection-Mapping wurde von Blinn und Newell [4] eingeführt, um Reflexion auf spiegelnden Oberflä­ chen zu simulieren. Bump-Mapping [3] wird benutzt, um die Rauheit einer rauhen oder faltigen Oberfläche darzustellen, ohne daß dazu Daten über das geometrische Oberflächenprofil vorliegen müssen. Zusätzliche Oberflächendetails können addiert werden, in dem zur Oberfläche Mikro-Strukturen oder rauhe Muster hinzugefügt werden. Zusätzliche Effekte wie z. B. eingravierter Text in einer marmorierten Ober­ fläche, Mörtel zwischen Ziegeln oder Wassertropfen auf einer reflektierenden Oberfläche können so realistischer dargestellt werden.
Einer der Faktoren, der die Geschwindigkeit einer Texturdarstellung durch Hardware bestimmt, ist die benötigte Bandweite zwischen Raster-Pipeline und externem Speicher [15, 22]. Texture-Mapping [10], Environment-Mapping [7] und realistisch wirkende Schraffuren benötigen Basisdaten, die pixelweise aus einem externen Speicher bezogen werden. Diese Basisdaten beinhalten Strukturen oder vorausbe­ rechnete Darstellungen von Schraffuren. Zusätzlich stellen bekannte Algorithmen zur Darstellung von Schattierungen auf Oberflächen hohe Anforderungen an die Hard­ ware [1].
Die Rauigkeiten und Strukturen einer Oberfläche bezeichnet man als Bumps. Bump- Mapping ermöglicht die Darstellung von Rauheiten oder Falten auf einer glatten Oberfläche. Bump-Mapping verändert nicht die zugrundeliegende Oberfläche, addiert aber Strukturen und Schraffuren, um so eine realistischere Oberfläche zu erhalten. Der Normal-Vektor N wird an einem bestimmten Punkt der Oberfläche P durch einen Stör-Vektor B beeinflußt, der von einer Störungs-Funktion F(u,v) der Oberflächenpa­ rameter abhängt. Die Störungs-Funktion F(u,v) wird als zweidimensionale Tabelle abgelegt. Schraffuren des Normal-Vektors [2] können zu abweichenden Normalen hinzugefügt werden. Diese kleinen Abweichungen der Oberflächen-Normalen geben den Eindruck von Helligkeitsunterschieden auf einer glatten Oberfläche, so dass die Oberfläche strukturiert erscheint. Die neue abweichende Oberfläche wird gebildet, in dem ein Punkt P der parametrisierten Oberfläche S(u,v) durch die Funktion F(u,v) in Richtung der Oberflächen-Normalen N bewegt wird. An einem bestimmten Punkt P auf der Oberfläche S(u,v) kann der Normal-Vektor N wie folgt dargestellt werden:
Wobei Su und Sv die partiellen Ableitungen der Parameter in den Richtungen u und v sind. Ein neuer abweichender Punkt wird erhalten, indem ein Offset zur der Norma­ len an diesen Punkt addiert wird:
wobei F(u,v) die Störungsfunktion darstellt. Die neuen Normale auf die gestörte Oberfläche, wird, wenn die Größe der Störung F(u,v) klein ist, gegeben durch:
B ist die Störung der Normalen durch Bumps. N × Su und N × Sv sind zwei Vektoren in der tangentialen Ebene zur Oberfläche S. Damit kann B im lokalen Koordinaten­ system wie folgt dargestellt werden:
Die leichten Abweichungen der Normale einer glatten Oberfläche verursacht Hellig­ keitsvariationen, die den Eindruck einer strukturierten oder gefalteten Oberfläche geben, sofern die Muster einzeln moduliert wurden. Prinzip des Bump-Mapping siehe Fig. 1.
Reflection-Mapping wurde von Blinn [3] und Newell [4] eingeführt, um Reflexionen auf beliebigen reflektierenden Oberflächen zu simulieren. Durch Reflection-Mapping kann die Reflexionsrichtung R eines Strahles vom Betrachter zum aktuell struktu­ rierten Punkt berechnet werden:
R = 2(N.E).N-E (6)
wobei N die nicht-normalisierte Oberflächen-Normale ist und E in Richtung des Betrachters zeigt. Wenn die Reflexions-Textur eine Fotografie der Umgebung, die genau aus dem Objektzentrum aufgenommen wurde, darstellt, scheint die Oberflä­ che mit Texture-Mapping ein Bild ihrer Umgebung unendlich weit weg vom Objekt­ zentrum darzustellen. R wird dazu benutzt, eine Textur in einer sphärischen oder kubischen Umgebungs-Abbildung (Erivironment-Map) zu indizieren [7, 24].
Haeberli und Segal [8] beschreiben ein weiteres Verfahren, um eine Umgebungs- Abbildung eines strukturierten Bildes auf einer perfekt reflektierenden gekrümmten Oberfläche in orthographischer Projektion zu generieren [Fig. 2]. Für jeden beliebi­ gen Vektor R, der von der Objektoberfläche ausgeht, kann die zugehörige Normale nsphere der reflektierenden gekrümmten Fläche, genau an der Stelle, wo R auf die Umgebungs-Abbildung trifft, berechnet werden.
Wenn die Blickrichtung konstant ist, d. h. wir nutzen beispielsweise eine orthographi­ sche Projektion und die Strahlen, die vom Auge zur Objektoberfläche gehen parallel sind, kann eine gekrümmte Umgebungs-Abbildung vorausberechnet und durch eine interpolierte Objekt-Oberflächen-Normalen nobj indiziert werden. Das strukturierte Bild der reflektierenden gekrümmten Oberfläche, kann vorausberechnet werden, indem R für alle Objekt-Normalen vorab berechnet wird, die Normale nsphere, an der Stelle an der R die reflektierende, gekrümmte Fläche nsphere trifft, abgeschätzt und das Bild mit der aktuellen Objekt-Oberflächen-Normalen nobj indiziert wird:
R = 2(nobj.E).nobj-E = 2(nobj.vdir).nobj-vdir (7)
uN = nobj.vside vN = nobj.vup (8)
Um neue Koordinaten (uR, vR) in die Umgebungs-Abbildung einzufügen, werden für die Vektoren der gegenwärtigen Blickrichtung die Vektoren vdir view-up vup und view­ side vside eingeführt.
Die Umgebungs-Abbildung wird mit einer (u,v)-Textur-Koordinate adressiert, die auf die gleiche Art wie die Oberflächentextur indiziert wird.
uR = R.vside = 2(nobj.vdir).(nobj.vside) = 2(nobj.vdir).uN (10)
vR = R.vup = 2(nobj.vdir).(nobj.vup) = 2(nobj.vdir).vN (11)
Diese Methode hat jedoch den Nachteil, daß neue Texturbilder immer dann neu berechnet werden müssen, wenn sich die Blickrichtung ändert. Aber Sie benötigt nur ein einzelnes Texturbild. Diese Methode kann sehr gut dazu verwendet werden, um reflektierende Oberflächen in Verbindung mit Bump-Mapping zu rendern, ohne daß der reflektierte Strahlenvektor R für jedes Pixel berechnet werden muß.
Bekannte Grafik-Hardware-Beschleuniger benutzen zur Abschätzung u. a. das Phong-Beleuchtungsmodel an den Polygon-Eckpunkten, bevor Helligkeitswerte über das gesamte Polygon interpoliert werden. Um jedoch eine strukturierteOberfläche korrekt zu beleuchten, muß die Berechnung für jedes interne Polygon-Pixel neu durchgeführt werden, da sich die Oberflächen-Normalen zwischen den Polygon-Eck­ punkten ändern.
Im Phong-Beleuchungs-Modell wird die Reflektivität in diffuse und spekulare Reflexi­ on aufgespaltet: Für weit entfernte Lichtquellen ist der Lichtvektor L unabhängig vom Platz auf der Oberfläche und die Shading-Gleichung wird zu einer Funktion der Oberflächennormale N und des reflektierten Strahlvektors R (12, 13):
I(P) = Ambient + Diff(N) + Spec(R) (12)
I(P) = kamb.Iamb + kdiff.(L.N) + kspec.(R.E)ns (13)
Dabei ist kamb der Reflexionskoeffizient des Umgebungslichtes, kdiff die reflektierte Energie des Anteils an diffusem Licht, kspec die reflektierte Energie des Anteils an spekularem (glänzendem) Licht und ns ist der spekulare Reflexionsexponent des Oberflächenmatärials.
Der diffuse Anteil Diff(N) und der glänzende Anteil Spec(R) des Strahlvektors R können als zwei getrennte Umgebungs-Abbildungen angesehen werden, die diffuse und glänzende Lichtquellen für diese Oberfläche enthalten und die durch die Ober­ flächen-Normale N und dem Reflexions-Vektor R indiziert werden. Die Beleuchtungs- Berechnungen können vorausberechnet werden, um Glanzpunkte in vorberechnete Umgebungs-Abbildungen zu integrieren [1, 12, 24]. Die vorausberechnete Abbildung Spec(R) kann über die Oberflächen-Normale N auf gleiche Art wie die sphärische Umgebungs-Abbildung angesprochen werden.
Alle bisher dargestellten Architekturen haben gemeinsam, daß zugrundelegende Schaltkreise für Bump- und Reflection-Mapping einer vorwärts Implementation bekannter Algorithmen folgen. Dadurch wird das Design der Schaltkreise aufwendig und die notwendige Computerarithmetik teuer. Fig. 3 zeigt beispielsweise zwei mögliche Implementationen für eine Bump-Mapping Hardware.
Umgebungs-Abbildungen (Environment-Maps) wurden eingeführt, um Oberflächen­ beleuchtung von reflektierenden Strahlen zu berechnen [4, 7]. Eine neue Architektur [24] indiziert einen nicht-normalisierten Reflexions-Vektor für die Umgebungs- Abbildung in einem Würfel. Dieses ist eine vorwärts Implementation von Gleichung für die Berechnung reflektierter Strahlen (6). Die Hardwareimplementation kann aus Addieren und Multiplizieren, die über eine zehn-stufige Pipeline geführt werden, zusammengebaut werden, sofern eine komplette Addition einer Pipeline-Stufe ausgeführt wird.
Schaltkreise für Bump-Mapping, der für jedes Pixel eine komplette Matrix- Multiplikation durchführen kann, sind bekannt [1, 6, 12]. Diese Aruhitekturen benöti­ gen zusätzliche Implementationen zum Wurzelziehen und Dividieren, um die interpo­ lierte Oberflächen-Normale zu normalisieren.
Im sphärischen Textur-Koordinatensystem kann ein orthonormales Koordinatensy­ stem aus dem interpolierten Oberflächen-Normal-Vektor N und einer konstanten Hauptrichtung m, wie z. B. die Polarachse, aufgebaut werden [23].
Diese Operation wird für jedes Pixel durchgeführt und setzt mindestens folgende Operationen voraus: 2 Vektor-Normalisierungen, 2 Kreuzprodukte, 9 Gleitkomma- Multiplikationen, 6 Additionen. Wenn die Interpolation im Objektraum durchgeführt wird, muß die abgelenkte Normale vor Shading und Reflection-Mapping zurück in Weltkoordinaten transformiert werden, was eine weitere Matrixmultiplikation nötigt macht.
Wenn die Matrix A auf dreiecksbasis generiert wird [6] und ihre Komponenten über das aktuelle Dreieck interpoliert werden, verringert sich zwar der Aufwand für die Berechnungen, dafür wird Bump-Mapping vor allem bei starken Krümmungen zwischen benachbarten Dreiecken ungenau.
OpenGL benutzt Textur-Abbildungen, um Bump-Mapping zu generieren [16]. Licht­ berechnungen werden für Polygon-Vertrices in den Tangenten-Raum transformiert und nutzen Phong-Shading. Im Tangenten-Raum wird Shading aus dem Bump- Deflection-Vektor und den transformierten Shading-Vektoren berechnet. Im Environ­ ment-Mapping-Modus [18] nutzt OpenGL eine Methode ähnlich der von Haeberli und Segal [8]: Bei jedem Polygon-Vertex wird zunächst der reflektierte Stahlen-Vektor nach (6) berechnet, dann die (u,v)-Koordinate berechnet und anschließend über das Polygon interpoliert.
Peercy et al. [19] beschreiben eine Hardwareunterstützung für Bump-Mapping, bei der die gestörten Normalen für eine tangentiale Ebene an die Oberfläche vorausbe­ rechnet werden. Shading- und gestörte Normal-Vektoren müssen dazu durch spezielle Pipelines für die Normalisierung gehen. Diese Architektur ermöglicht einfaches Umschalten zwischen Bump-Mapping und Standard-Shading-Methoden. Die Ablenkung des Normal-Vektors wird an den Polygon-Eckpunkten durchgeführt Hier wird die Beleuchtung direkt berechnet. Der gestörte Normal-Vektor läßt sich jedoch für weitere Anwendungen, wie z. B. Reflection-Mapping, nicht auf einfachen Weg wieder zurückwandeln.
Ikedo und Ma [12] präsentieren einen Grafik-Chip mit Bump-Mapping und Unterstüt­ zung für Phong-Shading. Der Algorithmus folgt einer straightforward Implementie­ rung mit einer Reihe vom Matrix-Multiplikationen. Dieses Verfahren interpoliert die Winkel zwischen Licht- und Normal-Vektor und funktioniert nur für sehr kleine Polygone zufriedenstellend.
Im folgenden wird unser neues Verfahren beschrieben, das gegenüber den be­ schriebenen Verfahren einfache Hardware-Lösungen und hohe Rechengeschwindig­ keiten ermöglicht. Zusätzlich werden rauhe oder reflektierende Oberflächen realisti­ scher dargestellt.
Der Oberflächen-Normal-Vektor N wird in kartesischen Objektkoordinaten interpoliert. Für Bump-Mapping wird N erst nach der Interpolation in sphärische Koordinaten (ϕN, θN) transformiert. Jeder Normal-Vektor N = (Nx, Ny, Nz)T wird in sphärischen Koordi­ naten durch den horizontalen Winkel ϕN und einen vertikalen Winkel θN beschrieben. Wenn die gekrümmte Fläche in 512 × 256 Punkte unterteilt wird, ergibt sich eine Auflösung von 0,7° zwischen zwei Vektoren. Alle Punkte auf der Kugel werden durch die zwei Winkel ϕ und θ gekennzeichnet. Rechtwinklige Koordinaten werden ins sphärische Koordinaten durch die folgenden Relationen übergeführt:
Die Normalen werden wie folgt berechnet.
Der nicht-normalisierte Oberflächen-Normal-Vektor N = (Nx, Ny, Nz)T kann verwendet werden, um Indizes durch Zugriff auf eine kubische Umgebungs-Abbildung zu berechnen und die dazugehörigen sphärischen Koordinaten (ϕN, θN) zu erhalten. Um alle Oberflächen-Normalen abzudecken, muß über die gesamte Kugel diskretisiert und alle Werte berechnet werden. Dazu werden 512 × 265 × 17 Bit benötigt. Dieses ist für eine einfache Look-up-Tabelle viel zu groß. Der Normalvektor kann kompri­ miert werden, indem geometrische Symmetrien ausgenutzt werden [5]. Da die Kugel in 8 Oktanten symmetrisch ist, kann der Look-up-Tabelle auf 16.384 × 14 Bit redu­ ziert werden, was immer noch sehr groß ist.
Jeder Normalvektor N = (Nx, Ny, Nz)T wird einem Oktanten zugeordnet, indem die Vorzeichen der einzelnen Komponenten entsprechend angepaßt werden. Die Indizes in der Look-up-Tabelle für (ϕOCT, θOCT) werden wie folgt berechnet:
Bevor die zwei Divisionen (18) und (19) durchgeführt werden, werden die Vektor- Komponenten Nx, Ny und Nz sortiert, um durch den größten Wert zu teilen und so die Ergebnisse tu und tv auf den Bereich 0 . . . 1 zu normieren. Die Look-up-Tabelle LUTθ(t) hat jetzt eine handhabbare Größe von 128 × 7 Bit.
Um Verzögerungen durch zwei aufeinander folgende Zugriffe auf die gleiche Look­ up-Tabelle zu vermeiden, kann diese dupliziert werden und ein zusätzlicher Teiler implementiert werden. Dadurch wird die Rechengeschwindigkeit erhöht.
Der Normalvektor wird durch das Tupel (OCT, ϕOCT, θOCT) bestimmt. Dieses Tupel wird durch die Hardware sowohl abgebildet als auch zu einem späteren Zeitpunkt nach (ϕN, θN) vergrößert. (ϕN, θN) ist eine sphärische Koordinate mit einer vertikalen Polarachse. Danach können Bump-Mapping und Shading durchgeführt werden.
Bump-Maps können durch Offset-Vektoren B dargestellt werden. Diese werden zum Oberflächen-Normal-Vektor hinzuaddiert, um diesen etwas abweichen zu lassen. Alternativ können Bump-Maps durch einen sogenannten Displaced-Normal-Vektor D dargestellt werden, der den ursprünglichen Oberflächen-Normal-Vektor ersetzt. Bei der ersten Lösung werden nur zwei Komponenten der kartesischen Koordinaten für den Bump-Vektor B gebraucht. Bei der zweiten Darstellung werden drei Koordinaten des kartesischen Koordinatensystems benötigt bzw. zwei Winkel in einem sphäri­ schen Koordinatensystem.
Da das neue Verfahren zum Bump-Mapping auf einer Winkelabweichung beruht, benutzen wir die zweite Darstellung.
Die Bump-Abbildung wird mit (u,v)-Koordinaten indiziert; genauso wie die Textur- Abbildung. Jeder Eintrag der Bump-Abbildung enthält ein Tupel (ϕD, θD) mit einem horizontalen und vertikalen Winkel relativ zur horizontalen Polarachse u für den Ablenk-Vektor D. Sie werden im (u,v,w)-Koordinatenraum aufgespannt.
In Objektkoordinaten bleiben die ursprüngliche und die Koordinatenachse fix im Verhältnis zu einem beliebigen Objekt; unabhängig von der Position des Objektes oder von Orientierungsänderungen im Raum. Die Oberflächen-Normalen werden in ihrem lokalen Objektkoordinatensystem definiert, in dem auch die Objekt-Vertices definiert sind, bevor das Objekt durch Rotation oder Translation in den World-Space transformiert wird. Alle Berechnungen, die von Bump- oder Umgebungs-Abbildung abhängig sind, werden im Objektkoordinatensystem durchgeführt.
Bei Blinn's Methode [3] muß der Offset-Vektor B wie der Oberflächen-Normal-Vektor N skaliert werden. Bei unserem neuen Verfahren wird die Oberfläche durch Rotation von N um einen Wert, der durch zwei Winkel beschrieben wird, variiert. Da Winkel unabhängig von der Objektskalierung sind, bleibt die Ansicht einer Oberfläche mit Bump-Abbildungen bei verschiedenen Objektgrößen erhalten. Aus diesem Grund ist eine Skalierung des Displaced-Normal-Vektors D nicht notwendig.
Der Displaced-Normal-Vektor D kann als eine Rotation der u- und v-Koordinaten- Achsen um den Oberflächen-Normal-Vektor N angesehen werden; siehe Fig. 4. N wird durch einen horizontalen Winkel ϕN und einen vertikalen Winkel θN gekenn­ zeichnet. Dadurch kann jeder beliebige Deflektions-Vektor D vom Bump-Abbildungs- Raum in den Objektraum gedreht werden. Die mitrotierenden Bump-Abbildungs- Koordinaten-Achsen w' und v' liegen so in der Ebene, die Oberflächen-Normal und y-Achse des Objektkoordinatensystems aufspannt. u' steht senkrecht zu N, w' und y. Anstelle der Addition des Störungs-Vektors B zu N kann auch der Normalenvektor N auch durch den gedrehten Deflektions-Vektor Drot ersetzt werden.
Jede beliebige Rotation kann in eine Serie von drei hintereinander geschaltete Rotation zerlegt werden, die um die Hauptachsen des Objektkoordinatensystems erfolgen. Wenn z. B. ein Offset -θN zum Horizontalwinkel ϕD addiert wird, ist das äquivalent zum Drehen der Bump-Abbildung um die Objekt x-Achse; Fig. 5.
Der erste Schritt beim Reflection-Mapping berechnet eine Umgebungs-Abbildung voraus, die direkt mit der im Objektraum interpolierten Oberflächen-Normalen indiziert werden kann.
Die sphärischen Umgebungs- oder Shading-Abbildungen werden mit den Textur- Koordinaten (uR, vR) adressiert. Um Textur-Adressen zu generieren, indizieren wir zuerst mit (ϕN, θN) in sieben eindimensionalen Tabellen, die die vorberechneten Werte F1, F2, F3, G2, G3, H2 und H3 enthalten. Jede Tabelle überstreicht den Bereich von 0 bis π/2 und benötigt deshalb 128 Einträge. Werte außerhalb dieses Bereiches werden durch trigonometrische Symmetrie erhalten. Die daraus entstehende (u,v)-Koordinate kann in einen Address-Generator übertragen werden. Darin wird sie wie jede andere Standard-Textur-Koordinate behandelt, um die projizierten Pixel aus der Shading- oder Umgebungs-Abbildung auszulesen und zu interpolieren.
Die neu entwickelte Bump- und Reflection-Mapping-Pipeline erhält eine (u, v, w)-Textur-Koordinate, einen Normal-Vektor N interpoliert in kartesischen Objekt- Koordinaten und einen RGB-Farbwert für das aktuelle Pixel, das durch den Rasterizer generiert wird. Eine interne Textur-Mapping-Pipeline berechnet eine physikali­ sche Speicheradresse aus den Textur-Koordinaten. Diese Adresse wird dazu benötigt, um Texturdaten oder einen Bump-Mapping-Deflection-Vektor D = (ϕD, θD) aus dem Textur-Speicher zu erhalten.
Fig. 6 zeigt den Aufbau der neu entwickelten Bump- und Reflection-Shading- Pipeline. Diese wird nachfolgend beschrieben.
Bevor die aktuelle Oberflächen-Normale N abgelenkt wird, werden deren Kompo­ nenten (Nx, Ny, Nz) dem jeweiligen Oktanten zugeordnet und in Winkelkoordinaten überführt. N = (ϕOct, θOct) werden zusammen mit der Oktanten-Information im Cache- RAM abgelegt, wo N zu (ϕN, θN) expandiert und abgelenkt wird.
Für Reflection-Mapping und Surface-Shading werden aus sieben 128 × 10-Bit Tabellen Werte zur Berechnung einer Speicheradresse gelesen. Die sphärische Koordinate (ϕN, θN) des Normalvektors dient zur Indizierung dieser Tabellen. Diese Adresse wird gebraucht, um das Texel der Umgebungs-Abbildung, oder spekulare- und diffuse Shading-Koeffizienten aus dem Speicher zu lesen. Die Störung von N durch den Deflektionsvektor D findet im Cache-RAM statt. Schließlich werden alle Pixel, die mit Textur- und Umgebungs-Abbildungen versehen wurden, interpoliert und mit den Shading-Koeffizienten multipliziert. Die Bump- und Reflection-Mapping Pipeline wird in Fig. 6 dargestellt.
Das Cache RAM ist in Fig. 7 dargestellt. Es enthält die Spherical-to-spherical-Map, die in 4 × 4 Blöcken organisiert ist. Jeder der 4 × 4 Blöcke enthält 16 Einträge der Spherical-to-spherical-Look-Up-Tabelle. Jeder Vektor v(ϕ, θ) im ersten Oktanten (x,y,z ≧ 0) der Sphäre wird nur einmal durch eine sphärische Koordinate im Cache- RAM abgelegt. Die Daten aus der Spherical-to-spherical-Abbildung werden ins Memory-Buffer-Register (MBR) übertragen. Der Zugriff auf das Cache-RAM läuft wie folgt ab:
  • 1. Um D zu rotieren, wird der Winkel Offset -θN zu ϕD addiert. Daraus erhält man (ϕ'D, θ'D): = (ϕDN θD) das in einen Look-Up-Tabllne-Index übergeführt wird. Adressen höherer Ordnung werden mit den Adressen der Daten Memory-Buffer- Register verglichen, um abzuschätzen, ob neue Daten übertragen werden müs­ sen.
  • 2. Eine Look-Up to spherical-to-spherical map erzeugt (ϕ"D, θ"D). Der zweite Offset ϕN wird ϕ"D addiert: (ϕ"D+ ϕN, θ"D).
  • 3. Das Cache RAM gibt den rotierten Normalvektor N' = (ϕN, θN): = (ϕ"D+ ϕN, θ"D) in den Generator für Umgebungs-Abbildungen für Shading und Reflection-Mapping zurück.
Die Bump- und Reflection-Mapping-Pipeline wurde implementiert und simuliert. Alle Algorithmen sind so implementiert, daß möglichst wenig komplexe arithmetische Logik benötigt wird.
Dadurch, daß Shading und Reflection-Mapping im Objektraum durchgeführt werden, in dem die abgelenkten Oberflächen-Normalen direkt genutzt werden, ist eine Rücktransformation in Weltkoordinaten nicht erforderlich. Zusätzlich sind die Berech­ nungen im Objektraum invariant gegenüber der Objektrotation und der Position des Objekts im Raum. Der Bedarf an neuer bzw. zusätzlicher Arithmetik ist für das neue Verfahren sehr gering. Um die Koordinaten für Environment- und Shading-Map zu berechnen, werden einige wenige zusätzliche Addierer und Multiplizierer gebraucht, der Dividierer für die Transformation des Normalvektors in Polarkoordinaten kann gemeinsam mit dem vorhandenen Dividierer zur perspektivischen Korrektur genutzt werden. Reflection- und Shading-Maps können für eine gegebene Umgebung vorausberechnet werden. [1] K. Bennebroek, I. Ernst, H. Rüsseler, O. Willig, "Design Principles of Hardware­ based Phong Shading and Bump Mapping", Proceedings of the 11th Eurograph­ ics Workshop on Graphics Hardware, Seite 3-9, 1996.
[2] G. Bishop, D. M. Weimar, "Fast Phong Shading", Computer Graphics 20(4), Seite 103-106, 1986.
[3] J. F. Blinn, "Simulation of wrinkled surfaces", Computer Graphics 12(3), Seite 286-292, 1978.
[4] J. F. Blinn, M. E. Newell, "Texture and Reflection in Computer Generated Im­ ages", Computer Graphics 10 (3), 1976.
[5] M. Deering, "Geometry Compression", Computer Graphics 29(4), Seite 13-20, 1995.
[6] I. Ernst, D. Jackèl, H. Rüsseler, O. Wittig, "Hardware Supported Bump Mapping: A Step towards Higher Quality Real-Time Rendering", Proceedings of the 10th Eurographics Workshop on Graphics Hardware, Seite 63-70, 1995.
[7] N. Greene, "Environment Mapping and Other Applications of World Projections", IEEE Computer Graphics and Applications 6 (11), Seite 21-29, 1986.
[8] P. Haeberli, M. Segal, "Texture Mapping as a Fundamental Drawing Primitive", Proceedings of the 4th Eurographics Workshop on Rendering, 1993.
[9] D. Hearn, M. P. Baker, "Computer Graphics", Seite 409-420, Prentice-Hall, 1994.
[10] P. S. Heckbert, "Survey of Texture Mapping", IEEE Computer Graphics and Applications 6 (11), Seite 56-67, 1986.
[11] J. Hirche, "Texture- und Environment-Mapping Hardware", WSI/GRIS lau­ fende Studienarbeit, 1998.
[12] T. Ikedo, J. Ma, "An Advanced Graphics Chip with Bump-mapped Phong Shading", Proceedings of the IEEE Computer Graphics International Conference, Seite 156-165, 1997.
[13] D. Jackèl, H. Rüsseler, "A Real-Time Rendering System with Normal Vector Shading", Proceedings of the 9th Eurographics Workshop on Graphics Hardware, Seite 48-57, 1994.
[14] A. Kugler, "The Setup for Triangle Rasterization", Proceedings of the 11th Eurographics Workshop on Graphics Hardware, Seite 49-58, 1996.
[15] G. Knittel, A. Schilling, W. Straßer, "GRAMMY: High Performance Graphics Using Graphics Memories", High Performance Computing for Computer Graphics and Visualization, Springer, Berlin, 1995.
[16] T. McReynolds, "Programming with OpenGL: Advanced Rendering", SIGGRAPH '97 Course, section 8.3, 1997.
[17] S. Oberman, M. J. Flynn, "Design Issues in Floating-Point Division", Stanford Technical Report, CSL-TR-94-647, 1994.
[18] OpenGL Architecture Review Board, "OpenGL Reference Manual", Addison- Wesley, 1992.
[19] M. Peercy, J. Airey, B. Cabral, "Efficient Bump Mapping Hardware", Computer Graphics 31 (4), Seite 303-306, 1997.
[20] B. T. Phong, "Illumination for computer generated images", Communications of the ACM 18(6), Seite 311-317, 1975.
[21] C. Scherjon, "Design and Implementation of a Triangle Rendering Engine", WSI/GRIS Diploma Thesis, April 1997.
[22] A. Schilling, G. Knittel, W. Straßer, "TEXRAM - A Smart Memory for Textur­ ing", IEEE Computer Graphics and Applications 16(3), Seite 32-41, 1996.
[23] A. Schilling, Towards Real-Time Photorealistic Rendering: Challenges and Solutions, Proceedings of the 1997 SIGGRAPH/Eurographics Workshop on Graphics Hardware, Seite 7-15, 1997.
[24] D. Voorhies, J. Foran, "Reflection Vector Shading Hardware", Computer Graphics 28(4), Seite 163-166, 1994.
[25] D. Wong, M. J. Flynn, "Fast Division Using Accurate Quotient Approximations to Reduce the Number of Iterations", IEEE Transactions on Computers, 41 (8), Seite 981-995, 1992.

Claims (5)

1. Verfahren für die effiziente und schnelle Hardwareunterstützung in der Polygon Renderingpipeline - von Bump- und Reflection-Shading, dadurch gekennzeich­ net, daß Bump-Mapping durch Verwendung von Polarkoordinaten im Objekt­ koordinatensystem, Zugriff auf eine Tabelle die sogenannte Spherical-to- Spherical-Map erfolgt und Reflection-Shading durch Zugriff auf Koordinaten­ generierungstabellen, die durch den Normalvektor indiziert werden, zur Berech­ nung des reflektierten Strahls erfolgt.
2. Bump- und Reflection-Mapping nach Anspruch 1, dadurch gekennzeichnet, daß auf die Koordinatengenerierungstabellen für jeden generierten Bildpunkt (Pixel) parallel zugegriffen wird.
3. Bump- und Reflection-Mapping nach Anspruch 1 oder 2 dadurch gekennzeich­ net, daß Bump- und Reflection-Shading im Objektkoordinatensystem durch­ geführt werden, das Shading ist blickpunktabhängig durch den Einsatz von Koordinatengenerierungstabellen. Für die Veränderung des Normalvektors, werden komplizierte Vektornormierung und -arithmetik durch wenige Tabellen, zwei Addierer und einem Cache-RAM ersetzt.
4. Bump- und Reflection-Mapping nach Anspruch 1 bis 3 wurde als Pipeline mit Hilfe von Addiereren, Multiplizieren, einigen Tabellen integriert.
5. Bump- und Reflection-Mapping nach Anspruch 1 bis 4 dadurch gekennzeichnet, daß die Koordinatengenerierungstabellen für Shading und Reflection-Map vor­ berechnet sind.
DE1999140468 1998-08-26 1999-08-26 Verfahren und Hardware für Bump- und Reflection-Shading Withdrawn DE19940468A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP98116062 1998-08-26

Publications (1)

Publication Number Publication Date
DE19940468A1 true DE19940468A1 (de) 2000-03-09

Family

ID=8232515

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1999140468 Withdrawn DE19940468A1 (de) 1998-08-26 1999-08-26 Verfahren und Hardware für Bump- und Reflection-Shading

Country Status (1)

Country Link
DE (1) DE19940468A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1413988A1 (de) * 2001-07-27 2004-04-28 Sony Computer Entertainment Inc. Malverfahren

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1413988A1 (de) * 2001-07-27 2004-04-28 Sony Computer Entertainment Inc. Malverfahren
EP1413988A4 (de) * 2001-07-27 2009-12-09 Sony Computer Entertainment Inc Malverfahren

Similar Documents

Publication Publication Date Title
Bishop et al. Fast phong shading
US7532213B2 (en) Bicubic surface real time tesselation unit
Rottger et al. Hardware-accelerated volume and isosurface rendering based on cell-projection
Catmull Computer display of curved surfaces
Kersting et al. Interactive 3D visualization of vector data in GIS
US7239319B2 (en) Rendering outline fonts
Sigg et al. GPU-based ray-casting of quadratic surfaces.
DE112007002991B4 (de) Computergraphikschattenvolumen unter Verwendung von hierarchischem Okklusions-Culling
US6184891B1 (en) Fog simulation for partially transparent objects
US7170527B2 (en) Interactive horizon mapping
Theoharis et al. Graphics and visualization: principles & algorithms
DE69917799T2 (de) Texturierungssysteme zur verwendung in drei-dimensionalen abbildungssystemen
Hanson et al. Interactive visualization methods for four dimensions
Boubekeur et al. A flexible kernel for adaptive mesh refinement on GPU
DE102004007835A1 (de) Vorrichtung zur Darstellung von dynamischen komplexen Szenen
Schneider et al. Real-time rendering of complex vector data on 3d terrain models
Rockwood A generalized scanning technique for display of parametrically defined surfaces
Vyatkin et al. Voxel Volumes volume-oriented visualization system
Pajarola et al. DMesh: Fast depth-image meshing and warping
CN116385619B (zh) 对象模型渲染方法、装置、计算机设备和存储介质
Xue et al. Efficient splatting using modern graphics hardware
Hormann et al. A quadrilateral rendering primitive
Emst et al. Hardware supported bump mapping: A step towards ingber quality real-time rendering
DE19940468A1 (de) Verfahren und Hardware für Bump- und Reflection-Shading
USRE42534E1 (en) Bicubic surface real-time tesselation unit

Legal Events

Date Code Title Description
8127 New person/name/address of the applicant

Owner name: KUGLER, ANDREAS, DIPL.-ING., 72070 TUEBINGEN, DE

8139 Disposal/non-payment of the annual fee