Na pewnym poziomie – a właściwie podczas renderingu – modelowanie i teksturowanie odgrywają tą samą rolę, czyli budują ostateczny kształt obiektu. W tym miejscu mam na myśli geometryczny kształt. Tekstury pomagają w odtworzeniu wielu zjawisk i detali, których z perspektywy wydajności nie opłaca się tworzyć na poziomie siatki.
Modelowanie tekstur?
W ten sposób nazywam proces modelowania i rzeźbienia w celu uzyskania odpowiedniej tekstury, która zostanie wykorzystana podczas renderingu. Na przykład detale skóry: pory, brodawki, blizny, naczynia krwionośne pod skórą, itd. Wszystkie one są pracochłonne i wymagają siatki o bardzo dużym zagęszczeniu. Co zrobić w takiej sytuacji?
No cóż, możemy od razu zabrać się za przygotowanie odpowiedniej tekstury w programie 2d. Wykorzystując skalę szarości i teksturę koloru malujemy w wybranych miejscach elementy, które mają być wypukłe lub wklęsłe i liczymy na to, że wszystko wypadnie pomyślnie podczas renderowania.
Możemy także skorzystać z innej metody. Gotowy obiekt przenosimy do ZBrusha, lub innego programu związanego z cyfrowym rzeźbieniem, zagęszczamy siatkę i tworzymy detale. Po zakończeniu pracy generujemy odpowiednie mapy zniekształceń (właściwie tekstury), które możemy następnie wykorzystać podczas cieniowania i teksturowania obiektu. Tego typu rozwiązanie wykorzystuje się w różnych sytuacjach oraz jest powszechną praktyką podczas produkcji gier audiowizualnych.
Mapy zniekształceń
Normal map to przykład wspomnianej mapy zniekształceń – przechowuje ona szczegóły siatki wykorzystując informacje zapisane w poszczególnych kanałach koloru. Po przygotowaniu takiej mapy możemy podpiąć ją pod konkretny atrybut, zaś program wykorzysta zapisane informacje i będzie symulował wszystkie szczegóły siatki high poly. Dzięki takiemu rozwiązaniu mamy do czynienia z obiektem o niewielkiej liczbie polygonów, ale wyświetlającym szczegóły utworzone na siatce high poly. Dzięki temu paca jest szybka i wygodna.
Możemy wyróżnić trzy typy map zniekształcających:
- Bump map – w oparciu o skalę szarości symuluje wybrzuszenia i żłobienia – geometria obiektu nie ulega zmianie i jest płaska.
- Displacement map – w oparciu o skalę szarości symuluje wybrzuszenia i żłobienia, z tą różnicą iż podczas renderingu faktycznie modyfikuje geometrię obiektu i uzyskane detale nie są płaskie.
- Normal map – Trzecia mapa to rozwinięcie koncepcji displacement map. Jednak w tym przypadku nośnikiem informacji o szczegółach są kanały koloru RGB, stąd ich „dziwaczny” wygląd.