|
Historia i ewolucja grafiki
komputerowej
1. Systemy wyświetlania obrazu
2. Technologie wideo stosowane w komputerach osobistych
1. Systemy wyświetlania obrazu
Obecnie każdy komputer jest wyposażony w monitor, kartę graficzną, oraz system operacyjny z GUI (Graphic User Interface). Jednak nie zawsze tak było. Dawniej operacje wejścia/wyjścia odbywały się poprzez wprowadzenie tekstu, oraz wydrukowanie poprzez drukarkę znakową. Dopiero w 1960 roku zaadoptowano techniki telewizyjne do wyświetlania danych przez komputer na ekranie monitora CRT (Cathode Ray Tube). Lampy elektropromieniowe wykorzystywane z komputerami można podzielić na trzy grupy: lampy pamięciowe, odświeżanie wektorowe oraz skanowanie rastrowe.
Lampy pamięciowe są najprostszą formą wyświetlania obrazu, polegającą na bombardowaniu specjalnej warstwy pokrytej fosforem elektronami. Taka metoda uniemożliwia jednak uzyskanie koloru, obraz wyświetlany jest czarno - biały, oraz mało kontrastowy. Poza tym, przy nawet najmniejszej zmianie trzeba odrysować cały ekran.
W przeciwieństwie do wyżej opisanej metody, w wyświetlaczach odświeżanych wektorowo stosuje się fosfor świecący bardzo krótko, w związku z czym jego powierzchnia musi być odświeżana od 30 do 50 razy na sekundę. Ta metoda wymaga jednak pamięci obrazu, oraz odpowiedniego sterownika wyświetlania. W pamięci obrazu są przechowywane instrukcje dotyczące sposobu rysowania obiektów, a sterownik konwertuje je na cyfrowe polecenia i dane.
Skanowanie rastrowe zostało zapożyczone z odbiorników telewizyjnych. W skanowaniu rastrowym strumień elektronów podąża poziomymi liniami, zaczynając od lewego górnego rogu, potem powraca poziomo do lewej strony (wtedy sterownik musi wyłączyć strumień elektronów), i podąża w następnym wierszu, aż dojdzie do samego dołu, następuje powrót pionowy, na czas, którego również jest wyłączany strumień elektronów. Powierzchnia wyświetlacza rastrowego podzielona jest na pojedyncze punkty, tzw. pixele. Pixel - Picture Element. W pamięci RAM komputera znajduje się wydzielony obszar przechowujący aktualny stan każdego pixela. Bezpośredni dostęp do tej pamięci zapewniają nam biblioteki DirectX oraz OpenGL. Najłatwiej jest przechowywać obraz czarno-biały, gdyż dla każdego pixela wystarcza jeden bit. Gdy bit zostanie ustawiony, kolor będzie biały, gdy będzie wyzerowany, kolor będzie biały. Wyświetlanie obrazu kolorowego jest już bardziej skomplikowane. W wyświetlaczach kolorowych stosuje się trzy osobne działa elektronowe: dla kolorów: czerwonego, zielonego, niebieskiego. Dla jednego pixela trzeba zarezerwować, co najmniej jeden bajt, czyli: 3 bity dla koloru czerwonego, 2 dla zielonego, oraz 3 dla niebieskiego. Taka konfiguracja umożliwi nam odwzorowanie 256 różnych kolorów (8 kombinacji czerwonego + 2 kombinacje zielonego + 8 kombinacji niebieskiego). Jakość fotograficzna jest możliwa do odwzorowania z wykorzystaniem 24 bitów na pixel. Taki tryb nazywamy trybem true-color. Niektóre karty graficzne nie obsługują trybu 24 bitowego, ale tryb 32 bitowy. W obu trybach true-color na każdy kolor jest zarezerwowane po 8 bitów. W trybie 32 bitowym ostatni bajt jest nieużywany. Jest to związane z architekturą procesorów Intela oraz konstrukcją wielu kart graficznych. Reasumując, system skanowania rastrowego jest najlepszym z dotychczas znanych i używanych.Zaletami są: niski koszt, możliwość wyświetlania kolorów. Jedną z głównych wad, to tzw. ziarnista struktura powierzchni ekranu. Każda linia, nie będąca nachylona pod kątem 45 stopni ani nie będącą pozioma lub pionowa, będzie sprawiała wrażenie 'schodkowatej'. System skanowania rastrowego narzuca również pewne ograniczenia w animacji: przy zmianie obrazu muszą zostać zmienione wszystkie pixele obrazu, oraz obrazu muszą być wyświetlane bardzo szybko, jeżeli mają dać wrażenie płynnego ruchu (człowiek zauważy 'schodkowatość' animacji, gdy ta spadnie do poniżej 17 obrazów na sekundę). Powoduje to ogromne obciążenie procesora oraz układu wyświetlania obrazu. Dlatego karty graficzne są produkowane z coraz większą ilością pamięci oraz z coraz wyższą częstotliwością procesora.
2. Technologie wideo stosowane w komputerach osobistych
W 1981 roku IBM wprowadził pierwszy model swoich mikrokomputerów. Można było zakupić modele z monochromatyczną kartą graficzną (MDA - Monochrome Display Adapter) lub z systemem graficznym CGA (Color - Graphics Monitor Adapter). MDA jest kartą alfanumeryczną, tzn. programista nie ma dostępu do poszczególnych pixeli ekranu, lecz widzi ekran jako zestaw znaków i atrybutów. Kody znaków zajmują parzyście numerowane bity, natomiast komórki atrybutu bajty nieparzyste. Co ciekawe, karta MDA była wyposażona w port drukarki.
W 1982 roku opracowano kartę Hercules (HGC, Hercules Graphic Card). Podobnie jak karta MDA, również była wyposażona w port drukarki. Karta Hercules emulowała funkcje tekstowe karty MDA oraz posiadała tryb graficzny. Bufor obrazu składał się z 64 kB pamięci, co na ówczesne czasy było dość sporą liczbą. Podczas trybu graficznego pamięć była dzielona na 2 części po 32 kB.
Karta CGA (Color Graphics Adapter) została opracowana w tym samym roku, co Hercules. Była ona pierwszą kartą graficzną dla komputerów PC. Karta CGA mogła pracować w 7 trybach, zarówno graficznych jak i monochromatycznych. Znaki tekstu były wyświetlane w 16 odcieniach szarości i w jednym wierszu mieściło się ich 40. Najwyższą rozdzielczość oferował tryb graficzny nr. 6, z 640 pixelami w poziomie i 200 w pionie. Podstawową różnicą pomiędzy kartami MGA a CGA była taka, że karty CGA dużo gorzej wyświetlały tekst. Karta CGA była w stanie współpracować z kolorowymi telewizorami, jednak najlepiej sprawdzała się z monitorami RGB. Karta była wyposażona w 16 kB pamięci, czyli 4 razy tyle, co karta MDA, w związku z tym mogła zapamiętać po 4 ekrany tekstu, po 2000 znaków każdy. Widać tu pewną analogie do dzisiejszych kart, które są w stanie zapamiętać wiele powierzchni (np. powierzchnia IDirectDrawSurface7 z biblioteki DirectDraw z DirectX8) i nimi swobodnie obracać (page flipping itp.). Podstawową wadą kart CGA był tzw. śnieg. Spowodowane to było użyciem dynamicznej pamięci RAM (dynamic RAM), podczas gdy kartach MDA stosowana była pamięć statyczna.
Następnym krokiem w ewolucji kart graficznych była karta EGA (Enhanced Graphics Adapter) opracowana przez IBM w 1984 roku jako alternatywa dla kart CGA. Karta EGA potrafiła emulować większość funkcji kart CGA i MDA, oraz dodatkowo oferowała tryb graficzny 640x350 pixeli w 16 kolorach! Wprowadzono również rozszerzone tryby graficzne. Kartę sprzedawano z różną konfiguracją: od 64 kB pamięci graficznej do 256 kB. Ważną nowością było wprowadzenie symetrycznej rozdzielczości obrazu, tzn. kwadrat wyświetlany nie miał już kształtu prostokąta, jak to miało miejsce w kartach Hercules.
Trzy lata później przyszła kolej na nowe generacje komputerów PS/2 (wyposażone w znaną nam stacje dyskietek 3,5 cala, opcjonalnie OS/2). Wraz z nowymi standardami mikrokomputerów pojawiały się nowe karty graficzne: MCGA (Multicolor Graphics Array), VGA (Video Graphics Array) oraz karta 8514/A. Karta VGA posiadała 256 kB pamięci dzielonej na 4 po 64 kB na tzw. bitplany. Wprowadzono nowy tryb graficzny: 640x480 pixeli i 16 kolorami. Karty VGA szybko stały się dostępne dla innych komputerów, nie produkowanych przez IBM. Karta VGA stała się standardem graficznym. i pozostała nim po dziś dzień. W 1990 roku IBM wprowadził nową kartę XGA, spotykaną w niektórych modelach laptopów.
Rozszerzenie standardu VGA SuperVGA zostało wprowadzone przez niezależnych producentów. Kary SVGA oferują większe ilości kolorów oraz więcej rozdzielczości. Produkowane przez wielu niezależnych od siebie producentów karty SVGA szybko uległy problemowi, jakim jest brak wszelkiego standardu. Próbując rozwiązać problem braku standardu kilku producentów utworzyło stowarzyszenie VESA (Video Electronics Standarts Association). W drugiej połowie 1989roku VESA opublikowało swój pierwszy standard SVGA. Obejmował on kilka rozszerzonych trybów graficznych oraz implementował rozszerzenia BIOS-a.
Obecnie można by podzielić według wielu kategorii. Najogólniej można podzielić według funkcji: Akceleratory 2D i 3D, lub według interfejsu: ISA (Industry Standart Architectrue), PCI (Peripherial Component Interface) lub AGP (Accelerated Graphic Port). Na miano najlepszych kart do niedawna ubiegało się kilka firm. Już nie istniejącej firmie 3Dfx zawdzięczamy niesamowitą rewolucję, jaką było wprowadzenie pierwszych akceleratorów. Zdecydowanie najlepszą pozycję na rynku w tej chwili ma NVidia. Firma NVidia zaatakowała rynek dość niedawno z serią kart RIVA, później nastąpiła decydująca o zwycięstwie z 3Dfx-em seria kart GeForce. Główną przyczyną porażki 3Dfx-a było niezrozumiałe przyzwyczajenie do ograniczenia kart do 16 bitowej palety kolorów, podczas gdy produkty NVidii oferowały karty z 32/24 bitowymi paletami kolorów. Chwilowo tylko NVidia się liczy na rynku kart graficznych, jednak firma S3 znana nam z nieśmiertelnej S3-Virge również oferuje doskonałe produkty, tak samo jak kary ATI. Nowoczesne karty są wyposażone w specjalne funkcje, które pozwalają nam osiągnąć niesamowite efekty graficzne. Dzięki takim pakietom jak np. DirectX Microsoftu (najnowsza dostępna wersja to obecnie 8.0) pisanie programów graficznych jest dzisiaj wyjątkowo łatwe. Gdyby jakaś karta graficzna nie miała zaimplementowanej danej funkcji sprzętowo, DirectX potrafi tę funkcję wyemulować programowo, dzięki czemu programista nie musi przygotować kilku wersji na kilka różnych kart graficznych.
Reasumując, po zaledwie 20 latach na naszych monitorach zamiast niewyraźnych znaczków pojawiają się niesamowicie płynne i foto-realistyczne obrazy. Należy więc tylko cierpliwie czekać, a już niedługo będziemy mogli zatopić się w całkowicie wirtualnym świecie, kiedy tylko chcemy.
..::kenjin::..
kenjin@wp.pl
|
|