Oświetlenie grafiki komputerowej - Computer graphics lighting

Oświetlenie grafiki komputerowej to zbiór technik stosowanych do symulacji światła w scenach grafiki komputerowej . Chociaż techniki oświetleniowe oferują elastyczność pod względem poziomu szczegółowości i dostępnej funkcjonalności, działają one również na różnych poziomach wymagań obliczeniowych i złożoności . Artyści graficy mogą wybierać spośród różnych źródeł światła, modeli, technik cieniowania i efektów, aby dopasować je do potrzeb każdej aplikacji.

Źródła światła

Źródła światła pozwalają na różne sposoby wprowadzania światła do scen graficznych.

Punkt

Źródła punktowe emitują światło z jednego punktu we wszystkich kierunkach, przy czym natężenie światła maleje wraz z odległością. Przykładem źródła punktowego jest samodzielna żarówka.

Kierunkowe źródło światła oświetlające teren.

Kierunkowy

Źródło kierunkowe (lub źródło odległe) równomiernie oświetla scenę z jednego kierunku. W przeciwieństwie do źródła punktowego, natężenie światła wytwarzanego przez źródło kierunkowe nie zmienia się wraz z odległością, ponieważ źródło kierunkowe jest traktowane tak, jakby było bardzo daleko od sceny. Przykładem źródła kierunkowego jest światło słoneczne.

Reflektor

Reflektor wytwarza ukierunkowany stożek światła. Światło staje się bardziej intensywne bliżej źródła światła punktowego i środka stożka światła. Przykładem reflektora jest latarka.

Otoczenia

Źródła światła otoczenia oświetlają obiekty nawet wtedy, gdy nie ma innego źródła światła. Intensywność światła otoczenia jest niezależna od kierunku, odległości i innych obiektów, co oznacza, że ​​efekt jest całkowicie jednolity w całej scenie. To źródło zapewnia, że ​​obiekty są widoczne nawet w całkowitej ciemności.

Lightwarp

Lightwarp to technika, w której obiekt w świecie geometrycznym załamuje światło w zależności od kierunku i natężenia światła. Światło jest następnie zniekształcane przy użyciu terminu rozproszenia otoczenia z zakresem spektrum kolorów . Światło może być wówczas rozpraszane odbijająco, aby uzyskać większą głębię ostrości i załamywać się . Technika ta służy do tworzenia unikalnego stylu renderowania i może być używana do ograniczania prześwietlenia obiektów. Gry takie jak Team Fortress 2 użyć techniki renderowania do tworzenia animowanych CEL zacienione stylizowany wygląd.

Interakcje oświetleniowe

W grafice komputerowej światło zwykle składa się z wielu elementów. Całkowity wpływ źródła światła na obiekt jest określany przez połączenie interakcji obiektu z tymi komponentami. Trzy podstawowe komponenty oświetlenia (i kolejne typy interakcji) to rozproszone, zastane i lustrzane.

Dekompozycja oddziaływań świetlnych.

Rozproszony

Oświetlenie rozproszone (lub odbicie rozproszone ) to bezpośrednie oświetlenie obiektu przez równomierną ilość światła wchodzącego w interakcję z powierzchnią rozpraszającą światło . Światło padające na obiekt jest odbijane w zależności od właściwości powierzchni obiektu oraz kąta padania światła. Ta interakcja jest głównym czynnikiem wpływającym na jasność obiektu i stanowi podstawę dla jego koloru.

Otoczenia

Ponieważ światło otoczenia jest bezkierunkowe, oddziałuje jednolicie na wszystkich powierzchniach, a jego intensywność zależy od siły źródeł światła otoczenia i właściwości materiałów powierzchni obiektów, a mianowicie ich współczynników odbicia otoczenia .

Wziernikowy

Oświetlenie lustrzane komponent daje obiektów połysk i podkreśla. Różni się to od efektów lustrzanych, ponieważ inne obiekty w otoczeniu nie są widoczne w tych odbiciach. Zamiast tego, oświetlenie zwierciadlane tworzy jasne punkty na obiektach w oparciu o intensywność składnika oświetlenia zwierciadlanego i współczynnik odbicia zwierciadlanego powierzchni.

Modele oświetlenia

Modele oświetlenia służą do odwzorowywania efektów oświetlenia w renderowanych środowiskach, w których światło jest aproksymowane na podstawie fizyki światła. Bez modeli oświetlenia odtworzenie efektów świetlnych występujących w naturalnym świecie wymagałoby większej mocy obliczeniowej niż jest to praktyczne w przypadku grafiki komputerowej. Celem tego oświetlenia lub modelu oświetlenia jest obliczenie koloru każdego piksela lub ilości światła odbitego dla różnych powierzchni w scenie. Istnieją dwa główne modele oświetlenia, oświetlenie zorientowane obiektowo i oświetlenie globalne. Różnią się tym, że oświetlenie zorientowane obiektowo traktuje każdy obiekt indywidualnie, podczas gdy oświetlenie globalne odwzorowuje interakcje światła między obiektami. Obecnie naukowcy opracowują techniki globalnego oświetlenia, aby dokładniej odtworzyć sposób interakcji światła z otoczeniem.

Oświetlenie zorientowane obiektowo

Oświetlenie zorientowane obiektowo, znane również jako oświetlenie lokalne, jest definiowane przez przypisanie pojedynczego źródła światła do pojedynczego obiektu. Ta technika jest szybka do obliczenia, ale często jest niepełnym przybliżeniem tego, jak światło zachowywałoby się w rzeczywistości w scenie. Często jest aproksymowana przez zsumowanie kombinacji światła zwierciadlanego, rozproszonego i otaczającego określonego obiektu. Dwa dominujące modele oświetlenia lokalnego to modele oświetlenia Phong i Blinn-Phong.

Model oświetlenia Phong

Jednym z najpopularniejszych modeli cieniowania jest model Phong. Model Phonga zakłada, że ​​intensywność każdego piksela jest sumą natężenia światła rozproszonego, zwierciadlanego i otoczenia. Model ten uwzględnia położenie widza w celu określenia światła odbicia za pomocą kąta odbicia światła od obiektu. Cosinus kąta jest podjęta i podniesiony do potęgi ustalonego przez projektanta. Dzięki temu projektant może zdecydować, jak szerokiego podświetlenia chce mieć na obiekcie; z tego powodu moc nazywana jest wartością połysku. Wartość połyskliwości jest określona przez chropowatość powierzchni, gdzie lustro miałoby wartość nieskończoności, a najbardziej chropowata powierzchnia może mieć wartość jeden. Ten model tworzy bardziej realistycznie wyglądające białe podświetlenie w oparciu o perspektywę widza.

Model oświetlenia Blinn-Phong

Model oświetlenia Blinna-Phonga jest podobny do modelu Phonga, ponieważ wykorzystuje odbite światło do tworzenia podświetlenia obiektu w oparciu o jego połysk. Model Blinn-Phong różni się od modelu oświetlenia Phonga, ponieważ model Blinn-Phong wykorzystuje wektor normalny do powierzchni obiektu w połowie odległości między źródłem światła a widzem. Ten model jest używany w celu uzyskania dokładnego oświetlenia zwierciadlanego i skrócenia czasu obliczeń. Proces ten zajmuje mniej czasu, ponieważ znalezienie kierunku odbitego wektora światła jest bardziej skomplikowanym obliczeniem niż obliczenie połowicznego wektora normalnego . Chociaż jest to podobne do modelu Phonga, daje różne wyniki wizualne, a wykładnik odbicia zwierciadlanego lub połysk może wymagać modyfikacji w celu uzyskania podobnego odbicia zwierciadlanego.

Globalne oświetlenie

Oświetlenie globalne różni się od oświetlenia lokalnego, ponieważ oblicza światło w taki sposób, jak przemieszczałoby się ono przez całą scenę. To oświetlenie jest bardziej oparte na fizyce i optyce, a promienie świetlne rozpraszają się, odbijają i odbijają się w nieskończoność w całej scenie. Nadal prowadzone są aktywne badania nad globalnym oświetleniem, ponieważ wymaga ono większej mocy obliczeniowej niż oświetlenie lokalne.

Śledzenie promieni

Obraz renderowany za pomocą ray tracingu

Źródła światła emitują promienie, które oddziałują z różnymi powierzchniami poprzez absorpcję, odbicie lub załamanie. Obserwator sceny widziałby każde źródło światła, które dociera do jego oczu; promień, który nie dociera do obserwatora, pozostaje niezauważony. Można to zasymulować, gdy wszystkie źródła światła emitują promienie, a następnie obliczyć, w jaki sposób każde z nich oddziałuje ze wszystkimi obiektami na scenie. Proces ten jest jednak nieefektywny, ponieważ większość promieni świetlnych nie dociera do obserwatora i marnuje czas przetwarzania. Śledzenie promieni rozwiązuje ten problem, odwracając proces, zamiast tego wysyłając promienie widzenia od obserwatora i obliczając, w jaki sposób wchodzą w interakcje, aż dotrą do źródła światła. Chociaż w ten sposób efektywniej wykorzystuje się czas przetwarzania i tworzy symulację światła ściśle imitującą naturalne oświetlenie, ray tracing nadal wiąże się z wysokimi kosztami obliczeniowymi ze względu na dużą ilość światła docierającego do oczu widza.

Radiosity

Radiosity uwzględnia energię wydzielaną przez otaczające obiekty i źródło światła. W przeciwieństwie do ray tracingu, który jest zależny od pozycji i orientacji obserwatora, oświetlenie radiosity jest niezależne od pozycji widoku. Radiosity wymaga większej mocy obliczeniowej niż śledzenie promieni, ale może być bardziej przydatne w przypadku scen ze statycznym oświetleniem, ponieważ wystarczyłoby to obliczyć tylko raz. Powierzchnie sceny można podzielić na dużą liczbę łat; każda łatka promieniuje trochę światła i wpływa na inne łatki, więc duży zestaw równań musi być rozwiązany jednocześnie, aby uzyskać ostateczną radiosity każdej łatki.

Mapowanie fotonów

Mapowanie fotonów zostało stworzone jako dwuprzebiegowy algorytm globalnego oświetlenia, który jest bardziej wydajny niż raytracing. Jest to podstawowa zasada śledzenia fotonów uwalnianych ze źródła światła poprzez szereg etapów. Pierwsze przejście obejmuje fotony uwalniane ze źródła światła i odbijające się od pierwszego obiektu; ta mapa lokalizacji fotonów jest następnie zapisywana. Mapa fotonów zawiera zarówno pozycję, jak i kierunek każdego fotonu, który albo odbija się, albo jest pochłaniany. Drugi przebieg ma miejsce w przypadku renderowania, w którym odbicia są obliczane dla różnych powierzchni. W tym procesie mapa fotonów jest oddzielona od geometrii sceny, co oznacza, że ​​renderowanie można obliczyć osobno. Jest to przydatna technika, ponieważ może symulować kaustykę, a etapy przetwarzania wstępnego nie muszą być powtarzane w przypadku zmiany widoku lub obiektów.

Cieniowanie wielokątne

Cieniowanie wielokątne jest częścią procesu rasteryzacji , w którym modele 3D są rysowane jako obrazy pikselowe 2D . Cieniowanie stosuje model oświetlenia w połączeniu z atrybutami geometrycznymi modelu 3D, aby określić, jak oświetlenie powinno być reprezentowane w każdym fragmencie (lub pikselu) wynikowego obrazu. W wielokątów modelu 3D przechowywania wartości geometrycznych niezbędnych do procesu cieniowania. Informacje te obejmują wartości położenia wierzchołków i normalne powierzchni , ale mogą zawierać dane opcjonalne, takie jak mapy tekstur i wypukłości .

Przykład cieniowania płaskiego.
Przykład cieniowania Gouraud.
Przykład cieniowania Phong.

Płaskie cieniowanie

Flat shading to prosty model cieniowania z jednolitym zastosowaniem oświetlenia i koloru na wielokąt. Kolor i normalna jednego wierzchołka są używane do obliczenia cieniowania całego wielokąta. Płaskie cieniowanie jest niedrogie, ponieważ oświetlenie każdego wielokąta należy obliczyć tylko raz na renderowanie.

Cieniowanie Gourauda

Cieniowanie Gourauda to rodzaj cieniowania interpolowanego, w którym wartości wewnątrz każdego wielokąta są mieszanką wartości jego wierzchołków. Każdy wierzchołek ma swoją własną normalną składającą się ze średniej normalnych powierzchni otaczających wielokątów. Oświetlenie i cieniowanie w tym wierzchołku jest następnie obliczane przy użyciu średniej normalnej i wybranego modelu oświetlenia. Ten proces jest powtarzany dla wszystkich wierzchołków w modelu 3D. Następnie cieniowanie krawędzi między wierzchołkami jest obliczane przez interpolację między wartościami wierzchołków. Na koniec cieniowanie wewnątrz wielokąta jest obliczane jako interpolacja wartości otaczających krawędzi. Cieniowanie Gourauda generuje gładki efekt oświetlenia na całej powierzchni modelu 3D.

Cieniowanie Phong

Cieniowanie Phong , podobne do cieniowania Gourauda, ​​to kolejny rodzaj cieniowania interpolacyjnego, który łączy wartości wierzchołków z wielokątami. Kluczową różnicą między nimi jest to, że cieniowanie Phonga interpoluje wartości normalne wierzchołków w całym wieloboku, zanim obliczy jego cieniowanie. Kontrastuje to z cieniowaniem Gourauda, ​​które interpoluje już zacienione wartości wierzchołków w całym wieloboku. Gdy cieniowanie Phong obliczy normalną fragmentu (piksela) wewnątrz wielokąta, może zastosować model oświetlenia, cieniując ten fragment. Proces ten jest powtarzany do momentu zacienienia każdego wielokąta modelu 3D.

Efekty świetlne

Odblaskowy materiał wykazujący właściwości żrące.

Kaustyka

Kaustyka to efekt świetlny odbitego i załamanego światła przechodzącego przez ośrodek. Pojawiają się jako wstęgi skoncentrowanego światła i często można je zobaczyć, patrząc na zbiorniki wodne lub szklane. Kaustykę można zaimplementować w grafice 3D, łącząc mapę tekstury kaustyki z mapą tekstury obiektów, których to dotyczy. Tekstura kaustyki może być albo statycznym obrazem, który jest animowany, aby naśladować efekty kaustyki, albo obliczeniem kaustyki w czasie rzeczywistym na pustym obrazie. Ta ostatnia jest bardziej skomplikowana i wymaga wstecznego śledzenia promieni, aby symulować fotony poruszające się w środowisku renderowania 3D. W modelu oświetlenia mapującego foton próbkowanie metodą Monte Carlo jest używane w połączeniu ze śledzeniem promieni, aby obliczyć natężenie światła powodowanego przez kaustykę.

Mapowanie odbić

Mapowanie odbić (znane również jako mapowanie środowiska) to technika, która wykorzystuje mapy środowiska 2D do tworzenia efektu odbicia bez korzystania ze śledzenia promieni. Ponieważ wygląd obiektów odblaskowych zależy od względnej pozycji oglądających, obiektów i otaczającego środowiska, algorytmy graficzne tworzą wektory odbicia w celu określenia sposobu pokolorowania obiektów na podstawie tych elementów. Wykorzystując mapy środowiska 2D zamiast w pełni renderowanych obiektów 3D do reprezentowania otoczenia, odbicia na obiektach można określić za pomocą prostych, obliczeniowo niedrogich algorytmów.

Systemy cząstek

Systemy cząsteczkowe wykorzystują kolekcje małych cząsteczek do modelowania chaotycznych, złożonych zdarzeń, takich jak pożar, poruszające się płyny, wybuchy i poruszające się włosy. Cząsteczki tworzące złożoną animację są rozprowadzane przez emiter, który nadaje każdej cząsteczce jej właściwości, takie jak prędkość, żywotność i kolor. Z biegiem czasu cząsteczki te mogą się poruszać, zmieniać kolor lub zmieniać inne właściwości, w zależności od efektu. Zazwyczaj systemy cząstek zawierają losowość , taką jak w początkowych właściwościach emiter nadaje każdej cząstce, aby efekt był realistyczny i niejednorodny.

Zobacz też

Bibliografia