OPEN_GL LABORATORIUM 6. tekst na podstawie: Edwarda Angela oraz Łukasza Grabca

Podobne dokumenty
6 Przygotował: mgr inż. Maciej Lasota

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

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

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

OpenGL model oświetlenia

Materiały. Dorota Smorawa

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

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

Oświetlenie obiektów 3D

Laboratorium Grafiki Komputerowej i Animacji. Ćwiczenie V. Biblioteka OpenGL - oświetlenie sceny

Mapowanie tekstur Mip-mapy (level of detail) Filtrowanie Multiteksturowanie

Gry komputerowe, Informatyka N1, III Rok

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

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

Laboratorium 4 OpenGl (4) Oświetlenie sceny

OpenGL Światło (cieniowanie)

GRAFIKA CZASU RZECZYWISTEGO Interakcja, ruch kamery, oświetlenie.

OpenGL Światło (cieniowanie)

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

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

Laboratorium 2. Część I. Perspektywa. Obsługa poleceń myszy. 2. W sekcji przeznaczonej na definicję zmiennych globalnych dodaj następujące definicje:

Instrukcja obsługi programu MechKonstruktor

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

Sposoby przekazywania parametrów w metodach.

Instrukcja obsługi programu CalcuLuX 4.0

x y x y x y x + y x y

Izolacja Anteny szerokopasmowe i wskopasmowe

ELEMENT SYSTEMU BIBI.NET. Instrukcja Obsługi

1. Oświetlenie Materiały i powierzchnie

stopie szaro ci piksela ( x, y)

GRK 4. dr Wojciech Palubicki

PROWIZJE Menad er Schematy rozliczeniowe

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

Instrukcja obsługi programu DIALux 2.6

System graficzny. Potok graficzny 3D. Scena 3D Zbiór trójwymiarowych danych wejściowych wykorzystywanych do wygenerowania obrazu wyjściowego 2D.

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

Podstawowe obiekty AutoCAD-a

geometry a w przypadku istnienia notki na marginesie: 1 z 5

Zastosowanie programu Microsoft Excel do analizy wyników nauczania

OpenGL oświetlenie i tekstury. OpenGL oświetlenie. Bogdan Kreczmer.

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

Polecenie ŚWIATPUNKT - ŚWIATŁO PUNKTOWE

IV Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 1 kwietnia 2016

ROZPORZDZENIE MINISTRA INFRASTRUKTURY 1) z dnia 25 czerwca 2003 r. w sprawie sposobu zgłaszania oraz oznakowania przeszkód lotniczych

I. PROMIENIOWANIE CIEPLNE

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

Studium podyplomowe. Programowanie w OpenGL. Michał Turek, AGH Kraków

Mieszanie kolorów. Dorota Smorawa

Zjawisko widzenia obrazów

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

Grafika 3D program POV-Ray - 1 -

Ćwiczenie Nr 11 Fotometria

Moemy tutaj doda pokoje do nieruchomoci (jeli wynajmujemy j na pokoje), zakwaterowa najemców, lub te dokona rezerwacji pokoju.

Owietlenie projektowanej drogi gminnej

POCZTA POLSKA S.A. Obszar Operacyjny ds. Nieruchomo ci w Katowicach pl. Oddz. Młodzie y powsta czej KATOWICE POCZTA POLSKA S.A.

PRZYPOMNIENIE Ka»d przestrze«wektorow V, o wymiarze dim V = n < nad ciaªem F mo»na jednoznacznie odwzorowa na przestrze«f n n-ek uporz dkowanych:

BUDOWA TEODOLITÓW. SYSTEMY ODCZYTOWE

Gry Komputerowe Laboratorium 4. Teksturowanie Kolizje obiektów z otoczeniem. mgr inż. Michał Chwesiuk 1/29. Szczecin, r

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

PODSTAWY BARWY, PIGMENTY CERAMICZNE

Zadania do wykonaj przed przyst!pieniem do pracy:

PRZYKŁADOWY ARKUSZ EGZAMINACYJNY Z FIZYKI I ASTRONOMII

Stawiajc krzyyk w odpowiedniej wartoci mona zapisa dowolnego binarnego reprezentanta liczby dziesitnej x x x x x

SUPLEMENT SM-BOSS WERSJA 6.15

Wykład 17: Optyka falowa cz.2.

Fala elektromagnetyczna o określonej częstotliwości ma inną długość fali w ośrodku niż w próżni. Jako przykłady policzmy:

Rys2 Na czerwono przebieg, na niebiesko aproksymacja wielomianem II stopnia.

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

Opera Wykorzystanie certyfikatów niekwalifikowanych w oprogramowaniu Opera wersja 1.1 UNIZETO TECHNOLOGIES SA

Uniwersal Door Intercom

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

Lekcja 12 - POMOCNICY

INSTRUKCJA OBSŁUGI PROGRAMU C-STATION

3. TRZECI 0, ,995054

Reprezentacje danych multimedialnych - kolory. 1. Natura wiatła 2. Widzenie barwne 3. Diagram chromatycznoci 4. Modele koloru

WYKŁAD 12. Wzorce projektowe czynnociowe State Mediator

Klonowanie MAC adresu oraz TTL

Wprowadzenie do technologii HDR

MOBILNY SYSTEM ODCZYTU SIECI RADIOMODEMÓW 433MHz OPIS TECHNICZNY

WYKŁAD 9. Wzorce projektowe czynnociowe Observer Visitor

Grafika komputerowa. Potok graficzny 3D. Radosław Mantiuk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny

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

Zapisów 17 ust. 4-6 nie stosuje si do przesuni midzy kategoriami wydatków, które s wynikiem przeprowadzenia procedury zamówie publicznych.

Gry komputerowe: efekty specjalne cz. 2

I N S T R U K C J A O B S Ł U G I

Metody Informatyczne w Budownictwie Metoda Elementów Skoczonych ZADANIE NR 1

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

Program do konwersji obrazu na cig zero-jedynkowy

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

Funkcje wielu zmiennych

Wektor o pocztku i kocu odpowiednio w punktach. Prosta zawierajca punkty p i q: pq Półprosta zaczynajca si w punkcie p i zawierajca punkt q:.

rgbf<składowa_r,składowa_g,składowa_b,filter>. Dla parametru filter przyjmij kolejno wartości: 0.60, 0.70, 0.80, 0.90, 1.00, np.:

Mozilla Firefox PL. Wykorzystanie certyfikatów niekwalifikowanych w oprogramowaniu Mozilla Firefox PL. wersja 1.1

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

Image Based Lighting. Image Based Lighting. Image Based Lighting - Rezultaty syntezy obrazów. Image Based Lighting - Rezultaty syntezy obrazów

Grafika 3D program POV-Ray

r = x x2 2 + x2 3.

LUMINA DUO Sterownik czasowy. Instrukcja instalacji i obsługi

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.

Ateus - Helios. System domofonowy

Transkrypt:

OPEN_GL LABORATORIUM 6 tekst na podstawie: Edwarda Angela oraz Łukasza Grabca

Łyk teorii Owietlenie w znaczcy sposób wpływa na realizm naszej sceny. Stopie odbicia wiatła od obiektu, zaley od materiału, z jakiego jest wykonany. Obiekty widziane jako połyskujce, odbijaj wikszo wiatła. Natomiast obiekty, które pochłaniaj znaczn cz wiatła lub odbijaj e nie trafia ono do obserwatora, odbierane s jako ciemniejsze. Specyfikacja OpenGL mówi, i kada implementacja tej biblioteki musi zapewnia co najmniej osiem rónych ródeł wiatła. Model owietlenia zaprogramowany w OpenGL jest podzielony na trzy niezalene moduły: moduł wiatła otaczajcego, rozproszonego oraz zwierciadlanego. wiatło otaczajce (Ambient Light) nie owietla obiektu z konkretnego kierunku, chocia oczywicie ma swoje ródło. Jest to wiatło na tyle rozproszone w rodowisku, i wyznaczenie kierunku, z którego nadciga jest niemoliwe, dlatego wydaje si nam, i wieci z kadego miejsca. Na przykład cz wiatła pochodzcego z arówki wiszcej nad nasz głow w nieduym pomieszczeniu odbija si wiele razy od cian, okna, mebli itp. To jest włanie wiatło otaczajce, gdy rozprasza si na tyle mocno, i zatraca swoje ródło. Z drugiej strony wyobramy sobie ciemny pokój z uchylonymi drzwiami, za którymi jest jasne wiatło. Na podłodze rysuje si jasny pas, ale do oka obserwatora trafia ju niewiele wiatła. Oznacza to, e mamy do czynienia ze wiatłem kierunkowym, które ma bardzo mały współczynnik ambient. W OpenGL moemy równie zdefiniowa owietlenie otaczajce dla całej sceny, które jest niezalene od pozostałych ródeł wiatła. Dziki temu nie musimy włcza całego modułu owietleniowego, aby obiekty na scenie były widoczne. wiatło rozproszone (Diffuse Light) charakteryzuje si tym, e jego promienie biegn z konkretnego kierunku i odbijaj si równomiernie w kad stron od owietlanej powierzchni. Intensywno owietlenia obiektu zaley od kta padania promieni - im jest on mniejszy (wzgldem wektora normalnego prostopadłego do powierzchni), tym obiekt jest janiejszy. 2

Na przykład, jeli takie wiatło pada pod ktem bliskim dziewidziesiciu stopni, to jasno obiektu jest minimalna. Praktycznie kade wiatło pochodzce z konkretnego kierunku ma okrelony współczynnik diffuse. wiatło zwierciadlane (Specular Light), podobnie jak rozproszone, biegnie z konkretnego miejsca, ale w przeciwiestwie do niego odbija si od owietlanej powierzchni tylko w jednym kierunku. Kt padania jest równy ktowi odbicia. Jasno wiatła zaley od kta midzy obserwatorem, a odbitymi promieniami. Jeli jest on bliski zeru, to znaczy, e promienie odbite od powierzchni padaj wprost na obserwatora. Na owietlanym obiekcie wyranie wida wtedy jasn plam, której intensywno zaley od materiału, którym jest pokryty nasz obiekt, np. złota wypolerowana kula daje wyrane refleksy wietlne, podczas gdy drewno choby nie wiem jak owietlane, zawsze bdzie matowe. Intensywno kadego z tych wiateł jest opisywana przez cztery komponenty RGBA, których wartoci s z zakresu [0..1]. Na przykład wyobramy sobie celownik laserowy emitujcy czerwone wiatło. Celujcy widzi czerwon plamk przesuwajc si po ciele ofiary oraz ledwo zauwaalny promie. Intensywno tego promienia zaley od współczynnika wiatła rozproszonego, intensywno plamki od wiatła zwierciadlanego, natomiast jej wielko od współczynnika wiatła otaczajcego. W tym przypadku mogłoby to by odpowiednio (0.10, 0.0, 0.0, 1.0), (0.95, 0.0, 0.0, 1.0) oraz (0.05, 0.0, 0.0, 1.0). W OpenGL kady materiał pokrywajcy definiowany przez nas obiekt ma okrelone właciwoci odbicia wiatła otaczajcego, rozproszonego i zwierciadlanego. Barwa obiektu widzianego przez obserwatora zaley od rodzaju wiatła padajcego na obiekt i materiału, z jakiego jest wykonany. Jeli mamy idealnie niebiesk kul i umiecimy j w białym wietle, to pochłonie ona wiatło czerwone i zielone, a odbije niebieskie. Jeli jednak t sam kul umiecimy w wietle czerwonym, to kula bdzie czarna, gdy całe czerwone wiatło zostanie zaabsorbowane i nic nie zostanie odbite. Podobnie jak wiatło, materiał równie moemy 3

opisa za pomoc współczynników ambient, diffuse i specular, które w tym wypadku oznaczaj procentow zdolno materiału do absorbowania i odbijania wiatła. W OpenGL mamy trzy podstawowe rodzaje wiatła: punktowe, kierunkowe oraz reflektorowe. Ze wiatłem kierunkowym mamy do czynienia wtedy, gdy współrzdna w połoeniu ródła wiatła jest równa zero (w OpenGL kady punkt moemy definiowa za pomoc czterech współrzdnych (x,y,z,w)). Takie wiatło nazywamy kierunkowym, gdy znajduje si w nieskoczonoci, jego promienie s do siebie równoległe, a ich kierunek okrelaj współrzdne (x,y,z). Przykładem wiatła kierunkowego jest Słoce. Jeli współrzdna w jest równa jeden, to mamy do czynienia ze wiatłem punktowym. Dodatkowo dla kadego takiego ródła mamy moliwo zdefiniowania czynnika powodujcego tłumienie intensywnoci wiecenia zalenie od odległoci do obiektu. Dla dowolnego wiatła punktowego mamy moliwo ograniczenia przestrzeni rozchodzenia si wiatła poprzez zdefiniowanie stoka widzenia. W ten sposób utworzymy wiatło reflektorowe (takie wiatło daje np. latarka). wiatła w OpenGL: * wiatło otoczenia (ambientlight[]) * wiatło rozproszone (diffuselight[]) * wiatło odbicia (specularlight[]) * wiatło emisji (emissionlight[]) W celu dodania owietlenia do tworzonej sceny naley wykona cztery polecenia: * naley wyznaczy wektory normalnych w kadym wierzchołku kadego obiektu, pozwol one ustali orientacje obiektów wzgldem ródła wiatła. * naley utworzy, wybra i umieci ródła wiatła * naley wybra i umieci model owietlenia. Model ten definiuje wiatło otoczenia oraz połoenie obserwatora, dla którego wyznaczane jest owietlenie. * naley zdefiniowa właciwoci materiałów obiektów znajdujcych si na scenie. W funkcji inicjalizujcej powinnimy aktywowa owietlenie za pomoc funkcji glenable(gl_lighting) informuje ona OpenGL e bd przeprowadzane obliczenia zwiazane z obliczaniem owietlenia obiektów. W celu okrelenia właciwoci materiału naley uy funkcji glmaterialfv( ), okrela ona sposób odbicia wiatła otoczenia i wiatła rozproszenia przez przedni cian wielokta. W celu okrelenia właciwoci ródeł wiatła naley uy funkcji gllightfv( ). Na kocu inicjalizacji wyłaczamy ródło wiatła przekazujc odpowiedni warto GL_LIGHTX funkcji glenable( ). W funkcji rysujcej naley dopisa funkcj definiujc normaln do kadej ze cian figury. Dla ródła wiatła mona zdefiniowa szereg właciwoci (kolor, połoenie, czy kierunek): void gllightfv(glenum light, GLenum pname, TYPE *param); Właciwoci ródła wiatła: * GL_AMBIENT (Intensywno wiatła otoczenia) 4

* GL_DIFFUSE (Intensywno wiatła rozproszonego) * GL_SPECULAR (Intensywno wiatła odbicia) * GL_POSITION (Pozycja ródła wiatła) * GL_SPOT_DIRECTION (Wektor kierunku strumienia wiatła) * GL_SPOT_EXPONENT (Koncentracja strumienia wiatła) * GL_SPOT_CUTOFF (Kt rozwarcia strumienia wiatła) * GL_CONSTANT_ATTENUATION (Stała warto tłumienia, jako warto domylna ustawione jest 1.0) * GL_LINERAL_ATTENUATION (Liniowa warto tłumienia, jako warto domylna ustawione jest 0.0) * GL_QUADRATIC_ATTENUATION (Kwadratowa warto tłumienia, jako warto domylna ustawione jest 0.0) Właciwoci materiałów: * GL_AMBIENT (Kolor przy owietleniu wiatłem otoczenia) * GL_DIFFUSE (Kolor przy owietleniu wiatłem rozproszonym) * GL_AMBIENT_AND_DIFFUSE (Kolor przy owietleniu wiatłem otoczenia i rozproszonym) * GL_SPECULAR (Kolor przy owietleniu wiatłem odbicia) * GL_SHININESS (Współczynnik odbicia) * GL_EMISSION (Kolor wiatła emisji) Właciwoci modelu owietlenia: * GL_LIGHT_MODEL_AMBIENT (Intensywno wiatła otaczajcego sceny w modelu RGBA, domylnie warto 0.2,0.2,0.2,1.0) * GL_LIGHT_MODEL_LOCAL_VIEWER (Obserwator lokalny lub w nieskoczonoci; domylnie warto GL_FALSE (owietlenie jednostronne)) * GL_LIGHT_MODEL_TWO_SIDE (Owietlenie jedno lub dwu stronne; domylnie GL_FALSE (owietlenie jednostronne) * GL_LIGHT_MODEL_COLOR_CONTROL (Oddzielne traktowanie koloru w wietle odbicia od kolorów w wietle otoczenia i wietle rozproszonym; domylnie warto GL_SINGLE_COLOR (łczne traktowanie) Przykład: const GLfloat light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f }; const GLfloat light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f }; const GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f }; const GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f }; const GLfloat mat_ambient[] = { 0.7f, 0.7f, 0.7f, 1.0f }; const GLfloat mat_diffuse[] = { 0.8f, 0.8f, 0.8f, 1.0f }; const GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f }; const GLfloat high_shininess[] = { 100.0f }; 5

glenable(gl_light0); glenable(gl_lighting); gllightfv(gl_light0, GL_AMBIENT, light_ambient); gllightfv(gl_light0, GL_DIFFUSE, light_diffuse); gllightfv(gl_light0, GL_SPECULAR, light_specular); gllightfv(gl_light0, GL_POSITION, light_position); glmaterialfv(gl_front, GL_AMBIENT, mat_ambient); glmaterialfv(gl_front, GL_DIFFUSE, mat_diffuse); glmaterialfv(gl_front, GL_SPECULAR, mat_specular); glmaterialfv(gl_front, GL_SHININESS, high_shininess); Zadania do wykonania: Prosz o narysowanie sfery oraz dodanie do sceny trzech wiateł: czerwonego typu specular, niebieskiego typu diffuse (wiatła te bd kry wokół naszego szecianu) oraz wiatła typu ambient (którego kolor bdzie mona zmienia za pomoc klawiszy). 6