DE19721416A1 - Verfahren zum Antialiasing von Bump-Maps - Google Patents

Verfahren zum Antialiasing von Bump-Maps

Info

Publication number
DE19721416A1
DE19721416A1 DE1997121416 DE19721416A DE19721416A1 DE 19721416 A1 DE19721416 A1 DE 19721416A1 DE 1997121416 DE1997121416 DE 1997121416 DE 19721416 A DE19721416 A DE 19721416A DE 19721416 A1 DE19721416 A1 DE 19721416A1
Authority
DE
Germany
Prior art keywords
bump
roughness
map
maps
roughness information
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
DE1997121416
Other languages
English (en)
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.)
Schilling Andreas Dr 72810 Gomaringen 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
Priority to DE1997121416 priority Critical patent/DE19721416A1/de
Publication of DE19721416A1 publication Critical patent/DE19721416A1/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

Landscapes

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

Description

Es ist bekannt, für die Darstellung rauher Oberflächen in der Computergraphik Einrichtungen zum Bump-Mapping zu verwenden, die in PC-Graphikkarten inzwischen weit verbreitet sind. Diese Einrichtungen arbeiten normalerweise wie von Blinn beschrieben [4]. Dabei findet ein eigentlich notwendiges Antialiasing entweder nicht statt, oder es wird eine einfache Filterung wie beim Texturmapping durchgeführt, wie das von Blinn [4] beschrieben wird. Die dort als korrekte Lösung angegebene Überabtastung wird wegen des hohen Aufwands in Echtzeitsystemen normalerweise nicht eingesetzt.
Die übliche Art der Filterung führt allerdings bei Bump-Maps dazu, daß die durch die Bump-Map dargestellten Höcker (Bumps) verlorengehen und als Resultat - bei genügend kleiner Abtastrate - eine glatte Oberfläche übrigbleibt. Die vorliegende Erfindung beruht darauf, daß zur korrekten Darstellung rauher Oberflächen ein Speicher verwendet wird, in dem in Form einer sog. Rauhigkeitspyramide die isotrope oder anisotrope Rauhigkeitsinformation gespeichert wird, die in allen Auflösungsstufen erhalten bleibt.
Genaue Problembeschreibung
Antialiasing von Bump-Maps ist ebenso notwendig wie das Antialiasing von Texturen im allgemeinen (s. Fig. 1). Allerdings führt die gewöhnliche Filterung, wie sie bei Texturen verwendet wird dazu, daß die Bumps verschwinden. Je kleiner dabei die Auflösung wird, desto stärker muß gefiltert werden und desto größere Bumps werden entfernt (s. Fig. 2).
Die Tiefpaßfilterung der in Bump-Maps gespeicherten Information bedeutet also die Vernichtung der gesamten Information über die Bumps. In der Realität kann dagegen eine höckerige Oberfläche leicht von einer glatten Oberfläche unterschieden werden, auch wenn diese so weit entfernt ist, daß einzelne Bumps nicht mehr getrennt wahrgenommen werden können (s. Fig. 3). Statt einzelner Bumps sieht man die Höckrigkeit oder Rauhigkeit der Oberfläche.
Bump-Maps können als Höhen- bzw. Offset-Feld dargestellt werden [4]. In der hier beschriebenen Erfindung wird eine Darstellung der Bump-Map vorgeschlagen, bei der ein zweidimensionales Feld von Offset-Vektoren benutzt wird, die zum Normalenvektor addiert werden. Diese Darstellung wird unten ausführlicher behandelt. Die genannten Effekte bei der Filterung einer Bump-Map treten allerdings unabhängig von der Darstellung der Bump-Map auf.
Ausführliche Darstellung des Standes der Technik
Becker und Max [1] behandeln das Problem der Darstellung von Bump-Maps in verschiedenen Auflösungen. Sie lösen es dadurch, daß sie zwischen der ungefilterten Darstellung und einer Darstellung mit einheitlichem Grauwert aus einer BRDF (bi-directional reflection distribution function) umschalten. Um Inkonsistenzen zwischen beiden Darstellungen zu vermeiden, wird für jeden Betrachtungswinkel eine andere sog. redistribution function verwendet, um das Ergebnis des Standard-Bump-Mapping-Verfahrens zu modifizieren. Um keine abrupten Übergänge zu erhalten, wird zwischen der Ergebnissen der beiden Algorithmen überblendet. Die Verwendung der BRDF ist die korrekte Lösung, wenn es darum geht, höckrige Oberflächen darzustellen, die so weit entfernt sind, daß die einzelnen Bumps bei einer gegebenen Bildauflösung nicht mehr unterscheidbar sind. Allerdings müßte korrekterweise eigentlich an jeder Stelle einer nicht homogenen Bump-Map eine andere BRDF verwendet werden, da sonst die ganze Fläche einheitliche Helligkeit erhält, auch wenn z. B. Teile der Bump-Map gar keine Bumps enthielten. Der Punkt, an dem vom Bump-Mapping zur BRDF übergegangen wird, kann grundsätzlich nur für eine bestimmte Bump-Frequenz bestimmt werden. Die Bump-Map darf deshalb nur einen schmalen Frequenzbereich enthalten. Bump-Maps mit einem breiteren Frequenzbereich müssen in mehrere Maps aufgespalten werden, von denen jede nur einen schmalen Frequenzbereich enthält. Der Aufwand für das Verfahren ist, auch ohne diese Aufspaltung in mehrere Bump-Maps, sehr hoch.
Kirk [5] schlägt vor, zum Zweck des Antialiasing das Ray-Tracing-Verfahren dahingehend zu verändern, daß statt eines einzelnen Strahls ein Strahlkegel verfolgt wird. In seinem Aufsatz erwähnt er sogar die Anwendung auf das Bump-Mapping, wobei er allerdings nicht die Rauhigkeit einer Oberfläche, sondern nur deren Krümmung in Betracht zieht (durch die Differenz zwischen den Normalenvektoren im Zentrum und an den Rändern des Strahlkegels). Die im folgenden zur Beschreibung und zum Verständnis des Antialiasing von Bump-Maps verwendeten Reflektionskörper können als Verallgemeinerungen von Kirks Strahlkegeln aufgefaßt werden.
Lösung
Um die wichtigen Oberflächeneigenschaften beim Antialiasing zu erhalten, wird zusätzlich zu den Bump-Maps eine neue Art von Maps eingeführt: die Rauhigkeitsmap. In ihr wird die Varianz der Normalenvektoren aus dem Gebiet gespeichert, das zu einem Pixel in der gefilterten Bump-Map gehört. Dies wird am Beispiel eines Sees deutlich, der aus einiger Entfernung betrachtet wird. Auch wenn Wellen vorhanden sind, kann die Normalenrichtung für das Gebiet des Sees, das auf ein Pixel abgebildet wird, nur durch einen einzigen Normalenvektor repräsentiert werden. Ist dieses Gebiet groß genug, so wird der durchschnittliche Normalenvektor senkrecht nach oben zeigen. Verwendet man nur diesen sich durch konventionelle Tiefpaßfilterung ergebenden Normalenvektor, so erhält man die gleiche Spiegelung der Sonne (oder jeder anderen Umgebung) wie in einem glatten Spiegel, unabhängig davon, ob kleine Wellen vorhanden sind oder nicht. Speichert man dagegen die Rauhigkeit der Oberfläche auch mit ab, kann man diese Wellen berücksichtigen und erhält eine weitaus bessere Approximation für die Spiegelungseffekte. Die Rauhigkeit kann z. B. im Blinn-Phong-Beleuchtungsmodell als Maß für den dort verwendeten Exponenten dienen [3]. Bilder hervorragender Qualität erhält man, wenn man Environment-Maps benutzt, und die Rauhigkeit die Parameter für anisotropes Antialiasing der Environment-Map liefert.
Hier soll zunächst ein praktisches Verfahren zur Darstellung der Bump-Maps vorgestellt werden, sodann ein anisotropes Maß für die Rauhigkeit eingeführt werden und dann gezeigt werden, wie Auflösungspyramiden aufgebaut und in praktischer Weise abgespeichert werden können. Dabei kann wahlweise eine einfache isotrope oder eine aufwendigere anisotrope Version der Bump-Rauhigkeitspyramiden verwendet werden.
Die Darstellung von Bump-Maps
Bump-Mapping wird, auch ohne Antialiasing oder Environment-Mapping, erst seit kurzem in Echtzeitsystemen eingesetzt, da es bisher noch zu viel Rechenleistung erforderte. Teilweise rührt dies daher, daß beim konventionellen Bump-Mapping [4] die Ableitungen der Bump-Funktion berechnet werden müssen.
Bump-Mapping mit im voraus berechneten Ableitungen
Eine mögliche Lösung, bei der die Berechnung der Ableitungen der Bump-Funktion vermieden wird, besteht darin, die Ableitungen im voraus zu berechnen und diese Ableitungen statt der Bump-Funktion selbst abzuspeichern [5][2]. Dadurch kann die Berechnung in Echtzeit vermieden werden. Außerdem hat das Verfahren den Vorteil, daß die Skalierung von Bump-Maps ebenso einfach wird wie die Skalierung von rgb-Texturen. Wenn gewöhnliche Bump-Maps mit einem unbekannten Faktor skaliert werden, können die Ableitungen nicht mehr berechnet werden.
Ein Problem muß allerdings noch gelöst werden: An jedem Abtastpunkt auf dem dargestellten Objekt muß ein geeignetes lokales Koordinatensystem gefunden werden, das aus dem Normalenvektor und zwei zur Oberfläche tangentialen Vektoren besteht (dieses Problem gibt es allerdings auch bei der bisherigen Methode). Ist dieses lokale Koordinatensystem n, e1, e2 festgelegt, wird die Berechnung des veränderten Normalenvektors dadurch vorgenommen, daß der durch die in der Bump-Map gespeicherten Werte b1 und b2 im lokalen Koordinatensystem vorgegebene Offsetvektor zur Flächennormale addiert wird:
n' = n+b1e1+b2e2.
Das lokale Koordinatensystem
Theoretisch kann ein geeignetes lokales Koordinatensystem für die Berechnung der durch die Bump-Map modifizierten Normalenvektoren frei gewählt werden. Die in der Bump-Map gespeicherten Daten hängen natürlich von dem gewählten System ab. Leider existiert kein Koordinatensystem, das für das Bump-Mapping ideal geeignet ist. Zwei Bedingungen sollten allerdings mindestens erfüllt sein:
  • - Die Richtungen der Achsen sind eine stetige Funktion des Orts.
  • - Das System sollte so flexibel sein, daß es möglich ist, eine vorhandene Bump-Map in jeder Orientierung auf ein Objekt aufzubringen, ohne die gesamte Bump-Map neu zu berechnen. Nur so ist es möglich, mit einer Bump-Map, die die Buchstaben des Alphabets (hervorstehend oder eingraviert) enthält, eine Beschriftung an jeder Stelle eines Objekts mit beliebiger Orientierung anzubringen.
Wünschenswert ist außerdem, daß
  • - das Koordinatensystem rechtwinklig ist (dies ist nicht notwendigerweise der Fall für die Projektionen der u- und v-Linien auf die Oberfläche; auch beim normalen Bump-Mapping sind daher die Achsen oft nicht orthogonal).
Zur Beschreibung einiger möglicher Koordinatensysteme wird hier eine Nomenklatur ähnlich der von Blinn [4] verwendet:
Die Punkte auf der ursprünglichen Oberfläche sind gegeben durch
die partiellen Ableitungen durch
die Oberflächennormale ist daher n = pu×pv. Eine ausreichend kleine Offset- Funktion f (mit partiellen Ableitungen fu und fv) definiert eine neue Oberfläche:
Der neue Normalenvektor ist
1. Das "natürliche" System (senkrecht zu den u-Linien, v-Linien und zu n)
Es wird definiert:
Damit erhält man:
n = pu×pv = su×sv und
n' = n + fusu + fvsv.
In der Bump-Map werden die Werte b1 = fu und b2 = fv abgelegt. Es handelt sich hier um das klassische Bump- Mapping mit möglicherweise nichtorthogonalem u-v-Koordinatensystem und beliebigen |pu| und |pv|.f wird als Offsetfunktion aufgefaßt, und entsprechend ist die "Höhe" der Bumps konstant und ändert sich nicht, wenn die Bump-Map in u- und v-Richtung skaliert wird. Wenn die Abbildung der u- und v-Koordinaten auf die Oberfläche stetig ist, so ist damit auch die erste Bedingung (s. o.) erfüllt, und su und sv können durch Interpolation über Dreiecken approximiert werden (die perspektivische Korrektur bei der Bildschirmdarstellung ist natürlich erforderlich). Probleme gibt es beispielsweise bei einer Kugel, wenn für u und v sphärische Koordinaten verwendet werden, da am Pol eine der Koordinaten nicht eindeutig ist.
Bei der Interpolation von su und sv müssen die Längen von su und sv getrennt von den Vektoren selbst interpoliert werden. Da die perspektivische Division die Richtung eines Vektors nicht ändert, sondern nur dessen Länge, müssen nur die Längen korrigiert werden. Die perspektivische Korrektur der Richtung ergibt sich bei richtiger Wahl der Vektorlängen an den Eckpunkten von selbst. Wird zwischen zwei Vektoren mit unterschiedlicher Länge interpoliert, so ändert sich die Richtung in der Nähe des kürzeren Vektors schneller.
2. Das natürliche System mit normierten Einheitsvektoren
Wie schon in der Originalarbeit von Blinn [4] erwähnt, kann es erwünscht sein, daß die Form der Bumps beim Skalieren der Bump-Map erhalten bleibt. Dazu muß der Störungsvektor mit n skaliert werden, unabhängig von der Skalierung von p (oder su und sv). Das kann allerdings zu geometrisch unmöglichen Normalen führen, wenn die Bump-Map mit unterschiedlichen Faktoren für u und v skaliert wird, was daher ausgeschlossen werden sollte. Als geeignetes Koordinatensystem ergibt sich das vorhergehende System, aber mit normierten Vektoren su und sv; die Interpolation der Längen erübrigt sich also. Auch hier ist die perspektivische Division für die Vektoren nicht nötig, da ohnehin normiert wird.
3. Ein orthonormales System mit Hauptrichtung m
Eine interessante Alternative bietet ein orthogonales System, das aus dem Normalenvektor n und einer Hauptrichtung m berechnet werden kann. Die Einheitsvektoren e1 und e2 sind senkrecht zu n. Mit Hilfe von m werden sie so definiert, daß e2 senkrecht auf m steht und e1 in der Ebene von n und m liegt [5]. Für die Hauptrichtung m kann z. B. pu oder pv gewählt werden (in diesem Fall wie oben interpoliert), aber es besteht auch die Möglichkeit, einen konstanten Vektor für ein ganzes Objekt zu wählen. Ein gutes Beispiel ist die Abbildung auf eine Kugel (wie z. B. die Erde) mit Hilfe von sphärischen Koordinaten. Die Richtung der Erdachse würde als Hauptrichtung m verwendet; dadurch würde e1 immer von West nach Ost und e2 von Süd nach Nord zeigen. Ein wichtiger Vorteil einer konstanten Hauptrichtung m ist es, daß abgesehen vom Normalenvektor kein weiterer Vektor über dem Dreieck interpoliert werden muß. Dazu kommt, daß das Koordinatensystem im Rasterisierer/Shader in mit geeigneter Hardware berechnet werden kann und nicht für alle Eckpunkte von einem Setup-Prozeß berechnet werden muß. Zur Berechnung des lokalen Koordinatensystems n, e1, e2 aus dem interpolierten Normalenvektor nI und der Hauptrichtung m werden die folgenden Formeln benutzt (s. Fig. 5):
Auf diese Weise erhält man zwei zur Objektfläche tangentiale Vektoren:
  • - e2 in der Ebene von n und m und
  • - e1 senkrecht zu dieser Ebene.
Wenn die Vektoren nicht normiert sein müssen (z. B. weil sich die Länge in einem späteren Rechenschritt heraushebt) werden alle drei mit |nI| multipliziert, und man erhält:
e2|nI| = nI×e1.
Die Rauhigkeitsinformation
Mit Hilfe der oben definierten Koordinatensysteme können Bump-Maps durch vorausberechnete Ableitungen bzw. Störungsvektoren dargestellt werden. Es stellt sich die Frage, wie die Rauhigkeitsinformation dargestellt werden kann, d. h. die Information über die Bumps, die zu klein sind um einzeln in der Bump-Map in der betrachteten Auflösungsstufe in Erscheinung zu treten, jedoch für den visuellen Gesamteindruck der Oberfläche trotzdem entscheidend sind. Diese Rauhigkeitsinformation bestimmt letztendlich die Größe und Form der Reflektionskörper (Fig. 3), in die die kleinen, pixelgroßen Sehstrahlenkegel durch die rauhe Oberfläche reflektiert werden. Zur korrekten Berechnung der Reflektionskörper aus der Bump-Map wird die komplette Verteilung von Normalenvektoren innerhalb des betrachteten Gebiets benötigt. Was gegenüber der kompletten ursprünglichen Bump-Map wegfällt, ist lediglich der genaue Ort eines Normalenvektors innerhalb des betrachteten Gebiets. Allerdings enthält die gesamte Verteilungsfunktion für die Normalenvektoren immer noch viel zu viel Information, um sinnvollerweise eingesetzt oder abgespeichert zu werden. Ein üblicher Ausweg besteht darin, daß eine bestimmte Form der Verteilungsfunktion angenommen wird. Dadurch wird es möglich die Verteilungsfunktion durch einige wenige Parameter darzustellen. Im eindimensionalen Fall sind Mittelwert und Varianz ein Beispiel für solche Parameter, wobei für die Form der Verteilungsfunktion eine Normalverteilung angenommen wird. Im zweidimensionalen Fall entspricht der Varianz die Kovarianzmatrix K, mit deren Hilfe die Verteilungsfunktion beschrieben wird. Auf der Ellipse (x - x)TK-1(x - x) = 1 ist die Wahrscheinlichkeitsdichte konstant; der Abstand eines Punktes x auf der Ellipse zum Mittelwert x beschreibt die Standardabweichung, die sich in Richtung (x - x) ergibt. Selbstverständlich ist die Annahme, daß die Normalen normalverteilt sind, nicht allgemein erfüllt, aber die Darstellung mit Hilfe der Kovarianzmatrix ermöglicht es, die Verteilung der Normalenvektoren als elliptischen Kegel zu repräsentieren, für dessen Beschreibung nur drei Parameter benötigt werden (plus zwei für den durchschnittlichen Normalenvektor). Diese Darstellung ist für sehr viele in der Praxis vorkommende Normalenverteilungen geeignet und ermöglicht es, anisotrope Spiegelungseffekte zu erzeugen und realistisch aussehende Bilder von Wellblech, gebürstetem Metall, kleinen Kratzern in sonst glatten Oberflächen, oder Wellen auf einem See u.s.w. zu erzeugen.
Die Berechnung der Kovarianzmatrix
Die Kovarianzmatrix wird aus den b1- und b2-Werten aus dem von einem Texel (bzw. Roughxel=Rauhigkeitselement) bedeckten Gebiet auf folgende Weise berechnet:
Diese Matrix beschreibt eine Ellipse, die in Fig. 6 dargestellt ist (die Ellipse in der Mitte der Zeichnung). Die Ellipse
(x - x)TK-1(x - x) = 1
enthält etwa 63% der Störungsvektoren, wenn es sich bei der Verteilung um eine zweidimensionale Normalverteilung handelt. Wenn allerdings die Vektoren (b1 b2) innerhalb eines Rechtecks mit Kantenlängen g und h gleichverteilt sind, erhält man eine Ellipse mit den Hauptachsen 2g/√3 und 2h/√3. Dieser Effekt kann durch einen Korrekturfaktor ausgeglichen werden.
K enthält also die Parameter einer Ellipse, die die Verteilung der Störungsvektoren und damit die Verteilung der Normalenvektoren beschreibt.
Diese Information kann bei der Bildberechnung dazu verwendet werden, die korrekte Pixelhelligkeit zu berechnen. Abhängig vom verwendeten Shadingverfahren gibt es verschiedene Möglichkeiten, die Rauhigkeitsinformation in die Berechnung einzubeziehen: Beim Ray-Tracing kann die Normalenellipse zum Antialiasing durch Überabtastung eingesetzt werden. Eine andere Möglichkeit bestünde darin, das Blinn-Phong-Shading so abzuwandeln, daß die Rauhigkeitsinformation berücksichtigt wird (s. unten). Allerdings ist es wenig sinnvoll, bei hohem Rechenaufwand zur Berechnung der Bump-Map anschließend ein sehr einfaches Beleuchtungsmodell zu verwenden. Ein Verfahren, mit dem ein ausgewogenes System mit hoher Bildqualität erreicht werden kann, benutzt die Rauhigkeitsinformation für anisotropes Antialiasing von Environment-Maps.
Die Rauhigkeitspyramide
Fig. 7 zeigt, wie die Information über die Oberfläche in zwei Auflösungspyramiden abgespeichert wird, der Bumppyramide und der Rauhigkeitspyramide. Bei der Bumppyramide handelt es sich um eine Standard-Mip-Map, deren kleinere Auflösungsstufen durch Filterung aus den höher aufgelösten Stufen berechnet werden. Bei der Rauhigkeitspyramide enthalten dagegen die Stufen niedriger Auflösung nicht nur die Information, die aus den Rauhigkeitsstufen höherer Auflösung, sondern auch die Rauhigkeitsinformation, die aus der nächsten Stufe der Bump-Map stammt, d. h. die Rauhigkeitsinformation aus den Bumps, die in der betrachteten Stufe der Bump-Map gerade heraus gefallen sind. Diese Information wird durch eine Kovarianzmatrix dargestellt, die wie oben beschrieben berechnet wird. Dazu kommt die gefilterte Kovarianzmatrix aus der nächsten Stufe der Rauhigkeitsmap. Als Ergebnis erhält man folgende rekursive Regel für die Berechnung der Kovarianzmatrix in der Stufe 1 (wenn für die Berechnung der Mip-Map ein 2×2-Boxfilter eingesetzt wird):
Die Berechnung nach dieser Formel führt zum selben Ergebnis wie die Berechnung der Kovarianzmatrix für alle Vektoren (b1 b2) aus dem Gebiet der höchsten Auflösungsstufe, das dem betrachteten Texel in Stufe 1 entspricht. Aus zwei Gründen ist es allerdings nicht sinnvoll, die Kovarianzmatrizen selbst in der Rauhigkeitsmap abzuspeichern:
  • - Die Kovarianzmatrix enthält die Quadrate der Standardabweichungen; um einheitliche Quantisierungsfehler über den gesamten Wertebereich der Standardabweichung zu erhalten, muß eine Größe, die proportional zur Standardabweichung ist abgespeichert werden.
  • - Wenn die Rauhigkeitsinformation für das Antialiasing von Environment-Maps eingesetzt werden soll, wird nicht die Kovarianzmatrix K benötigt, sondern eine Matrix D mit DDT = K.
Eine günstige Darstellung ergibt sich, wenn man
wählt, und die drei Zahlen d1, d2 und d3 abspeichert, wobei d1 und d3 so gewählt werden können, daß sie nicht negativ sind:
Mit
erhält man
Durch diese Daten sind nun die Parameter einer Ellipse gegeben, die die Verteilung der Störungsvektoren und dadurch auch die Verteilung der Normalenvektoren beschreibt.
Isotrope Rauhigkeitsdarstellung
Beschränkt man sich auf eine isotrope Rauhigkeitsinformation, so erhält man eine kompaktere Darstellung. Statt dreier Werte muß nur noch ein Wert gespeichert werden: die Standardabweichung der Störungsvektoren in Richtung der größten Varianz. Diese Zahl erhält man durch Diagonalisieren der Kovarianzmatrix
Der Wert, der in der Rauhigkeitsmap abgespeichert wird ist λ1, wobei λ1, λ2 ≧ O und λ1 ≧ λ2. Auf diese Weise erhält man eine konservative Abschätzung der Standardabweichung der Normalenvektoren im betrachteten Gebiet der Bump-Map. Beim Shading kann eine einfachere Version des modifizierten Blinn-Phong-Modells verwendet werden (s. Modifiziertes Blinn-Phong Model). Werden Environment-Maps mit Standard-Mip-Mapping eingesetzt, so kann λ1 zur Festlegung des Mip-Map-Levels verwendet werden, da mit Standard-Mip-Mapping ohnehin keine Möglichkeit zum anisotropen Antialiasing bietet.
Mit den Rauhigkeitsmaps und Rauhigkeitspyramiden wird es möglich, Antialiasing von Bump-Maps effizient und durch leicht zu entwickelnde Hardware unterstützt durchzuführen. Neben dem Aufbringen von Farben (Texturmapping) und Bumps (Bump-Mapping) wird es dadurch möglich, eine weitere Oberflächeneigenschaft auf Objekte aufzubringen. Ohne Rauhigkeitsmaps kann eine große Klasse von Objekten nicht wirklichkeitsgetreu dargestellt werden, ohne sehr hohen Aufwand zu treiben. Beispiele sind kleine Kratzer auf sonst glatten Oberflächen, gebürstete Oberflächen, aber auch jede Oberfläche mit Bump-Map, wenn sie aus einiger Entfernung betrachtet wird. Die - allerdings sehr aufwendige - Alternative zur Darstellung dieser Objekte wäre massives Supersampling.
Modifiziertes Blinn-Phong Modell
Im folgenden wird eine Abwandlung des Blinn-Phong-Modells beschrieben, bei der die Rauhigkeitsinformation aus den Rauhigkeitsmaps benutzt wird. Es wird das Blinn-Phong-Modell (Helligkeit proportional zum Skalarprodukt von Oberflächennormale n und Halfway-Vector h) im Gegensatz zum ursprünglichen Phong-Modell (Helligkeit proportional zum Skalarprodukt von reflektiertem Lichtquellenstrahl r und Sehstrahl v verwendet. Diese beiden Modelle werden oft als mehr oder weniger Äquivalent betrachtet, oder es wird wenigstens angenommen, daß beide die physikalische Wirklichkeit gleich gut oder schlecht widerspiegeln. Dies ist allerdings nicht der Fall; das Blinn- Phong-Modell nähert ein Mikro-Facetten-Modell an, wobei die Wahrscheinlichkeit, eine Facette mit Normalenvektor nmicro = h (genau diese Facetten spiegeln Strahlen, die von der Lichtquelle ausgehen, direkt ins Auge) zu sehen proportional zu (nTh)m ist. Dies ist einem physikalischen Modell viel näher, als das ursprüngliche Phong-Modell, wo der Winkel zwischen einem reflektierten Lichtquellenstrahl und der Richtung zum Augpunkt als Maß für die Wahrscheinlichkeit genommen wird, den reflektierten Lichtstrahl zu sehen, was physikalisch nicht motiviert werden kann. Wenn in der Literatur ein Unterschied zwischen den beiden Modellen gemacht wird, werden sie allerdings meist dadurch verglichen, daß die Form des Glanzgebiets auf einer Kugel verglichen wird. Einem nicht geschulten Beobachter fällt es allerdings sehr schwer, die korrekte Form eines solchen Glanzgebietes auf einer Kugel zu beurteilen. Würde statt dessen die Form des Glanzgebiets auf einer ebenen Fläche herangezogen, so wäre der Unterschied offensichtlich (s. Fig. 14).
Die Abwandlung des Algorithmus besteht darin, daß statt des Skalarprodukts nTh = cos(α) ein modifizierter Wert verwendet wird, wobei die Änderung abhängig von der Richtung von n-h gemacht wird. Zeigt n-h in die Richtung größerer Varianz von n, wird der Winkel verkleinert, ist die Varianz von n in dieser Richtung kleiner, wird der Winkel vergrößert. Ist d die Projektion von n-h in die e1-e2-Ebene, kann man cos(α') statt cos(α) verwenden (s. Fig. 15 für die verwendete Geometrie), wobei:
und cos2(α)=1-|d|2.
Man erhält α'<α, wenn die Varianz von n in der betrachteten Richtung größer als 1 ist, sonst erhält man α'≧α. Soll nur isotrope Rauhigkeitsinformation verwendet werden, die durch λ1 gegeben ist, so kann diese Formel vereinfacht werden:
Die Größe des Highlights und der Helligkeitsabfall zu seinem Rand hin kann immer noch durch den Exponenten m gesteuert werden. Da allerdings die Rauhigkeitsinformation in D (bzw. λ1) enthalten ist, ist es möglich, auch einen konstanten Exponenten m zu benutzen. Die Größe des Highlights wird dann ausschließlich durch die Rauhigkeit gesteuert. Eine weitere Möglichkeit besteht darin, eine feste Funktion f (cos2(α)) mit dem gewünschten Helligkeitsabfall zu verwenden, um die endgültige Pixelhelligkeit auszurechnen.
Literaturangaben
[1] Becker, B.G., Max, N.L., Smooth Transitions between Bump Rendering Algorithms, Proceedings of SIGGRAPH '93, Computer Graphics 27, Annual Conference Series, pp. 183-190.
[2] Bennebroek, K., Ernst, I., Rüsseler, H., Wittig, O., Design Principles of Hardware-based Phong Shading and Bump Mapping, in Proceedings of the 11thEurographics Workshop on Graphics Hardware, Poitiers Aug. 1996.
[3] Blinn, J., Models of Light Reflection for Computer Synthesized Pictures, SIGGRAPH 77, pp 192-198.
[4] Blinn, J., Simulation of Wrinkled Surfaces, SIGGRAPH 78, pp 286-292.
[5] Kirk, D.B., The Simulation of Natural Features Using Cone Tracing, The Visual Computer, vol. 3, no. 2, (August 1987), pp. 63-71.
[6] Schilling, A., Knittel, G., Straßer, W., Texram: A Smart Memory for Texturing, Computer Graphics & Applications, May 1996, pp. 32-41.
Zeichnungen und Abbildungen
Die Zeichnungen und Abbildungen zeigen:
Fig. 1 Antialiasing von Bump-Maps ist notwendig; andernfalls werden durch die Pixel (1) verlaufende Sehstrahlen (2) in zufällige Richtungen reflektiert (reflektierte Strahlen (3)), bzw. man erhält zufällige Helligkeitswerte aus der Beleuchtungsrechnung mit dem Phong-Modell.
Fig. 2 Tiefpaßfilterung bei Bump-Maps führt zu einer glatten Oberfläche, Bezeichnungen wie in Fig. 1.
Fig. 3 Die Rauhigkeit einer Oberfläche führt dazu, daß Strahlen aus mehr als einer Richtung in ein Pixel reflektiert werden. Die durch die Pixel (1) verlaufenden Sehstrahlen (2) werden als Strahlbündel (3) reflektiert.
Fig. 4 Darstellung der Bump-Map mit Hilfe von Offset Vektoren. Der ursprüngliche Normalenvektor (1), der die Länge 1 besitzt, wird durch durch Addition der beiden Komponenten (2) und (3) des Offsetvektors (4) zum neuen Normalenvektor (5). Dabei haben die beiden Komponenten (2) und (3) die Längen b1 bzw. b2.
Fig. 5 Konstruktion des lokalen Koordinatensystems für die Bump-Map unter Verwendung einer Hauptrichtung m (1). Dazu werden zwei zueinander und zum Normalenvektor senkrechte Vektoren e1 (2) und e2 (3) berechnet.
Der neue Normalenvektor n' (4) ergibt sich aus dem alten Normalenvektor n (5) durch Addition von b1e1 (6) und b2e2 (7).
Fig. 6 Die Sehstrahlen, die zu einem Pixel gehören, bilden ein kegelförmiges Strahlenbündel (1). Dieses Strahlenbündel wird durch eine höckerige Oberfläche (2) reflektiert. Das reflektierte Strahlenbündel (3) wird mit Hilfe der Verteilung von Normalenvektoren (4) im getroffenen Gebiet als elliptischer Kegel approximiert. Um die Richtungsverteilung als elliptische Kegel anschaulich zu machen, enden die Normalenvektoren (4) und die reflektierten Strahlen (3) in der Zeichnung innerhalb von Ellipsen, obwohl ihr Ursprung nicht in einem Punkt gezeichnet wurde.
Fig. 7 Bumppyramide (1) und Rauhigkeitspyramide (2) Die Pfeile (3), (4) und (5) veranschaulichen, wie mit der Reduzierung der Auflösung stärkeres Antialiasing mit abnehmender Bumpinformation und zunehmender Rauhigkeit einhergeht. Zu der Rauhigkeitsinformation aus den niedrigen, höher aufgelösten Stufen kommt in der Rauhigkeitspyramide (2) noch zusätzliche Rauhigkeit aus der Bumppyramide (1), die dort durch die Reduktion der Auflösung herausfallen muß, angedeutet durch die Pfeile (6).
Fig. 8 Mond über einem Rechteck; Die Wellen stammen aus einer Bump-Map. Antialiasing mit Hilfe von Rauhigkeitspyramiden. Als Hintergrund und als Environment-Map wurde ein Bild des Mondes verwendet.
Fig. 9 Wie Fig. 8; kein Antialiasing.
Fig. 10 Reflektierte Zebras. Geometrie: ein flaches Viereck. Bump-Map: abgeleitet aus Fig. 12. Hintergrund: Farbverlauf. Environment-Map:
Fig. 13. Antialiasing mit Rauhigkeitspyramide.
Fig. 11 Wie Fig. 10, ohne Antialiasing.
Fig. 12 Geometrie der der Bump-Map von Fig. 10 und Fig. 11 zugrundeliegenden Fläche.
Fig. 13 Environment-Map zu Fig. 10 und Fig. 11.
Fig. 14 Phong-Shading (1) im Vergleich zu Blinn-Phong-Shading (2). Die Reflexion der Sonne (3) im See (4) ist einmal als Phong Highlight (5) dargestellt, einmal als Blinn-Phong-Highlight (6). Die Kontur des BP-Highlights (6) wurde mit dem Programm Maple numerisch berechnet.
Fig. 15 Modifikation von α (1) zu α' (2) für ein modifiziertes Blinn-Phong-Modell. Gezeigt werden die Größen h-n (3), d (4) und d|d|/|Dd| (5).

Claims (4)

  1. l. Verfahren für das Antialiasing von Bump-Maps, insbesondere zum Zweck der Erzeugung der Farb- und Helligkeitswerte eines Ausgabegerätes, insbesondere eines Bildschirms, mit Hilfe einer elektronischen Schaltung für die aliasarme Darstellung geometrischer Objekte unter Verwendung von Bump-Maps, gekennzeichnet durch folgende Schritte:
    • - Berechnung von Rauhigkeitsinformationen des darzustellenden Objekts, kurze oder auch längere Zeit vor der Darstellung des Objekts,
    • - Speicherung dieser Rauhigkeitsinformationen in einer Speichervorrichtung,
    • - Verwendung dieser gespeicherten Werte zur Modifikation der Helligkeitswerte durch
      • - Veränderung der Parameter des Beleuchtungsmodells oder
      • - Veränderung der Parameter eines Environmentmapping-Verfahrens oder
      • - Berechnung einer Anzahl reflektierter Strahlen oder Strahlenbündel und Mittelung der resultierenden Helligkeitswerte.
  2. 2. Verfahren nach Anspruch 1, gekennzeichnet dadurch, daß die Rauhigkeitsinformationen aus einer vorliegenden Bump-Map berechnet werden.
  3. 3. Verfahren nach Anspruch 1, gekennzeichnet dadurch, daß die Rauhigkeitsinformationen in Form einer einzigen Zahl pro Abtastpunkt gespeichert werden, die ein Maß für die richtungsunabhängige Verteilung der Normalenwerte innerhalb des betrachteten Gebiets ist.
  4. 4. Verfahren nach Anspruch 1, gekennzeichnet dadurch, daß die richtungsabhängen Rauhigkeitsinformationen in Form mehrerer Zahlenwerte pro Abtastpunkt abgespeichert werden, die die Verteilung der Normalenwerte innerhalb des betrachteten Gebiets repräsentieren.
DE1997121416 1997-05-22 1997-05-22 Verfahren zum Antialiasing von Bump-Maps Withdrawn DE19721416A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE1997121416 DE19721416A1 (de) 1997-05-22 1997-05-22 Verfahren zum Antialiasing von Bump-Maps

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE1997121416 DE19721416A1 (de) 1997-05-22 1997-05-22 Verfahren zum Antialiasing von Bump-Maps

Publications (1)

Publication Number Publication Date
DE19721416A1 true DE19721416A1 (de) 1999-01-14

Family

ID=7830179

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1997121416 Withdrawn DE19721416A1 (de) 1997-05-22 1997-05-22 Verfahren zum Antialiasing von Bump-Maps

Country Status (1)

Country Link
DE (1) DE19721416A1 (de)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2353453A (en) * 1999-03-18 2001-02-21 Evans & Sutherland Computer Co System and method for antialiasing bump texture and bump mapping
US7891818B2 (en) 2006-12-12 2011-02-22 Evans & Sutherland Computer Corporation System and method for aligning RGB light in a single modulator projector
US8077378B1 (en) 2008-11-12 2011-12-13 Evans & Sutherland Computer Corporation Calibration system and method for light modulation device
US8358317B2 (en) 2008-05-23 2013-01-22 Evans & Sutherland Computer Corporation System and method for displaying a planar image on a curved surface
US8702248B1 (en) 2008-06-11 2014-04-22 Evans & Sutherland Computer Corporation Projection method for reducing interpixel gaps on a viewing surface
US9641826B1 (en) 2011-10-06 2017-05-02 Evans & Sutherland Computer Corporation System and method for displaying distant 3-D stereo on a dome surface

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2353453A (en) * 1999-03-18 2001-02-21 Evans & Sutherland Computer Co System and method for antialiasing bump texture and bump mapping
US6525740B1 (en) 1999-03-18 2003-02-25 Evans & Sutherland Computer Corporation System and method for antialiasing bump texture and bump mapping
GB2353453B (en) * 1999-03-18 2003-03-19 Evans & Sutherland Computer Co System and method for antialiasing bump texture and bump mapping
US7891818B2 (en) 2006-12-12 2011-02-22 Evans & Sutherland Computer Corporation System and method for aligning RGB light in a single modulator projector
US8358317B2 (en) 2008-05-23 2013-01-22 Evans & Sutherland Computer Corporation System and method for displaying a planar image on a curved surface
US8702248B1 (en) 2008-06-11 2014-04-22 Evans & Sutherland Computer Corporation Projection method for reducing interpixel gaps on a viewing surface
US8077378B1 (en) 2008-11-12 2011-12-13 Evans & Sutherland Computer Corporation Calibration system and method for light modulation device
US9641826B1 (en) 2011-10-06 2017-05-02 Evans & Sutherland Computer Corporation System and method for displaying distant 3-D stereo on a dome surface
US10110876B1 (en) 2011-10-06 2018-10-23 Evans & Sutherland Computer Corporation System and method for displaying images in 3-D stereo

Similar Documents

Publication Publication Date Title
DE3855231T2 (de) Prioritätsauflösungssystem zwischen Polygonen mit Antialiasing
DE3689271T2 (de) Verfahren zur Bildanzeige.
DE69130132T2 (de) Verfahren zur Erzeugung von Adressen zu texturierten, in RIP Maps gespeicherten graphischen Primitiven
DE69816824T2 (de) Texturabbildung in 3-d-rechnergraphik
DE3650129T2 (de) Verfahren zur Kantenglättung für Rechnerbilderzeugungssystem.
DE69836924T2 (de) Block- und bandorientierter durchlauf in dreidimensionaler dreieckswiedergabe
DE69127516T2 (de) Verfahren und Gerät zur Bilderzeugung
DE3750784T2 (de) Generation eines intrapolierten charakteristischen Wertes zur Anzeige.
EP2005259B1 (de) Verfahren zum rendern und generieren computer-generierter videohologramme in echtzeit
DE68927471T2 (de) Verfahren zur Schattierung eines graphischen Bildes
DE19646194B4 (de) Echtzeit-Wiedergabeverfahren zum wahlweisen Ausführen von Bump-Mapping- und Phong-Schattierungs-Prozessen und zugehörige Vorrichtung
DE60107130T2 (de) Sichtbarkeitsprojektion und Bildrekonstruktion für Oberflächenelemente
DE69716877T2 (de) System und Verfahren zur genauen Gradientberechnung für die Texturabbildung in einem Computergraphiksystem
EP0984397B1 (de) Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster
EP2024793B1 (de) Verfahren und einrichtung zum rendern und generieren computer-generierter videohologramme
DE69430647T2 (de) Bilddarstellung
DE69331486T2 (de) Bilddatenverarbeitung
DE102011016347A1 (de) Hierarchisches Umgrenzen von verschobenen parametrischen Flächen
DE3022454A1 (de) Optisches abbildesystem mit computererzeugtem bild fuer einen bodenfesten flugsimulator
DE69130127T2 (de) System und Verfahren zur Farbbilderanzeige
DE102010046507A1 (de) Berechnung der Detailstufe für die anisotrope Filterung
DE69606177T2 (de) Verfahren und gerät zur texturabbildung
DE69529732T2 (de) Korrektur der Perspektive von Texturen in graphischen Bildern durch adaptive Approximation
DE69924230T2 (de) Verfahren zur Modellierung von durch Oberflächenelemente dargestellten grafischen Objekten
EP0862141A2 (de) Bilddarstellungsverfahren und Vorrichtung zur Durchführung des Verfahrens

Legal Events

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

Owner name: SCHILLING, ANDREAS, DR., 72810 GOMARINGEN, DE

8181 Inventor (new situation)

Free format text: ERFINDER IST ANMELDER

8141 Disposal/no request for examination