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)