Menu

Nakładanie Shaderów w Maya 2018



Kategoria: Grafika 3D, Tagi: , , , ,

ShaderFX- dzięki tej technologii gry nabierają rumieńców. Shadery pozwalają nie tylko nadać barwy wirtualnym światom, ale także fakturę, kształt, cieniowanie, efekty świecenia i wiele więcej.


Dla czego w ogóle stosuje się shadery?

Oczywiście z tego samego powodu co i przed 30stu laty – zasoby komputera. Ograniczały nas kiedyś, ograniczają i w dniu dzisiejszym, a architekci od hardware’u wypracowali dla nas tylko (a może aż?) większy pułap mocy obliczeniowej.


Wygenerowanie jednego obiektu mającego kilka-kilkadziesiąt milinów punktów w przestrzeni stanowi dla niejednej maszyny nie lada wyzwanie. Dodajmy do tego jeszcze animacje- czyli przesuwanie tych punktów co klatkę- już stworzyło nam się zadanie dla superkomputera za setki tysięcy złotówek, a nie muszę dodawać chyba, że w grach AAA takich animacji i obiektów wyświetla się niezliczona ich ilość?

Jak w takim razie wyświetlić szczegółowy, dobrze wyglądający obiekt, nie wykorzystując tak wielkiej ilości punktów w przestrzeni? Odpowiedzi należy  poszukać jeszcze w początkach grafiki 3D, gdy prym wiodła „dyscyplina” w świecie komputerów zwana Demosceną.

W skrócie- jest to dziedzina tworzenia animacji mając ograniczenie np. 4kB pamięci, w dużym uproszczeniu sprowadziło się to do manipulacji obrazami 2D w taki sposób, by dawały złudzenie trójwymiarowości, dokładnie jak malarz bawiący się perspektywą w swoim obrazie, z tą różnicą, że dokładamy tutaj jeszcze ruch.


Na tym opierają się właśnie shadery. Są to owinięte obrazy 2D (tekstury) na trójwymiarowy model, składający się z (w krytycznych przypadkach) kilkuset tysięcy punktów w przestrzeni(vertexów).

Poza możliwością nadania tym sposobem barwy modelowi (diffuse), możemy również nadać mu np. kształt (displace), fakturę (normal), połysk (specular), przezroczystość (refraction) czy efekty świecenia (emissive). Ponad to możemy każdy z tych efektów animować według własnego upodobania.

Możemy również skrócić potrzebę zaczytywania takiej tekstury do pamięci karty graficznej, upychając na niej efekty do więcej niż jednego obiektu. Można to nazwać pewną formą programowania, kolorem „mówimy” komputerowi gdzie ma np. zniekształcić model lub nadać skórzanej faktury.


Przykładowe nałożenie shaderów FX w Maya 2018 Viewport 2.0

Dzięki technologii zaimplementowanej do programu Mudbox jesteśmy w stanie tworzyć tekstury zawierające odpowiednie informacje o modelu.

Takie „wypalone” mapy z Mudboxa możemy implementować jako shadery. Można je wyświetlić zarówno w programie Maya jak i silniku graficznym.

Oto przykładowy model bez zaimplementowanych shaderów:

2-tt-sfx
@Patryk Konieczny, PCC Polska


Jak widać model składa się z bardzo niewielkiej ilości Vertexów (4500). Jest zoptymalizowany pod animacje i nawet gra na telefon powinna bez problemu odtworzyć ten model.

Teraz ten sam model z już nałożonymi Shaderami:

3-tt-sfx
@Patryk Konieczny, PCC Polska

Jest to wciąż ten sam model, a wszystkie zarysy mięśni, guzy i fałdki są nałożone w postaci mapy typu normal, która prezentuje się w następujący sposób:

5-tt-sfx
@Patryk Konieczny, PCC Polska

Takim sposobem można otrzymać bardzo wiele efektów i dopracować obiekt 3D nie ingerując w jego siatkę (mesha).

4-tt-sfx
@Patryk Konieczny, PCC Polska
Jest to jeden z tricków które są stosowane zwłaszcza w game developmencie właśnie po to by wycisnąć jak najlepszy design, wykorzystując jak najmniej mocy obliczeniowej.


Źródło: Patryk Konieczny | PCC Polska