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

Podobne dokumenty