Bump-Mapping - Bump mapping

Eine Kugel ohne Bump-Mapping (links). Eine Bump-Map, die auf die Kugel (Mitte) angewendet werden soll. Die Kugel mit der angewendeten Bump-Map (rechts) scheint eine gesprenkelte Oberfläche zu haben, die einem orangen ähnelt . Bump Maps erzielen diesen Effekt, indem sie ändern, wie eine beleuchtete Oberfläche auf Licht reagiert, ohne die Größe oder Form der Oberfläche zu ändern.

Bump-Mapping ist eine Textur-Mapping- Technik in der Computergrafik zum Simulieren von Unebenheiten und Falten auf der Oberfläche eines Objekts. Dies wird erreicht, indem die Oberflächennormalen des Objekts gestört werden und die gestörte Normale während der Beleuchtungsberechnungen verwendet wird. Das Ergebnis ist eher eine scheinbar holprige Oberfläche als eine glatte Oberfläche, obwohl die Oberfläche des darunter liegenden Objekts nicht verändert wird. Das Bump-Mapping wurde 1978 von James Blinn eingeführt .

Normal Mapping ist die am häufigsten verwendete Variante des Bump-Mappings.

Grundsätze

Das Bump-Mapping ist insofern eingeschränkt, als es die Form des darunterliegenden Objekts nicht verändert. Auf der linken Seite simuliert eine mathematische Funktion, die eine Bump-Map definiert, eine zerbröckelnde Oberfläche auf einer Kugel, aber der Umriss und der Schatten des Objekts bleiben die einer perfekten Kugel. Auf der rechten Seite wird die gleiche Funktion verwendet, um die Oberfläche einer Kugel zu modifizieren, indem eine Isofläche erzeugt wird . Dadurch wird eine Kugel mit einer holprigen Oberfläche modelliert, sodass sowohl ihr Umriss als auch ihr Schatten realistisch wiedergegeben werden.

Bump Mapping ist eine Technik in der Computergrafik , um eine gerenderte Oberfläche realistischer aussehen zu lassen, indem kleine Verschiebungen der Oberfläche simuliert werden. Im Gegensatz zu Displacement Mapping wird die Oberflächengeometrie jedoch nicht geändert. Stattdessen wird nur die Flächennormale geändert, als ob die Fläche verschoben worden wäre. Die modifizierte Oberflächennormale wird dann für Beleuchtungsberechnungen (z. B. unter Verwendung des Phong-Reflexionsmodells ) verwendet, um das Aussehen von Details anstelle einer glatten Oberfläche zu erhalten.

Bump-Mapping ist im Vergleich zum Displacement-Mapping viel schneller und verbraucht bei gleichem Detaillierungsgrad weniger Ressourcen, da die Geometrie unverändert bleibt.

Es gibt auch Erweiterungen, die neben der Tiefenwahrnehmung auch andere Oberflächenmerkmale modifizieren. Parallax Mapping und Horizont Mapping sind zwei solche Erweiterungen.

Die Haupteinschränkung beim Bump-Mapping besteht darin, dass es nur die Oberflächennormalen stört, ohne die darunterliegende Oberfläche selbst zu ändern. Silhouetten und Schatten bleiben daher unbeeinflusst, was sich besonders bei größeren simulierten Verschiebungen bemerkbar macht. Diese Einschränkung kann durch Techniken wie Displacement Mapping überwunden werden, bei denen Erhebungen auf die Oberfläche aufgebracht werden, oder durch Verwendung einer Isooberfläche .

Methoden

Es gibt zwei Hauptmethoden, um Bump-Mapping durchzuführen. Die erste verwendet eine Höhenkarte zum Simulieren der Oberflächenverschiebung, die die modifizierte Normale ergibt. Dies ist die von Blinn erfundene Methode und wird normalerweise als Bump-Mapping bezeichnet, sofern nicht anders angegeben. Die Schritte dieses Verfahrens werden wie folgt zusammengefasst.

Bevor eine Beleuchtungsberechnung für jeden sichtbaren Punkt (oder Pixel ) auf der Objektoberfläche durchgeführt wird:

  1. Schlagen Sie in der Heightmap die Höhe nach, die der Position auf der Oberfläche entspricht.
  2. Berechnen Sie die Oberflächennormale der Heightmap, normalerweise mit der Finite-Differenzen- Methode.
  3. Kombinieren Sie die Flächennormale aus Schritt zwei mit der wahren ("geometrischen") Flächennormalen, sodass die kombinierte Normale in eine neue Richtung zeigt.
  4. Berechnen Sie die Interaktion der neuen "holprigen" Oberfläche mit Lichtern in der Szene, indem Sie beispielsweise das Phong-Reflexionsmodell verwenden .

Das Ergebnis ist eine Oberfläche, die echte Tiefe zu haben scheint. Der Algorithmus stellt außerdem sicher, dass sich das Aussehen der Oberfläche ändert, wenn Lichter in der Szene bewegt werden.

Die andere Methode besteht darin, eine Normalenkarte anzugeben, die die modifizierte Normale für jeden Punkt auf der Oberfläche direkt enthält. Da die Normale direkt angegeben wird und nicht von einer Höhenkarte abgeleitet wird, führt diese Methode normalerweise zu vorhersehbareren Ergebnissen. Dies erleichtert Künstlern die Arbeit und ist heute die gebräuchlichste Methode für das Bump-Mapping.

Echtzeit-Bump-Mapping-Techniken

Beispiel für ein gefälschtes Bump-Mapping in Echtzeit.
Von links:
  1. Oberflächenbitmap, absichtlich verschwommen,
  2. Lichtquelle Bitmap,
  3. Bump-Mapping-Effekt mit umlaufender Flugbahn der Lichtquelle .

Echtzeit - 3D - Grafik - Programmierer verwenden häufig Variationen der Technik zu simulieren , um Bump - Mapping zu einem niedrigen Rechenaufwand.

Ein typischer Weg war die Verwendung einer festen Geometrie, die es einem ermöglicht, die Oberflächennormale der Heightmap fast direkt zu verwenden. Kombiniert mit einer vorberechneten Lookup-Tabelle für die Beleuchtungsberechnungen konnte das Verfahren mit einer sehr einfachen und schnellen Schleife implementiert werden, die einen Vollbildeffekt ermöglicht. Diese Methode war ein üblicher visueller Effekt, als das Bump-Mapping zum ersten Mal eingeführt wurde.

Siehe auch

Verweise

Externe Links