Architektura systemów komputerowych
Transkrypt
Architektura systemów komputerowych
Architektura systemów komputerowych dr Artur Bartoszewski Karty graficzne - historia VGA (SVGA) – Obsługa pamięci Dla kart VGA podstawową metodą odwzorowania ekranu jest metoda płatowa (ang. planar, bit mapped). Pamięć obrazu dzielona jest na płaty (bloki) po 64 KB każdy. W każdym bloku jednemu bitowi odpowiada jeden punkt. VGA – 4 bloki SVGA – minimum 8 Dzięki takiej strukturze 256 KB (dla kartu VGA) pamięci obrazu zajmuje 64 KB przestrzeni adresowej. Konsekwencją przyjętej organizacji pamięci jest utrudniony dostęp do danych. Zapis lub odczyt wymaga dodatkowo programowania rejestrów układu graficznego. Układ RAMDAC DAC – przetworniki cyfrowo-analogowe (częściej oznaczane D/A lub C/A) Wyjścia analogowe (DSUB, S-VIDEO, DVI-A) Układ RAMDAC Do wyjścia cyfrowego W przypadku wyjść cyfrowych, przetwoeniki DAC (cyfrowoanalogowe) nie są potrzebne – konieczne jest umieszczenie układu formatującego sygnał cyfrowy zgodnie z wymaganiami interfejsu. Wyjścia cyfrowe (HDMI, DVI-I, DVI-D) VGA (SVGA) Pamięd graficzna Rozdzielczość oraz głębia kolorów wyświetlanego obrazu zależna jest od ilości pamięci zamontowanej na karcie graficznej. Przykładowo: dla trybu 1024 x 768 w 16 milionach kolorów (24 bity) (rozdzielczość pozioma) x (rozdzielczość pionowa) x (bitów na punkt) 1024 x 768 x 24 bity = 18874368 bity = 2359296 B = 2,24 MB Pamięć graficzna dla karty VGA wynosiła 256 KB Karty SVGA posiadają co najmniej 512 KB pamięci Układ RAMDAC - parametry VGA (SVGA) – Schemat kolorów Dla zachowania zgodności pierwsze 16 kolorów sterownika VGA odpowiada szesnastu kolorom sterownika EGA. Kolejnym numerom odpowiadają następujące kolory: 0 - czarny (black) 1 - niebieski (blue) 2 - zielony (green) 3 - siny (cyan) 4 - czerwony (red) 5 - fioletowy (magenta) 6 - brązowy (brown) 7 - jasnoszary (light gray) 8 - szary (gray) 9 - jasnoniebieski (light blue) 10 - jasnozielony (light green) 11 - jasnosiny (light cyan) 12 - jasnoczerwony (light red) 13 - różowy (pink) 14 - żółty (yellow) 15 - biały (white) Grafika 3D na komputerze domowym Akceleratory graficzne Etapy powstawania grafiki 3D 1. Obliczenie sceny: a) Obliczanie współrzędnych obiektów podlegających przemieszczeniom, takim jak obrót, przesunięcie itp, b) Przeskalowywanie obiektów, których rozmiary zmieniają się w trakcie ruchu, 2. Usuwanie fragmentów brył niewidocznych dla obserwatora, 3. Wyliczenie oświetlenia obiektów. 4. Obliczenia barwy obiektów - TEKSTUROWANIE 5. Projekcja obrazu wypadkowego na płaszczyznę 2D, a) Antyaliasing - wygładzanie krawędzi (opcjonalne) Akceleratory graficzne Źródło: http://www.chip.pl/artykuly/technika/2008/11/ tak-dzialaja-najaszybsze-karty-graficzne, z dnia 18.10.09, autor: Piotr Lisowski Trójkąty, pasy i wachlarze Trójkąty to podstawa: Pasy i wachlarze zmniejszają niezbędną ilość danych: Pierwszy etap - tworzenia grafiki 3D - Geometria Obiekt 3D... ...następnie translacji... ..najpierw poddawany jest skalowaniu... ...a na końcu rotacji Etap drugi - usuwanie powierzchni niewidocznych • Z- bufor • Ray tracing • Metody dla figur wypukłych (sześcian) Etap trzeci – cieniowanie (oświetlenie) Etap trzeci - cieniowanie Cieniowanie Gorauda Etap trzeci - cieniowanie Cieniowanie Gorauda Etap czwarty - nakładanie (mapowanie) tekstur piksel – element obrazu (na ekranie, w pamięci lub w pliku) teksel - "Texture Element" Nakładanie tekstur – korekcja perspektywy Zjawisko skrócenia perspektywicznego Odwzorowanie punktu przestrzeni ekranu na punkt przestrzeni tekstury Nakładanie tekstur – sposoby teksturowania Przyporządkowanie najbliższego punktu (Peak Nearest) Filtrowanie bilinearne (Bilinear Interpolation) MIP-Mapping Filtrowanie trilinearne Filtrowanie anizotropowe Mieszanie kolorów (blending) Filtrowanie dwuliniowe (bilinear filtering) Próbkowanie punktowe (po lewej) i filtrowanie dwuliniowe (po prawej) Filtrowanie dwuliniowe (bilinear filtering) Próbkowanie punktowe (po lewej) i filtrowanie dwuliniowe (po prawej) Filtrowanie dwuliniowe, trójliniowe, anizotropowe Filtrowanie dwuliniowe (po lewej) i filtrowanie trójliniowe (po prawej) Filtrowanie dwuliniowe, trójliniowe, anizotropowe Filtrowanie anizotropowe to technika wyostrzania tekstur w trójwymiarowej grafice komputerowej, które znajdują się w dalszej odległości od kamery (lub postaci sterowanej przez gracza). Technika ta jest bardziej zaawansowana niż filtrowanie trilinearne Uśredniane punkty nie układają się w kwadrat ze środkiem w punkcie, dla którego właśnie ustalany jest kolor, lecz w kształt uzależniony od położenia na ekranie teksturowanego przedmiotu. Dzięki takiej technice likwidowane są zniekształcenia tekstur na przedmiotach położonych ukośnie względem płaszczyzny ekranu. Filtrowanie dwuliniowe, trójliniowe, anizotropowe Po lewej filtrowanie trójliniowe, po prawej filtrowanie anizotropowe. MIP Mapping MIP mapping (Multum in Parvam) - z łac. "wiele w niewielu") Poziom 0 128x128 1 64x64 2 32x32 3 16x16 MIP Mapping Po lewej płaszczyzna poteksturowana bez mipmappingu, po prawej z zastosowaniem techniki mipmappingu Grafika 3D – Efekty specjalne Mgła (fog) – polega na sterowaniu współczynnikiem przejzystości tekstr (blending) Depth Cueing – Stopniowe obniżenie jasności obiektów w miarę oddalania się od obserwatora Bump Map – symulowanie powierzchni o wypukłej (tłoczonej) fakturze – ta sama mapa nakładana jest dwukrotnie, z tym, że za drugim razem wprowadzane jest lekkie przesunięcie (zależne od oświetlenia) Environment Map – symulacja błyszczących powierzchni w których odbija się otoczenie – algorytm ten pochłania ogromne ilości mocy obliczeniowej, gdyż współrzędne tekstur nie mogą byd przypisane do wierzchołków trójkątów, ale są liczone dynamicznie dla każdej rasteryzowanej sceny Grafika 3D – Efekty specjalne Lighting Map – symuluje odblaski rzucane na otoczenie przez silne źródło światła Cienie – symulacja sieni rzucanych przez obiekty również wymaga podwójnego, dynamicznego teksturowania Alpha Blending - przejrzystośd obiektów – wykorzystuje mechanizm mieszania barw; operacja ta polega na manipulacji barwą piksela już obliczonego i spoczywającego w pamięci obrazu; jego parametry sa pobierane i mieszane z innym kolorem Mapowanie wypukłości (bump mapping) Mapowanie wypukłości (bump mapping) Mapowanie wypukłości (ang. bump mapping) – w grafice 3D technika teksturowania, która symuluje niewielkie wypukłości powierzchni, bez ingerencji w geometrię obiektu trójwymiarowego. Technika polega na użyciu tekstury, która nie jest jednak bezpośrednio wyświetlana, ale powoduje lokalne zakłócenia (obrót) wektora normalnego. Rezultatem zakłóceo jest pojawienie się na obrazie złudzenia nierówności powierzchni. Efekt jest bardzo przekonujący, większośd ludzi nie zwraca uwagi na fakt, że brzegi obiektu pozostały "niezakłócone". Efekty specjalne • Efekty atmosferyczne – Mgła, tęcza • Efekty przestrzenne – Dym, ogieo ,pochłanianie... • Inne Budowa karty graficznej Akceleratory graficzne Źródło: http://sasq.programuj.com Akceleratory graficzne Układy takie lokalizuje się (w odróżnieniu od koprocesora arytmetycznego) nie w rejonie procesora ale blisko przetwarzanych danych (pamięci obrazu) - na karcie graficznej. Biorą one na siebie fragment procesu dekodowania obrazu video, przez co zwalniają jednostkę centralną (CPU) z ogromnej ilości operacji. Odzyskana moc obliczeniowa stawiana jest do dyspozycji systemu operacyjnego a odciążone magistrale systemowe umożliwiają szybszy dostęp do zasobów: pamięci RAM, dysków i peryferii. Budowa akceleratora graficznego Procesor (CPU) Interfejs (PCI-E, lub AGP) Silnik 2D Kości pamięci zainstalowane na karcie graficznej 256bitowa magistrala danych Interfejs graficzny Hyper Z HD Silnik geometryczny Smoothvision HD Silnik ustawień Silnik renderowania 3D Silnik przetwarzania obrazu wideo Źródło sygnału wideo Źródło: Metzger P., Anatomia PC., Wydanie XI Helion, Gliwice 2007, ISBN: 978-83-246-1119-5 Budowa akceleratora graficznego 1. Procesor wysyła do układu graficznego żądanie wyświetlenia w danym miejscu na monitorze grupy obiektów trójwymiarowych. 2. Sygnał kierowany jest do magistrali danych. 3. Elementy, które są niewidoczne trafiają do jednostki Hyper Z. 4. Pozostałe dane wędrują do silnika geometrycznego (Vertex Engine), po czym zostają poddane wstępnej obróbce i trafiają do silnika ustawień (Setup Engine). 5. Dane obliczeniowe obiektów, które na tym etapie także zostały uznane za niewidoczne, kierowane są do Hyper Z. 6. Pozostałe elementy poddawane są ostatecznej obróbce w jednostce nazwanej Smmoothvision HD czyli jednostce która poprawia jakość obrazu, np. jednostka anti-aliasingu. 7. Następnie gotowe już obiekty trafiają do interfejsu graficznego, w którym na podstawie wyliczonych danych generowany jest obraz. 8. Stąd przesyłany jest on do urządzenia wyświetlającego (np. monitora lub telewizora) przez złącze VGA, DVI, S-VIDEO czy HDMI. Źródło: Metzger P., Anatomia PC., Wydanie XI Helion, Gliwice 2007, ISBN: 978-83-246-1119-5 Karta graficzna ze zintegrowanymi shader-ami Shader – krótki program komputerowy często napisany w specjalnym języku (shader language), który w grafice trójwymiarowej opisuje właściwości pikseli oraz wierzchołków. Pod tą nazwą rozumiemy też programowalną jednostkę wykonującą wyżej wymienione operacje. Technologia ta zastąpiła stosowaną wcześniej jednostkę T&L. Wyróżniamy dwie klasy shaderów: Vertex Shader - Cieniowanie wierzchołkowe – uruchamiane jest raz dla poszczególnych przetwarzanych wierzchołków. Jego zadaniem jest transformacja położenia wierzchołka w wirtualnej przestrzeni 3D na współrzędne 2D na ekranie. Pixel Shader lub Fragment Shader - Cieniowanie pikseli – jest programowalną jednostką odpowiadającą za wyliczanie koloru pikseli. Współcześnie zastąpione przez shader-y zunifikowane. http://images.google.pl/ imgres?imgurl=http:// Karta graficzna ze zintegrowanymi shader-ami http://images.google.pl/ imgres?imgurl=http:// Karta graficzna ze zintegrowanymi shader-ami www.overclock3d.net Karta graficzna ze zintegrowanymi shader-ami www.overclock3d.net Karty dźwiękowe Karta dźwiękowa Rozwój kart dźwiękowych Covox Rozwój kart dźwiękowych AdLib Rozwój kart dźwiękowych Gravis Ultrasound Rozwój kart dźwiękowych Sound Blaster - firmy Creative, karta która powstała 1989 roku. W przeciwieństwie do Adlib-a potrafi generować poza syntezą fm także digitalizowany dźwięk mono o częstotliwości próbkowania ok. 15 kHz (Oczywiście pracowała w "mono"), oraz nagrywać sygnał z mikrofonu lub wejścia liniowego. Sound Blaster nie miał cyfrowego miksera, głośność trzeba ustawiać pokrętłem z tyłu karty. Na karcie znajdziemy interface do jojsticka - co później stało się standardem. Karta oczywiście na 8-bitowej szynie ISA. Przez długi czas niekwestionowany standard - każda szanująca się karta i gra była i praktycznie jest z nią zgodna. Karta dźwiękowa – schemat (tory przetwarzania dźwięku) Karta dźwiękowa – schemat (tory przetwarzania dźwięku) plik PCM plik MOD wejścia wyjścia plik MIDI ADC – przetwornik analogowo-cyfrowy DAC – przetwornik cyfrowo-analogowy FDP – filtr dolnoprzepustowy FM – układ syntezy FM (synteza dźwięku poprzez modulację częstotliwości) WaveTable – tablica próbek dzwięku dla syntezy MIDI Karta dźwiękowa – schemat (wersja II ) Procesor DSP Procesor sygnałowy DSP (ang. Digital Signal Processor) służy do cyfrowego przetwarzania sygnałów. Prostym przykładem zastosowania procesora DSP umieszczonego na karcie dźwiękowej jest stworzenie efektu pogłosu lub echa: ciąg cyfrowych próbek, który procesor przesyła do przetwornika C/A, zapamiętywany jest dodatkowo w pamięci. Ciąg ten wyczytany z pamięci z pewnym opóźnieniem przesyłany jest również na wejście przetwornika C/A. W ten sposób na wyjściu przetwornika pojawiają się dwa sygnały analogowe o tym samym brzmieniu, przesunięte w czasie Synteza FM Synteza FM pozwala na generowanie programowe dźwięków. Metoda ta polega na wykorzystaniu interferencji dwóch przebiegów o nieznacznie różniących się częstotliwościach. Synteza FM OPERATOR Podstawowym składnikiem syntezatora FM jest operator zbudowany z: oscylatora, generatora obwiedni, generatora efektów vibratto i tremmolo sterownika głośności filtru dolnoprzepustowego. Zintegrowany kodek dźwięku AC’97 MIDI Dziękuję za uwagę i zapraszam na ćwiczenia