Renderowanie (grafika komputerowa)
Renderowanie lub synteza obrazu to proces generowania fotorealistycznego lub niefotorealistycznego obrazu z modelu 2D lub 3D za pomocą programu komputerowego . Wynikowy obraz jest określany jako render . W pliku sceny zawierającym obiekty w ściśle określonym języku lub strukturze danych można zdefiniować wiele modeli . Plik sceny zawiera geometrię, punkt widzenia, teksturę , oświetlenie i o cieniowaniu opisujące wirtualną scenę. Dane zawarte w pliku sceny są następnie przekazywane do programu renderującego w celu przetworzenia i wyprowadzenia do obrazu cyfrowego lub obrazu grafiki rastrowej . Termin „renderowanie” jest analogiczny do pojęcia wrażenia artysty na temat sceny. Termin „renderowanie” jest również używany do opisania procesu obliczania efektów w programie do edycji wideo w celu uzyskania ostatecznego wyjścia wideo.
Renderowanie jest jednym z głównych podtematów grafiki komputerowej 3D iw praktyce jest zawsze połączone z innymi. Jest to ostatni ważny krok w potoku graficznym , nadający modelom i animacji ostateczny wygląd. Wraz ze wzrostem wyrafinowania grafiki komputerowej od lat 70. XX wieku stał się bardziej odrębnym tematem.
Renderowanie ma zastosowanie w architekturze , grach wideo , symulatorach , filmowych i telewizyjnych efektach wizualnych oraz wizualizacji projektów, z których każda wykorzystuje inną równowagę funkcji i technik. Dostępnych jest wiele różnych rendererów. Niektóre są zintegrowane z większymi pakietami do modelowania i animacji, inne są samodzielne, a niektóre są darmowymi projektami typu open source. W środku renderer to starannie zaprojektowany program oparty na wielu dyscyplinach, w tym fizyce światła , percepcji wzrokowej , matematyce i rozwój oprogramowania .
Chociaż szczegóły techniczne metod renderowania są różne, ogólne wyzwania związane z tworzeniem obrazu 2D na ekranie z reprezentacji 3D zapisanej w pliku sceny są obsługiwane przez potok graficzny w urządzeniu renderującym, takim jak GPU . GPU to specjalnie skonstruowane urządzenie, które pomaga procesorowi w wykonywaniu złożonych obliczeń renderowania. Jeśli scena ma wyglądać względnie realistycznie i przewidywalnie w wirtualnym oświetleniu, oprogramowanie do renderowania musi rozwiązać równanie renderowania . Równanie renderowania nie uwzględnia wszystkich zjawisk oświetleniowych, ale zamiast tego działa jako ogólny model oświetlenia dla obrazów generowanych komputerowo.
W przypadku grafiki 3D sceny mogą być wstępnie renderowane lub generowane w czasie rzeczywistym. Wstępne renderowanie to powolny, wymagający dużej mocy obliczeniowej proces, zwykle używany do tworzenia filmów, w którym sceny można generować z wyprzedzeniem, podczas gdy renderowanie w czasie rzeczywistym jest często wykonywane w grach wideo 3D i innych aplikacjach, które muszą dynamicznie tworzyć sceny. Akceleratory sprzętowe 3D mogą poprawić wydajność renderowania w czasie rzeczywistym.
Stosowanie
Kiedy obraz wstępny ( zwykle szkic szkieletowy ) jest gotowy, stosuje się renderowanie, które dodaje tekstury bitmapowe lub tekstury proceduralne , światła, mapowanie wypukłości i względne położenie względem innych obiektów. Rezultatem jest gotowy obraz, który widzi konsument lub zamierzony widz.
W przypadku animacji filmowych kilka obrazów (klatek) musi zostać wyrenderowanych i połączonych razem w programie zdolnym do wykonania tego rodzaju animacji. Większość programów do edycji obrazów 3D może to zrobić.
Cechy
Renderowany obraz można rozumieć pod kątem wielu widocznych cech. Renderowanie badań i rozwoju było w dużej mierze motywowane znalezieniem sposobów na ich efektywną symulację. Niektóre odnoszą się bezpośrednio do konkretnych algorytmów i technik, podczas gdy inne są tworzone razem.
- Cieniowanie – jak zmienia się kolor i jasność powierzchni w zależności od oświetlenia
- Texture-mapping – metoda nanoszenia detali na powierzchnie
- Bump-mapping – metoda symulacji niewielkich nierówności na powierzchniach
- Medium zamgławiające / uczestniczące - jak światło przygasa podczas przechodzenia przez nieprzezroczystą atmosferę lub powietrze
- Cienie – efekt zasłaniania światła
- Miękkie cienie – zmieniająca się ciemność spowodowana częściowo zasłoniętymi źródłami światła
- Odbicie – lustrzane lub mocno błyszczące odbicie
- Przezroczystość (optyka) , przezroczystość (grafika) lub nieprzezroczystość – ostra przepuszczalność światła przez ciała stałe
- Przezroczystość – silnie rozproszona transmisja światła przez ciała stałe
- Refrakcja – załamanie światła związane z przezroczystością
- Dyfrakcja – zginanie, rozpraszanie i interferencja światła przechodzącego przez obiekt lub szczelinę, która zaburza promień
- Oświetlenie pośrednie - powierzchnie oświetlone światłem odbitym od innych powierzchni, a nie bezpośrednio od źródła światła (znane również jako oświetlenie globalne)
- Kaustyka (forma oświetlenia pośredniego) - odbicie światła od błyszczącego przedmiotu lub skupienie światła przez przezroczysty przedmiot w celu uzyskania jasnych świateł na innym obiekcie
- Głębia ostrości — obiekty wydają się rozmyte lub nieostre, gdy znajdują się zbyt daleko przed lub za obiektem, na który ustawiono ostrość
- Rozmycie w ruchu — obiekty wydają się rozmyte z powodu szybkiego ruchu lub ruchu kamery
- Renderowanie niefotorealistyczne – renderowanie scen w stylu artystycznym, mające wyglądać jak obraz lub rysunek
Techniki
Zbadano wiele algorytmów renderowania, a oprogramowanie używane do renderowania może wykorzystywać wiele różnych technik w celu uzyskania ostatecznego obrazu.
Śledzenie każdej cząstki światła w scenie jest prawie zawsze całkowicie niepraktyczne i zajęłoby ogromną ilość czasu. Nawet śledzenie fragmentu wystarczająco dużego, aby uzyskać obraz, zajmuje ogromną ilość czasu, jeśli próbkowanie nie jest inteligentnie ograniczone.
W związku z tym pojawiło się kilka luźnych rodzin bardziej wydajnych technik modelowania transportu lekkiego:
- rasteryzacja , w tym renderowanie linii skanowania , geometrycznie rzutuje obiekty w scenie na płaszczyznę obrazu, bez zaawansowanych efektów optycznych;
- rzutowanie promieniowe traktuje scenę jako obserwowaną z określonego punktu widzenia, obliczając obserwowany obraz na podstawie geometrii i bardzo podstawowych praw optycznych intensywności odbicia i być może stosując techniki Monte Carlo w celu zmniejszenia artefaktów;
- ray tracing jest podobny do ray castingu, ale wykorzystuje bardziej zaawansowaną symulację optyczną i zwykle wykorzystuje techniki Monte Carlo, aby uzyskać bardziej realistyczne wyniki przy prędkości, która często jest o rzędy wielkości większa.
Czwarty typ techniki transportu światła, radiosity , zwykle nie jest stosowany jako technika renderowania, ale zamiast tego oblicza przejście światła, gdy opuszcza ono źródło światła i oświetla powierzchnie. Te powierzchnie są zwykle renderowane na wyświetlaczu przy użyciu jednej z pozostałych trzech technik.
Najbardziej zaawansowane oprogramowanie łączy dwie lub więcej technik w celu uzyskania wystarczająco dobrych wyników przy rozsądnych kosztach.
Inne rozróżnienie dotyczy algorytmów kolejności obrazów , które iterują po pikselach płaszczyzny obrazu, oraz algorytmów kolejności obiektów , które iterują po obiektach w scenie. Ogólnie rzecz biorąc, kolejność obiektów jest bardziej wydajna, ponieważ w scenie jest zwykle mniej obiektów niż pikseli.
Renderowanie i rasteryzacja linii skanowania
Reprezentacja obrazu na wysokim poziomie z konieczności zawiera elementy w innej domenie niż piksele. Te elementy są określane jako prymitywy . Na przykład na schematycznym rysunku segmenty linii i krzywe mogą być prymitywami. W graficznym interfejsie użytkownika okna i przyciski mogą być prymitywami. Podczas renderowania modeli 3D trójkąty i wielokąty w przestrzeni mogą być prymitywami.
Jeśli podejście do renderowania piksel po pikselu (kolejność obrazów) jest niepraktyczne lub zbyt wolne dla jakiegoś zadania, przydatne może okazać się podejście prymitywne do renderowania prymitywne (kolejność obiektów). Tutaj jedna pętla przez każdy z prymitywów określa, na które piksele obrazu ma wpływ, i odpowiednio modyfikuje te piksele. Nazywa się to rasteryzacją i jest metodą renderowania używaną przez wszystkie obecne karty graficzne .
Rasteryzacja jest często szybsza niż renderowanie piksel po pikselu. Po pierwsze, duże obszary obrazu mogą być pozbawione prymitywów; rasteryzacja zignoruje te obszary, ale renderowanie piksel po pikselu musi przez nie przejść. Po drugie, rasteryzacja może poprawić spójność pamięci podręcznej i zmniejszyć nadmiarową pracę, wykorzystując fakt, że piksele zajmowane przez pojedynczy prymityw mają tendencję do ciągłego przylegania do obrazu. Z tych powodów rasteryzacja jest zwykle preferowanym podejściem w przypadku interakcji wymagane jest renderowanie; jednak podejście piksel po pikselu może często dawać obrazy o wyższej jakości i jest bardziej wszechstronne, ponieważ nie zależy od tak wielu założeń dotyczących obrazu, jak rasteryzacja.
Starsza forma rasteryzacji charakteryzuje się renderowaniem całej twarzy (prymitywnie) jako jednego koloru. Alternatywnie, rasteryzację można wykonać w bardziej skomplikowany sposób, najpierw renderując wierzchołki twarzy, a następnie renderując piksele tej twarzy jako mieszanie kolorów wierzchołków. Ta wersja rasteryzacji wyprzedziła starą metodę, ponieważ pozwala grafice przepływać bez skomplikowanych tekstur (zrasteryzowany obraz używany twarzą w twarz ma zwykle efekt przypominający bloki, jeśli nie jest pokryty złożonymi teksturami; twarze nie są gładkie, ponieważ nie ma stopniowej zmiany koloru od jednego prymitywu do drugiego). Ta nowsza metoda rasteryzacji wykorzystuje bardziej wymagające funkcje cieniowania karty graficznej i nadal zapewnia lepszą wydajność, ponieważ prostsze tekstury przechowywane w pamięci zajmują mniej miejsca. Czasami projektanci używają jednej metody rasteryzacji na niektórych ścianach, a drugiej na innych, w oparciu o kąt, pod jakim ta twarz styka się z innymi połączonymi ścianami, zwiększając w ten sposób szybkość i nie szkodząc ogólnemu efektowi.
Odlewanie promieniowe
W przypadku rzutowania promieniami geometria, która została wymodelowana, jest analizowana piksel po pikselu, linia po linii, z punktu widzenia na zewnątrz, tak jakby promienie były rzucane z punktu widzenia. W przypadku przecięcia obiektu wartość koloru w punkcie można ocenić za pomocą kilku metod. W najprostszym przypadku wartość koloru obiektu w punkcie przecięcia staje się wartością tego piksela. Kolor można określić na podstawie mapy tekstury . Bardziej wyrafinowaną metodą jest modyfikacja wartości koloru za pomocą współczynnika oświetlenia, ale bez obliczania stosunku do symulowanego źródła światła. Aby zredukować artefakty, można uśrednić liczbę promieni w nieco innych kierunkach.
Rzucanie promieni obejmuje obliczanie „kierunku widzenia” (z pozycji kamery) i stopniowe podążanie wzdłuż tego „rzutu promienia” przez „stałe obiekty 3D” w scenie, jednocześnie gromadząc wynikową wartość z każdego punktu w przestrzeni 3D. Jest to związane i podobne do „ray tracingu”, z tym wyjątkiem, że raycast zwykle nie jest „odbijany” od powierzchni (gdzie „śledzenie promieni” wskazuje, że śledzi ścieżkę światła, w tym odbicia). „Rzucanie promieni” oznacza, że promień światła podąża prostą ścieżką (co może obejmować przechodzenie przez półprzezroczyste obiekty). Rzut promienia to wektor, który może pochodzić z kamery lub punktu końcowego sceny („od tyłu do przodu” lub „od przodu do tyłu”). Czasami ostateczna wartość światła pochodzi z „funkcji przenoszenia”, a czasami jest używana bezpośrednio.
Można dodatkowo zastosować zgrubne symulacje właściwości optycznych: wykonuje się proste obliczenie promienia od obiektu do punktu widzenia. Następnie oblicza się kąt padania promieni świetlnych ze źródła (źródeł) światła iz tego oraz z określonych natężeń źródeł światła obliczana jest wartość piksela. Inna symulacja wykorzystuje oświetlenie wykreślone z algorytmu radiosity lub kombinacji tych dwóch.
Śledzenie promienia
Ray tracing ma na celu symulowanie naturalnego przepływu światła, interpretowanego jako cząstki. Często metody śledzenia promieni są wykorzystywane do przybliżenia rozwiązania równania renderowania poprzez zastosowanie do niego metod Monte Carlo . Niektóre z najczęściej używanych metod to path tracing , dwukierunkowe path tracing lub lekki transport Metropolis , ale używane są również metody półrealistyczne, takie jak Whitted Style Ray Tracing lub hybrydy. Podczas gdy większość implementacji pozwala światłu rozchodzić się po liniach prostych, istnieją aplikacje do symulacji relatywistycznych efektów czasoprzestrzennych.
W ostatecznym, produkcyjnym renderowaniu dzieła opartego na ray tracingu, dla każdego piksela wykonuje się zwykle wiele promieni, które są śledzone nie tylko do pierwszego obiektu przecięcia, ale raczej poprzez szereg kolejnych „odbić”, przy użyciu znanych praw optyka, taka jak „kąt padania równa się kątowi odbicia” i bardziej zaawansowane prawa dotyczące załamania światła i chropowatości powierzchni.
Gdy promień napotka źródło światła lub, co bardziej prawdopodobne, po oszacowaniu ustalonej granicznej liczby odbić, wówczas oświetlenie powierzchni w tym końcowym punkcie jest oceniane za pomocą technik opisanych powyżej, a zmiany po drodze przez różne odbicia są oceniane do oszacować wartość obserwowaną z punktu widzenia. To wszystko jest powtarzane dla każdej próbki, dla każdego piksela.
W dystrybucji śledzenia promieni w każdym punkcie przecięcia może powstać wiele promieni. Jednak w przypadku śledzenia ścieżki na każdym skrzyżowaniu emitowany jest tylko jeden promień lub żaden, wykorzystując statystyczną naturę eksperymentów Monte Carlo .
Jako metoda brutalnej siły, ray tracing był zbyt wolny, aby rozważać go w czasie rzeczywistym, a do niedawna zbyt wolny, aby rozważać go nawet w przypadku filmów krótkometrażowych o jakimkolwiek stopniu jakości, chociaż był używany w sekwencjach efektów specjalnych oraz w reklamach , gdzie wymagana jest krótka porcja wysokiej jakości (być może nawet fotorealistycznej ) materiału filmowego.
Jednak wysiłki mające na celu optymalizację w celu zmniejszenia liczby obliczeń potrzebnych w częściach pracy, w których szczegółowość nie jest wysoka lub nie zależy od funkcji ray tracingu, doprowadziły do realistycznej możliwości szerszego wykorzystania ray tracingu. Obecnie istnieje sprzęt do ray tracingu z akceleracją sprzętową, przynajmniej w fazie prototypu, oraz kilka wersji demonstracyjnych gier, które pokazują użycie oprogramowania w czasie rzeczywistym lub sprzętowego ray tracingu.
Renderowanie neuronowe
Renderowanie neuronowe to metoda renderowania wykorzystująca sztuczne sieci neuronowe . Renderowanie neuronowe obejmuje renderowania oparte na obrazach , które są używane do rekonstrukcji modeli 3D z obrazów 2-wymiarowych. Jedną z tych metod jest fotogrametria , czyli metoda, w której zbiór obrazów obiektu pod różnymi kątami jest przekształcany w model 3D . Ostatnio nastąpiły również postępy w generowaniu i renderowaniu modeli 3D z tekstu i zgrubnych obrazów, w szczególności przez firmy NVIDIA , Google i różne inne firmy.
Radiosity
Radiosity to metoda, która próbuje symulować sposób, w jaki bezpośrednio oświetlone powierzchnie działają jako pośrednie źródła światła oświetlające inne powierzchnie. Daje to bardziej realistyczne cieniowanie i wydaje się lepiej oddawać „ atmosferę ” sceny we wnętrzach. Klasycznym przykładem jest sposób, w jaki cienie „przytulają” rogi pomieszczeń.
Optyczną podstawą symulacji jest to, że pewne rozproszone światło z danego punktu na danej powierzchni odbija się w dużym spektrum kierunków i oświetla obszar wokół niego.
Technika symulacji może różnić się stopniem złożoności. Wiele renderingów ma bardzo przybliżone oszacowanie radiosity, po prostu bardzo nieznacznie oświetlając całą scenę za pomocą czynnika zwanego atmosferą. Jednak gdy zaawansowana ocena radiosity jest połączona z wysokiej jakości algorytmem śledzenia promieni, obrazy mogą wykazywać przekonujący realizm, szczególnie w przypadku scen we wnętrzach.
W zaawansowanej symulacji radiosity rekurencyjne algorytmy elementów skończonych „odbijają” światło tam iz powrotem między powierzchniami w modelu, aż do osiągnięcia pewnej granicy rekurencji. Zabarwienie jednej powierzchni wpływa w ten sposób na zabarwienie sąsiedniej powierzchni i odwrotnie. Otrzymane wartości oświetlenia w całym modelu (czasami także dla pustych przestrzeni) są przechowywane i wykorzystywane jako dodatkowe dane wejściowe podczas wykonywania obliczeń w modelu z rzutowaniem promienia lub ze śledzeniem promienia.
Ze względu na iteracyjny/rekurencyjny charakter tej techniki emulacja złożonych obiektów jest szczególnie powolna. Przed standaryzacją szybkiego obliczania radiosity niektórzy artyści cyfrowi stosowali technikę określaną luźno jako fałszywa radiosity poprzez przyciemnianie obszarów map tekstur odpowiadających narożnikom, złączom i zagłębieniom oraz stosowanie ich poprzez samooświetlenie lub mapowanie rozproszone w celu renderowania linii skanowania. Nawet teraz zaawansowane obliczenia radiosity mogą być zarezerwowane do obliczania atmosfery pomieszczenia na podstawie światła odbijającego się od ścian, podłogi i sufitu, bez badania udziału złożonych obiektów w radiosity – lub złożone obiekty mogą zostać zastąpione w obliczeniach radiosity z prostszymi przedmiotami o podobnej wielkości i fakturze.
Obliczenia Radiosity są niezależne od punktu widzenia, co zwiększa liczbę wymaganych obliczeń, ale czyni je użytecznymi dla wszystkich punktów widzenia. Jeśli w scenie występuje niewielkie przegrupowanie obiektów radiosity, te same dane radiosity mogą być ponownie wykorzystane dla wielu klatek, dzięki czemu radiosity jest skutecznym sposobem na poprawę płaskości rzutowania promieni, bez poważnego wpływu na ogólny czas renderowania na klatkę. .
Z tego powodu radiosity jest głównym składnikiem wiodących metod renderowania w czasie rzeczywistym i było używane od początku do końca do stworzenia dużej liczby dobrze znanych ostatnio pełnometrażowych animowanych filmów animowanych 3D.
Próbkowanie i filtrowanie
Jednym z problemów, z którym musi sobie poradzić każdy system renderujący, niezależnie od przyjętego podejścia, jest problem z próbkowaniem . Zasadniczo proces renderowania próbuje przedstawić ciągłą funkcję od przestrzeni obrazu do kolorów przy użyciu skończonej liczby pikseli. W konsekwencji twierdzenia Nyquista-Shannona o próbkowaniu (lub twierdzenia Kotelnikowa) każdy przestrzenny przebieg, który można wyświetlić, musi składać się z co najmniej dwóch pikseli, co jest proporcjonalne do rozdzielczości obrazu . Mówiąc prościej, wyraża to ideę, że obraz nie może wyświetlać szczegółów, szczytów lub dolin w kolorze lub intensywności, które są mniejsze niż jeden piksel.
Jeśli naiwny algorytm renderowania zostanie użyty bez żadnego filtrowania, wysokie częstotliwości w funkcji obrazu spowodują pojawienie się brzydkiego aliasingu na końcowym obrazie. Aliasing zwykle objawia się schodkami lub postrzępionymi krawędziami na obiektach, na których widoczna jest siatka pikseli. Aby usunąć aliasing, wszystkie algorytmy renderowania (jeśli mają generować dobrze wyglądające obrazy) muszą używać pewnego rodzaju filtra dolnoprzepustowego w funkcji obrazu w celu usunięcia wysokich częstotliwości, procesu zwanego antyaliasingiem .
Optymalizacja
Ze względu na dużą liczbę obliczeń praca w toku jest zwykle renderowana tylko w szczegółach odpowiednich do części pracy opracowywanej w danym momencie, więc na początkowych etapach modelowania można zastosować model szkieletowy i odlewanie promieniowe, nawet jeśli docelowym wyjściem jest ray tracing z radiosity. Powszechne jest również renderowanie tylko części sceny z dużą szczegółowością i usuwanie obiektów, które nie są ważne dla tego, co jest obecnie opracowywane.
W przypadku czasu rzeczywistego właściwe jest uproszczenie jednego lub kilku typowych przybliżeń i dostrojenie do dokładnych parametrów danej scenerii, która jest również dostrojona do uzgodnionych parametrów, aby uzyskać jak największy zwrot z każdej zainwestowanej złotówki.
Rdzeń akademicki
Implementacja realistycznego renderera zawsze zawiera jakiś podstawowy element fizycznej symulacji lub emulacji – jakieś obliczenia, które przypominają lub streszczają rzeczywisty proces fizyczny.
Termin „ oparte na fizyce ” wskazuje na użycie modeli fizycznych i przybliżeń, które są bardziej ogólne i powszechnie akceptowane poza renderowaniem. Specyficzny zestaw powiązanych technik stopniowo zadomowił się w społeczności renderującej.
Podstawowe pojęcia są umiarkowanie proste, ale trudne do obliczenia; a jeden elegancki algorytm lub podejście było nieuchwytne dla rendererów o bardziej ogólnym przeznaczeniu. Aby sprostać wymaganiom solidności, dokładności i praktyczności, wdrożenie będzie złożonym połączeniem różnych technik.
Renderowanie badań dotyczy zarówno adaptacji modeli naukowych, jak i ich efektywnego zastosowania.
Równanie renderowania
Jest to kluczowa akademicka/teoretyczna koncepcja renderowania. Służy jako najbardziej abstrakcyjny formalny wyraz niepercepcyjnego aspektu renderowania. Wszystkie bardziej kompletne algorytmy można postrzegać jako rozwiązania poszczególnych sformułowań tego równania.
Znaczenie: w określonym miejscu i kierunku światło wychodzące (L o ) jest sumą światła emitowanego ( Le ) i światła odbitego. Światło odbite jest sumą światła padającego (Li ) ze wszystkich kierunków, pomnożonego przez odbicie od powierzchni i kąt padania. Łącząc światło zewnętrzne ze światłem wewnętrznym za pośrednictwem punktu interakcji, równanie to oznacza cały „transport światła” – cały ruch światła – w scenie.
Dwukierunkowa funkcja rozkładu współczynnika odbicia
Dwukierunkowa funkcja rozkładu odbicia (BRDF) wyraża prosty model interakcji światła z powierzchnią w następujący sposób:
Interakcja światła jest często aproksymowana przez jeszcze prostsze modele: odbicie rozproszone i odbicie lustrzane, chociaż oba mogą RÓWNIEŻ być BRDF.
Optyka geometryczna
Renderowanie dotyczy praktycznie wyłącznie aspektu cząstek fizyki światła — znanego jako optyka geometryczna . Traktowanie światła na podstawowym poziomie jako odbijających się cząstek jest uproszczeniem, ale właściwym: falowe aspekty światła są pomijalne w większości scen i są znacznie trudniejsze do zasymulowania. Godne uwagi zjawiska związane z aspektem fali obejmują dyfrakcję (widoczną w kolorach płyt CD i DVD ) oraz polaryzację (widoczną na wyświetlaczach LCD ). Oba rodzaje efektów, w razie potrzeby, są wykonywane przez zorientowaną na wygląd regulację modelu odbicia.
Percepcja wzrokowa
Chociaż poświęca się temu mniej uwagi, zrozumienie ludzkiej percepcji wzrokowej jest cenny dla renderowania. Dzieje się tak głównie dlatego, że wyświetlanie obrazów i ludzka percepcja mają ograniczone zakresy. Renderer może symulować szeroki zakres jasności i koloru światła, ale obecne wyświetlacze – ekran filmowy, monitor komputera itp. – nie są w stanie obsłużyć tak wielu rzeczy i coś trzeba wyrzucić lub skompresować. Ludzka percepcja również ma ograniczenia, więc nie trzeba podawać obrazów o dużym zasięgu, aby stworzyć realizm. Może to pomóc rozwiązać problem dopasowania obrazów do wyświetlaczy, a ponadto zasugerować, jakich skrótów można użyć w symulacji renderowania, ponieważ pewne subtelności nie będą zauważalne. Ten pokrewny temat to mapowanie tonów .
Matematyka stosowana w renderowaniu obejmuje: algebrę liniową , rachunek różniczkowy , matematykę numeryczną , przetwarzanie sygnałów i metody Monte Carlo .
Renderowanie filmów często odbywa się w sieci ściśle połączonych komputerów zwanej farmą renderowania .
Obecny [ kiedy? ] najnowocześniejszym językiem opisu obrazów 3D do tworzenia filmów jest język opisu scen Mental Ray opracowany przez Mental Images i RenderMan Shading Language opracowany przez firmę Pixar (porównaj z prostszymi formatami plików 3D, takimi jak VRML lub interfejsami API , takimi jak OpenGL i DirectX , dostosowanymi do akceleratory sprzętowe 3D).
Inne renderery (w tym zastrzeżone) mogą i są czasami używane, ale większość innych rendererów ma tendencję do pomijania jednej lub więcej często potrzebnych funkcji, takich jak dobre filtrowanie tekstur, buforowanie tekstur, programowalne shadery, zaawansowane typy geometrii, takie jak włosy, podział lub powierzchnie nurbsów z teselacja na żądanie, buforowanie geometrii, raytracing z buforowaniem geometrii, wysokiej jakości mapowanie cieni , szybkie lub wolne od patentów implementacje. Inne bardzo poszukiwane obecnie funkcje mogą obejmować interaktywne renderowanie fotorealistyczne (IPR) oraz sprzętowe renderowanie/cieniowanie.
Chronologia ważnych opublikowanych pomysłów
- 1968 Odlewanie promienia
- 1970 Renderowanie Scanline
- 1971 Cieniowanie Gourauda
- 1973 Cieniowanie Phonga
- 1973 Odbicie Phonga
- 1973 Odbicie rozproszone
- 1973 Zwierciadlany punkt kulminacyjny
- 1973 Odbicie lustrzane
- Sprite'y z 1974 roku
- 1974 Przewijanie
- 1974 Mapowanie tekstur
- 1974 Buforowanie Z
- 1976 Mapowanie środowiska
- 1977 Cieniowanie Blinna
- 1977 Przewijanie boczne
- 1977 Cień tomy
- 1978 Mapowanie cienia
- 1978 Mapowanie wypukłości
- 1979 Mapa kafelkowa
- 1980 drzew BSP
- 1980 Śledzenie promieni
- 1981 Przewijanie paralaksy
- 1981 Powiększanie Sprite'a
- 1981 Cieniowanie Cooka
- Mapy MIP z 1983 r
- 1984 Śledzenie promieni Octree
- 1984 Komponowanie Alpha
- 1984 Rozproszone śledzenie promieni
- 1984 Radiosity
- 1985 Przewijanie wierszy/kolumn
- 1985 Hemicube radiosity
- 1986 Śledzenie źródła światła
- 1986 Równanie renderowania
- Renderowanie Reyesa z 1987 roku
- 1988 Wskaźnik głębokości
- 1988 Daleka mgła
- 1988 Renderowanie kafelkowe
- 1991 Wygładzanie linii Xiaolin Wu
- 1991 Hierarchiczna radiosity
- 1993 Filtrowanie tekstur
- 1993 Korekta perspektywy
- 1993 Transformacja, przycinanie i oświetlenie
- 1993 Oświetlenie kierunkowe
- 1993 Interpolacja trójliniowa
- 1993 Ubój Z
- 1993 Odbicie Orena – Nayara
- 1993 Mapowanie tonów
- 1993 Rozpraszanie podpowierzchniowe
- 1994 Okluzja otoczenia
- 1995 Oznaczanie powierzchni ukrytej
- 1995 Mapowanie fotonów
- 1996 Wielopróbkowy antyaliasing
- 1997 Lekki transport Metropolis
- 1997 Natychmiastowa Radiosity
- 1998 Usuwanie ukrytych powierzchni
- 2000 Deformacja przestrzeni poza
- 2002 Wstępnie obliczony transfer promieniowania
Zobacz też
- Grafika komputerowa 2D – Komputerowe generowanie obrazów cyfrowych
- Grafika komputerowa 3D – Grafika wykorzystująca trójwymiarową reprezentację danych geometrycznych
- Renderowanie 3D – Proces konwersji scen 3D na obrazy 2D
- Renderowanie artystyczne – Styl renderowania
- Renderowanie architektoniczne – tworzenie dwuwymiarowych obrazów lub animacji przedstawiających atrybuty proponowanego projektu architektonicznego
- Aberracja chromatyczna – awaria soczewki w skupianiu wszystkich kolorów w tym samym punkcie
- Mapowanie przemieszczeń – technika grafiki komputerowej
- Rasteryzacja czcionek – Proces konwersji tekstu z wektorowego na rastrowy
- Oświetlenie globalne – Grupa algorytmów renderowania stosowanych w grafice komputerowej 3D
- Potok graficzny – Procedura konwersji scen 3D na obrazy 2D
- Mapa wysokości – Rodzaj obrazu rastrowego w grafice komputerowej
- Renderowanie w wysokim zakresie dynamicznym - Renderowanie scen grafiki komputerowej za pomocą obliczeń oświetlenia wykonanych w wysokim zakresie dynamicznym
- Modelowanie i renderowanie oparte na obrazach
- Rozmycie w ruchu – artefakt fotograficzny z poruszających się obiektów
- Renderowanie niefotorealistyczne – Styl renderowania
- Normal mapping – Technika mapowania tekstur
- Algorytm malarza – Algorytm wyznaczania widocznej powierzchni w grafice 3D
- Oświetlenie na piksel
- Rendering oparty na fizyce – Technika grafiki komputerowej
- Wstępne renderowanie
- Procesor obrazu rastrowego – komponent używany w systemie drukowania, który tworzy obraz rastrowy, znany również jako bitmapa.
- Radiosity – Metoda renderowania grafiki komputerowej z wykorzystaniem odbicia rozproszonego
- Ray tracing – Metoda renderowania
- Grafika komputerowa czasu rzeczywistego - Poddziedzina grafiki komputerowej
- Reyes – Architektura oprogramowania komputerowego w grafice komputerowej 3D
- Renderowanie Scanline/Algorytm Scanline – metoda renderowania grafiki komputerowej 3D
- Renderowanie oprogramowania
- Sprite (grafika komputerowa) - bitmapa 2D wyświetlana na większej scenie
- Bezstronne renderowanie - Rodzaj renderowania w grafice komputerowej
- Grafika wektorowa — obrazy grafiki komputerowej zdefiniowane przez punkty, linie i krzywe
- VirtualGL
- Model wirtualny – Forma inżynierii wspomaganej komputerowo
- Wirtualne studio – Technologia dla produkcji telewizyjnej i filmowej
- Renderowanie objętościowe — Reprezentacja wymodelowanego obiektu 3D lub zestawu danych jako projekcja 2D
- Algorytmy bufora Z – Rodzaj bufora danych w grafice komputerowej
Dalsza lektura
- Akenine-Möller, Tomasz; Haines, Eric (2004). Renderowanie w czasie rzeczywistym (wyd. 2). Natick, Massachusetts: AK Peters. ISBN 978-1-56881-182-6 .
- Blinn, Jim (1996). Róg Jima Blinna: podróż w dół potoku graficznego . San Francisco, Kalifornia: Morgan Kaufmann Publishers. ISBN 978-1-55860-387-5 .
- Cohen, Michael F.; Wallace, John R. (1998). Radiosity i realistyczna synteza obrazu (3 wyd.). Boston, Massachusetts [ua]: Academic Press Professional. ISBN 978-0-12-178270-2 .
- Filip Dutre; Bekaert, Philippe; Bala, Kavita (2003). Zaawansowane oświetlenie globalne (red. [Online-Ausg.]). Natick, Massachusetts: AK Peters. ISBN 978-1-56881-177-2 .
- Foley, James D .; Van Dam; Feinera; Hughesa (1990). Grafika komputerowa: zasady i praktyka (2 wyd.). Czytanie, Massachusetts: Addison-Wesley. ISBN 978-0-201-12110-0 .
- Andrew S. Glassner, wyd. (1989). Wprowadzenie do śledzenia promieni (wyd. 3). Londyn [ua]: Acad. Naciskać. ISBN 978-0-12-286160-4 .
- Glassner, Andrew S. (2004). Zasady cyfrowej syntezy obrazu (wyd. 2). San Francisco, Kalifornia: Kaufmann. ISBN 978-1-55860-276-2 .
- Gooch, Bruce; Gooch, Amy (2001). Renderowanie niefotorealistyczne . Natick, Massachusetts: AK Peters. ISBN 978-1-56881-133-8 .
- Jensen, Henrik Wann (2001). Realistyczna synteza obrazu z wykorzystaniem mapowania fotonów (red. [Nachdr.]). Natick, Massachusetts: AK Peters. ISBN 978-1-56881-147-5 .
- Pharr, Matt; Humphreys, Greg (2004). Renderowanie oparte na fizyce od teorii do implementacji . Amsterdam: Elsevier/Morgan Kaufmann. ISBN 978-0-12-553180-1 .
- Shirley, Piotr ; Morley, R. Keith (2003). Realistyczne śledzenie promieni (wyd. 2). Natick, Massachusetts: AK Peters. ISBN 978-1-56881-198-7 .
- Strothotte, Tomasz; Schlechtweg, Stefan (2002). Niefotorealistyczne modelowanie, renderowanie i animacja grafiki komputerowej (wyd. 2). San Francisco, Kalifornia: Morgan Kaufmann. ISBN 978-1-55860-787-3 .
- Ward, Gregory J. (lipiec 1994). „System symulacji i renderowania oświetlenia RADIANCE” . Siggraf 94 : 459–72. doi : 10.1145/192161.192286 . ISBN 0897916670 . S2CID 2487835 .
Linki zewnętrzne
- GPU Rendering Magazine , internetowy magazyn CGI o zaletach renderowania GPU
- SIGGRAPH – grupa zainteresowań ACM zajmująca się grafiką – największe akademickie i zawodowe stowarzyszenie i konferencja
- Lista linków do (ostatnich, od 2004 r.) Siggrafów (i kilku innych) w Internecie