-
czwartek, 06 marca 2008
-
Cyfra+ Sport HD
-
-
-
Projekt tej reklamy jest o tyle ciekawy, że po raz pierwszy na dużą skalę został wykorzystany nasz własny renderer napisany przez Adama Wierzchowskiego, służący do renderowania dużych ilości partikli (cząsteczek). Systemy partikli to systemy umożliwiające jednoczesną animacje dużych ilości obiektów. Obiekty zazwyczaj są proste i w typowych zastosowaniach systemy te z reguły służą dodaniu takich efektów jak padający śnieg czy deszcz. Ich możliwości są oczywiście dużo większe.
Scenariusz i pomysł, który przyszedł od klienta wymagał właśnie takiego bardziej skomplikowanego podejścia. Chodziło o wytworzenie ciekawie wyglądających strumieni cząstek poddawanych turbulencjom. Teoretycznie przy obecnych narzędziach do kontroli ruchu partikli to zadanie nie jest bardzo trudne, ale pojawiają się wyzwania natury czysto technicznej. Takie strumienie najlepiej wyglądają, gdy składają się z bardzo dużych ilości drobnych cząstek. Tu pojawia się problem ilościowy. Ilość danych, jakie przechodzą przez program podczas renderowania cząstek jest ogromna. Przy tradycyjnych rozwiązaniach już w okolicy 750 tysięcy cząstek renderowanych z motion-blurem (rozmyciem ruchu służącym zachowaniu płynności ruchu między klatkami) program potrafi odmówić posłuszeństwa. Dla naszego projektu z pomocą przyszedł specjalny render, napisany niemal rok wcześniej na potrzeby „Wiedźmina” przez naszego „programistycznego guru” Adama Wierzchowskiego. Jest to tak zwany Point Renderer, który nie procesuje geometrii obiektów, ale w miejscu każdej cząsteczki po prostu wyświetla jeden punkcik o żądanej jasności. Dzięki takiemu podejściu (całkowicie wystarczające do takich zadań jak to, z jakimi mieliśmy do czynienia w tej reklamie) renderer teoretycznie jest w stanie wyświetlić dziesiątki milionów partikli.
Nie wiemy, jakie są granice możliwości tego rendera. W pierwszej kolejności partikle trzeba wygenerować. Jeśli podlegają one złożonym polom sił, proces ten pochłania dużą ilość czasu. Nigdy nie wystarczyło nam cierpliwości, żeby renderer Adama w pełni przetestować. Na potrzeby tego projektu wystarczały nam ilości rzędu 6-7 milionów partikli na ujęcie i z takimi ilościami renderer poradził sobie bez żadnych problemów.
Renderer został napisany głównie po to żeby radzić sobie z „gazowymi” efektami w rodzaju smug dymu, obłoków pary czy unoszącego się kurzu, ale świetnie sprawdził się do przeliczania smug energii na potrzeby tego filmu.
Osobną sprawą jest animacja takich cząstek. Z powodu ich ogromnej ilości nie porusza się ich pojedynczo, tylko wpływa na ich zachowania specjalnymi polami sił. To osobna wiedza i osobny temat. Czasem uzyskanie oczekiwanego rezultatu jest bardzo skomplikowane, ale animacje, jakie się finalnie uzyskuje potrafią być naprawdę efektowne. Wszystko, co podlega symulacji, także cząsteczki, są często nieprzewidywalne.
Ciekawostki: Program ma 3783 linii kodu. Pierwszy raz został wykorzystany do drobnych efektów w cinematiku do „Wiedźmina”. Prace zaczęły się na początku 2006 roku i z przerwami trwają nadal. Pierwsza wersja była napisana w języku skryptowym max script. Obecnie cały kod jest napisany w c++. Reklama funkcjonuje już w 3 wersjach, każda z innym materiałem filmowym.
Słowniczek: Point Renderer służy do renderingu punktów. Dzięki takiej specjalizacji można renderować ilości punktów nawet rzędu kilkudziesięciu milionów z bardzo duża szybkością. Umożliwia to uzyskanie wszelkiego rodzaju efektów „gazowych”: smug dymu, obłoków pary czy unoszącego się kurzu. Particle mogą być zmapowane, co pozwala na uzyskanie np. efektu rozwiewania obrazu ułożonego z piasku.
Point Renderer tests:
Compositing „Making of”:
-
-
TAGI:
Tomasz Bagiński
Cyfra+
Adam Wierzchowski
Point Renderer
|