lab4 oswietlenie

GLfloat param_materialu1[5][4] = {

{ 1.0, 1.0, 0.0, 1.0}, //

wspolczynnik odbicia swiatla otoczenia

{1.0, 1.0, 0.0, 1.0}, // [1] wspolczynnik odbicia swiatla rozproszonego

{1.0, 1.0, 1.0, 1.0}, // [2] wspolczynnik odbicia swiatla lustrzanego

{20.0, 0.0, 0.0, 0.0}, // [3] polysk

{0.0, 0.0, 0.0, 1.0}}; // [4] kolor swiatla emitowanego

Wartości które odpowiadają za kolor materiału są umieszczone we współczynnikach

odbicia światła otoczenia, światła rozproszonego i światła lustrzanego. Aby nasz

materiał się błyszczał ustawiamy pierwszą wartość połysku na 20.

3. Właściwości materiału nr 2: czerwony matowy (widziany w białym świetle),

Materiał czerwony matowy uzyskujemy w podobny sposób, definiującą wartości

połysku i poszczególnych współczynników światła w odpowiedni sposób, co się

przedstawia następująco:

GLfloat param_materialu2[5][4] = {

{1.0, 0.0, 0.0, 1.0}, //

wspolczynnik odbicia swiatla otoczenia

{1.0, 0.0, 0.0, 1.0}, // [1] wspolczynnik odbicia swiatla rozproszonego

{0.0, 0.0, 0.0, 1.0}, // [2] wspolczynnik odbicia swiatla lustrzanego

{0.0, 0.0, 0.0, 0.0}, // [3] polysk

{0.0, 0.0, 0.0, 1.0}}; // [4] kolor swiatla emitowanego

Następnie definiujemy właściwości poszczególnych źródeł światła. Zgodnie z

treścią zadania dla źródła nr 1 pierwsze trzy wiersze naszej tablicy ustawiamy dla

koloru białego na wartość 1, dzięki czemu otrzymujemy natężenie równe 1. jest to

światło reflektora w którym kąt odcięcia jest równy 25 stopni, więc taką wartość

ustawiamy w wierszu szóstym, co przedstawia sie następująco:

GLfloat param_swiatla1[10][4] = {

{1.0, 1.0, 1.0, 1.0}, //

otoczenie

{1.0, 1.0, 1.0, 1.0}, // [1] rozproszenie

{1.0, 1.0, 1.0, 1.0}, // [2] lustrzane

{5.0, 0.0, 0.0, 1.0}, // [3] polozenie

{-1.0, 0.0, 0.0, 0.0}, // [4] kierunek swiecenia

{0.0, 0.0, 0.0, 0.0}, // [5] tlumienie katowe swiatla

{ 25.0, 0.0, 0.0, 0.0}, // [6] kat odciecia swiatla

{2.0, 2.0, 2.0, 0.0}, // [7] stale tlumienie

{0.0, 0.0, 0.0, 0.0}, // [8] tlumienie liniowe

{0.0, 0.0, 0.0, 0.0}}; // [9] tlumienie kwadratowe

Parametry źródła drugiego światła ustawiamy w analogiczny sposób. Należy

pamiętać, że jest to światło kierunkowe gdzie nie ma zdefiniowanego kąta odcięcia

więc ustawiamy go na 180 stopni, aby oświetlał po całym swoim zasięgu z położenia

w punkcie P(10,10,10), które również musimy ustawić w wierszu trzecim. Co

przedstawia się następująco:

GLfloat param_swiatla2[10][4] = {

{0.8, 0.0, 0.8, 1.0}, //

otoczenie

{0.8, 0.0, 0.8, 1.0}, // [1] rozproszenie

{0.8, 0.0, 0.8, 1.0}, // [2] lustrzane

{1.0, 1.0, 1.0, 0.0},// [3] polozenie

{-1.0, -1.0, -1.0, 0.0},// [4] kierunek swiecenia

{0.0, 0.0, 0.0, 0.0}, // [5] tlumienie katowe swiatla

{180.0, 0.0, 0.0, 0.0}, // [6] kat odciecia swiatla

{0.0, 0.0, 0.0, 0.0}, // [7] stale tlumienie

{0.0, 0.0, 0.0, 0.0}, // [8] tlumienie liniowe

{0.0, 0.0, 0.0, 0.0}}; // [9] tlumienie kwadratowe

Kolejnym krokiem jest skopiowanie macierzy parametrów do macierzy globalnych

Aby można ich było używać poza tą funkcją, co jest opisane w kodzie programu.

Kiedy zdefiniowaniu właściwości materiałów i świateł należy je włączyć. Ponieważ

mamy dwa źródła światła, więc tworzymy obsługę tych świateł. Aby włączyć światło

należy użyć polecenia:

glEnable(GL_LIGHT0);

glLightfv(GL_LIGHT0, GL_AMBIENT, swiatlo1[0]);

W pierwszej linijce włączamy oświetlenie danego źródła, natomiast w drugiej linijce

definiujemy jaki rodzaj światła włączamy dla danego źródła.

W analogiczny sposób robimy z materiałem, podajemy jaki rodzaj materiału ma być

włączony. Używamy do tego polecenia:

glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, material1[0]);

Teraz chciałbym omówić ogólnie parametry definiowanego materiału.

void DefiniujMaterial1(void)

{

glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, material1[0]);

glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, material1[1]);

glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, material1[2]);

glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, material1[3]);

glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, material1[4]);

}

Parametr GL_FRONT_AND_BACK oznacza, że chcemy oświetlać obie strony

materiału.

Parametr GL_AMBIENT oznacza składowe RGBA, określające stopień odbicia

światła otaczającego.

GL_DIFFUSE - składowe RGBA określające stopień rozproszenia światła

rozproszonego,

GL_SPECULAR - składowe RGBA określające stopień odbicia światła odbitego,

GL SHININESS - określa wykładnik odbłysku światła, czyli regulacje stopnia

występowania efektu rozbłysku obiektu,

GL_EMISSION - składowe RGBA światła emitowanego przez obiekt, ale nie oświetla

innych obiektów.

Ogólne parametry definiowania światła (funkcja włączająca źródło światła):

glEnable(GL_LIGHT0);

glLightfv(GL_LIGHT0, GL_AMBIENT, swiatlo1[0]);

glLightfv(GL_LIGHT0, GL_DIFFUSE, swiatlo1[1]);

glLightfv(GL_LIGHT0, GL_SPECULAR, swiatlo1[2]);

glLightfv(GL_LIGHT0, GL_POSITION, swiatlo1[3]);

glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, swiatlo1[4]);

glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, swiatlo1[5][0]);

glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, swiatlo1[6][0]);

glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, swiatlo1[7][0]);

glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, swiatlo1[8][0]);

glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, swiatlo1[9][0]);

Przy opisywaniu materiału omówiłęm już nie które z wyżej wymienionych instrukcji,

dlatego teraz opisze pozostałe:

GL_POSITION – określa położenie źródła światła, lub kierunek świecenia,

GL_SPOT DIRECTION - znormalizowany (długości 1) trój-współrzędny wektor

określający kierunek reflektora,

GL_SPOT EXPONENT - wykładnik tłumienia kątowego reflektora; GL SPOT

CUTOFF - kąt odcięcia reflektora;

GL CONSTANT_ATTENUATION - stały współczynnik tłumienia swiatła,

GL_LINEAR ATTENUATION - liniowy współczynnik tłumienia światła,

GL_QUADRATIC ATTENUATION - kwadratowy współczynnik tłumienia światła.


Wyszukiwarka

Podobne podstrony:
w5b modele oswietlenia
Lab4
Oswietlenie miejsc pracy 1
Lab4
Oświetlenie, Podstawowe pojęcia techniki świetlnej
ćw 6 Pomiar natężenia oświetlenia i luminancji
lab4 8
Systemy Operacyjne lab4, Politechnika Wrocławska, Systemy Operacyjne
[4]tabelka, Elektrotechnika AGH, Semestr II letni 2012-2013, Fizyka II - Laboratorium, laborki, labo
Oświetlenie 11, Politechnika Lubelska, Studia, semestr 5, Sem V, Nowy folder
lab4 opr
oświetlenie stanowiska pracy
5 oswietlenie
Lab4
sprawozdanie oświetlenie
lab4 wejściówka
SI LAB4
SI2 lab4 raport

więcej podobnych podstron