James Cameron, reżyser filmu, czekał 15 lat na odpowiednią technologię, by zrobić dzieło swojego życia. Pomogli mu w tym spece z firmy Nvidia używając przy tym strasznie skomplikowanych słów.
Cyfrowe wyzwanie
Nad nimi zaś pracowała mająca swoją siedzibę w Wellington w Nowe Zelandii firma Weta Digital. A ta z kolei korzystała z technologii Nvidia: Quadro i Tesla.
Przed firmą Weta postawiono zadanie stworzenia sekwencji filmowych zawierających aż 800 w pełni wygenerowanych cyfrowo postaci poruszających się w wystylizowanych, sztucznych środowiskach. Moc obliczeniowa wymagana do obróbki ujęć z filmu Avatar była większa, niż jakikolwiek projekt realizowany do tej pory przez Weta.
Sebastian Sylwan, szef działu badawczego w Weta, tłumaczy to tak: – Złożoność Avatara sprawiła, że pomyśleliśmy o renderingu w inny sposób. Wykonujemy nasze końcowe renderingi za pomocą RenderMana, ale aby zoptymalizować tak ogromną ilość danych, przenieśliśmy większość obliczeń do fazy przedobliczeniowej. Głównym problemem, który musieliśmy rozwiązać, nie były kwestie renderingu, ale obliczeń o wysokiej wydajności. Zdaliśmy sobie sprawę, że wykorzystanie mocy obliczeń masowo równoległych wykonywanych przez GPU to dziedzina, na której Nvidia zna się najlepiej.
W marcu 2009 roku Paul Ryan, szef działu technologicznego w firmie Weta skontaktował się z Jacopo Pantaleonim, badaczem z działu Nvidia Research, aby omówić wyzwania stojące przed obiema firmami.
– Paul uświadomił mi, że, po raz pierwszy w historii komputerowych efektów specjalnych, wymagana liczba wielokątów liczona będzie nie w milionach, ale w miliardach – dodaje Pantaleoni, który na kilkanaście miesięcy przeniósł się do Nowej Zelandii i pilnował procesu tworzenia oprogramowania do raytracingu, które mogłoby podołać miliardom wielokątów wymaganych przez złożone sekwencje filmu Avatar.
Obie firmy opracowały wspólnie nowy silnik przedobliczeniowy, nazwany PantaRay, pozwalający włączyć obliczenia o wysokiej wydajności do potoku produkcyjnego firmy Weta. Wydajny system raytracingu zaprojektowany został specjalnie tak, aby przyspieszać obliczenia zasłonięć w potoku renderującym Wety, pozwalając na szybkie ponowne obliczanie oświetlenia obiektów.
Takie podejście pozwoliło Wecie na renderowanie bardziej złożonych scen w krótszym czasie, przy jednoczesnym zmniejszeniu zapotrzebowania na pamięć i liczbę procesorów. W rezultacie artyści mogli szybciej wprowadzać zmiany, co pozwoliło na osiągnięcie fotorealistycznych efektów o wyższej jakości.
No i wyszło to taniej.
Ujęcie z helikoptera pokazujące setki stworzeń lecących nad wodą z wielką zalesioną górą w tle zostało obliczone dzięki PantaRay w zaledwie półtora dnia.
– Takie ujęcie mogłoby zająć tydzień, jeśli zastosowalibyśmy poprzednie metody – tłumaczy Fascione. – Dzięki temu, że praca z PantaRay była o tyle szybsza, mogliśmy też opracować znacznie ładniejsze ujęcie: szczegóły można dostrzec dosłownie na każdym krzaku i liściu. Rozdzielenie kolorów pomiędzy planami jest jasne i wyraźne.
Uruchomiony na GPU, proces raytracingu w silniku PantaRay był 25 razy szybszy niż wtedy, gdy działał na tradycyjnych procesorach, zaś ogólny proces obliczeń wstępnych trwał 10 razy krócej.
– Jeśli zastanowić się, ile czasu zajęłoby opracowanie scen o takiej złożoności tradycyjnymi metodami, to najprawdopodobniej nowa metoda jest około 100 razy szybsza – kończy Sylwan.