Materiały. Dorota Smorawa

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

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.

Mieszanie kolorów. Dorota Smorawa

Elementarne obiekty geometryczne, bufory. Dorota Smorawa

Przekształcenia geometryczne. Dorota Smorawa

Janusz Ganczarski. OpenGL Pierwszy program

OpenGL model oświetlenia

Wprowadzenie do programowania z wykorzystaniem biblioteki OpenGL. Dorota Smorawa

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

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

Rzutowanie DOROTA SMORAWA

PRZEWODNIK PO PRZEDMIOCIE

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

Tekstury. Dorota Smorawa

Temat: Transformacje 3D

OpenGL Światło (cieniowanie)

GRAFIKA KOMPUTEROWA 7: Kolory i cieniowanie

3 Przygotował: mgr inż. Maciej Lasota

OpenGL Światło (cieniowanie)

Oświetlenie obiektów 3D

8 Przygotował: mgr inż. Maciej Lasota

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

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

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

Zatem standardowe rysowanie prymitywów wygląda następująco:

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

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

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

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

PODSTAWY BARWY, PIGMENTY CERAMICZNE

GRK 4. dr Wojciech Palubicki

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

Grafika 3D OpenGL część II

1. Oświetlenie Materiały i powierzchnie

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

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

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

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 6

GRAFIKA KOMPUTEROWA 8: Konwersja i mieszanie kolorów

Efekt lustra 3D w OpenGL z wykorzystaniem bufora szablonowego (stencil buffer)

Podstawy programowania. Wykład: 8. Wskaźniki. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

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

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.

GRAFIKA KOMPUTEROWA 10: Antyaliasing

MODELE OŚWIETLENIA. Mateusz Moczadło

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

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

Wykład 17: Optyka falowa cz.2.

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

- 1 - OPTYKA - ĆWICZENIA

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

PRZEWODNIK PO PRZEDMIOCIE

1. Prymitywy graficzne

Obliczenie kratownicy przy pomocy programu ROBOT

glwindowpos2d void DrawString (GLint x, GLint y, char *string) { glwindowpos2i (x,y); int len = strlen (string); for (int i = 0; i < len; i++)

W dowolnym momencie można zmienić typ wskaźnika.

Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji

Zadanie 1. Ściana. 1. Potrzebne zmienne w dołączonym do zadania kodzie źródłowym

Wprowadzenie do technologii HDR

Grafika 3D program POV-Ray - 1 -

Zbiór zdjęć przykładowych SB-900

Ćwiczenie Nr 11 Fotometria

Dzień dobry. Miejsce: IFE - Centrum Kształcenia Międzynarodowego PŁ, ul. Żwirki 36, sala nr 7

GLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.h>

Specyfikacja OpenGL Podstawy programowania grafiki komputerowej*

Wykład 8: klasy cz. 4

PDF stworzony przez wersję demonstracyjną pdffactory

ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM)

Prawa optyki geometrycznej

2 Przygotował: mgr inż. Maciej Lasota

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Podstawy Programowania Obiektowego

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

Zasada Fermata mówi o tym, że promień światła porusza się po drodze najmniejszego czasu.

I. PROMIENIOWANIE CIEPLNE

SpriteKit. Biblioteka do tworzenia gier wbudowana w SDK. Wspiera grafikę 2D w oparciu o sprite y

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

OpenGL teksturowanie

PARADYGMATY PROGRAMOWANIA Wykład 4

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

Aleksandra Zając. Raport. Blender. Pokemon: Eevee

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

Obliczenie kratownicy przy pomocy programu ROBOT

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

Systemy wirtualnej rzeczywistości. Podstawy grafiki 3D

ANDROID. OpenGL ES 1.0. Tomasz Dzieniak

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

Materiały dydaktyczne. Zaawansowane systemy informatyczne. Semestr VI. Laboratoria

Optyka. Wykład VII Krzysztof Golec-Biernat. Prawa odbicia i załamania. Uniwersytet Rzeszowski, 22 listopada 2017

Wykład 3 Składnia języka C# (cz. 2)

FLIR ONE TM Nr produktu

Konstruktor destruktor Programowanie obiektowe

Optyka 2012/13 powtórzenie

Janusz Ganczarski. OpenGL Definiowanie sceny 3D

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Transkrypt:

Materiały Dorota Smorawa

Materiały Materiały, podobnie jak światła, opisywane są za pomocą trzech składowych. Opisują zdolności refleksyjno-emisyjne danej powierzchni. Do tworzenia materiału służy funkcja: glmaterialfv(face,typ,tablica_parametrów); face opisuje stronę obiektu i może przyjmować jedną z poniższych wartości: GL_FRONT - opisujemy frontową płaszczyznę prymitywów, GL_BACK - odwołujemy się do tylnej płaszczyzny, FRONT_AND_BACK - zarówno przednia, jak i tylna płaszczyzna. typ przyjmuje jedną z wymienionych wcześniej wartości GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR i za jego pomocą powiadamiamy bibliotekę, jakie właściwości refleksyjne definiujemy.

Materiały float material[] = { 0.5, 0.5, 0.5, 1.0}; glmaterialfv(gl_front,gl_ambient_and_diffuse, material); W ten sposób utworzyliśmy materiał, którego współczynniki odbicia trzech składowych wynoszą 0,5. Oznacza to, że materiał odbija połowę składowej czerwonej, zielonej i niebieskiej padającego na nią światła.

Materiały Właściwości materiałowe określają sposób postrzegania obiektu oświetlonego użytym na scenie światłem. Obiekt może być matowy, prawie całkowicie nie odbijać światła (coś w rodzaju aksamitu) lub może być połyskliwy, doskonale odbijający światło. Aby ustalić właściwości materiałowe, najpierw należy określić wartości parametrów materiałów. //Ustalenie parametrów materiału GLfloat ambient_materials[] = {0.329412, 0.223529, 0.027451, 1.0}; GLfloat diffuse_materials[] = {0.780392, 0.568627, 0.113725, 1.0}; GLfloat specular_materials[] = {0.992157, 0.941176, 0.807843, 1.0}; GLfloat shininess_materials = 27.8974;

Materiały Po zdefiniowaniu wartości parametrów materiałów, należy ustawić te parametry w funkcji rysującej aktorów lub w funkcji sceny. Dla każdego obiektu możemy ustalić inne właściwości materiałowe. //Ustawienie materiałów glmaterialfv (GL_FRONT, GL_AMBIENT, ambient_materials); glmaterialfv (GL_FRONT, GL_DIFFUSE, diffuse_materials); glmaterialfv (GL_FRONT, GL_SPECULAR, specular_materials); glmateriali (GL_FRONT, GL_SHININESS, shininess_materials); Konieczne jest jeszcze włączenie mechanizmu śledzenia właściwości materiałowych. //Śledzenie koloru materiałów glenable (GL_COLOR_MATERIAL);

Wektory normalne Wektory normalne to wektory określające, w jaki sposób światło będzie się odbijało od obiektu. Wektory normalne najczęściej definiuje się jako wektory prostopadłe do powierzchni na zewnątrz. Można również tworzyć wektory normalne prostopadłe do wyimaginowanych powierzchni, tworząc w ten sposób ciekawe zjawiska załamania światła. Jeśli mamy obiekt przypominający oszlifowany diament i ustalimy wektory normalne jako wektory prostopadłe do każdej ścianki, wówczas uzyskamy ten efekt oszlifowanego diamentu. Jeśli zaś wektory normalne zdefiniujemy jako wektor wypadkowy ścianek schodzących się w danym wierzchołku, to uzyskamy efekt rozmycia tych wierzchołków. Jeśli chcemy zdefiniować wektory normalne to używamy funkcji glnormal. Wektory normalne powinny mieć długość 1. Wektory normalne określa się przed definiowaniem obiektu. //wektory normalne wskazujące górę glnormal3f (0.0f, 1.0f, 0.0f);

Opis funkcji glcolormaterial Pozwala na ustalenie właściwości materiałów i wielokątów zgodnie z kolorami nadanymi mu funkcją glcolor. Pozwala na ustalenie właściwości materiałów bez konieczności wywoływania funkcji glmaterial. Domyślnie mechanizm śledzenia kolorów jest wyłączony. Można go włączyć wywołując funkcję glenable (GL_COLOR_MATERIAL), i w podobny sposób wyłączyć. składnia void glcolormatrerial (GLenum face, GLenum mode); parametry face określa, czy mechanizm śledzenia kolorów będzie dotyczył przednich (GL_FRONT), tylnych (GL_BACK) lub obu (GL_FRONT_AND_BACK) stron wielokątów. mode definiuje, która z właściwości materiału ma być modyfikowana zgodnie z aktualnym kolorem. Można tu podać wartości GL_EMISSION światło emitowane przez obiekt, taki obiekt nie staje się źródłem światła, GL_AMBIENT stopień odbicia światła otaczającego, GL_DIFFUSE stopień rozproszenia światła rozproszonego, GL_SPECULAR stopień odbicia światłą odbitego, GL_AMBIENT_AND_DIFFUSE

Opis funkcji glmaterial składnia parametry Ustala właściwości materiału stosowane w modelu oświetlenia. Tej funkcji używa się do ustalenia parametrów odblaskowych materiału pokrywającego wielokąty. Właściwości GL_AMBIETN, GL_DIFFUSE i GL_SPECULAR określają sposób, w jaki materiał odbija padające na niego światło. Właściwość GL_EMISSION stosowana jest dla materiałów sprawiających wrażenie emitowania własnego światła. Wartość przypisywana właściwości GL_SHININESS musi znajdować się w zakresie od 0 do 128, przy czym wyższe wartości tworzą większe efekty rozbłysków na powierzchni materiału. Właściwość GL_COLOR_INDEXES stosowana jest do ustalania właściwości odblaskowych materiałów w trybie kolorów indeksowanych. void glmaterialfv (GLenum face, GLenum pname, const GLfloat *params); face określa, czy mechanizm śledzenia kolorów będzie dotyczył przednich (GL_FRONT), wylnych (GL_BACK) lub obu (GL_FRONT_AND_BACK) stron wielokątów. pname modyfikowanie właściwości GL_AMBIETN, GL_DIFFUSE, GL_SPECULAR, GL_EMISSION, GL_SHININESS stała z przedziału [0, 128], określa wykładnik odbłysku światła, czyli regulację stopnia występowania efektu rozbłysku obiektu, GL_AMBIENT_AND_DIFFUSE, oraz GL_COLOD_INDEXES w indeksowym trybie kolorów trzy indeksy do tablicy kolorów określające kolejno składowe RGBA, określające reakcję na światło otaczające, rozproszone i odbite. params określa tablicę wartości całkowitych lub zmiennoprzecinkowych zawierającą wartości przypisywane ustawianej właściwości.

Opis funkcji glnormal Definiuje normalną dla następnego definiowanego wierzchołka lub zbioru wierzchołków. Wektor normalny określa kierunek prostopadły do górnej powierzchni wielokąta. Funkcja stosowana jest w obliczeniach związanych z oświetleniem i cieniowaniem. Podanie wektora jednostkowego (o długości 1) bardzo podnosi prędkość renderowania. Biblioteka OpenGL automatycznie może zamieniać wszystkie wektory normalne w wektory jednostkowe, wystarczy wywołać funkcję glenable (GL_NORMALIZE). składnia void glnormal3f (GLfloat nx, GLfloat ny, GLfloat nz); parametry nx określa wartość x w wektorze normalnym, ny określa wartość y w wektorze normalnym, nz określa wartość z w wektorze normalnym,

Literatura Richard S. Wright jr, Michael Sweet: OpenGL Księga eksperta Wydanie III, Helion2005 Własne pomoce dydaktyczne i instrukcje, http://icis.pcz.pl/~mkubanek Jackie Neider, Tom Davis, Mason Woo: OpenGL Programming Guide The RedBook Kevin Hawkins, Dave Astle: OpenGL. Programowanie gier, Helion 2003 The official OpenGL web page, http://www.opengl.org http://januszg.hg.pl/opengl/