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 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 może być tworzona poprzez:
- rysowanie bezpośrednio na ekranie,
- rysowanie w pamięci (obraz jest niewidoczny), a następnie wyświetlanie obrazu na ekranie,
- rysowanie w pamięci, następnie zapisywana do pliku (np.
plik PPM
),
- rysowana i zapisywana bezpośrednio do pliku. Obraz jest niewidoczny, aby go zobaczyć należy otworzyć plik (np. w przeglądarce grafiki).
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
, 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ą dwuipółwymiarową (
2.5D
). 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.
Do klasycznych
procesorów graficznych
2D z końca lat 70. i początku lat 80., wykorzystywanych w 8-bitowych
konsolach gier wideo
i
domowych komputerach
, należą:
-
ANTIC
firmy
Atari
(właściwie
GPU
2D), TIA, CTIA oraz GTIA
- układy w Technologii MOS firmy
Commodore
- VIC oraz VIC-II
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. Jest też wykorzystywana w prostych grach karcianych i planszowych -
solitaire
,
szachy
,
mahjongg
, i wiele innych...
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 uproszszczenia procesu edycji. Wynikiem pracy takich programów jest
plik graficzny
, gdzie poszczególne warstwy i figury geometryczne są zapisane w ich oryginalnej postaci. Jednym z pierwszych programów, które można zaliczyć do zaprezentowanej grupy, jest MacDraw, wydany w roku
1984
, razem z linią komputerów
Macintosh
. Do najnowszych przedstawicieli tej grupy można z kolei zaliczyć
Adobe Illustrator
,
CorelDraw
oraz darmowy edytor
xfig
. Jest także wiele edytorów wyspecjalizowanych w specyficznych zastosowaniach, jak diagramy elektryczne, elektroniczne oraz VLSI, mapy topograficzne, fonty komputerowe, itp.
Algorytmy generowania grafiki 2D
Rasteryzacja
Przycinanie
Symulowanie kolorów
Zobacz też