Krótka odpowiedź
Normalne mapy i Normalne to dwie różne rzeczy: Normalne są geometryczną właściwością dowolnej siatki / powierzchni, której użycie nie jest wyłączne do obliczeń zacienienia i oświetlenia, ale ma wiele innych zastosowań, na przykład w fizyce. Normalne mapy to tekstury, które kodują alternatywne wektory normalne używane w grafice komputerowej do symulacji nierówności.
Długa odpowiedź
Normalne w geometrii normalne to wektor lub linia, która jest prostopadła do danego obiektu (np. Normalna płaszczyzna, normalna wierzchołek). Normalne w grafice są zwykle używane do obliczeń światła, takich jak obliczanie rozproszonego odbicia na powierzchni, biorąc iloczyn punktowy między kierunkiem światła a normalnymi powierzchniami. Normalne są zwykle obliczane na podstawie właściwości geometrycznych siatki (Ściany / Wierzchołki), biorąc iloczyn poprzeczny dowolnych dwóch nierównoległych krawędzi, które leżą na tej samej płaszczyźnie.
W OpenGL normalne są określane dla wierzchołka (stąd nazywane atrybutami wierzchołków), nawet jeśli mogą być obliczane tylko dla każdej powierzchni, w tym przypadku musisz określić tę samą normę dla każdego wierzchołka w twarzy. Normalne mogą być interpolowane przez OpenGL na każdym wierzchołku twarzy (trójkąta), dzięki czemu można obliczyć odbite światło na piksel, a nie na wierzchołek, co daje dokładniejszy wynik.
Normalne mapowanie : z drugiej strony jest techniką w grafice komputerowej, która koduje Normalne na mapie tekstury, więc każda normalna jest kodowana na tekst. Zwykle służy do udawania oświetlenia guzów i wgnieceń (np. Mapowanie guzów, mapowanie paralaksy).
Ponieważ normalne są obliczane na podstawie właściwości geometrycznych siatki / powierzchni, mapy normalne podadzą alternatywne normalne, które mogą symulować nierówności w celu dodania szczegółów do powierzchni bez dodawania większej liczby wielokątów.
Zwykłe mapy są zwykle generowane przy użyciu znacznie bardziej szczegółowego modelu 3D, a następnie obliczane są normalne na podstawie tego modelu i kodowane na mapie normalnej.
Dlaczego potrzebujemy obu?
Mówiąc tylko o renderowaniu, normalne i normalne mapy są zwykle używane razem, aby osiągnąć ostateczny efekt świetlny, dobrym przykładem może być moduł cieniowania wypukłości, gdzie potrzebujesz normalnej mapy normalnej, aby uzyskać efekt oświetlenia wypukłości, a nadal będziesz potrzebować geometryczna normalna do obliczenia tak zwanej przestrzeni stycznej . Przestrzeń styczna jest zwykle używana, aby zapewnić możliwość ponownego użycia normalnych map.
Należy pamiętać, że normalna jest uważana za geometryczny atrybut powierzchni i ma o wiele więcej zastosowań niż tylko lekkie obliczenia. Z drugiej strony zwykłe mapy są zwykle używane do uzyskania powierzchownych efektów.
Rozszerzenie odpowiedzi w celu wyjaśnienia, dlaczego przestrzenie styczne są ważne:
Krótka odpowiedź:
Przestrzenie styczne służą do uniezależnienia normalnych map od leżącej pod nimi geometrii.
[EDYCJA] Dodano obraz przedstawiający normalną mapę w przestrzeni stycznej i normalną mapę w przestrzeni świata.
Długa odpowiedź:
poniższe zdjęcie pokazuje płaszczyznę UV i normalną, która definiuje przestrzeń styczną, podczas generowania normalnej mapy będziemy już wiedzieć, że używana przestrzeń zawsze będzie miała Normalną wskazującą w kierunku Z (dlatego normalne mapy wyglądają niebieskawo) , to pomoże nam zignorować krzywiznę powierzchni **,.
Przestrzeń styczna daje nam tę przewagę, że nasze normalne kodowanie map nie jest powiązane z określonymi normalnymi siatkami. Załóżmy, że zakodujemy naszą normalną mapę w przestrzeni świata lub obiektu, wtedy każda normalna, którą kodujemy, będzie miała kierunek oparty na tym, jak oryginalne normalne siatki różnią się w przestrzeni świata, nie wspominając już o tym, że transformacja modelu będzie miała wpływ na twoją normalną mapę.
Na powyższych dwóch obrazach widać dość wyraźnie, że przestrzeń stycznych sprawia, że normalne mapy (po prawej) są niezależne od podstawowej geometrii, ponieważ wszystkie normalne są kodowane w prawie tym samym kierunku z niewielką zmiennością, aby symulować efekt wypukłości.
** krzywizna powierzchni jest zdefiniowana przez wielkość, którą obiekt geometryczny odbiega od bycia płaskim lub prostym w przypadku linii, ale jest to definiowane na różne sposoby w zależności od kontekstu.