Einsteigerguide: Was ist Parallax Occlusion Mapping?

Parallax Occlusion Mapping (POM) ist eine High-End-Technik zur Schattierung von GPU-Fragmenten, die jedem Texel effektiv einen Höhenwert verleiht.

Was ist Parallax Occlusion Mapping?

Normal Mapping.

Beim Normal Mapping wird die Beleuchtung jedes Fragments so verändert, dass es so wirkt, als ob die Oberfläche in eine andere Richtung ausgerichtet wäre. Dadurch kann das Licht über „Oberflächenunebenheiten“ hinweg spielen, als ob sie in der Geometrie vorhanden wären. Dies bietet ein überzeugendes Ergebnis, leidet aber unter verschiedenen Einschränkungen bei der Betrachtung aus nächster Nähe, einschließlich:

  • Das Fehlen von Parallax Motion. So bewegen sich beispielsweise die Oberseiten der Unebenheiten (die näher an der Kamera sein sollten) nicht mit einer anderen Geschwindigkeit über das Sichtfeld als die Unterseite der Löcher (die weiter von der Kamera entfernt sein sollte). Dieser Mangel an Relativbewegungen reduziert die Effektivität der Technik.
  • Das Fehler jeglicher Form von Self-Occlusion. Zum Beispiel, unter einem Streifwinkel gesehen, sollte eine Beule einen Teil der ebenen Fläche hinter der Beule verschließen. Normal Mapping bietet dies nicht und Sie können die gesamte Oberfläche unabhängig vom Blickwinkel sehen.
  • Das Fehlen jeglicher Form von Selbstbeschattung. Beispielsweise erzeugt eine Bodenwelle keine Schatten auf der nahegelegenen ebenen Fläche.

Zusammengenommen verringern diese die Effektivität des Normal Mapping, so dass das Ergebnis aus bestimmten Blickwinkeln, unter bestimmten Lichtverhältnissen und bei Unebenheiten oder Löchern von erheblicher Tiefe weniger überzeugend ist.

Parallax Occlusion Mapping.

POM fügt Texelhöhendaten hinzu, getrennt von den normalen Texeldaten. Jedes Fragment wird auf dem Grafikprozessor durchleuchtet, um das korrekte visuelle Ergebnis zu bestimmen und alle oben genannten Einschränkungen zu beseitigen. Dies führt zu einem äußerst realistischen Ergebnis unter vielen Betrachtungsbedingungen, was zu Lasten einer erheblichen GPU-Zeit geht.

Der Effekt hat im Vergleich zur tatsächlichen Geometrie noch einige Einschränkungen:

  • Die Silhouette der Geometrie bleibt unverändert. Bei extremen Blickwinkeln ist noch zu erkennen, dass die Geometrie eine flache Silhouette hat. Dies wird typischerweise durch die begrenzte Verwendung der tatsächlichen Geometrie moderiert, um eine flache Silhouette zu vermeiden.
  • Multi-Pass-Rendering-Techniken sind unbrauchbar oder von verminderter Effektivität aufgrund von Höhenfehlanpassungen zwischen den Passes.
  • POM ist empfindlich gegenüber Schwankungen zwischen dem normalen Fragment und dem Face Normal. Geometrien, bei denen geglättete Nachbarflächen wesentlich unterschiedliche Normals aufweisen, führen zu schlechten Ergebnissen bei der Verwendung von POM.

Wie beim Normal Mapping wird erwartet, dass POM die Visualisierung der bereits akzeptablen Geometrie verbessert. Es kann nicht verwendet werden, um das Erscheinungsbild einer akzeptablen Geometrie aus einer qualitativ schlechten Geometrie zu erzeugen.

Heightmap-Daten.

Jedes Texel in einem POM-Material hat einen einzigen Kanal von Heightmap-Daten, normiert zwischen 0,0 (in die Geometrie auf den maximalen Betrag versenkt) und 1,0 (von der Geometrie auf den normalen Betrag erhöht). Was das genau bedeutet, hängt vom verwendeten Material ab. Typische Meshmaterialien haben 1,0, die bündig mit der Geometrie liegen, mit dem Ergebnis, dass es nur möglich ist, in die Geometrie einzudringen, nie aus ihr herauszuziehen. Grundmaterialien hingegen haben 0,5 auf der Referenzgrundhöhe, wobei 0,0 unter die Referenz und 1,0 über die Referenz geschoben werden – dies wird effektiv erreicht, indem die Bodennodes vor der Anwendung des POM-Effekts extrudiert werden.

Heightmap-Daten können in einem Programm wie Adobe Photoshop manuell bearbeitet werden, sofern ein linearer Farbraum verwendet wird. Die Verwendung eines nichtlinearen Farbraums führt zu einem falschen Mittelpunkt und verzerrten Höhenbereichen. Wenn Sie Heightmap-Daten manuell bearbeiten, stellen Sie sicher, dass Sie ein Werkzeug verwenden, um die Normal-Map-Daten so wiederherzustellen, dass die beiden Datensätze synchron bleiben – wobei die beiden Effekte, die widersprüchliche Oberflächendetails simulieren, zu schlechten Ergebnissen führen.

Leistung.

Parallax Occlusion Mapping kann sehr GPU-intensiv sein. Wir gehen davon aus, dass Benutzer mit GPUs im unteren bis mittleren Leistungsbereich dieses Effekt deaktiviert haben werden. Das Deaktivieren des Effekts ist ein Umschalten der Einstellungen und führt einfach dazu, dass die Höhendaten ignoriert werden.

Artefakte.

Es existieren eine Reihe von möglichen Artefakten, die sich aus dem Einsatz der POM-Technik ergeben. POM ist keine „Set and Forget“-Technik – Content-Ersteller müssen eine geeignete Geometrie entwerfen, eine geeignete UV-Mapping-Methode verwenden und die Ergebnisse sorgfältig testen. Insbesondere liegt es in der Verantwortung des Erstellers, sich mit den folgenden Punkten zu befassen:

  • POM kann dazu führen, dass Textilien sichtbar werden, die sich von außerhalb des UV-abgebildeten Bereichs der Textur befinden.
    • Je extremer der Betrachtungswinkel und je tiefer die Parallaxe, desto weiter außerhalb der vorgesehenen Zuordnung kann der Benutzer sehen.
    • Die einfachste Verwendung von POM, die dieses Problem vollständig vermeidet, besteht darin, den gesamten Bereich einer Textur zu nutzen, die eine Texturierung entlang beider Achsen verwendet.
      • In einigen Fällen erfordert dies den Einsatz einer Reihe von zusätzlichen Materialien, da Texturen, die bisher Teil eines Texturatlas sein konnten, nun eine eigene, einzigartige Fliesentextur benötigen.
      • Wenn Sie die Anzahl der Materialien auf diese Weise erhöhen, sollten Sie sicherstellen, dass Sie in ihren unteren LODs eine andere Strategie anwenden, um zu vermeiden, dass die Anzahl der Draw Calls aufgeblasen wird. Das Deaktivieren von POM bei niedrigeren LODs ist eine gültige Strategie.
    • Alternativ kann der Contentersteller verschiedene Strategien anwenden, um zu vermeiden, dass dieses Artefkat für den Benutzer sichtbar wird.
      • Wenn die POM-Geometrie vollständig von einer anderen Geometrie umschlossen ist, so dass sie nicht unter einem scharfen Winkel betrachtet werden kann, ist dieses Artefakt möglicherweise nicht problematisch.
      • Wenn die POM Displacement Map einen hohen Rand mit ausreichender Texelbreite beinhaltet, wird jedes Trace Heading außerhalb des gewünschten Bereichs durch diesen Rand blockiert.
      • Wenn die Textur nicht gekachelt ist, kann der Trace auf normale Weise durch den Rand der Textur blockiert werden.
    • POM ist stark empfindlich gegenüber dem Verhältnis von Text zu Meter an jedem Fragment.
      • Ist entscheidend, dass jedes Texel so abgebildet wird, dass es fast quadratisch und von gleichbleibender Größe ist.

Vielen Dank für ihren Besuch.