Grafika dwuwymiarowa

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

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[edytuj | edytuj kod]

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[edytuj | edytuj kod]

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[edytuj | edytuj kod]

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[edytuj | edytuj kod]

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[edytuj | edytuj kod]

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żą:

Oprogramowanie grafiki 2D[edytuj | edytuj kod]

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[edytuj | edytuj kod]

Rasteryzacja

Przycinanie

Symulowanie kolorów

Zobacz też[edytuj | edytuj kod]