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.
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:
Teraz ten sam model z już nałożonymi Shaderami:
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:
Takim sposobem można otrzymać bardzo wiele efektów i dopracować obiekt 3D nie ingerując w jego siatkę (mesha).
Źródło: Patryk Konieczny | PCC Polska