Budowa i zasada działania komputera

advertisement
Studia stacjonarne Pedagogika
Budowa i zasada działania komputera
Wykład V
• Karta graficzna
1
dr Artur Bartoszewski - WYKŁAD: Budowa i zasada działania komputera,
Grafika 3D
Grafika 3D
Grafika 3D
 Obiekty 3D stanowią pewien fragment przestrzeni ograniczonej
powierzchniami o różnym stopniu komplikacji. Chociaż każda taka
powierzchnia da się jednoznacznie zdefiniować przy pomocy równań
matematycznych, to ich przetwarzanie pochłonęło by całą dostępną
moc obliczeniową.
 Zagadnienie 3D można w ogromnym stopniu uprościć rozkładając
każdą z takich powierzchni na odpowiednio dużą (zależną od stopnia
dokładności) liczbę wielokątów płaskich. Najprostszym z wielokątów
jest oczywiście trójkąt i ten jest na ogół używany do aproksymacji.
 Każdy wierzchołków trójkąta jest jednoznacznie zawieszony w
przestrzeni 3D przy pomocy trzech współrzędnych (x, y, z). Cały obiekt
3D przechowywany jest w spójnym fragmencie pamięci a operacje na
nim (przemieszczenie, obrót, skalowanie itp.) sprowadzają się do
rachunku macierzowego. Algorytm przesunięcia takiej bryły da się
zapisać w kilku linijkach kodu maszynowego.
Rendering a Ray Tracing
Ray tracing (dosłownie śledzenie promieni) to
technika renderowania fotorealistycznych scen 3D.
 Obecnie najpopularniejszy z systemów
profesjonalnych.
 Jest dość wolny, lecz daje dobre rezultaty, systemy
dające lepsze efekty są zwykle o wiele wolniejsze często używa się systemów mieszanych.
Rendering a Ray Tracing
Algorytm Ray Tracing-u
Algorytm ray tracingu wygląda następująco:
1.
Z punktu w którym znajduje się kamera wypuszczany jest promień
(półprosta) w kierunku rzutni. Rzutnia podzielona jest na piksele,
jeden (lub więcej) promieni przechodzi przez każdy piksel.
2.
Wyszukiwane są wszystkie przecięcia promienia z obiektami.
3.
Spośród uzyskanych punktów przecięć wybiera się ten, który leży
najbliżej kamery.
Rendering a Ray Tracing
4. Punkt ten jest następnie przetwarzany.
a) Najpierw są wypuszczane promienie z tego punktu w kierunku
każdego ze świateł na scenie, by określić które oświetlą
przetwarzany punkt. Na tym etapie można wyznaczyć cienie,
testując czy odcinek pomiędzy punktem przecięcia, a światłem
przecina jakiś obiekt - innymi słowy, czy jakiś obiekt zasłania
konkretne światło.
b) Następnie dla wszystkich "widocznych" świateł, oblicza się, jasność
punktu. Dodatkowo uwzględnia się takie parametry jak kolor
punktu (np. odczytany z tekstury).
Rendering a Ray Tracing
5. Jeśli obiekt jest przezroczysty to z tego punktu mogą zostać
wypuszczone dodatkowe promienie (rekursywny ray tracing) - może to
być zarówno promień odbity, jak i promień załamany - dla tych
promieni algorytm jest powtarzany od punktu 2.
a) Wówczas, nim przypisze się kolor danemu pikselowi, przetwarzane
jest drzewo promieni;
b) w programach, które umożliwiają rekursywny ray tracing jest
możliwe ograniczenie głębokości drzewa.
Programy wykorzystujące elementy Ray Tracingu
Najpopularniejszymi programami są 3D Studio Max, LightWave ,
darmowy Blender, POV-Ray.
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
w
anizotropowe
trójwymiarowej
grafice
to
technika
komputerowej,
wyostrzania
które
tekstur
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ą być 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ść obiektów – wykorzystuje mechanizm
mieszania barw; operacja ta polega na manipulacji barwą piksela już
obliczonego i spoczywającego w pamięci obrazu; jego parametry
są 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łóceń jest pojawienie się na
obrazie złudzenia nierówności powierzchni.
 Efekt jest bardzo przekonujący, większość
ludzi nie zwraca uwagi na fakt, że brzegi
obiektu pozostały "niezakłócone".
Efekty specjalne



Efekty atmosferyczne
 Mgła, tęcza
Efekty przestrzenne
 Dym, ogień ,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
SLI
SLI – podział obrazu
SLI
Crosfire - trzy możliwości renderingu
Scissor: Obraz jest dzielony w poziomie na 2 połowy. Podobnie jak
w przypadku nVidii linia podziału przesuwa się w zależności od
obciążenia obu kart. Pierwsza karta renderuje górną część ramki, a
druga dolną.
Crosfire - trzy możliwości renderingu
Alternate Frame Rendering: karty renderują obraz naprzemiennie,
podobnie jak u nVidii.
Crosfire - trzy możliwości renderingu
CrossFire działa najlepiej jeżeli funkcja Catalyst A.I jest aktywna.
Jeśli jest wyłączona domyślnie aktywowane jest tryb SuperTiling
dla gier Direct3D lub Scissor dla gier OpenGL.
Jeśli jest włączona sterowniki mogą dodatkowo włączyć tryb AFR.
Crosfire
Ja widziny w większości wypadków potrzebna jest karta CrossFire
Edition. Zawiera ona w sobie układ Silicon Image, który będąc
przekaźnikiem TDMS łączy obraz w całość. W tym przypadku
musimy też łączyć karty dodatkowym kablem.
Crosfire
GPU + CPU
Przykład procesora graficznego
zintegrowanego z procesorem CPU
Intel Core i5, i5-660, 3.33GHz, 4MB,
LGA1156,
Core i5; Kod procesora: 660; Typ gniazda
procesora: LGA1156; Obsługa technologii
Hyper-Threading:
Zintegrowany układ graficzny: Intel Graphics
Media Accelerator HD - 733MHz,
http://images.google.pl/
imgres?imgurl=http://
API dla grafiki 3D
VS
Potok przetwarzania grafiki 3D
DirectX
Interfejs programowania aplikacji API
(ang. Application Programming Interface)
umożliwia twórcom oprogramowania
pisanie programów pracujących wydajnie
i niezawodnie na różnych platformach, a
procedurom sprzętu pisanie sterowników
współpracujących
z
dowolnym
oprogramowaniem.
 API nadzoruje wymianę informacji pomiędzy
zainstalowaną w komputerze a oprogramowaniem.
kartą
graficzną
 Podstawowe interfejsy API dla grafiki 3D to OpenGL firmy SGI i
Direct3D wchodzący w skład pakietu DirectX firmy Microsoft,.
 Warstwę oprogramowania bliżej związaną z konkretną kartą są
sterowniki. Głównym zadaniem sterowników jest zamiana instrukcji i
danych płynących z interfejsu API na informacje zrozumiałe
bezpośrednio dla danego urządzenia.
Źródło: http://www.frazpc.pl/artykuly/727 DirectX/10,/DirectX/101/i/ DirectX/11/Biblioteki/graficzne, z dnia 07.10.09, autor: Marcin Bieńkowski
DirectX
Mapowanie środowiska (DirectX 7)
Mapowanie środowiska (DirectX 9)
Mapowanie środowiska (DirectX 10)
Mapowanie środowiska (DirectX 10)
Obliczenia „fizyki”
Ogień, dym jest dużym wyzwaniem dla obecnych kart graficznych i CPU bo
przecież to on jest odpowiedzialny za obliczanie fizyki. Karta graficzna (np.
technologia „Nvidia Quantum Effects”) zwalnia procesor z tego zadania. Dzięki
niej wszystkie efekty fizyczne są renderowane przez GPU.
Efekt „Quantum Effects” w nadchodzącej grze World in Conflict
Anti-Aliasing
Full Scene Anti-Aliazing to
mechanizm którego zadaniem jest
wygładzanie krawędzi ukośnych na
całej powierzchni ekranu
Anti-Aliasing
Złącza kart graficznych
D-SUB (Monitor CRT)
S-VIDEO (TV, zarówno
wejście jak i wyjście)
DVI (Digital Video Interface)
Istnieją 3 wersje DVI:
DVI-D (złącze cyfrowe, dla paneli LCD)
DVI-A (złącze analogowe, np.: wyjście TV)
DVI-I (zintegrowane – analogowe i cyfrowe)
Złącza kart graficznych - CRT
D-SUB (CRT)
Rozmieszczenie sygnałów w gnieździe D–SUB
(gniazdo dla monitorów analogowych)
Złącza kart graficznych - DVI
DFP (Digital Flat Panel)
P&D (Plag and Display) – złącze spotykane najczęściej w projektorach
DVI – (Digital Vision Interface) – standard stworzony przez DDWG w
celu ujednolicenia interfejsu zewnętrznych paneli obrazowych
Złącza kart graficznych - HDMI
 High Definition Multimedia Interface (HDMI) jest cyfrowym interfejsem
dla sygnału audio/wideo zdolnym przesyłać pełen strumień danych bez
kompresji.
 Dane wideo przesyłane są z wykorzystaniem technologii TMDS.
Złącza kart graficznych - HDMI
 HDMI pozwala łączyć ze sobą dowolne, zgodne ze standardem,
urządzenia audio/wideo takie jak odtwarzacze DVD, konsole gier,
komputery z monitorem lub telewizorem cyfrowym.
 Obecnie zaczyna wypierać starsze standardy zarówno analogowe (np.: SVideo, SCART, VGA, DVI-A) jak i cyfrowe.
Literatura:
Metzger Piotr - Anatomia PC, wydanie XI, Helion 2007
Wojtuszkiewicz Krzysztof - Urządzenia techniki komputerowej, część I: Jak
działa komputer, MIKOM, Warszawa 2000
Wojtuszkiewicz Krzysztof - Urządzenia techniki komputerowej, część II:
Urządzenia peryferyjne i interfejsy, MIKOM, Warszawa 2000
Komorowski Witold - Krótki kurs architektury i organizacji komputerów, MIKOM
Warszawa 2004
69
dr Artur Bartoszewski - WYKŁAD: Budowa i zasada działania komputera,
Download