Czym jest renderowanie 3D w potoku CG?
Proces renderowania odgrywa kluczową rolę w cyklu rozwoju grafiki komputerowej. Renderowanie jest najbardziej złożonym technicznie aspektem Produkcja 3D, ale w rzeczywistości można to dość łatwo zrozumieć w kontekście analogii: Podobnie jak fotograf filmowy musi wywoływać i drukować swoje zdjęcia przed ich wyświetleniem, podobnie obciąża się grafików komputerowych konieczność.
Kiedy artysta pracuje nad Scena 3D, modele, którymi manipuluje, są w rzeczywistości matematyczną reprezentacją punktów i powierzchni (a dokładniej wierzchołków i wielokątów) w przestrzeni trójwymiarowej.
Termin renderowanie odnosi się do obliczeń wykonywanych przez a Pakiety oprogramowania 3D silnik renderujący, który przetłumaczy scenę z matematycznego przybliżenia na gotowy obraz 3D. Podczas tego procesu informacje dotyczące przestrzeni, tekstury i oświetlenia całej sceny są łączone w celu określenia wartości koloru każdego piksela na spłaszczonym obrazie.
Dwa rodzaje renderowania
Istnieją dwa główne typy renderowania, a ich główną różnicą jest szybkość, z jaką obrazy są obliczane i finalizowane.
- Renderowanie w czasie rzeczywistym: Renderowanie w czasie rzeczywistym jest używane głównie w grach i grafice interaktywnej, gdzie obrazy muszą być obliczane na podstawie informacji 3D w niewiarygodnie szybkim tempie. Ponieważ nie można dokładnie przewidzieć, jak gracz będzie wchodzić w interakcję ze środowiskiem gry, obrazy muszą być renderowane „w czasie rzeczywistym”, gdy akcja się rozwija.
- Prędkość ma znaczenie: Aby ruch był płynny, na ekranie musi być renderowanych od 18 do 20 klatek na sekundę. Cokolwiek mniej niż to i akcja będzie się wydawać niestabilna.
- Metody: Renderowanie w czasie rzeczywistym zostało znacznie ulepszone przez dedykowany sprzęt graficzny, a także poprzez wstępne kompilowanie jak największej ilości informacji. Duża część informacji o oświetleniu środowiska gry jest wstępnie obliczana i „zapiekana” bezpośrednio w plikach tekstur środowiska, aby poprawić szybkość renderowania.
- Offline lub renderowanie wstępne: Renderowanie w trybie offline jest używane w sytuacjach, w których prędkość nie stanowi większego problemu, a obliczenia są zwykle wykonywane przy użyciu wielordzeniowych procesorów, a nie dedykowanego sprzętu graficznego. Renderowanie offline jest najczęściej spotykane w pracach z animacją i efektami, gdzie złożoność wizualna i fotorealizm są utrzymywane na znacznie wyższym poziomie. Ponieważ nie ma nieprzewidywalności co do tego, co pojawi się w każdej klatce, znane są duże studia, które poświęcają do 90 godzin czasu renderowania na poszczególne klatki.
- Fotorealizm: Ponieważ renderowanie offline odbywa się w nieograniczonych ramach czasowych, można osiągnąć wyższy poziom fotorealizmu niż w przypadku renderowania w czasie rzeczywistym. Postacie, środowiska i związane z nimi tekstury i światła zazwyczaj mają większą liczbę wielokątów, oraz Rozdzielczość 4k (lub wyższa) pliki tekstur.
Techniki renderowania
Do większości renderowania używane są trzy główne techniki obliczeniowe. Każda ma swój własny zestaw zalet i wad, dzięki czemu wszystkie trzy opcje są opłacalne w określonych sytuacjach.
- Scanline (lub rasteryzacja): Rendering Scanline jest używany, gdy szybkość jest koniecznością, co sprawia, że jest to preferowana technika renderowania w czasie rzeczywistym i grafiki interaktywnej. Zamiast renderować obraz piksel po pikselu, renderery linii skanowania obliczają wielokąt po wieloboku. Techniki Scanline stosowane w połączeniu z wstępnie obliczonym (upieczonym) oświetleniem mogą osiągnąć prędkość 60 klatek na sekundę lub wyższą na wysokiej klasy karcie graficznej.
- Śledzenie promieni: W ray tracingu dla każdego piksela w scenie jeden lub więcej promieni światła jest śledzonych od kamery do najbliższego obiektu 3D. Promień światła przechodzi następnie przez określoną liczbę „odbić”, które mogą obejmować odbicie lub załamanie w zależności od materiałów w scenie 3D. Kolor każdego piksela jest obliczany algorytmicznie na podstawie interakcji promienia świetlnego z obiektami na śledzonej ścieżce. Raytracing jest zdolny do większego fotorealizmu niż scanline, ale jest wykładniczo wolniejszy.
- Radiosity: W przeciwieństwie do śledzenia promieni, radiosity jest obliczane niezależnie od kamery i jest zorientowane na powierzchnię, a nie piksel po pikselu. Podstawową funkcją radiosity jest dokładniejsze symulowanie koloru powierzchni poprzez uwzględnienie oświetlenia pośredniego (odbitego światła rozproszonego). Radiosity zazwyczaj charakteryzuje się miękkimi, stopniowanymi cieniami i rozmyciem kolorów, gdzie światło z obiektów o jasnych kolorach „rozlewa się” na pobliskie powierzchnie.
W praktyce radiosity i raytracing są często używane w połączeniu ze sobą, wykorzystując zalety każdego systemu, aby osiągnąć imponujący poziom fotorealizmu.
Oprogramowanie do renderowania
Chociaż renderowanie opiera się na niezwykle wyrafinowanych obliczeniach, dzisiejsze oprogramowanie zapewnia łatwe zrozumieć parametry, które sprawiają, że artysta nigdy nie musi zajmować się podstawami matematyka. Silnik renderujący jest dołączony do każdego większego pakietu oprogramowania 3D, a większość z nich zawiera pakiety materiałów i oświetlenia, które umożliwiają osiągnięcie oszałamiającego poziomu fotorealizmu.
Dwa najpopularniejsze silniki renderujące
- Psychiczny Promień: Pakowane z Autodesk Maya. Mental Ray jest niesamowicie wszechstronnym, stosunkowo szybkim i prawdopodobnie najbardziej kompetentnym rendererem obrazów postaci, które wymagają podpowierzchniowego rozpraszania. Mental ray wykorzystuje kombinację raytracingu i „globalnego oświetlenia” (radiosity).
- V-Ray: Zazwyczaj widzisz V-Ray używany w połączeniu z 3DS Max — razem para jest absolutnie bezkonkurencyjna w wizualizacji architektonicznej i renderowaniu środowiska. Główną przewagą VRay nad konkurentem są narzędzia oświetleniowe i obszerna biblioteka materiałów dla arch-viz.
Renderowanie to temat techniczny, ale może być dość interesujący, gdy naprawdę zaczniesz przyglądać się niektórym z popularnych technik.