Co to jest mapowanie normalnych?
Dzięki mapowaniu normalnych w grafice komputerowej 3D nie każdy szczegół modelu musi zostać odzwierciedlony lub wyrzeźbiony w geometrii obiektu. Ta technika umożliwia tworzenie iluzji szczegółów powierzchni w celu zwiększania poziomu realizmu obiektów cyfrowych bez wzrostu złożoności geometrycznej.

Omówienie procesu mapowania normalnych
W modelowaniu 3D powierzchnie są reprezentowane przez wielokąty. Obliczenia oświetlenia są wykonywane na podstawie geometrii tych wielokątów w taki sam sposób, w jaki artysta używa technik cieniowania, aby uzyskać efekt trójwymiarowości. To podejście sprawdza się bardzo dobrze. Może jednak wymagać dużej mocy obliczeniowej, ograniczając ogólny dostępny poziom szczegółowości. Mapowanie normalnych to doskonałe mniej obciążające rozwiązanie, które polega na modyfikowaniu sposobu, w jaki światło wchodzi w interakcje z powierzchnią, bez zmieniania podstawowej geometrii.
Mapy normalnych przechowują informacje o powierzchni w postaci obrazu tekstury. Dzięki zakodowaniu wektorów normalnych powierzchni w teksturze, mapy normalnych mogą symulować wygląd szczegółów powierzchni, takich jak wypukłości, zadrapania, zmarszczki i inne, bez zwiększania złożoności geometrii znajdującej się pod nią.
Mapy normalnych są obliczane podczas renderowania przy użyciu zmodyfikowanego wektora normalnego powierzchni z mapy normalnych. Obliczenia te są mniej obciążające, co pozwala uzyskać wysoki poziom szczegółowości w czasie rzeczywistym. Mapy normalnych są popularną techniką stosowaną przez twórców gier komputerowych.
Gdzie obecnie używa się mapowania normalnych
Ogólnie mapowanie normalnych jest uniwersalną techniką i każdy artysta oraz projektant 3D powinien korzystać z niej w celu przyspieszenia i usprawnienia pracy.
Mapowanie normalnych jest stosowane nie tylko w scenariuszach, w których ograniczenia sprzętowe są niezwykle ważne — na przykład w grach komputerowych wymagających renderowania scen dla gracza w czasie rzeczywistym — ale też w filmach animowanych komputerowo, wizualizacjach architektonicznych i projektowaniu produktów.
Mapowanie normalnych nie wpływa na kolorowanie obiektu, więc jest używane najczęściej w przypadkach, gdy powierzchnia obiektu nie jest idealnie płaska lub gładka. Tak naprawdę w przypadku niemal każdego modelu 3D warto użyć mapy normalnych do poprawienia realizmu, na przykład zużytej skóry, wypukłych słojów na drewnie, ludzkiej skóry, tkanin i innych.
Dostępnych jest szereg podstawowych narzędzi i programów, które są powszechnie używane do mapowania normalnych. Oto kilka z nich:
1. Oprogramowanie do modelowania 3D: narzędzia takie jak Blender, Maya, ZBrush i {{substance-3d-modeler}} służą do tworzenia modeli, które będą używane do mapowania normalnych. Istnieje wiele świetnych rozwiązań programowych, z których każde obsługuje osobne podejście do modelowania i rzeźbienia.
2. Oprogramowanie do malowania tekstur: oprogramowania takiego jak {{substance-3d-painter}} lub nawet Adobe Photoshop można używać do tworzenia i edytowania map tekstur, w tym map normalnych.
3. Generatory map normalnych: oprogramowanie do generowania map normalnych pomaga tworzyć mapy normalnych na podstawie informacji o geometrii lub teksturze o wysokiej rozdzielczości. Narzędzia takie jak xNormal, CrazyBump lub Substance 3D Designer umożliwiają generowanie map normalnych na podstawie różnych danych wejściowych.
4. Mechanizmy gier: mechanizmy gier, takie jak Unreal Engine i Unity, mają wbudowaną obsługę mapowania normalnych. Mechanizmy te zapewniają niezbędne narzędzia i możliwości renderowania do korzystania z map normalnych. Są świetne do tworzenia zarówno renderingów, jak i środowisk gier.
5. Języki programowania programów cieniujących: rozumienie języków programowania programów cieniujących, takich jak HLSL (High-Level Shading Language) lub GLSL (OpenGL Shading Language), może być przydatne przy tworzeniu niestandardowych programów cieniujących wykorzystujących mapowanie normalnych. Te języki umożliwiają programistom definiowanie interakcji oświetlenia z mapami normalnych i innymi mapami tekstur, aby uzyskać niesamowite efekty wizualne.
Ta lista może nie być wyczerpująca, ale zapewnia twórcom doskonały punkt wyjścia do uzyskania podstawowego zrozumienia map normalnych i sposobów ich implementowania w środowiskach renderowania w czasie rzeczywistym.

Obraz autorstwa: Playground Games.

Czym mapy normalnych różnią się od map wypukłości
Mapy normalnych przechowują jawne informacje o wektorach normalnych powierzchni przy użyciu obrazów RGB, na których każdy kanał koloru reprezentuje składową X, Y lub Z wektora normalnego powierzchni na poziomie poszczególnych tekseli. Mapy normalnych rejestrują znacznie więcej informacji o orientacji powierzchni. Mapy normalnych nie wpływają na geometrię samego modelu, ale mimo to modyfikują sposób interakcji światła wokół niego.
W porównaniu z mapami wypukłości mapy normalnych zapewniają najdokładniejsze wyniki dzięki rejestrowaniu szczegółów powierzchni wykraczających poza same różnice wysokości.
Zalety i wady mapowania normalnych
1. Realistyczne szczegóły powierzchni. Mapowanie normalnych umożliwia dodanie skomplikowanych szczegółów powierzchni bez zwiększania złożoności geometrycznej.
2. Wydajność. Mapowanie normalnych jest techniką wydajną obliczeniowo, szczególnie w porównaniu ze zwiększaniem liczby wielokątów w modelach w celu dodawania detali powierzchni.
3. Zmniejszenie zapotrzebowania na pamięć. Mapy normalnych przechowują informacje w formacie tekstury, który zazwyczaj wymaga mniej pamięci niż dane geometrii.
4. Możliwość ponownego użycia. Mapy normalnych można łatwo stosować do różnych modeli, co pozwala artystom i programistom na ich wielokrotne używanie w wielu zasobach. Umożliwia to oszczędzanie czasu i wysiłku oraz zmniejszenie ostatecznego rozmiaru produktu.
5. Interaktywne efekty świetlne. Mapowanie normalnych poprawia interakcję światła z modelem oraz umożliwia stosowanie dynamicznych efektów oświetlenia 3D, takich jak doświetlanie odblasków, różnice w cieniowaniu i dokładniejsze odbicia.
1. Ograniczona zmiana geometrii, Mapy normalnych wpływają jedynie na wygląd szczegółów powierzchni — nie umożliwiają modyfikowania geometrii. Tworzona za ich pomocą iluzja jest często przydatna, ale czasami konieczne jest użycie innych technik, gdy wymagana jest faktyczna modyfikacja geometrii.
2. Tworzenie i edycja. Opracowanie wysokiej jakości mapy normalnych może być trudne. Wymaga wiedzy specjalistycznej oraz właściwego oprogramowania. Edytowanie map normalnych również nie jest proste ze względu na skomplikowany charakter danych.
3. Ograniczenia miejsca na tekstury. Mapy normalnych wymagają dodatkowego miejsca na tekstury, ponieważ zazwyczaj są one przechowywane jako obrazy RGB. Może to wpływać na ogólne użycie pamięci i w niektórych przypadkach wymagać starannej optymalizacji.
4. Ograniczenia przestrzeni stycznej. Mapy normalnych są zwykle definiowane w przestrzeni stycznej, co oznacza, że zależą od orientacji modelu i współrzędnych UV. Czasami może to powodować powstawanie artefaktów wizualnych podczas stosowania tej samej mapy normalnych do modeli o różnych orientacjach lub układach UV.
Pomimo pewnych ograniczeń mapy normalnych są najskuteczniejszą techniką poprawiania jakości wizualnej i realizmu modeli 3D wyświetlanych w czasie rzeczywistym. Mapowanie normalnych zapewnia zdrową równowagę między wydajnością a wiernością wizualną, co czyni tę technikę nieocenionym narzędziem do renderowania i teksturowania 3D.
Kiedy należy używać mapowania normalnych
Dowiedz się więcej o mapowaniu normalnych
Często zadawane pytania
CO TO JEST MAPA NORMALNYCH W PROJEKTOWANIU GIER?
ILE KANAŁÓW ZNAJDUJE SIĘ NA MAPIE NORMALNYCH?
Mapy normalnych tworzy się przy użyciu obrazu RGB (opartego na kolorach czerwonym, zielonym i niebieskim), na którym każdy kanał kolorów reprezentuje składową X, Y lub Z wektora normalnego powierzchni na poziomie poszczególnych tekseli mapy. Oznacza to, że mapa normalnych ma trzy kanały, z których każdy zawiera wartości dodatnie lub ujemne.
- Kanał czerwony (R) odpowiada składowej X wektora normalnego powierzchni.
- Kanał zielony (G) odpowiada składowej Y wektora normalnego powierzchni.
- Kanał niebieski (B) odpowiada składowej Z wektora normalnego powierzchni.
Wszystkie trzy kanały są używane razem, zapewniając jawne dane dotyczące orientacji poszczególnych tekseli, które są wykorzystywane podczas renderowania w celu ulepszenia efektów oświetlenia i cieniowania w modelu 3D.
DLACZEGO NAZYWA SIĘ TO MAPĄ NORMALNYCH?
W grafice komputerowej „normalny” oznacza wektor normalny, czyli wektor prostopadły do powierzchni w określonym punkcie. Mapy wektorów normalnych nazywamy „mapami normalnych”, ponieważ przechowują informacje o wektorach normalnych powierzchni modelu 3D.
Podczas renderowania wektory normalne powierzchni modelu 3D są modyfikowane na podstawie informacji przechowywanych na mapie, co pozwala uzyskać efekty oświetlenia i cieniowania oraz wytworzyć iluzję skomplikowanych szczegółów powierzchni.