Preview only show first 10 pages with watermark. For full document please download

Budowa I Zasada Działania Komputera

   EMBED


Share

Transcript

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,