Kurze Antwort
Normale Karten und Normalen sind zwei verschiedene Dinge: Normalen sind eine geometrische Eigenschaft eines Netzes / einer Oberfläche, deren Verwendung nicht ausschließlich für Schatten- und Beleuchtungsberechnungen gilt, sondern tatsächlich viele andere Verwendungszwecke hat, beispielsweise in der Physik. Normale Karten sind Texturen, die alternative normale Vektoren codieren, die in Computergrafiken zur Simulation von Unebenheiten verwendet werden.
Lange Antwort
Normalen in der Geometrie Eine Normale ist ein Vektor oder eine Linie, die senkrecht zu einem bestimmten Objekt steht (z. B. Ebenennormale , Scheitelpunktnormale). Normalen in Grafiken werden normalerweise für Lichtberechnungen verwendet, z. B. zur Berechnung der diffusen Reflexion über eine Oberfläche, indem das Punktprodukt zwischen der Lichtrichtung und den Oberflächennormalen genommen wird. Normalen werden normalerweise basierend auf den geometrischen Eigenschaften des Netzes (Flächen / Eckpunkte) berechnet, indem das Kreuzprodukt von zwei nicht parallelen Kanten genommen wird, die auf derselben Ebene liegen.
In OpenGL werden Normalen pro Scheitelpunkt angegeben (daher Scheitelpunktattribute genannt), obwohl sie in diesem Fall möglicherweise nur für jede Fläche berechnet werden. In diesem Fall müssen Sie für jeden Scheitelpunkt in einer Fläche dieselbe Norm angeben. Normalen können mit OpenGL über jeden Scheitelpunkt einer Fläche (Dreieck) interpoliert werden, sodass Sie das reflektierte Licht pro Pixel und nicht pro Scheitelpunkt berechnen und so ein genaueres Ergebnis erzielen können .
Normal Mapping : Auf der anderen Seite handelt es sich um eine Technik in der Computergrafik, die Normalen in einer Texturabbildung codiert, sodass jede Normale per Texel codiert wird. Es wird normalerweise zum Nachmachen der Beleuchtung von Unebenheiten und Beulen verwendet (z. B. Unebenheitskartierung, Parallaxenkartierung).
Da Normalen auf der Grundlage der geometrischen Eigenschaften des Netzes / der Oberfläche berechnet werden, bietet Normal Maps alternative Normalen, mit denen die Unebenheiten simuliert werden können, um der Oberfläche Details hinzuzufügen, ohne dass weitere Polygone hinzugefügt werden müssen.
Normale Karten werden normalerweise mit einem viel detaillierteren 3D-Modell erstellt. Anschließend werden die Normalen anhand dieses Modells berechnet und in einer normalen Karte codiert.
Warum brauchen wir beide?
Wenn Sie nur über das Rendern sprechen, werden Normalen und normale Karten normalerweise zusammen verwendet, um den endgültigen Beleuchtungseffekt zu erzielen. Ein gutes Beispiel könnte ein Bump-Shader sein, bei dem Sie die normale Karte benötigen, um den Bump-Beleuchtungseffekt zu erzielen geometrische Normale, um den sogenannten Tangensraum zu berechnen . Tangentialraum wird normalerweise verwendet, um die Wiederverwendbarkeit für normale Karten zu gewährleisten.
Denken Sie daran, dass eine Normale als geometrisches Attribut der Oberfläche betrachtet wird und weit mehr als nur Lichtberechnungen verwendet werden kann. Normale Karten hingegen werden normalerweise für oberflächliche Effekte verwendet.
Erweitere die Antwort, um zu erklären, warum tangentiale Räume wichtig sind:
Kurze Antwort:
Tangentiale Räume werden verwendet, um normale Karten von der zugrunde liegenden Geometrie unabhängig zu machen.
[BEARBEITEN] Bild hinzugefügt, um eine normale Karte im Tangentialraum und eine normale Karte im Weltraum darzustellen.
Lange Antwort:
Das folgende Bild zeigt die UV-Ebene und die Normale, die den Tangentenraum definiert. Wenn Sie eine normale Karte erstellen, wissen Sie bereits, dass auf dem verwendeten Raum die Normale immer in Z-Richtung zeigt (daher sehen normale Karten bläulich aus). Dies hilft uns, die Oberflächenkrümmung zu ignorieren.
Der tangentiale Raum bietet den Vorteil, dass unsere normale Kartencodierung nicht an bestimmte Mesh-Normalen gebunden ist. Angenommen, wir codieren unsere normale Karte im Welt- oder Objektraum. Jede von uns codierte Normale hat eine Richtung, die davon abhängt, wie sich die ursprünglichen Mesh-Normalen im Weltraum unterscheiden. Ganz zu schweigen davon, dass Ihre normale Karte von den Modelltransformationen betroffen ist.
In den beiden obigen Bildern ist es ziemlich klar, dass der Tangentenraum normale Karten (rechts) erstellt, unabhängig von der zugrunde liegenden Geometrie, da alle Normalen mit kleinen Abweichungen in nahezu derselben Richtung codiert werden, um den Effekt der Unebenheiten zu simulieren.
** Die Oberflächenkrümmung wird durch den Betrag definiert, um den ein geometrisches Objekt von der Ebenheit oder bei einer Linie von der Geradheit abweicht. Dies wird jedoch je nach Kontext auf unterschiedliche Weise definiert.