czwartek, 29 października 2009

Około roku 90 MHz n.e.

Z racji, że ostatnio znów trochę renderuję animacji w Blenderze, nasunęło mi się spostrzeżenie z nie tak znów dalekiej przeszłości branży komputerowej.

W zamierzchłych czasach, czyli mniej więcej wtedy gdy na moim biurku królował Intel Pentium 90 MHz (z bugiem, czy bez - do dzisiaj nie wiem), zajmowaliśmy się z Adamem smarowaniem prymitywnych animacji w 3D. Młodociana ambicja i pewność siebie, stłamszone w kolejnych latach edukacji, nakłaniała nas do teoretycznych obliczeń jaką moc obliczeniową potrzebowalibyśmy w celu wykonania wspaniałych filmów pełnometrażowych w rozsądnym czasie. Nie wiem czemu, ale zapamiętałem minimalny wynik płynący z tych wyliczeń - jakkolwiek były one wyliczone (sponsorem obliczeń były na pewno liczby: 24 1/s i 3600 s/h). Była to 30 krotność posiadanego wówczas sprzętu.

Policzmy: 30 x 90 MHz = 2.7 GHz. Wynik nie oszołamia, tyle mają współczesne procesory - powiem więcej są znacznie szybsze, dzięki ciągłym udoskonaleniom architektury (wyższy IPC i inne duperele)! Na dodatek zwiększono nieco liczbę rdzeni w procesorze - co akurat w przypadku renderingu jest możliwe do wykorzystania. Operacje wejścia-wyjścia również nieco przyśpieszyły, więc nie powinny stanowić wąskiego gardła. Bierzemy dostępny przykładowy komputer, cztery rdzenie tykające sobie w rytmie 3*109 1/s, uruchamiamy Blender-a, wciskamy do renderingu nowy rysunek Adama i... Co jest!, ponad 3 minuty na klatkę?!. (Uwaga: tak wiem 3 minuty to niewiele, ale z pewnych przyczyn dla mnie za dużo). Ok redukujemy jakość, i tak już oszczędną, z trudem osiągamy czas rzędu minuty - świetnie, całkowicie akceptowalny wynik. Po poprawkach animacja trafia na "farmę" paru maszyn gdzie jest mielona.

BTW: używam oprogramowania farmerjoe, które mogło by działać nieco "pewniej", ale i tak jest nieźle, poza tym uruchamia się bez zbędnej konfiguracji na kolejnych nod-ach render-farmy.

W czym rzecz, że wielokrotne zwiększenie mocy obliczeniowej, nie pozwala wciąż na swobodne tworzenie pełnometrażowej animacji? Jak zwykle czegoś musiałem nie przewidzieć:
  • Adam i ja nieco się rozpędziliśmy i tworzymy obiekty mniej low poly, choć Adam dalej jest ich fanem,
  • w latach 90-tych nie istniała choroba zwana Full HD (rozdzielczość VGA powinna każdemu wystarczyć;)),
  • zwykły ray tracing bez dodatkowych bajerów, każdemu kiedyś wystarczał,
  • i pewnie coś jeszcze.
Wszystkie powyższe techniki spowalniania renderingu, oczywiście dające w efekcie lepszy obraz, musimy użyć, aby za bardzo nie odstawiać jakością obrazu od współczesnych gier!

Stawiam sobie pytanie, kiedy człowiek będzie miał do dyspozycji narzędzie, które pozwoli mu realizować w pojedynkę produkcje konkurujące z Pixar czy DreamWorks? Być może już ma, tylko na razie najwyżej może rywalizować z Toy Story, a nie nowszymi produkcjami. Być może musi poczekać na silniki renderujące w czasie rzeczywistym (komercyjne już są) wykorzystujące własności współczesnych procesorów grafiki. Być może potrzebny będzie jakiś nowy sprzęt i wtedy kiedy już będzie dostępny za jedyne 1000 $, a wtedy... wtedy "standardem" będzie rendering animacji przy użyciu rendererów "fizycznych" (unbiased) - wolniejsze o rząd wielkości, ale jaki efekt przy małym nakładzie wysiłku grafika.

Edycja grafiki 2D osiągnęła już, wymagany poziom swobody tworzenia - rendering obrazu jest realizowany prawie w czasie rzeczywistym. Zatem może nie będzie tak źle.

Edit: czegoś tu brakuje, może obrazka?:

Miał być czajnik z Utah, ale Suzanne jest ładniejsza (autor: Soylentgreen, Wikipedia, licencja: GFDL)

Brak komentarzy :

Prześlij komentarz