See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Bump mapping – Wikipedia

Bump mapping

aus Wikipedia, der freien Enzyklopädie

Bumpmapping, auch Reliefzuordnung, ist eine Technik zur Darstellung von extrem detailreichen Objekten, ohne die Geometriekomplexität des Objekts zu erhöhen, die vor allem in 3D-Visualisierungsprogrammen zum Einsatz kommt. Der Trick dabei ist, dass die benötigten Informationen in einer Textur gelagert werden, mit deren Hilfe Schattierungen auf eine Oberfläche gezeichnet werden.

Bumpmapping ist somit nur eine (wenngleich wirksame) Illusion, welche Oberflächenunebenheiten simuliert, die in der Geometrie des Modells gar nicht vorhanden sind.

Voraussetzung für die Verwendung von Bumpmaps ist ein Beleuchtungsmodell, das auf Per-Pixel-Lighting basiert. APIs wie DirectX oder OpenGL haben die nötigen Routinen bereits vorliegen. Meistens wird jedoch eine Kombination aus Vertex und Pixel-Shadern verwendet, um die nötigen Effekte exakt zu kontrollieren.

Inhaltsverzeichnis

[Bearbeiten] Heightmapping

Die Informationen liegen in Form von relativen Höhendaten vor. Dabei wird eine Textur verwendet, die in Graustufen vorliegt, wobei jeder Grauwert eine bestimmte Höhe repräsentiert. Normalerweise ist Schwarz (Farbwert 0) die „tiefste“ Stelle und Weiß (Farbwert: 255) die „höchste“. Diese Form der Datenspeicherung ist nicht nur auf Bumpmapping beschränkt, viel öfter kommt sie bei der Generierung von riesigen Terrains zum Einsatz.

[Bearbeiten] Normalmapping

In einer Normalmap werden anstatt von Höheninformationen Vektoren in ein RGB-Farbentripel konvertiert. Jeder Pixel besteht aus 3 Farbenkanälen: Rot, Grün und Blau. Diese können als X,Y und Z interpretiert werden: der Vektor muss nur mehr normalisiert werden, um daraus den Helligkeitsfaktor am betreffenden Punkt zu berechnen (siehe Per-Pixel-Lighting). Hierbei muss beachtet werden, dass der Vektor, der aus den Farbwerten berechnet wird, im Tangentenraum vorliegt. Um die nötigen Berechnungen durchführen zu können, muss dieser Vektor in das Weltkoordinatensystem transformiert werden. Alternativ könnten auch alle anderen Vektoren (Kamera-Punkt, Licht-Punkt) in das Tangentenkoordinatensystem verschoben werden.

[Bearbeiten] Anwendung

einfache Kugel
einfache Kugel
Obwohl zum vorhergehenden Objekt geometrisch identisch, sieht dieses dank Bump Mapping viel detailreicher aus.
Obwohl zum vorhergehenden Objekt geometrisch identisch, sieht dieses dank Bump Mapping viel detailreicher aus.
Die in Bild 2 verwendete Bump-Map (Heightmap)
Die in Bild 2 verwendete Bump-Map (Heightmap)

Der 3D-Modeller baut zwei Versionen eines Modells auf: eine hochauflösende, sehr detailreiche (100.000+ Polygone) und eine für das fertige Programm bestimmte, undetaillierte (100–10.000 Polygone). Ein Programm berechnet den Unterschied zwischen den beiden Modellen und beschreibt mit den gewonnenen Daten eine Textur. Diese Textur wird dann auf das Low-Res-Modell aufgespannt. Im fertigen Spiel/Bild/Anwendung bekommt der Benutzer den Eindruck, dass das hochdetaillierte Modell verwendet wird.

Außerdem kann eine Heightmap in eine Normalmap umgewandelt werden, welche heutzutage am häufigsten verwendet wird.

Bumpmapping verbessert die Bildqualität und den Realismusgrad, ohne sich groß auf die Performance niederzuschlagen. Außerdem ist das Einsatzgebiet nicht nur auf Schattierungen begrenzt. Reflexionen können mit dieser Technik genau so „gebumpt“ werden.

Parallax-Mapping der Qfusion-Engine (Spiel Nexuiz)
Parallax-Mapping der Qfusion-Engine (Spiel Nexuiz)

Im Unterschied zum Bumpmapping wird beim Displacement Mapping auch die Objekt-Geometrie entsprechend dem Oberflächenprofil verändert. Dies erfordert einen wesentlich größeren Rechenaufwand beim Rendern, wird aber von neueren Grafikprozessoren bereits in Hardware realisiert. Neuere Grafikengines wie zum Beispiel die Unreal-Engine 3 sind in der Lage Displacement Mapping vorzugaukeln: Über Modifikationen der Texturkoordinaten auf Per-Pixel-Basis werden Effekte simuliert, die die (nicht existenten, nur beleuchteten) Unebenheiten plastisch wirken lassen. Die einfachste dieser Varianten nennt sich Parallax-Mapping und berechnet aus einer Heightmap die neuen Texturkoordinaten relativ zur Kameraposition. Der Nachteil ist, dass eigentlich nicht sichtbare Pixel trotzdem gerendert werden. Abhilfe schafft nur das Speichern zusätzlicher Beziehungen zwischen Texel (Verdeckungen) über weitere Texturen (View-Dependent Mapping). Diese Effekte werden oft unter Virtual Displacementmapping zusammengefasst.

Es ist zu beachten, dass die Oberfläche des rechten Objekts weiterhin vollkommen flach ist, da nur die Farbwerte der Textur verändert werden und nicht, wie beim Displacement Mapping, die Form des Objekts.

Bumpmapping spielt bereits eine große Rolle in Projekten der Unterhaltungsindustrie, da sich die visuelle Qualität deutlich verbessern lässt, ohne die Leistung dabei nennenswert zu beeinträchtigen.

[Bearbeiten] Weblinks


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -