297
ROZDZIAŁ DZIEWIĄTY: Shadery i algorytmy renderingu
Algorytm Reyes jest sercem stworzonego w firmie Pixar RenderMana, który przez lata uważany był za wiodący system renderingowy w przemyśle filmowym. Inne renderery także zaadoptowały algorytm Reyes lub algorytmy pokrewne do niego.
Zasadnicze elementy rcnderera Reyes zostały opracowane w latach 80. przez Computer Graphics Research Group — dział firmy Lucasfilm. Dział ten został następnie odkupiony przez Steve’a Jobsa i przemianowany na Pixar Animation Studios.
Reyes jest akronimem i oznacza Renders Eveiything You Ever Saw, co po polsku znaczy: Renderuje Wszystko, Co Kiedykolwiek Widziałeś. Został on wymyślony przez naukowca pływającego po wodach w okolicy Pont Reyes w hrabstwie Marin w Kalifornii, nieopodal siedziby Lucasfilm. Algorytm Reyes zaprojektowany został, aby umożliwić uzyskanie wysokiego stopnia szczegółowości renderingów, gładko zakrzywionych powierzchni, mapowania nierówności z detalami na poziomie piksela, rozmycia ruchu oraz głębi ostrości — czyli wszystkich czynników kluczowych dla uzyskiwania realistycznej grafiki na potrzeby filmu, jeśli wziąć pod uwagę ograniczenia prędkości i zasobów pamięci komputerów w tamtym okresie.
Reyes renderuje zakrzywione powierzchnie, na przykład NURBS czy Subdivision Surfaces, dzieląc je na mikrowielokąty, małe czworoboki
0 wielkości mniej więcej piksela lub mniejsze. Każda zakrzywiona powierzchnia jest podzielona na dokładnie tyle mikrowielokątów, aby wydawała się całkowicie gładka przy danej rozdzielczości renderingu. Jeśli shader wykorzystuje mapowanie przemieszczeń (displacement mapping), odkształcenia również dzielone są na mikrowielokąty.
Następnie dla każdego wielokąta ustalany jest jego kolor
1 przezroczystość. Na tym etapie obliczane są: oświetlenie, cienie
i mapowanie tekstur. Przykładowo, rozbłysk światła może spowodować, że odpowiedni mikrowielokąt będzie biały. Jeśli fragment tekstury zawiera zielony piksel, może on sprawić, że dany mikrowielokąt będzie zielony.