Grafika komputerowa - dział informatyki zajmujący się wykorzystaniem komputerów do generowania obrazów oraz wizualizacją rzeczywistych danych. Grafika komputerowa jest obecnie narzędziem powszechnie stosowanym w nauce, technice, kulturze oraz rozrywce. Kilka przykładowych zastosowań:
* kartografia,
* wizualizacja danych pomiarowych (np. w formie wykresów dwu- i trójwymiarowych),
* wizualizacja symulacji komputerowych,
* diagnostyka medyczna,
* kreślenie i projektowanie wspomagane komputerowo,
* przygotowanie publikacji,
* efekty specjalne w filmach,
* gry komputerowe.
Chociaż grafika komputerowa koncentruje się głównie na specjalistycznych algorytmach i strukturach danych, to jednak siłą rzeczy musi czerpać z innych dziedzin wiedzy. Na przykład aby uzyskać obrazy fotorealistyczne, należy wiedzieć jak w rzeczywistym świecie światło oddziałuje z przedmiotami.
Fotorealizm - właściwość obrazów i filmów stworzonych za pomocą technik komputerowych, które wyglądają jak obrazy pochodzące z rzeczywistości i tak jakby były uchwycone za pomocą kamery.
Fotorealizm nie zawsze jest pożądany - często potrzeba stworzyć scenki stylizowane.
Głównym sposobem uzyskiwania scen fotorealistycznych są techniki oparte na ray tracingu.
Przy dzisiejszym stanie techniki stworzenie fotorealistycznych krajobrazów, pojazdów czy innych przedmiotów nie stanowi problemu. Wciąż istnieją jednak pewne ograniczenia w fotorealistycznym renderowaniu postaci ludzkich - jednak technika jest już bardzo blisko celu i zapewne już za kilka lat postacie stworzone w komputerze i nagrane przez kamerę będą nierozróżnialne (film Final Fantasy).
Początki grafiki komputerowej sięgają lat 50. XX wieku, jednak ze względu na duże koszty komputerów i urządzeń graficznych, aż do lat 80. grafika komputerowa była wąską specjalizacją, a na jej zastosowania praktyczne mogły pozwolić sobie ośrodki badawcze, duże firmy oraz instytucje rządowe. Dopiero gdy w latach osiemdziesiątych rozpowszechniły się komputery osobiste, grafika komputerowa stała się czymś powszechnym.
,---,_ ,
_> `'-. .--'/
.--'` ._ `/ <_
>,-' ._'.. ..__ . ' '-.
.-' .'` `'. '.
> / >`-. .-'< \ , '._\
/ ; '-._> <_.-' ; '._>
`> ,/ /___\ /___\ \_ /
`.-|(| \o_/ \o_/ |)|`
jgs \; \ ;/
\ .-, )-. /
/` .'-'. `\
;_.-`.___.'-.;
Ponieważ celem grafiki jest generowanie obrazów, dlatego jednym z głównych kryteriów klasyfikacji jest technika ich tworzenia:
* Grafika wektorowa - obraz jest rysowany za pomocą kresek lub łuków. Niegdyś powstawał tak obraz na ploterach kreślących, ale jeszcze do lat 80. XX wieku były wykorzystywane monitory CRT, które kreśliły obraz w analogiczny sposób jak oscyloskopy.
* Grafika rastrowa - obraz jest budowany z prostokątnej siatki leżących blisko siebie punktów (tzw. pikseli). Głównym parametrem w przypadku grafiki rastrowej jest wielkość bitmapy, czyli liczba pikseli, podawana na ogół jako wymiary prostokąta.
Identyczny podział istnieje, jeśli weźmie się pod uwagę reprezentację danych w programach komputerowych:
* Grafika wektorowa - w tym przypadku nazwa może być nieco myląca, ponieważ obrazy mogą składać się nie tylko z wektorów (odcinków), ale również z innych figur geometrycznych. Cechą grafiki wektorowej jest to, że zapamiętywane są charakterystyczne dla danych figur dane (parametry), np. dla okręgu będzie to środek i promień, dla odcinka współrzędne punktów końcowych, a dla krzywych parametrycznych współrzędne punktów kontrolnych. Program, jeśli musi narysować obraz na urządzeniu (bądź to rastrowym, bądź wektorowym), na podstawie posiadanych danych wygeneruje obraz tych figur - bardzo ważna zaleta tej reprezentacji to możliwość dowolnego powiększania obrazów, bez straty jakości.
* Grafika rastrowa - do zapamiętania obrazu rastrowego potrzebna jest dwuwymiarowa tablica pikseli nazywana powszechnie bitmapą. Nazwa wzięła się stąd, że początkowo były rozpowszechnione systemy wyświetlające obrazy czarno-białe, więc w takim przypadku pojedynczy piksel mógł być opisany przez jeden bit. Jednak gdy powszechniejsza stała się grafika kolorowa, piksele zaczęły być opisywane więcej niż jednym bitem - wówczas pojawiła się nazwa pixmapy, która jednak nie przyjęła się (chociaż jest stosowana np. w X Window).
Przewagą reprezentacji wektorowej nad rastrową jest to, że zawsze istnieje dokładna informacja o tym, z jakich obiektów składa się obraz. W przypadku obrazów bitmapowych tego rodzaju informacja jest tracona, a jedyne, czego można bezpośrednio się dowiedzieć, to kolor piksela. Istnieją jednak metody, które pozwalają wydobyć z obrazów bitmapowych np. tekst, czy krzywe.
W chwili obecnej dominują wyświetlacze rastrowe, więc programy wykorzystujące grafikę wektorową są zmuszone przedstawiać idealne figury geometryczne w skończonej rozdzielczości.
Kolejnym kryterium, wg którego klasyfikuje się zastosowania grafiki, jest charakter danych:
* Grafika dwuwymiarowa (grafika 2D) - wszystkie obiekty są płaskie (w szczególności każdy obraz rastrowy wpada do tej kategorii).
* Grafika trójwymiarowa (grafika 3D) - obiekty są umieszczone w przestrzeni trójwymiarowej i celem programu komputerowego jest przede wszystkim przedstawienie trójwymiarowego świata na dwuwymiarowym obrazie.
Jeszcze jednym kryterium jest cykl generacji obrazu:
* Grafika nieinterakcyjna - program wczytuje uprzednio przygotowane dane i na ich podstawie tworzy wynikowy obraz.
* Grafika interakcyjna - program na bieżąco uaktualnia obraz w zależności od działań użytkownika, dzięki temu użytkownik może od razu ocenić skutki. Bardzo ważne w tym przypadku jest, że czas odświeżenia obrazu nie może być zbyt długi. Dlatego w przypadku grafiki interakcyjnej akceptuje się i stosuje uproszczone metody rysowania obiektów, aby zminimalizować czas oczekiwania.
* Grafika czasu rzeczywistego - program musi bardzo szybko (kilkadziesiąt razy na sekundę) regenerować obraz, aby wszelkie zmiany były natychmiast uwidocznione; symulatory, gry komputerowe.
Urządzenia:
Monitor to ogólna nazwa jednego z urządzenia we-wy do bezpośredniej komunikacji operatora z komputerem. Zadaniem monitora jest natychmiastowa wizualizacja wyników pracy komputera, za pośrednictwem karty graficznej. Sygnały w postaci analogowej (sygnały RGB) / cyfrowej (DVI).
drukarka...
* Monitor CRT - Przypomina zasadą działania i po części wyglądem telewizor z kineskopem
* Monitor LCD - Jest znacznie bardziej płaski od monitorów CRT. Inna zasada generowania obrazu
Wyświetlacz ciekłokrystaliczny, LCD (ang. Liquid Crystal Display) - to urządzenie wyświetlające obraz oparte na mechanizmie zmiany polaryzacji światła na skutek zmian orientacji uporządkowania cząsteczek chemicznych, pozostających w fazie ciekłokrystalicznej, pod wpływem przyłożonego pola elektrycznego.
Wszystkie rodzaje wyświetlaczy ciekłokrystalicznych składają się z czterech podstawowych elementów:
* komórek, w których zatopiona jest niewielka ilość ciekłego kryształu
* elektrod, które są źródłem pola elektrycznego działającego bezpośrednio na ciekły kryształ
* cienkich folii (polaryzator / analizator), płyt szkła
* źródła światła
1: Glass plates - płyta szklana
2&3: Horizontal and vertical polarisers - polaryzatory poz / pion
4 RGB colour mask - maska kolorów RGB
5&6 Horizontal and vertical command lines - sterowanie
7 Rugged polymer layer -
8 Spacers - separator
9 Thin film transistors
10&11 front & rear electrode
Wyświetlacze LC mogą pracować w trybie transmisyjnym lub odbiciowym. Transmisyjne wyświetlacze są oświetlane z jednej strony, a powstające na nich obrazy ogląda się od drugiej strony. Aktywne piksele są w takich wyświetlaczach zawsze ciemne, a nieaktywne jasne. Wyświetlacze transmisyjne są zwykle stosowane razem z aktywnymi matrycami (posiadającą swoje własne źródło światła - zwykle są to elementy TFT). Wyświetlacze z matrycą aktywną generują dużo bardziej intensywne obrazy, mają znacznie szerszą możliwość regulacji (niemal taką samą jak zwykłe monitory CRT).
Porównanie:
* Monitor CRT
o jest wciąż tańszy od LCD (różnica ta jest już nieznaczna),
o obszar faktycznie wykorzystywany jest mniejszy od nominalnego, np. monitor 15" faktycznie ma ekran od ok. 13,8" do 14" (w zależności od producenta)
o posiada mniejszą plamkę i bezwładność,
o posiada lepsze odwzorowanie kolorów.
o dominują monitory CRT 17" i 19"
o ciężkie, duże, ale jeszcze niezastąpione dla profesjonalnych aplikacji CAD/CAM
o obraz jest widoczny pod każdym kątem (nie ma efektu zanikania obrazu przy patrzeniu pod ostrym kątem z boku).
o powierzchnia lampy kineskopowej jest zawsze wycinkiem sfery (ewentualnie walca) - niepłaski
* Monitor LCD
o jest zdecydowanie mniejszy gabarytowo niż CRT
o zużywa mniej prądu
o jest wolny od efektu migotania
o oferuje pracę zazwyczaj w jednej rozdzielczości, np. 1280×1024
o nie odkształca obrazu - obraz jest odwzorowywany na niemal płaskiej powierzchni
o optycznie ma większą przekątną niż analogiczne monitory CRT (np LCD 15`` jest w przybliżeniu równy CRT 16,5``), ze względu na to, że nie ma tzw. martwego pola
o generuje słabsze pole magnetyczne i jest mniej szkodliwy dla wzroku.
Monitory LCD powoli wypierają swoją starszą konkurencję jaką są monitory CRT. Proces ten odbywa się powoli, lecz ostatnimi czasy zaczyna nabierać tempa. Stopniowo poprawiają się parametry monitorów LCD oraz spadają ich ceny. Podstawowym problemem przy produkcji monitorów ciekłokrystalicznych jest osiąganie dużej rozdzielczości przy zachowaniu jak najmniejszej bezwładności. Bezwładność monitorów ciekłokrystalicznych wynika z faktu, że każdy piksel wyświetlanego obrazu musi być osobno włączany (lub wyłączany) przy każdym odświeżeniu obrazu. Piksele są włączane i wyłączane sekwencyjnie - jeden, po drugim. Czym większa rozdzielczość, tym potrzeba więcej pikseli, co powoduje, że na włączenie każdego z nich zostają coraz krótsze odcinki czasu. Minimalny czas włączenia/wyłączenia piksela jest zaś ograniczony czasem orientacji ciekłych kryształów w polu elektrycznym, które to zjawisko jest podstawą działania tych monitorów.
O jakości monitora decydują m.in. takie parametry jak:
* plamka - jej wielkość decyduje o rozmiarach najmniejszych detali jakie monitor jest w stanie wyświetlić, im mniejsza plamka tym tym dokładniejszy obraz, przy czym średnia wielkość plamki rośnie wraz z przekątną ekranu (0,28 mm - 21 calowe; 0,25 mm - 15 calowe);
* rozmiary ekranu - czyli przekątna ekranu wyrażana w calach (1 cal = 2,54 cm );
* rozdzielczość - jest to ilość pikseli w poziomie i w pionie. Im wyższa rozdzielczość tym obraz może być ostrzejszy, jest to jednak uwarunkowane również możliwościami zainstalowanej w komputerze karty graficznej, która bezpośrednio decyduje o jakości wyświetlanego obrazu.
* kolory w jakich obraz może być wyświetlany na ekranie monitora podawane są w bitach:
8 - bitów = maks.256 kolorów (minimum dla multimediów)
16 - bitów = maks. 65 536 kolorów (HighColor, jakość wideo)
24 - bity = maks. 16,8 mln kolorów (TrueColor, jakość fotograficzna)
32 - bity = maks. 4,3 mld kolorów (TrueColor, szybszy dostęp do pamięci); Dokładniej 2^32 kolorów
* częstotliwość odświeżania - im wyższa tym lepsza, co objawia się mniejszym migotaniem obrazu, rozsądny poziom to 75 Hz lub 85 Hz dla mniejszych monitorów. Dla uzyskania najlepszej możliwej jakości obrazu warto chwilę poeksperymentować. Wysokie częstotliwości odświeżania mogą powodować rozmycie obrazu, co jest szczególnie widoczne na niskiej jakosci monitorach lub kartach graficznych, dlatego często warto obniżyć odświeżanie np ze 120Hz do 100Hz. Przy tej samej karcie graficznej częstotliwość odświeżania jest odwrotnie proporcjonalna do rozdzielczości, czyli im większa rozdzielczość tym mniejsza częstotliwość odświeżania.
* pasmo - zwykle 110 ~ 200 MHz, im większe tym lepiej. Maksymalna częstotliwość sygnału wejściowego akceptowaną przez monitor, równa iloczynowi częstotliwości odchylenia poziomego, maksymalnej rozdzielczości w poziomie oraz częstotliwości odświeżania ekranu;
Piksel (ang. pixel - wyraz utworzony ze zbitki dwóch angielskich słów: picture+element) jest to najmniejszy element obrazu bitmapowego. Jeden piksel to bardzo mały kwadrat (rzadziej: prostokąt) wypełniony w całości jednolitym kolorem. Piksel stanowi także najmniejszy element obrazu wyświetlanego na monitorze komputera. Tryb pracy monitora, a konkretnie jego rozdzielczość to właśnie liczba pikseli jakie zawiera on w pionie i poziomie.
Pixel jest to najmniejsza składowa część obrazu, która wyświetlana jest na ekranie. Rozmiar pixela (plamki) podawany jest w milimetrach np. 0.264 mm. I mniejszy rozmiar pixela tym obraz wyświetlany na ekranie będzie bardziej wyrazisty, ostry i bardziej kontrastowy.
Rozdzielczość ekranu - jeden z parametrów trybu wyświetlania, parametr określający ilość pikseli obrazu wyświetlanych na ekranie w bieżącym trybie pracy monitora komputerowego, telewizora a także każdego innego wyświetlacza, którego obraz budowany jest z pikseli. Rozdzielczość wyraża się w postaci ilości pikseli w poziomie i w pionie.
Pojęcie rozdzielczości ekranu jest dość mylące, gdyż tak naprawdę nie jest to rozdzielczość wyświetlacza, lecz rozdzielczość obrazu na tym wyświetlaczu, a w większości urządzeń bieżący tryb wyświetlania można regulować skokowo wewnątrz określonego zakresu, którego granice, jak i poszczególne dostępne rozdzielczości powiązane są z budową urządzenia wyświetlająego, budową karty graficznej, wielkością pamięci na tej karcie oraz oprogramowaniem (sterownik karty, system operacyjny).
Odczucie zmiany wielkości obrazu w miarę wzrostu rozdzielczości jest wywołane tym, że zazwyczaj stałe elementy interfejsu systemu operacyjnego, takie jak ramki, ikonki etc. mają stałą wielkość w pikselach.
Dla telewizorów analogowych, rozdzielczość jest związana z przepustowością sygnału luminancji i jest określany w "liniach", jako największa liczba naprzemiennych białych i czarnych pionowych pasków, które mogą być wyświetlone wszerz ekranu bez nakładania się na siebie. Czasami linie są liczone na szerokości równej wysokości obrazu, zamiast na całej szerokości. To powoduje powstanie dwóch miar rozdzielczości poziomej, co może powodować nieporozumienia. Rozdzielczość pionowa, podobnie jak w urządzeniach cyfrowych, jest liczbą poziomych linii na obrazie.
Obecnie, standardowymi rozdzielczościami są 640×480 (VGA, Video Graphics Array), 800×600 (SVGA, Super VGA), oraz 1024×768 (XGA/XVGA, eXtended czyli rozszerzona). Niektórzy użytkownicy, szczególnie programów CAD oraz gracze, używają rozdzielczości 1600×1200 (UXGA, Ultra-eXtended) lub wyższych, jeżeli mają odpowiedni sprzęt. Kiedy rozdzielczość wyświetlania jest zbyt duża w stosunku do możliwości monitora lub wyświetlacza, niektóre systemy tworzą wirtualny ekran, który może być przewijany "pod" fizycznym ekranem.
Dla telewizji cyfrowej i HDTV, typowe rozdzielczości pionowe to 720 lub 1080 linii.
Rozdzielczość 640×480, wprowadzona przez IBM PS/2 VGA i MCGA (multi-color), zintegrowane karty graficzne, stała się standardem od 1990 do 1997 roku, częściowo dzięki swoim proporcjom 4:3. 800×600 była standardową rozdzielczością od roku 1998 do chwili obecnej, ale 1024×768 szybko staje się nowym standardem rozdzielczości, szczególnie że również zachowuje proporcje 4:3. Wiele stron internetowych i produktów multimedialnych jest zaprojektowanych dla rozdzielczości 1024×768. Większość współczesnych gier wypuszczonych w erze grafiki 128-bitowej, takich jak SimCity 4, w ogóle nie pozwala na używanie rozdzielczości 640×480. Windows XP zostało zaprojektowane do pracy w rozdzielczości co najmniej 800×600 (ale jest możliwa praca w trybie zgodności z 640×480).
Dla monitorów 15" i 17" (381 mm i 432 mm), rozdzielczość 1024×768 jest standardem, natomiast dla monitorów 19" zaleca się 1280×1024. Dobre monitory 21" (533 mm) zazwyczaj potrafią wyświetlać obraz w rozdzielczości 1600×1200. Są także szerokie monitory 24" (610 mm), które często będą w stanie pracować w rozdzielczości poziomej 1900 pikseli lub większej.
Obraz grafiki rastrowej jest plikiem reprezentującym pionowo-poziomą siatkę odpowiednio kolorowanych pikseli na monitorze komputera, drukarce lub innym urządzeniu wyjściowym. Kolor każdego piksela jest definiowany osobno. Obrazki z głębią kolorów RGB często składają się z kolorowych pikseli zdefiniowanych przez trzy bajty - jeden bajt na kolor czerwony, jeden na zielony i jeden na kolor niebieski. Mniej kolorowe obrazki potrzebują mniej informacji na piksel, np. obrazek w kolorach czarnym i białym wymaga tylko jednego bitu na każdy piksel. Grafika rastrowa różni się od wektorowej tym, że grafika wektorowa pokazuje obraz używając obiektów geometrycznych takich, jak krzywe, czy poligony.
Bitmapę charakteryzują następujące podstawowe właściwości:
* wysokość i szerokość bitmapy liczona jako liczba pikseli
* liczba bitów na piksel opisująca liczbę możliwych do uzyskania kolorów
Kolorowa grafika rastrowa zwykle zawiera piksele z jednym do ośmiu bitów dla każdego z kolorów bazowych.
Jakość obrazka rastrowego jest określana przez całkowitą liczbę pikseli (wielkość obrazu) oraz ilości informacji przechowywanych w każdym pikselu (głębia koloru). Na przykład obrazek zapisujący 24 bity informacji o kolorze (standard dla większości wyświetlaczy w 2004 roku) może pokazać łagodniejsze cieniowanie od obrazka zapisującego jedynie 15 bitów informacji na jeden piksel, ale też nie pokaże łagodniejszego obrazka od zapisującego 48 bitów na piksel. Podobnie, obrazek o wymiarach 640 x 480 pikseli (zawierający ok. 307 tys. pikseli) będzie wyglądał nierówno i chropowato w porównaniu do obrazka o wymiarach 1280 x 1024 (ponad 1,3 mln pikseli). Ponieważ taka ilość danych zajmuje ogromną powierzchnię, często stosuje się technikę kompresji danych celem zmniejszenia wielkości zajmowanego miejsca. Niektóre techniki zamieniają (zmniejszają, usuwają) pewne informacje, aby uzyskać mniejszy plik. Niestety nie są to bezstratne metody kompresji. Przykładami takich kompresji są kompresje JPEG, GIF, PNG.
Wielkość obrazka rastrowego nie może zostać zmieniona bez utraty jego jakości. Jest to przeciwne grafice wektorowej, którą łatwo można skalować, dostosowując jej wielkość do urządzenia, na którym jest wyświetlany obraz. Grafika rastrowa jest bardziej użyteczna od wektorowej do zapisywania zdjęć i realistycznych obrazów, podczas gdy grafika wektorowa jest częściej używana do obrazów tworzonych z figur geometrycznych oraz prezentacji tekstu (w tym tabel i wzorów). Aktualnie większość komputerowych monitorów wyświetla od 72 do 130 pikseli na cal (PPI), podczas gdy drukarki mogą drukować materiały w rozdzielczości 1200 punktów na cal (DPI) lub wyższej. Ustalenie najbardziej właściwej rozdzielczości obrazka dla danej rozdzielczości drukarki może być bardzo trudne, gdyż dokument drukowany może zawierać większą liczbę detali (może mieć większą rozdzielczość) niż ten, który jest wyświetlany na ekranie monitora.
Grafika rastrowa została opatentowana pierwszy raz przez firmę Texas Instruments w latach 70. i jest teraz wszechobecna.
Zdjęcie z aparatu cyfrowego jest typu rastrowego. W paincie także zrobimy grafikę rastrową
Ty widzisz "J", ale komputer widzi to, co jest podane poniżej. Kropki reprezentują 0, a 'X' jedynkę:
.....X
.....X
.....X
.....X
.....X
.....X
.....X
X...X
X...X
.XXX
Tam, gdzie Twoje oko widzi zero, komputer informuje kartę graficzną, by narysował kolor tła. "Jedynka" mówi, żeby sprzęt wysłał kolor główny, pierwszoplanowy. Oczywiście jest to tylko schemat uproszczony.
Najczęstszym rozwiązaniem uzyskiwania różnych kolorów jest zastosowanie mieszania barw w systemie RGB (czerwony-zielony-niebieski). Obraz składa się z bardzo dużej ilości pikseli, których kolory mogą być niezależnie zmieniane. Każdy piksel składa się z trzech części świecących w kolorach: czerwonym, zielonym i niebieskim. Odpowiednie sterowanie intensywnościami tych składowych podpikseli (subpixeli) powoduje powstanie wypadkowego koloru całego piksela. Kolorowi białemu odpowiada maksymalna intensywność świecenia wszystkich trzech składowych, kolorowi czarnemu - wszystkie podpiksele wygaszone.
Czym są martwe pixele i subpixele ?
Są to punkty na ekranie LCD, które zawsze są zgaszane lub zapalone. Z reguły dzielimy martwe pixele i subpixele na następujące grupy. Jasny pixel (trzy subpixele) stale zapalony. Czarny pixel (trzy subpixele) stale zgaszony. Czerwony, zielony lub niebieski subpixel stale zapalony albo zgaszony. Defekt ten może być widoczy na czarnym lub białym tle. Wyjątkiem są tutaj matryce PVA oraz MVA, na których defekt ten jest niezauważalny.
Norma ISO 13406-2 - określa typ i ilość możliwych do wystąpienia martwych pixeli na 1 milon pixeli. Dzieli ona monitory LCD na klasy i rodzaje defektów matrycy. Defekty te mogą, ale nie muszą wystąpić w danym monitorze. Liczba i położenie defektów na ekranie monitora są postawą określania warunków gwarancji.
CMYK - zestaw czterech podstawowych kolorów farb drukarskich stosowanych powszechnie w druku kolorowym w poligrafii i metodach pokrewnych (atramenty, tonery i inne materiały barwiące w drukarkach komputerowych, kserokopiarkach itp.). Na zestaw tych kolorów mówi się również barwy procesowe lub kolory triadowe (kolor i barwa w jęz. polskim to synonimy). CMYK to jednocześnie jedna z przestrzeni barw w pracy z grafiką komputerową. Skrót CMYK powstał jako złożenie pierwszych liter angielskich nazw kolorów prócz koloru czarnego, z którego wzięto literę ostatnią, ponieważ litera B jest skrótem jednego z podstawowych kolorów w analogicznym skrócie RGB. (Inne, mniej popularne i chyba mniej przekonujące rozwinięcia skrótu K to Key color, Karbon lub Kontur.)
C cyjan (ang. Cyan)
M magenta (ang. Magenta)
Y żółty (ang. Yellow)
K czarny (ang. blacK)
Barwy wynikowe w metodzie CMYK otrzymuje się poprzez łączenie barw podstawowych w proporcjach (dla każdej z nich) od 0% do 100%. Farby CMYK to substancje barwiące przepuszczające światło, czyli barwniki, tak więc łączy się je nie metodą mieszania tylko nakładania warstwami i dlatego barwa wynikowa może mieć od 0% do aż 400% koloru (czyli kolorów składowych). Na kolory budowane wg CMYK należy patrzeć jak na warstwy kolorowej, przepuszczającej światło folii.
Raster
W druku nie można nakładać poszczególnych kolorów z zestawu CMYK w rozcieńczeniu. Druk odbywa się metodą rastra, czyli drukowania malutkich punktów (kropek) posiadających 100% koloru o różnej wielkości lub gęstości przy uwzględnieniu pozostawionego, niezakrytego białego podłoża. Np. kolor "średniocyjanowy" czyli 50% cyjanu może być np. wzorkiem szachownicy, a 75% koloru może być wzorkiem przypominającym dziury w serze.
Dokładnych odpowiedników barw C i M nie ma w języku polskim, są to specjalnie stworzone kolory na użytek przemysłu dla umożliwienia oddawania (poprzez łączenie ich w różnych proporcjach) jak największej ilości barw natury. Absolutnie wszystkich istniejących w naturze barw nie uda się uzyskać metodą mieszania barw CMYK z wielu różnych powodów, z których najważniejszym jest brak możliwości uzyskania w praktyce farb teoretycznych o absolutnej czystości koloru. Idealnie czyste kolory C, M, Y - są barwami dopełniającymi dla trzech barw prostych najsilniej odbieranych przez receptory ludzkiego oka. Kolor ostatni - K - został dołożony do pozostałych trzech na praktyczne potrzeby przemysłu poligraficznego.
Teoretycznie można uzyskać kolor czarny przez złożenie kolorów C+M+Y, ale w praktyce tak uzyskany kolor czarny jest kolorem ciemno-brudno-brązowym. Poza tym ekonomicznie nieuzasadnione byłoby drukowanie czarnego tekstu za pomocą składania barw CMY.
* Cyan - odcień niebieskiego, ale trochę bledszy i bardziej spłowiały, można go określić jako szarobłękitny lub sinoniebieski. Najbardziej podobne kolory to błękit, szafir i turkus. Nazywanie koloru cyjanowego kolorem "zielononiebieskim" jest błędem wynikającym z niezrozumienia różnic pomiędzy addytywną i substraktywną metodą mieszania barw.
* Magenta - kolor pośredni pomiędzy czerwienią i fioletem. Najbardziej podobne kolory to purpura, karmazyn i amarant.
* Yellow - kolor bardzo podobny do żółtego, jednak trochę bledszy od typowej nasyconej żółcieni.
* Black - kolor czarny, jednak o niezbyt głębokiej czerni.
Farby w ww. kolorach nie są określone jednoznacznie, toteż odcienie ich kolorów różnią się u różnych producentów, szczególnie w różnych regionach świata.
Drukowanie farbami procesowymi - problem kolorów
Tak jak za pomocą farb CMY nie można uzyskać koloru czarnego i dlatego powstał CMYK, tak również nie wszystkie barwy można uzyskać przez "składanie" ze sobą, w różnych proporcjach, farb procesowych. Problem ten rozwiązuje się w praktyce przez zastąpienie farb procesowych farbą dającą żądany efekt kolorystyczny. Farba taka (tzw. spot kolor) jest tworzona najczęściej przez zmieszanie kilku baz pigmentowych spośród kilkunastu najczęściej wykorzystywanych. Owe kilkanaście pigmentów daje znacznie większe możliwości tworzenia kolorów niż nakładanie na siebie czterech barw procesowych. Tworzenie farb o kolorach specjalnych, jak i ich stosowanie, jest kłopotliwe dla drukarni. Jednym ze sposobów ograniczenia potrzeby stosowania farb mieszanych jest zwiększenie liczby kolorów procesowych z czterech do sześciu (model heksachromatyczny), stąd też powstały sześciokolorowe maszyny drukarskie redukujące konieczność używania farb mieszanych i podnoszące jakość wydrukowanej barwy przy użyciu jedynie farb procesowych.
W praktyce drukarskiej zazwyczaj drukuje się na maszynach czterokolorowych farbami triadowymi w następującej kolejności: Black, Cyjan, Magenta, Yellow. Od tej reguły bywają odstępstwa. Zmiana kolejności drukowanych farb wpływa na finalny efekt barwny.
Grafika wektorowa - jeden z dwóch podstawowych rodzajów grafiki komputerowej - obok grafiki rastrowej zwanej czasem "bitmapową". Różnica między tymi dwoma polega na tym, że w pierwszym opisywane jest co ma być wyświetlone, a w grafice rastrowej opisywane są szczegółowo poszczególne piksele.
W grafice wektorowej wszelkie obrazy tworzone są za pomocą prymitywów, czyli prostych figur geometrycznych. Figury te opisane są za pomocą parametrów, które tworzą wektor - stąd nazwa grafika wektorowa. Obraz generowany jest przez komputer na podstawie takiego właśnie opisu danego przedmiotu (rysując np. koło o określonym promieniu i położeniu). Stąd grafikę wektorową nazywa się również grafiką obiektową, gdyż obraz w tej grafice składa się z obiektów o określonych atrybutach.
Najprostszym obrazem wektorowym może być pojedynczy punkt o określonym położeniu. W przestrzeni dwuwymiarowej wystarczą wtedy dwa atrybuty określając położenie w pionie i w poziomie. Jednak aby komputer mógł narysować punkt musi nadać mu pewną grubość, a dokładniej promień, bo punkt jest w praktyce rysowany często jako kółko o niewielkim (w stosunku do wielkości pozostałych obiektów) promieniu.
Wyżej jako przykład podany był punkt z określonymi współrzędnymi i wielkością. Inne atrybuty, to np. kolor rysowania (kolor kreski lub obramowania), a także kolor wypełnienia (np. dla wnętrza koła), czy stopień przeźroczystości obiektu (tzw. kanał alfa). Może istnieć też dowolna inna ilość atrybutów w zależności od przyjętych standardów, czy skomplikowania obiektów. Można np. mieć zdefiniowany obiekt będący jakimś człowiekiem, który ma określoną wysokość, kolor oczu, kolor włosów, długość ramion, długość palców...
Często spotykanym dodatkiem jest możliwość wypełniania niejednolitego podobnego jak w programach od edycji bitmap, czyli wypełnianie gradientem, czy jakimiś wzorkami (ang. pattern). Różnica polega tylko na tym, że po wypełnieniu np. koła gradientem (ściślej - przypisaniu mu pewnego gradientu), tutaj przy powiększaniu osiągnie się coraz większą dokładność przejścia między kolorami (aż do możliwości komputera pod względem ilości kolorów). Natomiast w wypadku grafiki rastrowej, po powiększeniu nic się nie zmieni, czyli będą widoczne coraz większe obszary o jednolitym zabarwieniu.
Dostosowywanie wielkości
W przeciwieństwie do grafiki rastrowej - grafika wektorowa jest grafiką w pełni skalowalną, co oznacza, iż można obrazy wektorowe powiększać oraz zmieniać ich proporcje bez uszczerbku dla jakości odbioru. Sama jakość obrazu zależy w praktyce wyłącznie od tego jak ściśle zostanie ona określona. Można np. włosy przedstawić jako pewien obszar ograniczony krzywą, a można każdy włos opisać odpowiednią krzywą. Tak czy inaczej dzięki matematycznemu opisowi elementów będą one widoczne zawsze w maksymalnej dostępnej rozdzielczości.
Opis matematyczny/ideowy jest główną zaletą grafiki wektorowej ujawniającą się przy wszelkich przekształceniach obrazu. W związku z niedokładnością obliczeń komputera może się zdarzyć, że parokrotny obrót obrazu rastrowego zniekształci go nieodwracalnie, nawet jeśli powróci do pozycji pierwotnej. Problem ten w ogóle nie dotyczy grafiki wektorowej, bo sam opis obrazu pozostaje nie zmieniony - zmienia się tylko stosowane na nim przekształcenie. Powyższy efekt jest niwelowany w niektórych programach do grafiki rastrowej zapamiętując pierwotny obraz, w istocie jednak jest to podejście wektorowe.
Obrazy w grafice wektorowej można łatwo przetwarzać w obrazy bitmapowe podając jedynie docelową rozdzielczość obrazu. Tak naprawdę za każdym razem taką operację wykonuje komputer przed wyświetleniem takiego obrazu na ekranie. W drugą stronę - operacja przetworzenia "bitmapy" w "wektor" (wektoryzacja, trasowanie) jest bardzo trudna, wymagająca często stosowania technik z dziedziny sztucznej inteligencji. Dodatkowo przy bardziej skomplikowanych obrazach jakość przetwarzania na grafikę wektorową może być dalece niezadowalająca.
Grafika 2D - grafika dwuwymiarowa. Termin ten może się odnosić zarówno do działu informatyki zajmującego się grafiką dwuwymiarową i technikami dotyczącymi jej obróbki, jak i do samych obrazów cyfrowych mogących składać się z tekstu, grafiki oraz obiektów 2D.
Grafika dwuwymiarowa jest wykorzystywana głównie w tych zastosowaniach, w których pierwotnie używano tradycyjnych technologii drukowania oraz rysowania - m.in. typografii, kartografii, kreślarstwie, reklamie, filmie animowanym itp.
W tych zastosowaniach dwuwymiarowy obraz jest nie tylko reprezentacją obiektu ze świata rzeczywistego, ale niezależnym elementem, któremu nadano konkretne znaczenie. Dwuwymiarowy model jest w tym wypadku bardziej preferowany, ponieważ daje bardziej bezpośrednią kontrolę nad obrazem niż model trójwymiarowy, który lepiej odnosi się do fotografii niż do typografii.
Grafika komputerowa 2D rozpoczęła swój rozwój w latach 50. XX wieku od urządzeń grafiki wektorowej. Z czasem zostały one wyparte przez urządzenia grafiki rastrowej. Język PostScript oraz system X Window były jednymi z najważniejszych projektów w tej dziedzinie.
Techniki związane z grafiką 2D
Grafika 2D może zawierać w sobie modele geometryczne (nazywane grafiką wektorową), obrazy cyfrowe (nazywane grafiką rastrową), tekst (zdefiniowany przez styl i rozmiar czcionki, kolor, pozycję, i orientację), funkcje i równania matematyczne. Składowe te mogą być modyfikowane i manipulowane przez dwuwymiarowe transformacje geometryczne takie jak translacja, rotacja, skalowanie.
W grafice obiektowej, obraz jest opisywany pośrednio przez obiekt stosujący metodę autorenderingu - procedurę, która ustala kolory pikseli obrazu poprzez bezwzględny algorytm. Złożone modele tworzy się z połączenia prostszych obiektów, tak jak w przypadku programowania obiektowego.
Rysowanie bezpośrednie
Wygodnym sposobem aby stworzyć złożony obraz jest rozpoczęcie pracy od pustego obrazu (canvas) - mapy rastrowej (jest to tablica pikseli - bitmapa lub pixmapa jeśli obraz jest kolorowy) wypełnionej jakimś jednolitym kolorem tła - następnie "rysowanie", "malowanie" lub "wklejanie" prostych kolorowych fragmentów obrazu w określonym porządku. W szczególnych przypadkach obraz może być przedstawiany jako bufor ramki.
Niektóre programy ustawiają kolory pikseli bezpośrednio w pamięci karty graficznej, jednak większość opiera swe działanie na którejś z bibliotek graficznych 2D. Biblioteki te zazwyczaj implementują następujące operacje graficzne:
* wklejenie zadanego obrazu w zadanym miejscu na płótnie;
* wypisanie odpowiednią czcionką i pod odpowiednim kątem ciągu znaków w zadanym miejscu;
* rysowanie prostych figur geometrycznych - np. trójkąta przy zdefiniowanych trzech wierzchołkach, lub okręgu przy zdefiniowaniu jego środka oraz promienia;
* rysowanie linii prostych, łuków, krzywych za pomocą wirtualnego pióra o zadanej grubości.
Rozszerzone modele barw
Tekst, kształty i linie są renderowane kolorem określonym przez klienta. Wiele bibliotek i kart dostarcza kolorowych gradientów, które są pomocne przy wyświetlaniu tła z przejściami tonalnymi między kolorami, efektów cieniowania, itp. (zobacz także cieniowanie Gourauda). Kolory piksela mogą być także pobrane z tekstury, np. z obrazu cyfrowego.
Namalowanie piksela danym kolorem zazwyczaj zastępuje poprzedni kolor. Jednakże, wiele systemów pozwala na malowanie przezroczystymi kolorami, które tylko modyfikują wartość poprzedniego piksela.
Dwa kolory mogą również być wymieszane w bardziej wyszukany sposób, np. poprzez wykonanie na nich bitowej operacji XOR. Ta technika, znana jako odwracanie kolorów (negatyw) jest często używana w interfejsach graficznych (np. w okienkach) do podświetlania elementów, a także innych zastosowań, gdy potrzebne jest zaznaczenie części rysunku bądź interfejsu tylko na chwilę - ponowne wykonanie na tych pikselach operacji XOR przywróci oryginalny jego kolor.
Warstwy
Modele rysowania 2-wymiarowej grafiki komputerowej nie mają możliwości tworzenia kształtów 3-wymiarowych oraz stosowania takich efektów charakteryzujących przestrzeń trójwymiarową, jak oświetlenie, cienie, odbicia, załamania fal świetlnych itp. Jednakże istnieje możliwość nałożenia na obraz 2D wielu różnorodnych warstw, czyli czegoś w rodzaju kartki lub półprzezroczystej bądź przezroczystej folii ułożonych na sobie w odpowiedniej kolejności. Kolejność ta jest zwykle zdefiniowana przez pojedynczą liczbę - położenie warstwy lub jej odległość od obserwatora.
Grafika zawierająca warstwy jest czasem nazywana grafiką 2-i-półwymiarową. Taka technika pozwala na wykorzystanie podobnych możliwości, co w przypadku obróbki obrazu na papierze oraz półprzezroczystych foliach. Możliwe jest wycinanie oraz wklejanie elementów na pojedynczych warstwach nie zmieniając pozostałych warstw. Z tych powodów są one używane w większości edytorów graficznych. Modele warstwowe pozwalają także na lepszy antyaliasing bardziej złożonych obrazów.
Warstwy umożliwiają użytkownikowi na pozostawianie lub usuwanie niepotrzebnych informacji podczas przeglądania bądź drukowania różnego rodzaju dokumentów, np. pozwalają na usunięcie dróg bądź torów kolejowych z map, ścieżek ze schematów układów elektronicznych, bądź odręcznych notatek w jakimś dokumencie.
Końcowy obraz jest tworzony poprzez "malowanie" bądź "wklejanie" każdej z warstw na początkowo czysty obraz, zgodnie z kolejnością położenia każdej z warstw. Każda warstwa jest najpierw renderowana jako pojedynczy obraz, a następnie tak wyrenderowany obraz jest malowany piksel po pikselu na obrazie docelowym. Jeśli część warstwy jest przezroczysta, ta część nie jest oczywiście malowana. Renderowanie i malowanie może odbywać się równolegle, tzn. piksel każdej z warstw może być malowany od razu po tym jak zostanie wyrenderowany.
Jeśli warstwa zawiera bardziej złożone obiekty geometryczne - takie jak tekst, krzywe - może być rozbita na prostsze elementy, np. pojedyncze litery w przypadku tekstu, bądź odcinki linii prostych. Następnie są one malowane jako osobne warstwy, w odpowiedniej kolejności. To rozwiązanie jednak może doprowadzić do utworzenia niepożądanych efektów w obrazie, gdy dwa elementy będą musiały zostać namalowane na jednym pikselu.
Sprzęt grafiki 2D
Nowoczesne karty graficzne w przeważającej większości wykorzystują technologie rastrowe dzieląc ekran na siatkę pikseli - jest to prostsza i tańsza technologia od tej wykorzystywanej w sprzęcie do grafiki wektorowej.
Oprogramowanie grafiki 2D
Wiele graficznych interfejsów użytkownika (GUI), takich jak te zawarte w systemach Mac OS, Microsoft Windows lub X Window System, są bazowane na grafice dwuwymiarowej. Oprogramowanie to pozwala użytkownikowi za pomocą interfejsu graficznego wejść w interakcję z komputerem. Zwykle menedżer okien logiczne oddziela interfejsy poszczególnych uruchomionych aplikacji, umieszczając je w osobnych oknach oraz umożliwiając użytkownikowi w prosty sposób przejście w każdej chwili z jednej aplikacji do drugiej. Dwuwymiarowy interfejs użytkownika jest w pewnym sensie naturalnym rozwiązaniem, chociażby z tego powodu, że najważniejsze urządzenia wejścia, jak mysz komputerowa ma swobodę ruchów ograniczoną do dwóch wymiarów.
Grafika dwuwymiarowa jest intensywnie wykorzystywana w różnych urządzeniach peryferyjnych takich jak: drukarki, plotery, itp., a także w większości gier wideo oraz komputerowych wydanych w XX wieku.
Edytory grafiki 2D są programami do tworzenia obrazów, diagramów oraz ilustracji poprzez bezpośrednie manipulowanie (za pomocą myszy, tabletu lub podobnego urządzenia) prostymi elementami grafiki. Edytory te zwykle umożliwiają edycję zarówno figur geometrycznych jak i obrazów cyfrowych. Obraz taki jest zwykle reprezentowany jako model warstwowy o strukturze hierarchicznej dla uproszczenia procesu edycji. Wynikiem pracy takich programów jest plik graficzny, gdzie poszczególne warstwy i figury geometryczne są zapisane w ich oryginalnej postaci.
Formaty obrazu nieruchomego
BMP - rodzima mapa bitowa Windows, format wymiany, Żaden z fragmentów obrazu nie jest absolutny - nie wpływa na inne fragmenty obrazu, Głębia od 1-bit do 24-bit, Nie pozwala na kompresję
EPS - (Encapsulated PostScript) - zawiera polecenia w języku PostScript (ASCII)
GIF (Graphic Interchange Format) Nośnik wymiany dużych plików graficznych (modem), definicja strumienia informacji możliwa do zapisu na dysku, operuje na poziomie wyższym od poziomu obrazu wiążąc zależne od siebie grupy obrazów - co wpływa na wydajność. Kompresja bez detekcji i korekcji błędów. Umożliwia stosowanie przeźroczystości i przeplotu i animacji (dokładność wyświetlania do 0,01 s)
JPEG - ISO 10918, bardzo skuteczna kompresja, duże obrazy, Internet
PCD - Photo CD Kodak, 12-bitowy format na potrzeby fotografii cyfrowej
system przechowuje obraz w rozdzielczości 768x512 oraz skompresowane informacje różnicowe (do formatu 3071x2048)
PCX - PC Paintbrush, Popularny, elastyczny, skompresowany format
TGA TrueVersion Targa - zgodne ze standardem kart graficznych Targa
WMF metapliki Windows, Zawierają funkcje interfejsu Windows Graphic Device Interface (GDI), Struktura bazy danych, każdy rekord zawiera jedną instrukcję GDI, Skalowalne, niezależne od rozdzielczości ekranu
PNG Portable Network Graphics - łączy w sobie zalety JPEG i GIF. Miał zastąpić te formaty - jednak do dziś stanowi niezbyt popularną dla nich alternatywę
TIFF - Tagged Image File Format - format stosowany w poligrafii, odczytywany na różnych platformach sprzętowych, dowolna głębia kolorów, kompresja bezstratna, duża objętość plików
PSD - Adobe Photoshop - na potrzeby grafiki komputerowej. Doskonałe odwzorowanie grafiki, ale bardzo duże pliki. Do zastosowań w poligrafii.
Algorytm Bresenhama służy do rasteryzacji krzywych 2D, czyli do jak najlepszego przybliżenia matematycznych krzywych na siatce pikseli.
Kąt pomiędzy styczną a osią OX, nie może przekraczać 45 stopni,
a)Jeśli krzywa może zostać opisana funkcją y=f(x) to musi być 0 < f '(x) <= 1
Krzywa musi być nierosnąca albo niemalejąca
Pierwszy piksel stawiamy w punkcie P(xi, yi). Drugi natomiast ogranicza się jedynie do dwóch możliwości: Si+1 = (xi+1, yi) lub Ti+1(xi+1, yi+1). Przyrost w kierunku osi OX (osi wiodącej) jest stały - jeden piksel. Korzystając z równania kierunkowego prostej y = dy dx (x?x0)+y0 policzymy w jakiej odległości znajdują się powyższe piksele od punktu przecięcia łączącego je odcinka z prostą przebiegającą w rzeczywistym układzie współrzędnych
s = (dy / dx ) (x_i + 1 - x_o) - (y_i - y_o)
t = (y_i + 1 - y_o) - ( dy / dx ) (x_i + 1 - x_o)
di = dx(s - t) = 2dy(xi - xo) - 2dx(yi - yo) + 2dy - dx
Ponieważ dx > 0 di określa, która z odległości s i t jest większa. Jeżeli di > 0, to s > t za punkt Pi+1 przyjmujemy piksel Ti+1, jeżeli di < 0, wybieramy piksel Si+1. Wartość di = 0 oznacza, że oba piksele leżą w tej samej odległości i arbitralnie przyjmujemy, ze następny piksel to Ti+1. Policzmy jeszcze wartość di+1...
Algorytm Cohena-Sutherlanda jest analitycznym algorytmem obcinania dwuwymiarowych odcinków przez prostokąt obcinający, którego boki są równoległe do osi układu współrzędnych. Algorytm ma zastosowanie w grafice komputerowej.
Dithering (rozsiewanie lub rozpraszanie):
* W grafice kolorowej próba stworzenia koloru poprzez kompozycję kilku barw z dostępnej palety, gdy kolor oryginalny nie może zostać bezpośrednio wyświetlony - symulacja koloru poprzez wyświetlenie/nadrukowanie w bliskim sąsiedztwie punktów o barwach składowych. Postrzeganie trzech punktów w kolorach składowych z dalszej odległości daje wzrokowy efekt koloru wynikowego - zamierzonego.
* W grafice czarno-białej podobna symulacja jak w grafice kolorowej z zastosowaniem do odcieni szarości. Skalowanie osiąga się poprzez natężenie ilościowe punktów składowych czarnych i białych. Ma to miejsce w przypadku dostępności jedynie dwóch kolorów: czarnego i białego.
Dithering pozwala nie tylko na uzyskanie "dodatkowych" kolorów, ale przede wszystkim powoduje złudzenie bardziej płynnego przejścia od jednego koloru do drugiego (szczególnie dla mniejszej ilości kolorów). Widać to bardzo wyraźnie dla ośmiokolorowych grafik.
error diffusion (rozpraszanie błędów).
dithering 32 kolory
wyłączony
wyłączony 8 kolorów
włączony 8 kolorów
Fonty
Ze względu na konieczność skalowania fontów pożądany jest ich zapis w formacie wektorowym. Większość obecnie powstających fontów nie jest już zwykłymi bitmapami wstawianymi zamiast odpowiedniego kodu, tylko są opisane za pomocą krzywych Beziera i podobnych.
Krzywa Béziera - parametryczna krzywa powszechnie stosowana w programach do projektowania inżynierskiego CAD (Microstation), projektowania grafiki komputerowej (Corel Draw, GIMP, Inkscape), do reprezentowania obrysów znaków w fontach komputerowych (TrueType, METAFONT, Type1) i systemach przetwarzania grafiki (PostScript, MetaPost) oraz w grafice wektorowej (np. format SVG).
Krzywe Béziera zostały niezależnie opracowane przez Pierre Béziera, francuskiego inżyniera firmy Renault oraz Paula de Casteljau pracującego dla konkurencyjnej firmy Citroën. Prace nad krzywymi prowadzone były przez obu naukowców od początku lat 60., ale przez długi okres objęte ścisłą tajemnicą służbową. Dopiero pod koniec lat 60. pojawiły się pierwsze ogólnodostępne publikacje Pierre Béziera przedstawiające jego koncepcje, natomiast prace de Casteljau ukrywał Citroen jeszcze przez kilka lat - pierwsze wzmianki o nim pojawiają się dopiero w 1971, gdy prace Béziera były znane od dawna.
Krzywe Béziera są krzywymi parametrycznymi - każda współrzędna punktu krzywej jest pewną funkcją liczby rzeczywistej - parametru; żeby określić krzywą na płaszczyźnie potrzebne są dwie funkcje, żeby określić krzywą w przestrzeni - trzy, itd. Ze względu na rodzaj tych funkcji mówi się o krzywych wielomianowych oraz krzywych wymiernych. Powszechnie stosuje się również krzywe złożone z kawałków gładko połączonych krzywych wielomianowych bądź wymiernych - krzywe B-sklejane.
Niezależnie od rodzaju krzywej na jej przebieg wpływa łamana kontrolna określona za pomocą punktów kontrolnych. Liczba punktów kontrolnych jest zwykle niewielka.
Najczęściej używane są krzywe trzeciego stopnia leżące na płaszczyźnie. Definiując krzywą trzeciego stopnia określamy 4 punkty A, B, C i D (na rysuku odpowiednio P0,P1,P2,P3), których położenie wyznacza przebieg krzywej. Krzywa ma swój początek w punkcie A i skierowana jest w stronę punktu B. Następnie zmierza w stronę punktu D dochodząc do niego od strony punktu C. Odcinek {AB} jest styczny do krzywej w punkcie A, natomiast odcinek {CD} jest styczny w punkcie D
Krzywą Béziera trzeciego stopnia określa następujące równanie:
P(t) = A*(1 - t)^3 + 3Bt*(1 - t)^2 + 3Ct^2*(1 - t) + Dt*3 dla 0 <= t <= 1.
Czyli:
Px(t) = Ax (1 - t)^3 + 3 Bx t (1 - t)^2 + 3 Cx t^2 * (1 - t) + Dx t^3
Py(t) = Ay (1 - t)^3 + 3 By t (1 - t)^2 + 3 Cy t^2 * (1 - t) + Dy t^3
Krzywa ma swój początek w punkcie A (t = 0) i koniec w punkcie D (t = 1) .
Grafika trójwymiarowa
W obecnych czasach pojęcie grafiki trójwymiarowej i wektorowej jest ściśle powiązane. Dzięki zwiększeniu mocy obliczeniowej komputerów można coraz dokładniej określać rzeczywistość i tworzyć dokładniejsze modele, które komputer będzie w stanie przetworzyć. Należy tu pamiętać, że tak czy inaczej na ekranie wyświetlany jest obraz dwuwymiarowy, stąd opis wektorowy musi zostać odpowiednio przetworzony (np. sprawdzić, który obiekt zasłania który i wyświetlić tylko ten na pierwszym planie).
Grafika 3D (grafika trójwymiarowa) - nazwa jednej z dziedzin grafiki komputerowej, zajmującej się głównie wizualizacją obiektów trójwymiarowych. Nazwa pochodzi od angielskiego Three-Dimensional Graphics.
Geometria obiektów trójwymiarowych może by reprezentowane na kilka sposobów:
* Siatka wielokątów - obiekt jest budowany z płaskich wielokątów (najczęściej trójkątów lub czworokątów), które mają wspólne wierzchołki i krawędzie. W ten sposób można tworzyć proste bryły, albo - jeśli siatka jest dostatecznie gęsta - dobrze przybliżać skomplikowane obiekty.
* Voxele (woksele) - obiekt jest budowany z elementarnych sześcianów (trójwymiarowych pikseli). Tego rodzaju reprezentacja jest rozpowszechniona szczególnie w diagnostyce medycznej, gdzie uzyskuje się szereg przekrojów (obrazów bitmapowych) ciała pacjenta i na ich podstawie tworzy trójwymiarowe modele.
* Opis matematyczny - obiekty są określone równaniami. Mogą to by np. kule, płaszczyzny, oraz szczególnie użyteczne i powszechnie stosowane powierzchnie parametryczne (płaty powierzchni), np. powierzchnie Beziera, Hermite'a czy NURBS.
Dane trójwymiarowe mogą zostać pobrane ze świata rzeczywistego (tomografy komputerowe, skanery trójwymiarowe, ze zdjęć satelitarnych - topografia terenów, a także ze zdjęć stereoskopowych. W animacji komputerowej wykorzystywana jest również technika motion capture, która polega na nagrywaniu ruchu człowieka - czujniki położenia umieszczane są w kluczowych punktach ciała. Przeniesienie nagranych w ten sposób ruchów na sztuczne postacie nadaje ich ruchom naturalność, trudną do uzyskania klasycznymi metodami animacji.
Obiekty trójwymiarowe mogą również zostać stworzone przez człowieka w procesie modelowania (modelowanie bryłowe).
Duże znaczenie mają te techniki komputerowe, które automatycznie modelują skomplikowane efekty (takie jak dym, ogień, śnieg, deszcz) i obiekty (chmury, drzewa).
Wielokąt (polygon z ang.) w grafice komputerowej, szczególnie w grafice 3D, używany do tworzenia obrazów wyglądających na trójwymiarowe.
Podczas modelowania powierzchni wybierane są wierzchołki, które łączone są odcinkami tworząc w ten sposób siatkę modelowanego obiektu - wtedy grafik jest w stanie szybko ocenić efekty swej pracy i nanieść odpowiednie poprawki nie czekając na pełne wyrenderowanie modelu.Przejście od modelu do ostatecznego obiektu odbywa się poprzez zwiększenie liczby wielokątów prowadzące do wizualnego zwiększenia gładkości danej powierzchni. Najszersze zastosowanie znalazły trójkąty oraz czworokąty, gdyż stosowanie wielokątów o większej liczbie wierzchołków jest na ogół niepraktyczne jak również szybsze (algorytmy zoptymalizowane do obsługi trójkątów).
Ponieważ obecnie wszystkie urządzenia komputerowe wyświetlają dwuwymiarowe obrazy, dlatego z grafiką trójwymiarową związana jest bezpośrednio geometria wykreślna. Głównie w zastosowaniach inżynierskich (CAD) sceny trójwymiarowe przedstawione są w rzucie prostokątnym, natomiast w pozostałych w rzucie perspektywicznym.
Efekt wizualny rzutu perspektywicznego (skrót perspektywiczny) jest bardzo podobny do efektów obserwowanych w fotografii oraz w systemie wzrokowym człowieka. Przez analogię do aparatu fotograficznego (lub kamery), w grafice trójwymiarowej istnieje pojęcie wirtualnej kamery, która tworzy "zdjęcie" sceny istniejącej w pamięci komputera. Kamerę wirtualną charakteryzują następujące parametry: położenie, kierunek w jakim jest skierowana oraz ogniskowa - mają one swoje odbicie w matematycznym modelu kamery.
Głównym problemem w obu przypadkach jest wyznaczanie powierzchni widocznych, a więc selekcja tych obiektów (lub ich części), które są widoczne w danym rzucie. Robi się to np. za pomocą bufora Z, sortowania względem głębokości, śledzenia promieni.
Ponadto przeważnie obserwujemy niewielki fragment sceny, a dodatkowo scena może składać się z wielkiej liczby obiektów (sięgającej nawet setek milionów), dlatego równie ważne jest określenie, które obiekty mogą być widoczne, aby przetwarzać tylko te dane, które naprawdę są potrzebne. --> usuwanie niewidocznych powierzchni.
Realizm obrazów generowanych przez komputer jest w większości zastosowań bardzo ważny. Aby go uzyska modeluje się oświetlenie: definiuje światła, powierzchniom obiektów trójwymiarowych nadaje kolor i fakturę, określa cienie rzucane przez obiekty, odbicia zwierciadlane, załamanie i rozpraszanie światła itd., itp.
Metody, które pozwalają na bardzo dokładne przedstawienie scen trójwymiarowych są również bardzo kosztowne obliczeniowo. Z kolei szybkie, przybliżone metody cieniowania obiektów, tworzenia cieni, odbić zwierciadlanych są z powodzeniem wykorzystywane w grach komputerowych.
W przypadku animacji ważne jest także, aby ruch obiektów, był możliwie najbardziej zbliżony do zachowania przedmiotów w świecie rzeczywistym.
Współczesne karty graficzne potrafią wyświetlać obiekty trójwymiarowe zbudowane z wielokątów, wykonując dużą część obliczeń związanych z generowaniem grafiki 3D:
* przekształcenia geometryczne (takie jak obrót, skalowanie, rzutowanie perspektywiczne)
* cieniowanie wielokątów
* proste modele oświetlenia
* teksturowanie wielokątów
* mapy nierówności.
Siatka to w grafice 3D dwa lub więcej wielokątów połączonych ze sobą krawędziami. Może ulegać różnym modyfikacjom i deformacjom. Siatka tworzy obiekt.
Siatka może być reprezentowana na kilka sposobów:
1. Tablica wielokątów — każdy wielokąt przechowuje współrzędne swoich wierzchołków.
2. Tablica wielokątów ze wskaźnikami na wierzchołki — obiekt jest reprezentowany przez dwie tablice: wielokątów i wierzchołków. Każdy wielokąt przechowuje listę indeksów do tablicy wierzchołków, natomiast tablica wierzchołków zawiera współrzędne. Dzięki temu można łatwo stwierdzić, które wielokąty mają wspólne wierzchołki, także przekształcenia obiektu są szybsze, ponieważ wspólne wierzchołki są przekształcane tylko jeden raz. Reprezentacja ta pozwala na znaczne oszczędzenie pamięci wymaganej do zapamiętania siatki, ponieważ najczęściej jeden wierzchołek jest wspólny dla wielu wielokątów.
3. Tablica wielokątów ze wskaźnikami na krawędzie — obiekt jest reprezentowany przez trzy tablice: wielokątów, krawędzi i wierzchołków. Każdy wielokąt przechowuję listę indeksów do tablicy krawędzi, natomiast każda krawędź przechowuję parę indeksów do tablicy wierzchołków. Dzięki temu można łatwo stwierdzić, które krawędzie są wspólne dla wierzchołków, co ma to istotne znaczenie w dwóch przypadkach: modelowaniu CSG oraz symulacjach fizycznych. W obu zastosowaniach należy zagwarantować, że siatka wielokątów reprezentuje bryłę (zamyka pewną objętość), aby stwierdzenia punkt leży wewnątrz/na zewnątrz bryły miały sens. Mając listę krawędzi można to bardzo łatwo stwierdzić, jeśli bowiem każda krawędź należy do dokładnie dwóch wielokątów, to siatka jest bryłą. Jeśli istnieją krawędzie należące do pojedynczych wielokątów, wówczas w powierzchni bryły jest "dziura" i istnieją algorytmy, które potrafią takie "dziury" wypełnić. Jeśli natomiast jakaś krawędź należy do więcej niż dwóch wielokątów, wówczas siatka nie może reprezentować bryły.
Istnieją również rozwiązania hybrydowe, np. w których ze względu na efektywność wielokąty zawierają listę indeksów do tablicy krawędzi oraz listę indeksów do tablicy wierzchołków.
Do tworzenia grafiki 3D zostało stworzonych wiele programów na różne platformy sprzętowe i systemy operacyjne: modelery (tworzenie i obróbka scen trójwymiarowych) oraz renderery (generowanie trójwymiarowego obrazu lub animacji, wraz z nakładaniem tekstur, efektami świetlnymi, itp.).
Budowa ekranu (według DIN 66 290)
informacje
przetwarzanie
sterowania
meldunki
Nazwa systemu dialogowego, maski, procesu
Wszystkie wejścia-wyjścia służące obróbce aktualnego zadania
Dane do następnego etapu dialogu, do kolejnej maski, wywołanie funkcji standardowych (pomoc, kartki itd.)
Meldunki o błędach, ostrzeżenia i meldunki systemu o wykonaniu