Sprzęt w grafice
Wektory, rastry
Algorytmy konwersji
Krzywe parametryczne
Przekształcenia graficzne
Rzutowanie
Reprezentacja brył
Powierzchnie niewidoczne
Oświetlenie
Cieniowanie wielokątów
Własności powierzchni
Realizm w grafice
Animacja
Zastosowania:
Interfejsy użytkownika
Prezentacje, wykresy
Kartografia
Medycyna
Multimedia
Symulacja komputerowa
Systemy CAD
Gry i zabawy
Rzeczywistość wirtualna
TV/Film
Przetwarzanie obrazów
Podział urządzeń:
Wejścia/wyjścia
Wyświetlanie/kopie trwałe
Wektorowe/rastrowe
2D/3D
przykłady:
monitory
plotery
mysz
lokalizator
klawiatury
ekran dotykowy
drukarki atramentowe
drukarki termiczne
naświetlarki
Wektorowe
(zapalone lub zgaszone kwadraciki-piksele)
Charakterystyczną cechą urządzeń rastrowych jest pamięć obrazu.
2D:
monitor, ploter, lecz mogą być też 3D
monitor jest typowym urządzeniem rastrowym(piksele są wyświetlane w monitorze)
Cecha charakterystyczna monitora jest krotkotrwalosc obrazu.
Luminofor(swieci bardzo krotko), obraz musi być odswiezany.
Ploter:
Stolowy
Bebnowy
Wszytskie plotery wyposazone sa w silnik krokowy, który nie porusza się plynnie, tylko krokami. Dlatego działa rastrowo, w praktyce linia rysowana przez taki ploter jest linia schodkowa. Plotery sa mimo sposobu dzialania uwazane za urzadzenia wektorowe.
Ekran dotykowy:
Uzyskujemy informacje na temat wspolrzednych nacisnietego punktu.
Drukarki – urzadzenia do tworzenia kopii trwalych.
Drukarki atramentowe, plotery – używa pisakow o roznych kolorach(cyan, magenta, yellow, black)
Drukarki termiczne:
Parkometry, sklepy, drukarki czarno-biale.
Drukarki kolorowe zialaja w technice sublimacyjnej(300 dpi), pelna paleta barw 8 bitow na piksel
Naswietlarki – promien lasera, rysowanie na swiatloczulym materiale piksel po pikselu obrazka przez odpowiednie zapalanie, naswietlanie.
Urzadzenia wektorowe:
Uklad wspolrzednych,
Możemy rysowac dowolna linie.
Urzadzenia rastrowe
Raster to matryca punktow
Wyswietlane obiekty(linie wielokaty itp) skladaja się z podstawowych elementow obrazu – pikseli.
Zbiory pikseli przyblizaja rysowany ksztalt,
Obraz zapamietywany jest w posatci mapy biowej(mapy pikselowej) – bity(piksele) biale, czarne.
Pojecia podstawowe
Wielkosc plamki jest to srednica jednej plamki tworzonej przez urzadzenie(cal, mm)
Uklad wspolrzednych
Adresowalnosc jest liczba plamek, które może utworzyc urzadzenie na jednostce dlugosci(punkt/cal, punkt/mm)
Rozdzielczosc to najmniejsza odleglosc przy ktorej sasiednie linie – czarne i biale sa rozroznialne
1)
Plamki
Przy takim podejsciu adresowalnosc i rozdzielczosc to to samo.
2)
Plamki moga być jednak wieksze
Z naszego pktu widzenia rodzielczosc to mozliwosc jak najblizszego narysownia dowch linii w roznych kolorach – bialej i czarnej
Bialy Jasno szary(25%) itd.
Zespolenie pikseli
Przy rozdzielczosci 300dpi możemy każdy piksel zabarwic jak chcemy, przy 200 dpi trzeba kombinowac.
Architektura monitora rastrowego:
Interfejs z glownym komputerem
/ \
(polecenia wyswietlania) (dane zwiazane z interakcja)
kontroler monitor(DC) - klawiatura
\
mysz
pamiec obrazu -> kontroler wyswietlania ->
Podstawowe parametry monitorow
Czestotliwosc odswiezania okresla ile razy na sekunde pobudzany jest ekran(Hz)
Czestotliwosc krytyczna minimalna czestotliwosc przy ktorej zanika migotanie obrazu na ekranie(Hz)
Szybkosc przegladania poziomego – liczba linii wyswietlana w ciagu sekundy
Monitor okresla- szybkosc z jaka można wlaczac i wylaczac rzutnie elektronow
Podzialka lampy(wielkosc plamki)
Monitor RGB
Luminofory
Na szklanej powierzchni czolowej Wyrzutnia elektronow
Architektury systemow wyswietlania
CPU
Pamiec systemowa
Pamiec obrazu
Sterownik wyswietlania, monitor
Procesor graficzny(odciaza CPU)
Pamiec procesora graficznego
Pamiec z podwojnym dostepem
Zewnetrzny procesor graficzny
Zadania
1) Obliczyc pojemnosc pamieci ekranu o rozmiarach 1024x1024 pikseli, przy reprezentacji 4 bity na piksel:
1024*1024*4=-4096Kb=512KB
2) Obliczyc czas ladowani pamieci obrazu o rozmiarach 512x512x8 (8 bitow na piksel), jeśli szybkosc przesylania do pamieci obrazy wynosi 1024 KB/s:
512*512*8 bitow / 1024 KB/s=256KB/1024 KB/s= ¼ s (4 klatki na sekunde)
3) Obliczyc czas w jakim należy wyswietlic pojedynczy piksel dla obrazu o rozdzielczosci 1000x1000 pikseli przy czestotliwosci odswiezania 60 Hz:
tp=1/1000 pikseli/linii * 1000 linii/ramke * 60 ramek/s = 16.7 * 10 do –9 = 16 ns.
4) Obliczyc maksymalna rozdzielczosc monitora 15” o rozmiarach plamki rownej 0,25 mm, zakladajac ze rozmiar wyswietlanego piksela jest rowny rozmiarowi plamki:
Zakladamy aspekt monitora ¾, przekatna = 15 ‘, to rozmiar ekranu= 9’x12’=228,6mm*304mm=915*1216 plamek=915*1216 pikseli.
Obiekty wektorowe
Obiekty podstawowe:
Odcinki
Lamane
Wielokaty
Okregi
Elipsy
Teksty
Obiekty wektorowe:
Atrybuty
Obrys
Szerokosc linii, barwa, ksztalt piora
Styl linii(lamane)
Wypelnienie
Hierarchia
Przyslanianie
Skalowanie
Przekroj piora okragly
(prostokat z krawedziami okraglymi)
styl linii
(np. kreska, kropka, kropka, kreska-przerywalnosc)
Mapy bitowe
Kamwa
Uklady wspolrzednych
Atrybuty kamwy(kontekst kamwy)
Pisak(kolor, ksztalt)
Wypelnienie
Kopiowanie
Maski
Przyslanianie
Skalowanie
Kopiowanie map bitowych
Kopiowanie z uzyciem maski
Obraz jest zlaczeniem kilku warstw
Skalowanie – pobieranie pikseli w celu np. powiekszenia, tracimy tu jednak ostrosc.
Rodzaje map bitowych:
1-bitowe
8-bitowe odcienie szarosci
8-bitowe z paleta barw
24-bitowe RGB
24-bitowe LAB
32-bitowy CMYK
Paleta kolorow zwiazana jest z posrednim wybieraniem kolorow.
Budowa i wlasnosci oka
Rozroznialne odcienie barw – 128
Poziomy nasycenia barwy – 130
Poziomy jasnosci – 16 niebieskiej, 23 – zoltej
Czyli około 400000 roznych barw, inne zrodla – 8-10 mln
Receptory
Czepki umozliwiaja widzenie barwne(9 mln)
Preciki – poziomy szarosci(100 mln)
Rozdzielczosc, ok. 1 minuty katowej
Bezwladnosc
Kontrast
Adaptacja wzroku
Percepcja barwy
Odcien barwy – potocznie okreslany jako kolor np. zielony, czerwony
Nasycenie
Jasnosc(barwy)
Jaskrawosc(swiatlo-barwa)
Postrzeganie jasnosci
Swiatla achromatyczne:
Dobor natezenia swiatla[I0 - 1]
I0-najmniejsze natezenie swiatla
I1=rI0; I2=rI1=r do 2 I0; In=r do n I0=1;
Korekcja gamma
Powstawanie pasu Macha
Modele barw w grafice:
Model barw jest to okreslony trojwymiarowy system wspolrzednych barw wraz z widzialnym podzbiorem, w którym leza wszystkie barwy z okreslonej gamy barw.
Addytywne
Substraktywne
R – czerwien
G – zielen
B – niebieski
Model addytywny
Dyskretny
Barwy posrednie
CMY
C – zielononiebieska
M – purpurowa
Y – zolta
Biale swiatlo oswietlajace
Tromporewskie warstwy emulsji
Podloze biale
R 1 C
G = 1 - M
B 1 Y
K=min(C, M, Y)
(C-K, M-K, Y-K) + (K, K, K)
||
C M Y
Rozczepienie swiatla(dyspersja swiatla)
Barwy proste:
Czerwona
Pomaranczowa
Zolte
Zielone
Niebieskie
Fioletowe
Opis fizyczny barwy
Kolorymetria
Rozklad energetyczny
Dlugosc fali
Dominujaca dlugosc fali
Czystosc pobudzenia
Strumien swiatla
Fotometria – pojecia podstawowe
Strumien swiatla 0 lub [ln] jest proporcjonalny do natezenia swiatla I [cd] lub przy obserwacji powierzchni, do luminacji L[cyan do 2].
Jasnosc jest zwiazana z natezeniem oswietlenia E[lx];
Jest to strumien swietlny 0 lub [ln] przechodzacy przez wycinek powierzchni S[m do 2].
Swiatlo to powierzchnia elektromagnetyczna o okreslonej wartosci strumienia energetycznego 0 lub [W] (moc promienista).
Gestosc widmowa rozkladu energetycznego 0(lambda[W/mm].
Dla bieli rownoenergetycznej
E0(lambda)=const.
Widmowy rozklad energetyczny
Widmowy rozklad energetyczny z dominujaca dlugoscia fali
Okreslenia percepcyjnej
Odcien barwy
Nasycenie
Jasnosc
Jaskrawosc
Kolorymetria
Dominujaca dlugosc fali
Czystosc pobudzenia
Luminancja
Uklad CIE XYZ
Miedzynarodowa komisja oswietleniowa(CIE)
Uklad ma umozliwiac reprezentacje wszystkich barw widzialnych
Przejscie RGB -> XYZ
Funkcje dopasowania, skladowe trojchromatyczne, wspolrzedne trojchromatyczne
Kolorymetr wizualny
Funkcje dopasowania barwy
Skladowe trojchromatyczne w ukladzie CIE XYZ
XYZ – wykorzystuje fikcyjne barwy podstawowe, dobrane tak, by:
Barwy widzialne opisane były przez nieujemne wartosci skladowych
Skladowa Y’ niosla pelna informacje o strumieniu swiatla
X ‘, Z’ – niosla informacje ??????
Bryla swiatla o barwach widzialnych w ukladzie:
CIE XYZ:
Plaszczyzna
X’ + Y’ + Z’=1
Wykres chromatycznosci
Miedzynarodowa komisja oswietleniowa CIE
Barwy podstawowe X, Y, Z umozliwiaja okreslenie wszystkich barw widzialnych
Zx=0,31
Y=0,316
Z=0,374
Barwy na wykresie chromatycznosci:
Algorytmy rastrowe:
Algorytmy konwersji
Rysowanie odcinkow
Algorytm przyrostowy
Algorytm z punktem srodkowym
Rysowanie okregow
XXXX42
XXXX 43 XXXX44
Algorytm przyrostowy:
DDA-digital differential analyser
Rownanie prostej:
XXXX45
void line (int x0, int y0, int x1, int y1)
{
int x; /* x0<x1 */
float dy, dx, y, m; /* -1<=m<=1 */
dy=y1-y0;
dx=x1-x0;
m=dy/dx;
y=y0;
for(x=x0;x<=x1;x++)
{
WrtitePixel(x, round(y)); /*zaokragle do wartosci int*/
{
y+=m;
}
}
}
Algorytm z punktem srodkowym:
Zakladamy:
0<m<1
poczatek: lewy, dolny(x0, y0)
koniec gorny, prawy(x1,y1)
XXXX46
Opis odcinka w postaci funkcji uwiklanej
F(x, y)=ax + by +c
mx-y+B=0
wlasnosci:
F(x,y)=0 dla punktow nalezacych do odcinka
F(x,y)>0 dla punktow ponizej odcinka
F(x,y)<0 dla punktow powyzej odcinka
Obliczanie zmiennej decyzyjnej d:
F(M)=F(xp+1; yp+ 1/2)
D=F(M)=F(xp+1; yp+ 1/2)=a(xp+1)+b(yp+1/2)+c
XXXX461
Jeśli d<0 wybieramy E
Jeśli d>0 wybieramy NE
Obliczanie zmiennej devyzyjnej d new:
Jeśli E (to M przesuwa się w prawo o 1)
d new=F(xp+2, yp+1/2)=a(xp+2) + b(yp+1/2) + c=a(xp+1)+b(yp+1/2)+c+a=d+a
jeśli NE (to M przesuwa się w prawo o 1 i w gore o 1)
d new=F(xp+2, yp +3/2)=a(xp+2)+b(yp+3/2)+c=a(xp+1)+b(yp+1/2) +c+a+b=d+a+b
Obliczanie wartosci startowych:
d new = d+a jeśli E
d new = d+a+b jeśli NE
d start = F(x0+1; y0+1/2)=F(x0, y0)+a+b/2=a+b/2
(dy/dx)*x + B – y=0
dy*x – dx*y+B*dx=0
a=dy; b= - dx
XXXX47
void Midlinie (int x0, int y0, int x1, int y1)
{
int dx, dy, inc E, inc NE, d, x, y;
dy=y1-y0; dx=x1-x0;
d=2*dy-dx;
inc E=2*dy; /* 0<dy/dx<1 */
inc NE= 2*(dy-dx);
x=x0;
y=y0;
}
WritePixel(x, y);
while (x<x1)
{
if (d<=0) /* piksel E */
{
d+=incE;
x++;
}
else /* piksel NE */
{
d+=incNE;
x++;
y++;
}
WritePixel(x,y);
}
}
problemy:
kierunek rysowania
obcinanie
jasnosc odcinka
lamane
XXXX48
Style
XXXX49
XXXX50
Rysowanie okregow(1)
XXXX51
XXXX52
xdo2 + ydo2 = Rdo2
y= +/- pierw(xdo2 – Rdo2)
Rysowanie okregow(2)
P=(xp,yp)
XXXX53
F(x,y)=xdo2 +ydo2 – Rdo2
Obliczanie zmiennych decyzyjnych(1)
d=F(M)=F(xp+1, yp-1/2)=(xp+1)do2 + (yp-1/2)do2 – Rdo2
Jeśli E (to M przesuwa się w prawo o 1)
D new = F(xp+2, yp-1/2)=(xp+2)do2 + (yp-1/2)do2 – Rdo2=(xpdo2 + 4xp+4) + (yp-1/2)do2 – Rdo2=(xpdo2+2xp+1) + 2xp +3 +(yp-1/2)do2 – Rdo2=(xp+1)do2 + 2xp + 3 + (yp-1/2)do2 – Rdo2=d + 2xp + 3
Obliczanie zmiennych decyzyjnych(2)
Jeśli SE (to M przesuwa się w prawo o 1 i w dol o 1)
D new = F(xp + 2, yp-3/2)=(xp+2)do2 + (yp-3/2)do2 – Rdo2=(xpdo2 + 4xp + 4) + (ypdo2 – 3yp + 9/4) – Rdo2= (xp+1)do2 + 2xp + 3+(ypdo2- yp + 1/4) – 2yp + 8/4 – Rdo2 = (xp+1)do2 + 2xp +3 + (yp-1/2)do2 – 2yp + 2 - Rdo2=d+2xp-2yp +5
Obliczanie wartosci startowych:
Punkt startu(xp, yp)+(0,R)
d=F(xp+1, yp-1/2)=F(1, R-1/2)=1do2 +(R-1/2)do2-Rdo2=1do2 + (Rdo2 – R + 1/4) – Rdo2 = 5/4-R
XXXX54
void MidCircle(int r)
{
int x, y;
float d;
x=0;
y=r;
d=5.0/4-R;
Circle Points (x,y);
while (y>x)
{
if (d<0) /* piksel E */
{
d+=x*2.0+3;
x++;
}
else /* piksel SE */
{
d+=(x-y)*2.0 + 5;
x++;
y--;
}
CirclePoints(x,y);
}
}
Rysowanie okregow:
Modyfikacje algorytmu:
Zmiana srodka okregu
Aspekt monitora
Inne zagadnienia:
Kierunek rysowania
Pogrubienie linii
Styl linii
XXXX55
XXXX56
xdo2 + ydo2 = Rdo2
(xA)do2 + ydo2 = Rdo2
^ zmodyfikowane r-nie okregu(bo rozna rozdzielczosc w pionie i w poziomie)
|
p/q
(x*p/q) + ydo2 = Rdo2
Gdy chcemy pogrubic odcinek wygodniej jest go powielic przez przesuniecie.
XXXX57
Pogrubienie okregu:
XXXX58
Przykład :
Narysowac okrag o srodku w punkcie(0,0) i promieniu R>6.
d=5/4 – 24/4 = -19/4
(0,6) d<0 to E
d=d+2x+3=-19/4 + 12/4= - 7/4
x=1
(1,6) d<0 to E
d= - 7/4 + 8/4 + 12/4 =13/4
x=2;
(2,6) d>0 to SE
d=d+2(x-y)+5=13/4 – 32/4 + 20/4 = ¼
x=3;
y=5;
(3,5) d>0 to SE
d=1/4 – 8/4 + 20/4=13/4
x=4;
y=4;
(4,4)
XXXX59
(reszte można uzyskac odbijajac odpowiednio)
Krzywe parametryczne
x=fx(t)
y=fy(t)
funkcje liniowe
x=20t +5
y=10t + 100
t 0 1 2 3 4
x 5 25 45 65 85
y 100 110 120 130 140
XXXX60
Funkcje nieliniowe
x=2tdo2 + 4
y=tdo2 + 5
t 0 1 2 3 4
x 4 6 12 22 36
y 5 6 9 14 21
Jeśli t’ należy do <0,1> t’=1/4*t => t=4t’
x’=2(4t’)do2 + 4 = 32t’do2 + 4
y’=(4t’)do2 + 5 = 16 t’2 + 5
t’ = (0, ¼, ½, ¾, 1):
XXXX61
Parametryczne krzywe trzeciego stopnia:
f(t)=atdo3 + btdo2 + ct + d
x(t)=axtdo3 + bxtdo2 + cxt + dx
y(t)=aytdo3 + bytdo2 + cyt + dy
z(t)=aztdo3 + bztdo2 + czt + dz
Q(t)=[x(t), y(t), z(t)]
Regula Homera
f(t)=((at+b)t+c)t + d;
Wektory styczne w punkcie
O’(t)=[d/dt x(t), d/dt y(t), d/dt z(t)]
f’(t)=3atdo2 + 2bt + c
XXXX62
Ciaglosc
Ciaglosc geometryczna
Gdo0 – polaczenie segmentow
Gdo1 – kierunki wektorow
Stycznych(nachylenie segmentow) rowne w punkcie polaczenia
Ciaglosc parametryczna:
Pochodna jest parametrycznym wektorem stycznym
Gdo1 – kierunki i dlugosci wektorow stycznych sa rowne
XXXX63
<t0, t1>
<t1, t2>
f1x(t1)=f2x(t1)
XXXX64
Krzywa jest kombinacja liniowa punktow
P(x,y)=P(fx(t, fy(t))
t należy do <0,1>
f(t)=at + b
punkt poczatkowy Pp(xp,yp)
t=0; Pp=(xp=x(0),yp=y(0))
punkt koncowy Pk(xk, yk)
t=1: Pk=(xk=x(1), yk=y(1))
xp=x(0)=bx xk=x(1)=ax+bx=ax+xp
yp=y(0)=by yk=y(1)=ay+by=ay+yp
XXXX65
Krzywa jako kombinacja liniowa pktow
Dla pktow Pp(xp, yp) i Pk(xk, yk) wyznaczamy wspolczynniki ax, bx, ay, by
bx=xp by=yp
ax=xk-xp ay=yk-yp
x=axt +bx=(xk-xp)t + xp
y=ayt +by=(yk-yp)t + yp
gdzie t należy do <0,1>
x=xp(1-t)+xkt
y=yp(1-t)+ykt
Q(t)=(1-t)Pp + tPk
Q(t)=E(suma)iWi(t)Pi
XXXX66
Krzywe Beziera:
Okreslone przez punkty koncowe (P1,P4) i dwa punkty kontrolne (P2,P3).
Q(t)=E(n suma i=0) Bin(t)Pi t należy <0,1>
Bi3=3t(1-t)2
B33=t3
B03=(1-t)3
B23=3t2(1-t)
Q(t)=(1-t)3P1 + 3t(1-t2)P2 + 3t2(1-t)P3 + t3P4
Q(0)=P1
Q(1)=P4
Q’(0)=3(P2-P1)
Q’(1)=3(P4-P3)
XXXX67
Wlasnosci krzywych beziera
Wielomiany Bernsteina
E(i=0 suma n) Bin=1;
Bin(t)>=0 dla t należy <0,1>
Wlasnosci krzywych:
Poczatku w P1
Koniec w P4
W P1 krzywa jest styczna do wektora P2-P1
W P4 krzywa jest styczna do wektora P4-P3
Krzywa zawarta jest w wielokacie rozpietym na punktach kontrolnych.
XXXX68