1. Oświetlenie Materiały i powierzchnie

Podobne dokumenty
Animowana grafika 3D. Opracowanie: J. Kęsik.

Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania.

Oświetlenie obiektów 3D

GRK 4. dr Wojciech Palubicki

Model oświetlenia. Radosław Mantiuk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

OpenGL oświetlenie. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska

Grafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38

Grafika komputerowa. Model oświetlenia. emisja światła przez źródła światła. interakcja światła z powierzchnią. absorbcja światła przez sensor

GRAKO: ŚWIATŁO I CIENIE. Modele barw. Trochę fizyki percepcji światła. OŚWIETLENIE: elementy istotne w projektowaniu

6 Przygotował: mgr inż. Maciej Lasota

1. Prymitywy graficzne

Zjawisko widzenia obrazów

Grafika komputerowa Tekstury

Plan wykładu. Akcelerator 3D Potok graficzny

Laboratorium grafiki komputerowej i animacji. Ćwiczenie V - Biblioteka OpenGL - oświetlenie sceny

4/4/2012. CATT-Acoustic v8.0

Programowanie gier komputerowych Tomasz Martyn Wykład 6. Materiały informacje podstawowe

Grafika komputerowa Wykład 10 Modelowanie oświetlenia

Światło. W OpenGL można rozróżnić 3 rodzaje światła

Grupa: Elektrotechnika, Studia stacjonarne, II stopień, sem. 1. wersja z dn Laboratorium Techniki Świetlnej

Oświetlenie w OpenGL. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 8. Światło otaczajace. Światło rozproszone.

Materiały. Dorota Smorawa

Grafika 3D program POV-Ray

17. Który z rysunków błędnie przedstawia bieg jednobarwnego promienia światła przez pryzmat? A. rysunek A, B. rysunek B, C. rysunek C, D. rysunek D.

Transformacje. dr Radosław Matusik. radmat

MODELE OŚWIETLENIA. Mateusz Moczadło

Ćwiczenie Nr 11 Fotometria

Ćwiczenie 363. Polaryzacja światła sprawdzanie prawa Malusa. Początkowa wartość kąta 0..

- 1 - OPTYKA - ĆWICZENIA

Synteza i obróbka obrazu. Tekstury. Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych

INTERFERENCJA WIELOPROMIENIOWA

Rachunek wektorowy - wprowadzenie. dr inż. Romuald Kędzierski

Optyka stanowi dział fizyki, który zajmuje się światłem (także promieniowaniem niewidzialnym dla ludzkiego oka).

PODSTAWY BARWY, PIGMENTY CERAMICZNE

Gry komputerowe, Informatyka N1, III Rok

Bartosz Bazyluk POTOK RENDEROWANIA Etapy renderowania w grafice czasu rzeczywistego. Grafika Komputerowa, Informatyka, I Rok

Laboratorium techniki laserowej Ćwiczenie 2. Badanie profilu wiązki laserowej

SPRAWDZIAN NR 1. I promienie świetlne nadal są równoległe względem siebie, a po odbiciu od powierzchni II nie są równoległe względem siebie.

Gry komputerowe: efekty specjalne cz. 2

V Konkurs Matematyczny Politechniki Białostockiej

Podstawy fizyki wykład 8

Ustawienia materiałów i tekstur w programie KD Max. MTPARTNER S.C.

Scena 3D. Cieniowanie (ang. Shading) Scena 3D - Materia" Obliczenie koloru powierzchni (ang. Lighting)

W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora.

Polecenie ŚWIATPUNKT - ŚWIATŁO PUNKTOWE

POMIAR APERTURY NUMERYCZNEJ

SPRAWDZIAN NR Na zwierciadło sferyczne padają dwa promienie światła równoległe do osi optycznej (rysunek).

Podstawy POV-Ray a. Diana Domańska. Uniwersytet Śląski

składa się z m + 1 uporządkowanych niemalejąco liczb nieujemnych. Pomiędzy p, n i m zachodzi następująca zależność:

PDF stworzony przez wersję demonstracyjną pdffactory

Problemy optyki falowej. Teoretyczne podstawy zjawisk dyfrakcji, interferencji i polaryzacji światła.

Światła i rodzaje świateł. Dorota Smorawa

Zadania domowe. Ćwiczenie 2. Rysowanie obiektów 2-D przy pomocy tworów pierwotnych biblioteki graficznej OpenGL

PRZEGLĄD SPOSOBÓW OKREŚLANIA WŁAŚCIWOŚCI ŚWIATŁOTECHNICZNYCH MATERIAŁÓW ODBŁYŚNIKOWYCH

Geometria analityczna

BADANIE INTERFEROMETRU YOUNGA

Grafika 3D program POV-Ray - 1 -

Falowa natura światła

Modelowanie pola akustycznego. Opracowała: prof. dr hab. inż. Bożena Kostek

Treści zadań Obozu Naukowego OMG

Własności optyczne materii. Jak zachowuje się światło w zetknięciu z materią?

Tektura obiektów. Ogólnie sekcja opisująca teksturę wygląda następująco:

Klasyfikatory: k-nn oraz naiwny Bayesa. Agnieszka Nowak Brzezińska Wykład IV

Elementy geometrii analitycznej w R 3

Zagadnienia brzegowe dla równań eliptycznych

0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do

Geometria analityczna - przykłady

TEMAT: POMIAR LUMINANCJI MATERIAŁÓW O RÓśNYCH WŁAŚCIWOŚCIACH FOTOMETRYCZNYCH

Grafika komputerowa Wykład 8 Modelowanie obiektów graficznych cz. II

LABORATORIUM POMIARY W AKUSTYCE. ĆWICZENIE NR 4 Pomiar współczynników pochłaniania i odbicia dźwięku oraz impedancji akustycznej metodą fali stojącej

Gdzie widać rybę? Marcin Braun Autor podręczników szkolnych

Aby opisać strukturę krystaliczną, konieczne jest określenie jej części składowych: sieci przestrzennej oraz bazy atomowej.

Zjawisko interferencji fal

Opis matematyczny odbicia światła od zwierciadła kulistego i przejścia światła przez soczewki.

Co to jest wektor? Jest to obiekt posiadający: moduł (długość), kierunek wraz ze zwrotem.

CIENIE I CIENIOWANIE W GRAFICE KOMPUTEROWEJ

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

Wyznaczanie stałej słonecznej i mocy promieniowania Słońca

Pochodna i różniczka funkcji oraz jej zastosowanie do obliczania niepewności pomiarowych

OpenGL : Oświetlenie. mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski. Szczecin, r 1/23

Agnieszka Nowak Brzezińska Wykład III

PRAWO OHMA DLA PRĄDU PRZEMIENNEGO

XXXI OLIMPIADA FIZYCZNA ETAP WSTĘPNY Zadanie teoretyczne

Janusz Ganczarski CIE XYZ

Badanie przy użyciu stolika optycznego lub ławy optycznej praw odbicia i załamania światła. Wyznaczanie ogniskowej soczewki metodą Bessela.

Zwierciadło kuliste stanowi część gładkiej, wypolerowanej powierzchni kuli. Wyróżniamy zwierciadła kuliste:

Rozważania rozpoczniemy od fal elektromagnetycznych w próżni. Dla próżni równania Maxwella w tzw. postaci różniczkowej są następujące:

Zjawisko interferencji fal

Grafika Komputerowa Wykład 6. Teksturowanie. mgr inż. Michał Chwesiuk 1/23

BADANIE INTERFERENCJI MIKROFAL PRZY UŻYCIU INTERFEROMETRU MICHELSONA

ZADANIE 111 DOŚWIADCZENIE YOUNGA Z UŻYCIEM MIKROFAL

1. Podstawowe algorytmy techniki rastrowe a) dwa przecinające się odcinki mogą nie mieć wspólnego piksela (T) b) odcinek o współrzędnych końcowych

Grafika realistyczna. Oświetlenie globalne ang. global illumination. Radosław Mantiuk

KP, Tele i foto, wykład 3 1

2.6.3 Interferencja fal.

OpenGL Światło (cieniowanie)

Ćwiczenia nr 7. TEMATYKA: Krzywe Bézier a

Laboratorium techniki światłowodowej. Ćwiczenie 3. Światłowodowy, odbiciowy sensor przesunięcia

Praca. Siły zachowawcze i niezachowawcze. Pole Grawitacyjne.

Transkrypt:

1. Oświetlenie Rzeczywiste światło emitowane przez określone źródło, odbijane jest na milionach powierzchni obiektów, po czym dociera do naszych oczu powodując, że widzimy dane przedmioty. Światło padające na określoną powierzchnię ulega obiciu (powierzchnie gładkie), powodując oświetlenie kolejnych przedmiotów lub rozproszeniu (powierzchnie matowe, chropowate) dając w efekcie stopniowy zanik padającego światła. Pełne odwzorowanie wspomnianych mechanizmów, rządzących prawami oświetlenia jest nie możliwe, choćby ze względu na stopień złożoności występujących zjawisk. W związku z powyższym w grafice komputerowej stosuje się szereg mechanizmów oświetlania i cieniowania, bazujących na pewnego rodzaju uproszczeniach i trickach. Proste modele oświetlenia wyznaczają wartość światła docierającą do jednego punktu na powierzchni ścianki bryły (cieniowanie płaskie ang. flat shading ). Bardziej skomplikowany model (cieniowanie Gouraud a) zakłada wyznaczenie wartości światła docierającego do ścianki na podstawie interpolacji intensywności światła wyznaczonego w wierzchołkach ścianki. Model ten jest powszechnie stosowany w systemach graficznych takich jak OpenGL i Direct3D, ponieważ daje się w pełni zaimplementować w sprzętowych akceleratorach graficznych. Ponadto w modelu tym można zrealizować mechanizmy odbicia rozproszonego (odbicie lambertowskie) oraz odbicia lustrzanego. Niestety model ten daje interesujące efekty dla brył składających się z możliwe dużej ilości ścianek (chcąc oświetlić dość realnie sześcian należy każdą z jego ścian podzielić na szereg mniejszych). Kolejny model oświetlenia, zaproponowany przez Phong a Bui-Tuong a, pozwala wyznaczyć wartość światła docierającą do każdego z rysowanych pikseli. Metoda ta jest dość dokładna i pozwala na realizację np. nierówności powierzchni (ang. bump mapping). Główną ideą cieniowania Phonga jest interpolacja wektorów normalnych związanych ze ścianką i wyznaczanie wartości światła, dla każdego z rysowanych punktów. Można zauważyć, że zwiększając liczbę ścianek bryły na tyle, że rysowany trójkąt ma wielkość nie wiele przekraczającą pojedynczy punkt praktycznie uzyskujemy przejście z modelu cieniowania Gouraud a do modelu Phong a. 1.1. Materiały i powierzchnie Dla zwiększenia realności rysowanych obiektów należy wprowadzić możliwość definiowania właściwości ich powierzchni: kolor, stopień chropowatości, ilość odbijanego światła, poziom światła emitowanego. W tym celu posłużymy pojęciem materiału, powszechnie stosowanym w grafice komputerowej. W naszym przypadku do opisu cech materiału zdefiniujemy następującą strukturę struct Material3D { Color3D ambient; Color3D diffuse; Color3D specular; Color3D emissive; float power; }; Koncepcja stosowania materiałów zakłada podział obiektu na pewne części zwane powierzchniami (ang. surface) i przypisaniu im odpowiednio zdefiniowanych materiałów. Podczas rysowania bryły, algorytmy wyznaczające oświetlenie analizują przynależność każdej ze ścianek do jeden z powierzchni i korzystają z materiału do niej przypisanego. Można w tym

miejscu zadać pytanie, dla czego właściwości powierzchni nie są przypisane bezpośrednio do każdego z wierzchołków bryły? Odpowiedz jest bardzo prosta, niektóre z wierzchołków są wspólne dla różnych powierzchni i powstałby problem z określeniem koloru, przykładem może być sześcian składający się z 8 wierzchołków. Jedyną metodą do narysowania każdej ze ścian sześcianu w innym kolorze jest właśnie użycie materiałów. Poszczególne pola wchodzące w skład struktury materiału wyjaśnione zostaną w dalszej części. 1.2. Ogólne równanie oświetlenia W modelu oświetlenia rozważanym w dalszej części rozdziału zakładamy, że całkowite natężenie światła będzie sumą: światła otaczającego, światła rozpraszanego na powierzchni obiektów (odbicie lambertowskie) oraz światła odbijanego przez powierzchnie obiektów (odbicie zwierciadlane). Dodatkowo założymy możliwość emisji światła przez obiekty. Biorąc pod uwagę wszystkie powyższe założenia ogólne równanie oświetlenia przyjmuje ostatecznie postać: I = Ambient + Diffuse + Specular + Emissive I jest to wartość natężenia światła występującego w scenie, ambient składowa światła otaczającego, diffuse składowa światła będącego wynikiem odbicia rozproszonego, specular składowa światła będącego wynikiem obicia lustrzanego, emissive składowa światła emitowanego przez poszczególne materiały (obiekty lub ich fragmenty). Należy dodać, że równanie to jak i wszystkie podane poniżej występują w wersji dla światła monochromatycznego. W przypadku świateł kolorowych wszystkie z podanych wzorów należy zastosować oddzielnie do każdej ze składowych (RGB) tj. czerwonej, zielonej i niebieskiej. 1.3. Światło otaczające (ambient light) Tego typu światło nie ma odniesienia do rzeczywistych źródeł światła i używane jest do oświetlenia wszystkich obiektów w scenie z jednakowym natężeniem i przy zachowaniu tego samego koloru. Światła otaczającego, najczęściej używa się do wstępnego ustalenia jasności sceny, ze względu na to, że uproszczony model oświetlenia nie uwzględnia wszystkich możliwych dróg, którymi światło może dotrzeć do obiektu. Przykładem ilustrującym taką sytuację może być oświetlenie latarką lub innym źródłem o stosunkowo wąskim snopie światła przedmiotu o lustrzanej powierzchni i znajdującym się. w ciemnym pokoju. W rzeczywistości część światła odbitego od tego przedmiotu posłuży do oświetlenia innych przedmiotów. Natomiast w modelu oświetlenia, który będziemy rozpatrywać na powierzchni obiektu pojawią się widoczne rozbłyski, lecz w żaden sposób nie będą oddziaływały one na pozostałe obiekty. Światło otaczające można opisać wzorem: Ambient = M a L ai gdzie M a składowa ambient materiału parametr ten określa w jakim stopniu składowa światła otaczającego wpływa bezpośrednio na daną powierzchnię, L ai składowa ambient i-tego, światła, określająca intensywność światła otoczenia generowanego przez i-te światło. Światło otaczające może być definiowane jako składowa poszczególnych świateł lub jako światło definiowane globalnie. i

Ze względu na prostotę realizacji, jak najbardziej wskazane jest, aby tworzenie programowego modelu oświetlenia rozpocząć właśnie od tego typu światła. 1.3 Odbicie rozproszone Rys. 1 Obiekt oświetlony światłem otoczenia Przedstawione wyżej światło otaczające oświetla każdy obiekt z jednakową intensywnością w każdej z części bryły i daje w rezultacie mało realne efekty. Odbicie omawiane w tym punkcie pozwala na zróżnicowanie oświetlenia obiektu w zależności od kierunku i umiejscowienia światła. Powierzchnie matowe, bez połysku charakteryzują się odbiciem rozproszonym i wydają się równie jasne ze wszystkich stron obserwacji. W zasadzie dla danej powierzchni jasność zależy tylko od kąta między kierunkiem wektora, poprowadzonego od punktu zaczepienia normalnej do światła i normalną do powierzchni oświetlanej. L N θ Rys 2. Odbicie rozproszone. L wektor poprowadzony od punktu na powierzchni do światła, N normalna do powierzchni. Ogólnie można powiedzieć, że równanie oświetlenia dla odbicia rozproszonego ma postać Diffuse = M d Ld cos(θ ) gdzie L d natężenie światła padającego na powierzchnię, M d współczynnik Diffuse materiału, określający zdolność powierzchni do rozpraszania światła. Stosując znormalizowane wektory N i L powyższe równanie można zapisać w postaci

Diffuse = M d L d ( N L) gdzie ( N L) jest iloczynem skalarnym wektorów ( N L) = N x Lx + N y Ly + N z Lz Równanie to posiada pewien poważny błąd, otóż nie uwzględnia odległości światła od obiektu i jego tłumienia w atmosferze. W zasadzie równanie powyższe nadaje się do opisu światła kierunkowego, czyli takiego, które posiada intensywność oraz kierunek L natomiast o jego punkcie położenia można powiedzieć, że leży w nieskończoności. Tego typu światło zostało zdefiniowane w Direct3D, gdyż daje stosunkowo dobre efekty wizualne przy niespecjalnie dużym nakładzie obliczeń. Definiując współczynnik tłumienia 1 światła zakłada się, że strumień światła docierający do powierzchni maleje proporcjonalnie do kwadratu odległości światła od obiektu. Attenuatio n = Niestety, stosowanie tego wzoru w praktyce nie daje dostatecznie dobrych efektów, ponieważ dla małych odległości powyższy wzór ulega szybkim zmianom, natomiast przy dużych odległościach zmienia się nieznacznie. W celu poprawienia wspomnianych efektów przyjmuje się Attenuatio n 1 d = 1 min, + + 1 2 c0 c1 d c2 d Znając podstawowe założenia równanie oświetlenia dla odbicia rozproszonego można zapisać w następujący sposób: ( N L ) Diffuse = M d Ldi diri i 2 Attenuation Spot gdzie M d składowa diffuse materiału, określająca zdolności rozpraszania światła na powierzchni; L di składowa diffuse (intensywność) i-tego światła; N normalna do powierzchni; L dir i wektor kierunku i-tego światła; Attenuation współczynnik tłumienia światła; Spot współczynnik ten pozwala na definicje świateł innych niż punktowe, sposób jego wyznaczania przedstawiony jest w dalszej części. W naszych dotychczasowych rozważaniach nalezy przyjąć Spot=1.0. 1 Tłumienie - ang. attenuation.

Rys. 3 Obiekt oświetlony światłem będącym wynikiem odbicia rozproszonego 1.4 Odbicie zwierciadlane Lustrzane odbicie można zauważyć na każdej błyszczącej powierzchni. Rozświetlenie widoczne na takiej powierzchni jest wynikiem odbicia zwierciadlanego (biała intensywnie świecąca część obiektu) natomiast światło odbite od reszty obiektu jest wynikiem odbicia rozproszonego. Obserwując tego typu obiekt można zauważyć, że wraz z ruchem naszej głowy porusza się rozświetlenie na obiekcie. Dzieje się tak, ponieważ błyszczące powierzchnie odbijają światło niejednakowo, w zależności od kierunku obserwacji. Na idealnej lustrzanej powierzchni światło odbije się tylko w kierunku odbicia R, będącym lustrzanym odbiciem L, względem N. Dlatego obserwator może widzieć odbite zwierciadlanie światło tylko wtedy, gdy kąt α na rys. 5 jest bliski zeru. Kat α jest katem między wektorem poprowadzonym od ścianki do punktu umiejscowienia obserwatora (V ), a wektorem odbicia R L N R θ θ α V Rys. 5 Odbicie zwierciadlane. Phong Bui-Toung opracował model oświetlenia dla nieidealnych obiektów odbijających, w modelu tym zakłada się, że maksimum odbicia zwierciadlanego występuje dla kąta α równego zero i szybko spada wraz ze wzrostem wartości kąta. Wspomniany szybki spadek wartości

odbicia można aproksymować za pomocą cos n α. Typowo n zmienia się od 1 do wartości kilkuset i parametr ten reprezentowany jest przez składową power struktury opisującej właściwości materiału (Material3D). Można zauważyć, że dla idealnego zwierciadła n powinno być równe nieskończoności, czyli odbicie powinno następować gdy kąt między wektorem obserwacji V, a wektorem odbicia R równy zero. Poniżej zamieszczone są wykresy funkcji cos n α dla kilku, różnych wartości parametru n. 1 1 1 1 0.9 0.9 0.9 0.9 0.8 0.8 0.8 0.8 0.7 0.7 0.7 0.7 0.6 0.6 0.6 0.6 0.5 0.5 0.5 0.5 0.4 0.4 0.4 0.4 0.3 0.3 0.3 0.3 0.2 0.2 0.2 0.2 0.1 0.1 0.1 0.1 0 0 10 20 30 40 50 60 70 80 90 0 0 10 20 30 40 50 60 70 80 90 0 0 10 20 30 40 50 60 70 80 90 0 0 10 20 30 40 50 60 70 80 90 cos α cos 2 α 8 64 cos α cos α Rys. 6 Wykresy funkcji cos n α dla różnych wartości parametru n. Stosunek natężenia światła odbijanego zwierciadlanie do natężenia światła padającego może również zależeć od kata padania θ. Oznaczając to jako W(θ), to równanie oświetlenia dla składowej światła specular przybiera następującą postać Specular = Attenuation L s W n ( θ ) cos α Jeżeli wektory odbicia R i obserwacji V są znormalizowane to cos α = R V. W(θ) na ogół ma wartość stałą i w naszym przypadku określany jest przez składową specular materiału oraz każdego ze świateł. Mając na uwadze powyższe spostrzeżenia równanie oświetlenia dla odbicia lustrzanego można ostatecznie zapisać Specular = M s i L si ( R V ) n Attenuation Spot gdzie M s składowa specular materiału; L si składowa specular i-tego światła; parametry Attenuation i Spot są identyczne jak dla odbicia rozproszonego. n jest określane przy pomocy składowej power materiału. Wektor odbicia R wyznacza się jako zwierciadlane odbicie wektora L względem N. Korzystając z poniższego rysunku można zapisać U = N cosθ ; R = U + S N L S S R θ θ U Rys. 7 Wyznaczanie wektora R.

Na podstawie podobieństwa trójkątów oraz korzystając z odejmowania wektorów można wyznaczyć S = U L R = U + U L stąd R = 2 N cosθ L. Także mając na uwadze to, że wektory N i L są znormalizowane można ostatecznie zapisać R = 2 N ( N L) L Rys. 8 Obiekt oświetlony światłem będącym wynikiem odbicia rozproszonego oraz odbicia zwierciadlanego powodowanego przez dwa źródła światła. Podsumowując pragnę przypomnieć, że składowa Specular, zarówno światła jak intensywność materiału, określa intensywność i kolor odbłysków powstających na oświetlanej powierzchni. Dzięki temu parametrowi możemy kształtować cechy powierzchni związane z jej gładkością oraz możemy decydować, czy dana powierzchnia stwarza złudzenie twardej i metalicznej, czy raczej miękkiej i matowej. Parametr ten uzupełniany jest wartością składowej Power materiału, która określa ostrość odbłysków. Jeżeli wartość podawana jako Power jest nieduża to cała powierzchnia generuje odblaski. Gdy zaczniemy zwiększać ten parametr to odblaski będą powstawać jedynie w miejscach ułożonych równolegle do padającego światła dając w efekcie bardzo ostre odblaski, stwarzające złudzenie powierzchni o dużej gładkości. Rys. 9 parametr Power=50 Rys. 10 parametr Power=5

2. Typy świateł Nim przejdziemy do omówienia typów świateł realizowanych programowo, w ramach ćwiczeń, zdefiniujemy strukturę pozwalającą na określenie wszystkich niezbędnych parametrów i właściwości światła. Struktura taka może być zdefiniowana następująco: struct Light3D { LIGHT_TYPE type; Color3D specular; Color3D diffuse; Color3D ambient; TVector3 Position; TVector3 Direction; float Range; float Falloff; float c0; float c1; float c2; float Theta; float Phi; }; 2.1 Światło kierunkowe (directional light) Światło kierunkowe posiada jedynie kierunek, kolor i intensywność. Promienie emitowane z tego typu źródła rozchodzą się w całej płaszczyźnie, równolegle do kierunku padania światła. Dla tego typu światła nie można określić takich parametrów jak zasięg, czy sposób zaniku, gdyż nie można wyróżnić punktu, z którego emitowane jest światło. Z punktu widzenia stopnia skomplikowania obliczeń, ten typ światła jest najmniej czasochłonny z wszystkich świateł kierunkowych. Światła tego typu znakomicie nadają się do imitowania źródeł światła oddalonych od sceny, takich jak słońce, czy księżyc. 2.2 Światło punktowe (point light) Światło punktowe, jak sama nazwa wskazuje, emitowane jest z określonego punktu i rozchodzi się we wszystkich kierunkach z jednakowym natężeniem. Dla tego typu światła, poza kolorem, intensywnością i pozycją, musimy zdefiniować zasięg działania światła i współczynniki, określające sposób zanikania światła, wraz z oddalaniem się od źródła. Jeżeli tego nie zrobimy, to światło w cały swoim zakresie będzie posiadało maksymalną wartość, a oświetlone nim obiekty będą posiadały tylko powierzchnie białe, widoczne z pozycji światła, lub zupełnie ciemne. Światła punktowe są znacznie bardziej kosztowne pod względem obliczeniowym od świateł kierunkowych, czy otaczających, gdyż w trakcie obliczeń natężenie światła musi być obliczone dla wszystkich wierzchołków danego obiektu. Tego typu światła znakomicie poprawiają realizm rysowanych scen i mogą odwzorowywać obiekty takie jak choćby żarówka.

2.3 Światło reflektorowe (spot light) Dla tego typu światła, poza kolorem, intensywnością, pozycją oraz kierunkiem w przestrzeni, musimy określić kąty, między krawędziami tworzącymi stożki oraz parametr, określający sposób zanikania światła między granicą stożka wewnętrznego, a stożka zewnętrznego. Światło rzucane przez tego typu reflektor składa się z dwóch stożków: wewnętrzny jest jaśniejszy, emitujący właściwe światło i zewnętrzny, zwykle ciemniejszy, określający obszar, w którym światło zanika. π θ Rys. 7. Budowa światła reflektorowego Efekt reflektorowego światła uzyskiwany jest bezpośrednio dzięki parametrowi Spot występującego w równaniach oświetlenia zarówno dla odbicia rozproszonego jak i dla odbicia zwierciadlanego. Wcześniej parametrowi temu przypisana była wartość 1.0 odpowiadająca zachowaniu się światła punktowego lub kierunkowego, poniżej przedstawiona jest zależność dla światła reflektorowego 1.0* phii Spot = 0 gdy rhoi cos 2 phii rhoi cos 2 thetai phii cos cos 2 2 * dla świateł niereflektorowych falloff rho i = Ldcsi Ldiri - gdzie dcsi L jest parametrem Direction w strukturze opisującej właściwości i-tego światła. Parametr ten bezpośrednio określa kierunek patrzenia światła reflektorowego; diri L jest wektorem poprowadzonym od wierzchołka bryły do pozycji i-tego światła. Parametry Phi i Theta opisują kat rozwarcia stożków odpowiednio: wewnętrznego i zewnętrznego. Parametr Falloff służy do regulacji sposobu zaniku światła na granicy stożków. Zmieniając wartości tego parametru możemy osiągnąć zupełny zanik światła na brzegach,

zewnętrznego stożka lub wręcz przeciwnie światło będzie tak samo intensywne w całej swojej wiązce i zaniknie dopiero na granicy swego zasięgu. Efektowność tego typu światła okupiona jest niestety dużym nakładem obliczeń. Zadania do wykonania w trakcie ćwiczeń Utworzyć pliki nagłówkowe zawierające definicje struktur opisujących parametry światła (struct Light3D) oraz materiału (struct Material3D). Napisać funkcję wyznaczającą globalne natężenie światła z uwzględnieniem światła otaczającego oraz światła powstałego w wyniku odbicia rozproszonego i zwierciadlanego dla światła kierunkowego. Rozszerzyć funkcję z punktu poprzedniego o światło punktowe oraz reflektorowe.