[ Pobierz całość w formacie PDF ]
Karty akceleratorowe Dwoma podstawowymi problemami związanymi z przetwarzaniem dużej ilości informacji graficznych jest: · przesyłanie dużej ilości informacji przez magistralę łączącą procesor główny z pamięcią wideo karty graficznej, · duże obciążenie procesora głównego obliczeniami związanymi z tworzeniem i zmianami treści obrazu Oba problemy mogą być w znacznej mierze rozwiązane przez przekazanie części uprawnień do tworzenia obrazu bezpośrednio karcie graficznej. Zmniejszy to zarówno obciążenie procesora głównego (część wyliczeń wykona karta graficzna), jak i obciążenie magistrali (pamięć wideo znajduje się bezpośrednio na karcie). Efektem tych spostrzeżeń jest powstanie kart akceleratorowych. Zasadniczo należałoby je nazywać kartami koprocesorowymi, gdyż zwłaszcza w przypadku kart 3D, posiadają potężny i rozbudowany procesor, niewiele ustępujący stopniem komplikacji budowy i liczbą elementów procesorowi głównemu. Używana jest jednak nazwa karty akceleratorowe. Przed pokazaniem schematu blokowego współczesnej karty akceleratorowej cnotko omówimy operacje i problemy występujące kolejno przy obsłudze grafiki 2D (czyli płaskiej) i 3D (trójwymiarowej). Grafika 2D Operacje wykonywane przez tego typu karty dotyczą grafiki dwuwymiarowej, związanej miedzy innymi z graficznym interfejsem użytkownika. Wymaga on częstego wykonywania takich operacji jak tworzenie okien (rymowanie prostokątów) czy ich przesuwanie. Te ostatnie realizowane są jako transfery bloków w pamięci wideo (opisujących piksele danego okna). Dlatego jedną z umiejętności akceleratorów 2D jest wykonywanie tego typu operacji, zwanych BitBlt (Bit Block transfer). Przykładowy układ akceleratora 2D Weitek Power 9100, wraz ze współpracującymi układami. Jak widzimy, w układzie zawarte są wszelkie elementy tworzące kartę VGA/SVGA typu bufor ramki (CRTC, sterownik pamięci wideo, generatory przebiegów synchronizujących itp.). Oprócz wymienionych układ ten zawiera także bloki odpowiedzialne za realizację operacji graficznych 2D. Do układu obliczania parametrów przekazywane do CPU polecenia wykonania operacji graficznych (np. rysowania prostokątów, suwania obszarów itp.). Na podstawie otrzymanych informacji (charakterystyczne punkty figury, np. współrzędne dwóch przeciwległych rogów prostokąta), koloru wypełnienia itp. układ ten wylicza odpowiednie parametry, takie jak adresy pamięci wi-i przekazuje je do układu rysowania. Układ ten wypełnia określone obszary pamięci wideo (podanymi przez układ obliczania parametrów) wartościami tworzącymi za pomocą pikseli żądany obraz. Grafika trójwymiarowa Kolejnym etapem w rozwoju kart graficznych było opracowanie tak zwanych akceleratorów grafiki trójwymiarowej. Tworzenie tej grafiki wymaga specyficznych operacji (takich jak nakładanie tekstur) oraz bardzo dużej ilości żmudnych obliczeń. Problemy pojawiające się przy używaniu grafiki trójwymiarowej, zarysowane w następnym podpunkcie, doprowadziły do pojawienia się kart z akceleratorami 3D oraz do opracowania specjalnej magistrali zwanej AGP (Accelerated Graphics Port) dedykowanej kartom graficznym, a szczególnie akceleratorom 3D. Tworzenie grafiki trójwymiarowej możemy podzielić na dwa podstawowe etapy: obliczenia geometrii obrazu (ang. geometry calculations) oraz utworzenie obrazu na ekranie (ang. rendering). Obiekty trójwymiarowe (ich powierzchnie) modelowane są generalnie z wielokątów, najczęściej z trójkątów (które później najłatwiej pozycjonować). Wygląd tych obiektów zmienia się w zależności od miejsca położenia obserwatora, tak jak to ma miejsce w rzeczywistości. Pierwszy etap polega zatem na ustaleniu wyglądu przedmiotów i ich wzajemnego położenia na scenie. Podstawowymi czynnościami ustalania geometrii obrazu są: · podział obiektów na wielokąty, · pozycjonowanie wielokątów. Następnie otrzymana w ten sposób informacja (współrzędne wierzchołków) przekazywana jest do drugiego etapu zwanego renderingiem. W ramach tego etapu: · ustalana jest widoczność i wzajemne przesłanianie się przedmiotów (przy użyciu tak zwanego Zbufora, · na powierzchnie przedmiotów nakładane są tak zwane tekstury, · wykonywane jest cieniowanie przedmiotów (symulujące ich bryłowatość -wklęsłość bądź wypukłość) oraz symulowanie ziarnistości ich powierzchni, · dodawane są ewentualne efekty specjalne (dym, mgła, przezroczystość itp.). Z wymienionych operacji dwie - ustalanie widoczności obiektów i teksturowanie - wymagają dodatkowych wyjaśnień, gdyż wpływają znacząco na wymagania sprzętowe w stosunku do karty (ilość pamięci wideo) oraz na czas opracowywania scen} trójwymiarowej (tu krytyczną operacją jest właśnie teksturowanie). Przesłanianie obiektów związane jest między innymi z głębią obrazu, a dokładniej z umiejscowieniem obiektów bliżej lub dalej obserwatora. Stosowane jest tu następujące rozwiązanie: dla każdego punktu tworzącego obraz, oprócz informacji o jego wyglądzie (kolorze), przechowywana jest także informacja o jego położeniu na scenie trójwymiarowej. Część pamięci wideo przechowująca tę informację zwana jest właśnie Z-buforem (oprócz współrzędnych x i y trzecia składowa z to głębokość brązu). Oczywiście, im więcej bitów poświęcimy na zapisanie głębi obrazu, czyli raczej, im większa będzie „głębokość" Z-bufora, tym bogatsze sceny możemy pokazać. Płacimy jednak za to zwiększonymi wymaganiami co do pojemności pamięci wideo. Powszechnie stosowaną metodą zapewniania naturalnego wyglądu przedmiotów szczególnie dużych powierzchni) jest proces nakładania tak zwanych tekstur, zwany inaczej teksturowaniem. Tekstury są mapami bitowymi symulującymi wygląd różnorodnych powierzchni (na przykład drewna, trawy, ale także określonego wzorku na przedmiocie), przy czym im więcej jest ich do dyspozycji, tym bogatszy i bardziej naturalny jest wygląd trójwymiarowego obrazu. Tekstury przed nałożeniem na poszczególne płaszczyzny przedmiotu muszą być odpowiednio przygotowane. Ponieważ płaszczyzny te są zwykle nachylone, należy wykonać dla tekstur korekcję perspektywy. W zależności od odległości przedmiotu od obserwatora nakłada się na przedmiot tekstury o różnej rozdzielczości. W tym celu przechowuje się tę sama teksturę gotową w różnych rozdzielczościach, gdyż na jej przekształcanie nie ma czasu. Rozwiązanie to nazywa się MIP-mappingiem. Poprawia ono szybkość teksturowania, jednak wymaga dodatkowej ilości pamięci. W celu zapewnienia płynnych przejść, na przykład na krawędziach wielokątów, stosuje się tak zwane filtrowanie. Polega ono zasadniczo na uśrednianiu wyglądu sąsiadujących ze sobą pikseli. Poprawia to znaczne wygląd obrazu, szczególnie w przypadkach, gdy zaczyna brakować tekstury o odpowiednio dużej rozdzielczości (na przykład obserwator przysuwa się zbyt blisko do ściany). Cały zestaw tekstur potrzebny aplikacji przechowywany jest w pamięci masowej, najczęściej na dysku twardym. Przed ich użyciem tekstury te muszą zostaćzaładowane do pamięci wideo karty graficznej. Obliczanie geometrii obrazu związane jest z dużą ilością ...
[ Pobierz całość w formacie PDF ] zanotowane.pldoc.pisz.plpdf.pisz.plhot-wife.htw.pl
|