Podręcznik Grafika komputerowa i wizualizacja
Rozdział 1. WPROWADZENIE
1.6. Grafika rastrowa i wektorowa
W klasycznym monitorze CRT obraz na ekranie powstaje dzięki strumieniowi elektronów (w monitorze kolorowym dzięki trzem strumieniom – każdy związany z jedną składową barwy), który padając na luminofor ekranu „zapala” plamkę (piksel). Zmieniając kierunek strumienia i jego energię można wpłynąć na położenie i jasność plamki (piksela). W monitorze LCD podając odpowiedni zestaw bitów dla określonego piksela uzyskuje się zadaną barwę.
Wyróżnia się dwa tryby pracy urządzeń prezentujących obraz:
- Tryb wektorowy (grafika wektorowa), gdy możliwe jest sterowanie położeniem oraz jasnością (barwą) plamki. Takie sterowanie pozwala utworzyć na ekranie np. odcinek o dowolnie położonych końcach (rys.1.12a). Konsekwencją takiego sposobu sterowania są następujące właściwości: brak zniekształceń wnoszonych przez samo urządzenie (linie ukośne są zawsze gładkie) tym samy odbiór rysunku jest niezależny od urządzenia, sekwencyjna struktura danych obrazowych, zajętość pamięci zależna od kształtu rysunku, możliwość dowolnego skalowania rysunku, możliwość operowania kreską ale trudności w operowaniu plamą. Przykładem tak pracującego urządzenia jest ploter lub oscyloskop.
- Tryb rastrowy (grafika rastrowa), gdy możliwe położenia plamki są z góry ustalone i nie można na nie wpłynąć, natomiast można sterować jasnością (barwą) plamki (rys.1.12b). Podstawowe właściwości takiego trybu to: zniekształcenia powodowane rastrem (ukośny odcinek jest schodkowy), kształt rysunku nie wpływa na zajętość pamięci, brak możliwości dowolnego skalowania (bez utraty jakości), odbiór rysunku zależny od urządzenia, możliwość operowania kreską i plamą (z dokładnością do rastra). Przykładem może być telewizor lub monitor typu LCD.
Rys. 1.12. Litera A narysowana w dwóch trybach pracy. a) W trybie wektorowym. b) W trybie rastrowym.
Praktycznie wszystkie urządzenia wyświetlające pracują dzisiaj w trybie rastrowym. Monitory wektorowe dostępne były od połowy lat sześćdziesiątych. W latach osiemdziesiątych zostały praktycznie całkowicie wyparte przez monitory rastrowe. Również zdecydowana większość urządzeń drukujących i rysujących na różnych materiałach działa w trybie rastrowym. Pisaki XY (plotery), w których naturalnym sposobem sterowania jest sterowanie wektorowe przestały być popularne w takiej postaci - ze względów technologicznych, wykonywane są jako urządzenia rastrowe o bardzo dużej rozdzielczości.. Wydawać by się więc mogło, że o trybie wektorowym będzie się w grafice komputerowej mówić tylko w aspekcie historycznym. Jednak zalety trybu wektorowego (przede wszystkim skalowalność) sprawiły, że przetrwał on i jest nadal stosowany. Występuje on w warstwie programowej i interfejsu użytkownika. Dzięki temu można zdefiniować a następnie przechować rysunek, który nie będzie tracił jakości podczas np. obracania i skalowania. Natomiast po przeliczeniu go do konkretnej rozdzielczości, będzie mógł być wyświetlony na rastrowym monitorze lub wydrukowany na rastrowej drukarce.
Oprogramowanie graficzne pozwala użytkownikowi tworzyć obrazy w trybie wektorowym, ale jest on wyświetlany na rastrowym monitorze. Z drugiej strony nawet jeśli ploter przyjmuje rozkazy sterowania wektorowego, to zastosowanie odpowiedniego sterowania może powodować, że pisak będzie poruszał się po niewidocznym dla oka rastrze. Zamiana trybu wektorowego na rastrowy nosi nazwę rasteryzacji.
Tworzenie obrazu na urządzeniu rastrowym związane jest z dwoma problemami, które wymagają rozwiązania. Pierwszym jest zapewnienie wysokiej jakości obrazu pomimo skończonego rozmiaru rastra. Drugim jest umożliwienie narysowania zestawu podstawowych figur (prymitywów) takich jak np. odcinek lub łuk okręgu na mapie rastra. Za pomocą prymitywów można potem utworzyć dowolny rysunek.
Raster i skończone rozmiary piksela powodują, że rysunek zostaje zniekształcony. Wszystkie ukośne linie przybierają „schodkowy” kształt (przykład odcinka na rys.1.13a). Dla złożonych obrazów może to utrudniać interpretację rysunku – przykładem może być szachownica widziana pod kątem (rys. 1.13b). Naturalnym rozwiązaniem tego problemu wydaje się, po prostu, zmniejszenie rozmiarów piksela, czyli zwiększenie rozdzielczości rastra. Niestety nie jest to takie proste. Na przeszkodzie stają właściwości oka ludzkiego, które stara się powiększyć różnicę jasności sąsiadujących ze sobą pól. Dzięki temu możemy czytać gazetę o zmierzchu, ale powoduje to również, że idealny obraz mogą zakłócić nam nawet najdrobniejsze rysy. Zwiększenie rozdzielczości rastra, w pewnym zakresie, niewiele więc daje. Oczywiście jest pewna granica rozdzielczości kątowej, powyżej której można „oszukać” oko. W fotografii cyfrowej i poligrafii przyjmuje się, że taką granicą jest 300dpi (dots per inch – punktów na cal) dla zdjęć i publikacji oglądanych „na wyciągnięcie ręki”, czyli z odległości 40 – 60 cm. Taka rozdzielczość zapewnia, że oko nie zauważy rastrowego charakteru rysunku. Oznacza to np., że aby zapewnić dobrą jakość zdjęcia 10x15 cm (4x6 cali), to powinno ono mieć rozdzielczość1200x1800 pikseli. Dwa razy większe zdjęcie – dwa razy większa rozdzielczość. Oczywiście np. plakaty reklamowe oglądamy z zupełnie innej odległości, stąd aby zapewnić odpowiednią rozdzielczość kątową potrzebna jest inna rozdzielczość obrazu.
Nie zawsze odpowiednia rozdzielczość jest możliwa do osiągnięcia. Aby w takiej sytuacji poprawić odbiór rastrowego obrazka wykorzystuje się tzw. antyaliasing – metodę poprawy wyglądu bazującą na teorii sygnałów. Tak naprawdę problem wynika z próbkowania z określoną rozdzielczością. Oprócz schodkowych odcinków może się więc pojawić problem znikania (i czasowego pojawiania się) obiektów na tyle małych, że mogą zmieścić się pomiędzy próbkami. Błędy próbkowania zamienia się na błędy zaszumienia – na które oko ludzkie jest mniej wrażliwe. Stosując odpowiednie filtrowanie dokonuje się „rozmycia”, dotychczas kontrastowej, barwy sąsiednich pikseli (rys.1.14a). Oko ludzkie dokona pewnego rodzaju uśrednienia, co prawda operacja taka nie doda szczegółów, ale problem schodków przestaje przeszkadzać. Nawet widok szachownicy (rys.1.14b) sprawia wtedy wrażenie poprawnego. Warunkiem koniecznym uzyskania tego efektu jest duża liczba barw lub stopni szarości dla każdego piksela. Biorąc pod uwagę możliwość rozróżniania barw przez oko ludzkie przyjmuje się, że aby pokazać pełną paletę barw potrzeba 24 bity na piksel (po 8 bitów na każdą składową RGB). Standardem dla kart graficznych stało się przechowywanie informacji w postaci 32 bitów na piksel.
W takich rozwiązaniach dodatkowe bity mogą być wykorzystane do opisu innych właściwości np. przezroczystości. Czasami stajemy przed dylematem czy, z dwojga złego, lepiej wybrać tryb pracy o mniejszej rozdzielczości np. 800x600, ale z pełną skalą barw (24 bity na piksel), czy wyższej rozdzielczości np. 1200x1024 ale z ograniczoną skalą na przykłąd tylko 8 bitów na piksel. Biorąc pod uwagę właściwości oka ludzkiego i możliwości programów graficznych, rozstrzygnięcie będzie oczywiste. Poza wyjątkowymi i szczególnymi przypadkami, pierwszy wariant pozwoli uzyskać lepszy i przyjemniejszy w odbiorze obraz.
Więcej na ten temat można przeczytać w książkach[2, 5]. Podstawowe problemy związane z percepcją barwy, właściwościami i budową oka ludzkiego będą omawiane w rozdziale 10. tego podręcznika.