n - WSInf
Transkrypt
n - WSInf
Zastosowanie grafiki komputerowej • • • • • • • • • kartografia wizualizacja danych pomiarowych, wizualizacja symulacji komputerowych, diagnostyka medyczna, kreślenie i projektowanie wspomagane komputerowo, przygotowanie publikacji, efekty specjalne w filmach, gry komputerowe interfejsy graficzne reklama Pojęcia podstawowe Grafika komputerowa Dział informatyki zajmujący się tworzeniem obrazów obiektów rzeczywistych i wyimaginowanych przy wykorzystaniu komputera. Obraz informacja prezentowana na płaskiej (2D) powierzchni, odbierana poprzez zmysł wzroku. Rysunek, szkic, obraz malarski, grafika, fotografia Obraz wektorowy, rastrowy (specyfika zapisu obrazu) Grafika wektorowa Obraz zapisywany jest jako zbiór obiektów parametrycznych Zapis Obiekt_1(p1,p2,p3, ...,pn) Obiekt_2(p1,p2,p3, ...,pn) Obiekt_3(p1,p2,p3, ...,pn) . . . Obiekt_m(p1,p2,p3, ...,pn) Przykładowe formaty ps(PostScript) eps(Encapsulated PostScript) pdf(Portable Document Format) ai (Adobe Ilustrator) swf (Shockwave Flash) cdr(Corel Draw) wmf(Windows Metafile Format) dxf(Drawing Exchange Format) dwg (Drawing) svg(Scalable Vector Graphics) język opisu dokumentu opis pojedynczego obrazka wraz z informacjami do jego osadzania w dokumencie bazowany na ps, zawiera dodatkowo system osadzania czcionek I system łączenia osadzanych dokumentów prawnie chroniony format pliku bazujący na ps w odróżnieniu od poprzedników dedykowany wyświetlaniu grafiki wektorowej na monitorze, szybki i niezależny od źródeł zewnętrznych Format Microsoftu do zapisu grafiki wektorowej I rastrowej format tekstowy AutoCAD, udostępniona dokumentacja zastrzeżony binarny format AutoCAD aplikacja XML, rozwijana na licencji GNU GPL, grafika statyczna i animowana Grafika rastrowa (bitmapowa) Obraz jest zapisywany jako zbiór pikseli pixel(picture+element) Zapis • • • • liczba punktów w poziomie liczba punktów w pionie informacja o użytych kolorach numery kolorów dla poszczególnych punktów Przykładowe formaty bmp (bitmap) jpeg, jpg (Joint Photographic Experts Group) gif (Graphics Interchange Format) png (Portable Network Graphics) tiff (Tagged Image File Format) psd (Photoshop Document) Max 24 bitowy kolor, możliwa kompresja metodą RLE 24 bitowy kolor, mały rozmiar pliku, bezstratna kompresja, mechanizm utraty jakości na poziomie dygitalizacji współczynników transformaty kosinusowej 256 kolorów, przezroczystości, animacja, przeplot, roztrząsanie, kompresja LZW 24 bitowy kolor, możliwość określenia stopnia przezroczystości, przeplot, kompresja LZ77 oraz kodowania Huffmana Uniwersalny i bardzo popularny format grafiki rastrowej o wielu możliwych głębiach koloru, i modelach barw, może przechowywać informacje o stronach dokumentu Konwersje obrazu Powstawanie obrazu rastrowego Obraz powstaje przez digitalizacje obrazu ciągłego, z charakterystyk ciągłych tworzone są dyskretne dane (piksele) zapisywane jako ciąg liczb całkowitych opisujących położenie i barwę wyizolowanego punktu obszaru. Digitalizacja ciągłej charakterystyki Konwersja grafiki wektorowej do rastrowej Konwersja grafiki rastrowej do wektorowej trasowanie 150x227, Rozmiar 16kB 6289 obiektów, Rozmiar 1MB Parametry obrazu cyfrowego Rozdzielczość bitowa Liczba bitów przeznaczona na kolor (1,8,16,24,32,48,64) Zakres dynamiczny (kontrast) Stosunek maksymalnej do minimalnej jasności Monitory CRT 600:1 Monitory LCD 300:1, 500:1, 800:1, 2000:1 5000:1 Rozdzielczość Rozdzielczość monitora 640x480 1.333 4/3 800x600 1.333 4/3 1024x768 1.333 4/3 1280x1024 1.250 5/4 1600x1200 1.333 4/3 1440x900 1.6 16/10 1366x768 1.778 16/9 1920x1080 1.778 16/9 Miara rozdzielczości ekranowej ppi (points per inch) Aktualnie przez 90 do 150 Rozdzielczość drukarki Miara rozdzielczości drukarek dpi (dots per inch) 300x300 600x600 600x1200 1440x720 dpi dpi dpi dpi Rozdzielczość wydruku Zależy od charakteru obrazu, papieru i rozdzielczości drukarki Porównanie dpi i ppi Rozdzielczość druku offsetowego Maszyna drukarska drukuje punkty – półtony (ang. halftone) – o różnej wielkości, których środki są umieszczone w stałej odległości od punktów sąsiednich. Symulacja gradientowej zmiany stopnie szarości z wykorzystaniem półtonów C M Y K Symulacja kolorów z wykorzystaniem półtonów w modelu CMYK lpi (lines per inch), liniatura rastra - liczba linii złożonych z półtonów na długości jednego cala, mierzona w kierunku nachylenia rastra (45 stopni) bilbordy tekst i grafika kolorowe albumy, okładki kilka-kilkanaście lpi 133 lpi 150 lpi 200 lpi Sposoby opisu figur płaskich i przestrzennych Siatki wielokątowe Obiekt zbudowany jest z wielokątów (face, polygon) w skład, których wchodzą krawędzie (edge) i wierzchołki (vertex) Trzy reprezentacje siatek wielokątnych • bezpośrednia • wskaźników na listę wierzchołków • wskaźników na listę krawędzi Reprezentacja bezpośrednia Każdy z wielokątów opisany jest przez listę współrzędnych wierzchołków si = (( x1 , y1 , z1 ), ( x2 , y2 , z 2 ),..., ( xn , yn , z n )) S = (s1 , s2 ,..., sls ) ls oznacza tutaj liczbę ścian wierzchołki zapisywane są w kolejności w jakiej napotkalibyśmy je poruszając się po brzegu wielokąta. Reprezentacja wskaźników na listę wierzchołków W = (w1 , w2 ,..., wlw ) si = (wi1 , wi 2 ,..., wi lws ) gdzie wk = ( xk , yk , z k ) dla k = 1,2,..., lw lws oznacza tutaj liczbę wierzchołków ściany (wieloboku) lw oznacza tutaj liczbę wierzchołków Reprezentacja wskaźników na listę krawędzi W = (w1 , w2 ,..., wlw ) K = (k1 , k 2 ,..., klk ) gdzie ki = (wi1 , wi 2 ); ki = (wi1 , wi 2 , si1 , si 2 ) si = (ki1 , ki 2 ,..., ki lws ) lk to liczba krawędzi Sposoby weryfikacji poprawności zapisanych danych Np. sprawdzenie czy każdy wierzchołek występuje w tablicy krawędzi przynajmniej 2x sprawdzenie czy każda krawędź znajduje się na liście ścian wykorzystanie twierdzenia Eulera mówiącego, że w każdym zwykłym wielościanie zachodzi związek: lw − lk + ls = 2 Uogólnienie twierdzenia Eulera lw − lk + ls = 2(lb − lt ) + ld gdzie lb liczba brył, lt liczba tuneli, ld liczba dziur Wielomianowe krzywe Beziera (Pierre Béziera, Paul de Casteljau) Krzywa Beziera i wielobok Beziera n P (t ) = ∑ i =0 gdzie ( ) t (1 − t ) n i n −i i n Pi = ∑ Bin (t )Pi i =0 ( ) jest symbolem Newtona ( ) = (n −n!i )!i! n i n i n liczba punktów wieloboku Beziera pomniejszona o jeden, t ∈ 0,1 Algorytm de Casteljau wyznaczania punktów krzywej Beziera p0( 0 ) p1( 0 ) p2( 0 ) p3( 0 ) ... p0(1) p1(1) p2(1) ... pn(1−)1 pn( 0 ) M p0( n−1) p1( n−1) p0( n ) Schemat wyznaczania punktów krzywej Beziera krzywa Beziera 1 stopnia P(t ) = (1 − t )P0 + P1t Krzywa Beziera 2 stopnia P(t ) = (1 − t ) P0 + t (1 − t )P1 + t 2 P2 2 Krzywa Beziera 3 stopnia P(t ) = (1 − t ) P0 + 3t (1 − t ) P1 + 3t 2 (1 − t )P2 + t 3 P3 3 2 W grafice komputerowej w praktyce wykorzystuje się zazwyczaj krzywe 3 stopnia. Fragment krzywej Beziera w trakcie edycji (w większości programów graficznych) Fragment krzywej Beziera w trakcie edycji, wielobok Beziera Ciągłość krzywej sklejanej geometryczna G0, G1, G2 klasa funkcji C0, C1, C2 Wielomianowe jednorodne krzywe B-sklejane (B-splines) jednorodne t 2 − t1 = t3 − t 2 = ti +1 − ti równe odległości między węzłami n P(t ) = ∑ N im (t )Pi i =0 gdzie dla t ∈ ti , ti +1 ) 1 N i0 (t ) = dla pozostalych t 0 t −t t − ti N i j (t ) = N i j −1 (t ) + i + j +1 N i j+−11 (t ) ti + j − ti t i + j +1 − t i +1 i=0, 1,…, n j=0, 1,…, m n+1 punktów kontrolnych (punkty de Boora) n+m+1 węzłów m stopień wielomianu dla j > 0 Wymierne (Rational) krzywe Beziera ∑ ( ) t (1 − t ) n P(t ) = i =0 n n i n −i i ∑ ( ) t (1 − t ) i =0 n i n Pi wi n −i i wi = ∑ B (t )P w i =0 n n i i i ∑ B (t )w i =0 n i i Wymierna jednorodne krzywe B-sklejane (Uniform Rational B-splines) n P(t ) = ∑ N (t )P w k i i i i =0 n ∑ N (t )w k i i i =0 Wymierna niejednorodne krzywe B-sklejane (Non Uniform Rational BSplines) NURBS to co powyżej ale z nierównomiernie rozłożonymi węzłami :)) t i +1 − t i ≠ t j +1 − t j Powierzchnie Beziera n m P(t ) = ∑∑ Bin (t )B mj (s )Pij i =0 j =0 Powierzchnie NURBS Powierzchnie drugiego stopnia f ( x, y , z ) = 0 f ( x, y, z ) = a1 x 2 + a 2 y 2 + a3 z 2 + 2a 4 xy + 2a5 yz + 2a6 zx + 2a7 x + 2a8 y + 2a9 z + a10 (x − xo )2 + ( y − yo )2 + (z − z o )2 = R 2 gdzie f jest funkcją drugiego stopnia. W ten sposób łatwo zaprezentować takie obiekty jak kula, elipsoida, walec, stożek. Zalety • obliczenia normalnej do powierzchni • sprawdzanie czy punkt jest na powierzchni • obliczenia z dla danych x i y • obliczania przecięcia powierzchni tego typu Reprezentacja z przesuwaniem (Extrude, Lathe, Loft) Obiekty powstają jako efekt uogólnionego przesunięcia obiektu wzdłuż zadanego toru. kształty pryzmatyczne, figury obrotowe, kształty o zmiennym przekroju (przesunięcia ogólne). Kopiowanie prymitywów (technologia grup) Obiekty są budowane na podstawie parametrów wyższego poziomu definiujących ułożenie kopiowanych obiektów. Operacje boolowskie Realizowane są regularyzowane operacje boolowskie ∪* regularyzowany operator sumy ∩* regularyzowany operator iloczynu −* regularyzowany operator różnicy Działanie regularyzowanych operatorów boolowskich A op* B = domkniecie(wnetrze( A op B )) zbiór nieregularny jego wnętrze suma A ∪* B część wspólna (iloczyn) A ∩* B różnica A −* B , B −* A domkniecie zbioru (zbiór regularny) Reprezentacja z podziałem przestrzennym Bryła jest dekomponowana na zbiór sąsiadujących nieprzecinających się brył, które są prostszymi prymitywami niż bryła dekomponowana. Dekompozycja na komórki Definiowany jest zbiór prostych komórek, często krzywoliniowych, cały obiekt jest zbudowany ze sklejonych komórek, często wymagane jest aby komórki miały wspólne punkty, krawędzie lub powierzchnie. MES. Szczególny przypadek to reprezentacja wokselowa. Dekompozycja na identyczne komórki zgodnie z regularną siatką. Kodowanie przez listę zajętych komórek. Elementarne modyfikatory i stos modyfikatorów Modyfikatory Twist Ptw (t ) = Tw(P(t o ), t tw ) Bend Pbe (t ) = Bw(P(t o ), t be ) Pta (t ) = Ta (P(t o ), t tw ) Taper Stretch Pst (t ) = St (P(t o ), t st ) Stos modyfikatorów P1 (t ) = Ta (Be(Tw(St (P(t o ), t st ), t tw ), t be ), t ta ) P2 (t ) = Be(Ta (Tw(St (P(t o ), t st ), t tw ), t ta ), t be ) P3 (t ) = Be(Ta (St (Tw(P(t o ), t tw ), t st ), t ta ), t be ) Rzutowanie w przestrzeni 3D Projekcja obrazów 3D na rzutni 2D Syntetyczna kamera i schemat powstania odwzorowania 2D Etapy powstawania odwzorowania 2D • Określenie rodzaju rzutu (perspektywiczny i równoległy prostokątny) • Określenie parametrów rzutowania (położenie oka obserwatora i płaszczyzny rzutowania) • Obcinanie w trzech wymiarach (bryła widzenia) • Rzutowanie i wyświetlanie Rzuty Ograniczamy się do planarnych rzutów geometrycznych (rzutowanie na powierzchnię płaską wykorzystując promienie rzutujące prostoliniowe) Rzut perspektywiczny i równoległy. Rzuty perspektywiczne Rzuty perspektywiczne dowolnego zbioru linii równoległych, które nie są równoległe do rzutni zbiegają się w punkcie zbieżności. Jeśli zbiór odcinków równoległy jest do jednej z trzech osi układu współrzędnych to punkt zbieżności określony jest jako osiowy punkt zbieżności lub podstawowy punkt zbieżności. Rzuty perspektywiczne są dzielone ze względu na liczbę podstawowych punktów zbieżności. Perspektywa jednopunktowa Perspektywa dwupunktowa Perspektywa trzypunktowa Rzuty równoległe Rzut równoległy prostokątny (kierunek rzutowania zgodny z kierunkiem normalnej do rzutni) • widok z góry • widok z przodu • widok z boku • aksonometryczne o izometryczne o inne Rzut równoległy ukośny Rzut prostokątny Klasyfikacja planarnych (płaskich) rzutów geometrycznych Rzut ukośny Własności rzutu równoległego prostokątnego • współliniowość punktów • rzuty odcinków równoległych do siebie są równoległe • stosunek długości odcinków równoległych, a nierównoległych do kierunku rzutu, jest równy stosunkowi długości ich rzutów • rzuty odcinków równoległych do rzutni mają tą samą długość co rzutowane odcinki • w rzucie figury płaskiej równoległej do rzutni kąty są niezmienione Własności rzutu perspektywicznego • współliniowość punktów Bryła widzenia rzut równoległy prostokątny rzut perspektywiczny Wyznaczanie powierzchni widocznych Dwie rodziny algorytmów 1. algorytmy z precyzją obrazową 2. algorytmy z precyzją obiektową 1. Zasada działania algorytmu z precyzją obrazową dla każdego piksela obrazu { wyznaczyć obiekt najbliższy obserwatora napotkany przez promień rzutowania przechodzący przez piksel; narysuj piksel o odpowiedniej barwie; } Jeśli n jest liczbą obiektów, a p liczbą pikseli to pracochłonność procedury jest proporcjonalna do iloczynu n p 2. Zasada działania algorytmu z precyzją obiektową dla każdego obiektu { wyznaczyć tę część obiektu, której rzut nie jest zasłonięty przez ten lub inne obiekty; narysuj wyznaczoną część obiektu; } prosta modyfikacja dla każdego obiektu { wyznaczyć tę część obiektu, których rzut nie jest zasłonięty przez ten lub inne obiekty; zapamiętaj wyznaczoną część obiektu; } dla każdego obiektu { narysuj wyznaczoną część obiektu; } Pracochłonność algorytmu jest proporcjonalna do n2. Metoda śledzenia promienia wybierz środek rzutowania i pole wizualizacji na rzutni; dla każdego wiersza obrazu { dla każdego piksela w wierszu { wyznacz promień ze środka rzutowania przez piksel; dla każdego obiektu w scenie { jeśli obiekt został przecięty przez promień i punkt przecięcia jest najbliżej to{ zapisz dane punktu przecięcia; } } ustaw barwę piksela ustalonego jako najbliższy; } } Określanie punktu przecięcia promienia i wielokąta Określ równanie prostej przechodzącej przez piksel i środek rzutowania; Określ równanie płaszczyzny, w której leży badany wielokąt; jeśli prosta przecina płaszczyznę to { sprawdź czy punkt przecięcia leży wewnątrz obszaru wielokąta; } Sprawdzenie czy punkt przecięcia leży wewnątrz wielokąta. Przebicie wielokąta promieniem rzutującym i rzut tego wielokąta na jedną z płaszczyzn układu Reguła parzystości przykład 1 Reguła parzystości przykład 2 Algorytm z-bufora (bufora głębokości) • bufor obrazu • bufor głębokości dla każdego punktu ekranu { ustaw kolor tła w buforze ekranu; ustaw zero w buforze głębokości; } dla każdego obiektu { dla każdego piksela w rzucie obiektu { jeśli głębokość punktu jest większa niż zapisana w buforze głębokości { zapisz w buforze ekranu w miejscu badanego piksela kolor aktualnego elementu; zapisz głębokość w buforze głębokości } } } Mechanizmy przyspieszające algorytmy wyznaczania powierzchni widocznych Obliczenia przyrostowe Przykład obliczanie głębokości punktu leżącego na płaszczyźnie (przyrostowe jej obliczenia dla wierszy i kolumn) Bryły ograniczające Rzeczywiste bryły Bryły ograniczające Wybieranie tylnych ścian ściana tylna r n>0 ściana równoległa do promienia rzutującego r n=0 ściana "przednia" r n<0 Podział przestrzenny Nie są rozpatrywane obiekty, które nie leżą w częściach obszaru nie przeciętych przez promień rzutujący Hierarchia Jeśli dwa obiekty na tym samym poziomie hierarchii nie przetną się to nie musimy rozpatrywać wzajemnego przecinania się obiektów potomnych całkowicie zawartych we wspomnianych obiektach. Jeśli z kolei promień rzutujący przetnie obiekt nadrzędny to wszystkie jego elementy podrzędne muszą być rozpatrzone na przecięcie z promieniem rzutującym. Barwa i jej percepcja Budowa oka Receptory siatkówki: Czopki (6,5 miliona) reagują na kolor. Istnieją trzy typy czopków, przy czym każdy osiąga wysoką czułość dla innego zakresu widma optycznego. Pręciki (120 milionów) rozpoznają poziomy jasności, odpowiadają za widzenie o zmroku. Światło promieniowanie elektromagnetyczne o fali długości 400–760 nm, wykrywane przez oko ludzkie; Fale elektromagnetyczne kolor czerwony długość fali częstotliwość nm (10-9m) THz (1012Hz) ~ 625-760 ~ 480-405 pomarańczowy ~ 590-625 ~ 510-480 żółty ~ 565-590 ~ 530-510 zielony ~ 520-565 ~ 580-530 cyjan ~ 500-520 ~ 600-580 niebieski ~ 450-500 ~ 670-600 indygo ~ 430-450 ~ 700-670 fioletowy ~ 380-430 ~ 790-700 Długości i częstości światła widzialnego Światło achromatyczny Oko jest czułe na stosunki natężeń a nie na ich poziomy co zmusza do odpowiedniego dla tej własności oka stopniowania natężeń światła. Różnicę między natężeniem 0.2 i 0.22 postrzegamy tak samo jak między 0.6 i 0.66. W obu przypadkach mnożnik, przez który trzeba pomnożyć pierwszą wartość przez drugą jest taki sam r=1.1 (aby przejścia były płynne r musi być co najwyżej 1.01) (Przykładowe obliczenia) Wrażenie barwy Światło docierać może do obserwatora bezpośrednio ze źródła lub po odbiciu od obiektów. Na siatkówce oka tworzony jest pomniejszony, odwrócony obraz obiektu. Receptory siatkówki przekształcają informację o natężeniu światła i częstotliwości na impulsy, które przez nerw wzrokowy przesyłane są do mózgu i tam interpretowane jako jasność i kolor. Barwa to wrażenie wzrokowe, wywołane w mózgu przez padające na oko promieniowanie świetlne. Percepcja barwy Barwę definiują trzy atrybuty określenia percepcyjne wielkości kalorymetrii odcień barwy (kolor) nasycenie jasność dominująca długość fali czystość pobudzenia luminancja Odcień barwy - jest to różnica jakościowa barwy Nasycenie - jest to odstępstwo barwy od bieli, identyfikuje czystość koloru Jasność - jest to wielkość zmieniająca barwę w zależności od natężenia światła, opisuje jak bardzo barwa jest jasna lub ciemna, wskazując czy barwa jest bliższa bieli czy czerni. Dominująca długość fali – ta długość, która decyduje o barwie widzianego koloru Czystość pobudzenia – określa jaką część światła stanowi światło o dominującej długości fali w stosunku do światła białego potrzebnego do otrzymania światła danego koloru. Luminancja – natężenie światła Modele barw: Ukierunkowane na użytkownika - HSV Ukierunkowane na sprzęt - RGB, CMY, CMYK Tworzenie barw przez urządzenia (modele barw ukierunkowane na sprzęt) Prawo Grossmana Każdą dowolnie wybraną barwę można otrzymać za pomocą trzech liniowo niezależnych barw. Trzy barwy tworzą układ niezależnych liniowo barw, jeżeli dowolne zsumowanie dwóch z nich nie może dać trzeciej barwy układu. Model RGB (addytywny) {R,G,B}={1,1,1}-{C,M,Y} Model CMY (substraktywny) {C,M,Y}={1,1,1}-{R,G,B} Model HSV (Hue Saturation Value), HSB • Hue – odcień barwy, determinowany przez przewagę fal odpowiedniej długości (0-360o) • Saturation – nasycenie koloru, odległość od bieli (0-1) • Value (Brightness) – jasność, wskazująca czy barwa jest bliższa bieli czy czerni (0-1) Stożek przestrzeni barw HSV Podstawa stożka V=1 Pełne koło barw możemy podzielić na sześć wycinków. Każdy obszar ma pewne cechy charakterystyczne wymieńmy je po kolei: • w obszarach 1 i 6 wartość składowej czerwonej jest maksymalna, • w obszarach 2 i 3 wartość składowej zielonej jest maksymalna, • a w obszarach 4 i 5 maksymalne wartości przyjmuje składowa niebieska, • w obszarze 1 składowa zielona rośnie od wartości minimalnej do maksymalnej, • w obszarze 2 składowa czerwona maleje od wartości maksymalnej do minimalnej • w obszarze 3 składowa niebieska rośnie od wartości minimalnej do maksymalnej • w obszarze 4 składowa zielona maleje od wartości maksymalnej do minimalnej • w obszarze 5 składowa czerwona rośnie od wartości minimalnej do maksymalnej • w obszarze 6 składowa niebieska maleje od wartości maksymalnej do minimalnej. Przeliczenie RGB na HSV Naliczenie H 1. Szukamy max i min wartości ze składowych RGB 2. Na ich podstawie określamy obszar, w którym znajduje się kolor 3. Odcień barwy wylicza się z proporcji udziału trzeciej barwy do dwóch pozostałych Naliczenie S S=(max(R,G,B)-min(R,G,B))/max(R,G,B) Naliczenie V V,B=max(R,G,B) Oświetlenie Modele oświetlenia 1. Samoświecenie obiektu I = ki 2. Światło otoczenia I = I o ko 3. Światło rozproszone I = I p k r cos(θ ) = I p k r (n ⋅ l ) 4. Złożenie 2 i 3 I = I o ko + I p k r (n ⋅ l ) 5. Z tłumieniem I = I o ko + f t I p k r (n ⋅ l ) 6. Z odbiciem zwierciadlanym I = I o k o + f t I p (k r cos(θ ) + k z cos m (α )) ( I = I o k o + f t I p k r (n ⋅ l ) + k z (z ⋅ e ) lz 7. Wiele źródeł światła punktowego m ( ) wykres cosm(x) I = I o ko + ∑ f t i I p i k r (n ⋅ l i ) + k z (z i ⋅ e ) i =1 m ) Korzystając z modelu 7 (Phong’a) można obliczyć natężenie światła w dowolnym punkcie sceny, co niestety jest procesem bardzo czasochłonnym, ale pozwala na wierne pokazanie cieniowanie powierzchni. Metody cieniowania płaszczyzn Algorytm Gouraud’a • wyznacz średnie wektory normalne w wierzchołkach siatki obiektu • oblicz w tych wierzchołkach natężenie światła wybraną metodą • oblicz natężenie światła w dowolnym punkcie ściany korzystając z interpolacji liniowej Algorytm Phong’a • wyznacz średnie wektory normalne w wierzchołkach siatki obiektu • oblicz wektor normalny w dowolnym punkcie ściany korzystając z interpolacji liniowej • oblicz w tym punkcie natężenie światła wybraną metodą Cienie Mapa cienia – dla każdego światła opracowywana jest bitmapa cienia o zadanej rozdzielczości wynikająca z położenia elementów obiektów leżących najbliżej źródła światła. Cienie raytracingowe – dla każdego punktu w widoku obserwatora stwierdzane jest czy dociera do tego punktu światło ze wszystkich źródeł światła. Typy świateł (blender) • Point - światło rozchodzące się równomiernie we wszystkich kierunkach, tłumienie, istotny punkt przyłożenia • Hemi - światło nieba (otoczenia), istotny kierunek • Spot- światło kierunkowe o stożkowo rozchodzących się promieniach, tłumienie, istotny punkt przyłożenia i kierunek • Sun – światło słoneczne, istotny kierunek • Area – światło emitowane przez powierzchnie, jedyne światło mające rozmiar Oświetlenie scen zewnętrznych • światło słoneczne – równoległe promienie, kolor w zależności od pory dnia • światło nieba – intensywność około 50% światła słonecznego, odchylenie o 90o, kolor w zależności od pogody, niski poziom lub brak rozbłysków i cienia • światło pośrednie (odbite) – kolor dobierany na podstawie koloru elementów sceny i światła padającego na nią, szybko znikające Przy oświetleniu nocnym obowiązują podobne zasady (Księżyc może pełnić rolę Słońca) z uwzględnieniem mniejszej intensywności świateł. Istotnym w projektowaniu stają się intensywne światła punktowe oświetlenia sztucznego wprowadzające kontrast do sceny. Oświetlenie scen wewnętrznych z oknami Trzeba zadbać o to, aby światło słoneczne i nieba wpadało przez okna, światło pośrednie powinno unikać oświetlania kątów i tracić swoją intensywność w celu nadania „miękkości”. Dodatkowo pojawia się: światło wypełniające – ciemne rozproszone światło symulujące światło wielokrotnie odbite Oświetlenie pojedynczych obiektów Standard to oświetlenie trójpunktowe • światło kluczowe – główne najintensywniejsze światło, odchylone od kierunku kamery o 30-60o i tyle mniej więcej od poziomu w górę • światło wypełniające – rozjaśnia strefę cienia • światło tylne (kontrowe) – tworzy kontrast z tłem Globalne oświetlenie to każdy sposób opracowania oświetlenia, który symuluje odbicia światła pomiędzy powierzchniami. Typowym efektem powstającym w wyniku korzystania z globalnego oświetlenia jest przenikanie kolorów. Zasady tworzenia oświetlenia są podobne jak przy oświetleniu lokalnym. Światła pośrednie są zastępowane globalną iluminacją. Radiosity (bilans energetyczny, nieistotna jest pozycja obserwatora). Metoda ta wykorzystuje inżynierskie modele wymiany ciepła dla emisji i odbicia promieniowania. Rozpatruje się tutaj zachowanie energii światła w zamkniętym środowisku. Założenia: • Energia opuszczająca powierzchnię jest równa energii emitowanej i odbitej przez nią. • Cała energia emitowana lub odbijana przez jedną powierzchnię jest absorbowana i/lub odbijana przez inne powierzchnie. Cechy: • Metoda ta jest metodą dyskretną oblicza natężenie światła tylko w wybranych punktach, związanych z podziałem obiektu. • Metoda ta najpierw określa wszystkie oddziaływania świateł dla całego otoczenia niezależnie od obserwatora a potem wykonywany jest rendering. Reytracing - Rekursywna metoda śledzenia promienia (istotna jest pozycja obserwatora) – bardzo dobre efekty w przypadku odbicia zwierciadlanego i przy załamaniu promieni w czasie przechodzenia przez przezroczyste materiały. Wymaga niestety światła otoczenia i bywa niekwalifikowana jako metoda globalnego oświetlenia. Materiały i tekstury Nierozerwalnie związane z oświetleniem. Nadrzędną rolę mają: • porowatość powierzchni • kierunek powierzchni w stosunku do kierunku padających na nią promieni świetlnych i promienia rzutującego Dla powierzchni "idealnie chropowatych" całe światło jest rozpraszane Dla powierzchni "idealnie gładkich" całe światło (o odpowiedniej barwie) jest odbijane W rzeczywistości każda z powierzchni posiada i własność odbijania i rozpraszania padającego światła z tym, że energia padającego światła w zależności od własności materiału jest różnie dystrybuowana na energię światła odbitego i rozproszonego. Podstawowe cechy materiału to: • zdolność do rozpraszania • odbijania • przepuszczania światła i załamywania (refrakcji) promieni świetlnych Każdy z wymienionych parametrów realizowany jest oddzielnie, a ich efekty nakładane są na siebie. Standardowe parametry materiału (jako wytworu syntetycznego): • kolor i siła rozpraszania • kolor i siłą rozbłysków, rozmiar obszaru rozbłysków (połyskliwość) • kolor otoczenia • przeźroczystość, stopień przeźroczystości, współczynnik załamania światła • specyfika algorytmów obliczających poszczególne efekty :) Materiał otrzymany przy wykorzystaniu tych parametrów jest materiałem jednolitym co w przyrodzie spotykane jest raczej rzadko :). Aby nadać materiałom bardziej naturalny wygląd wprowadza się tekstury, które mogą mieć charakter proceduralny lub bitmapowy. Tekstura to obraz dwu lub trójwymiarowy pozyskany w wyniku działania algorytmu matematycznego (tekstura proceduralna) lub z obrazu rastrowego (tekstura bitmapowa). Tekstury proceduralne drewno, chmury, marmur, szum Tekstury bitmapowe pozyskiwane w wyniku skanowania, fotografii cyfrowej, czy jako produkt wykonany w programie do edycji grafiki Teksturowanie to proces nanoszenia tekstury na obiekt 3D. Mapowanie tekstur to odwzorowywanie współrzędnych dwuwymiarowej tekstury na współrzędne trójwymiarowego obiektu. Proces taki może odbywać się przez: • przypisanie odpowiednim wierzchołkom siatki wielokątów współrzędnych mapowanej tekstury • nałożenie tekstury na prostą figurę przestrzenną, a dalej zrzutowanie punktów obiektu na wybraną figurę o mapowanie sferyczne o mapowanie walcowe o mapowanie płaskie o mapowanie sześcienne Mapowanie przezroczystości Mapowanie refleksyjności Mapowanie wypukłości (bump mapping) Mapowanie normalnych (normal mapping) Mapowanie przemieszczeń (displacement mapping)