Karty graficzne, tworzenie grafiki 3D
Zawartość wykłady: budowa karty graficznej, zasada działania, standardy, parametry, GPU, RAMDAC, magistrale, interfejsy, złącza, OpenGL, DirectX, SLI, Crossfire, bufor ramki, potok graficzny, producenci: nvidia, ATI, tworzenie grafiki 3D, shadery, bufor Z, clipping, culling, renderowanie, filtrowanie anizotropowe, MIP mapping, antyaliasing, kanał alfa, jaką kartę kupić?
- Karta graficzna
- (ang. graphics card, czasami określana też mianem akcelerator grafiki) podzespół komputera, którego zadaniem jest wizualizacja danych cyfrowych w postaci grafiki komputerowej widocznej na monitorze lub innym urządzeniu multimedialnym.
Karta graficzna przyjmuje zazwyczaj postać karty rozszerzeń montowanej w magistrali wejścia/wyjścia na płycie głównej. Opcjonalnie układ graficzny może być zintegrowany z chipsetem płyty głównej.
Budowa karty graficznej
Mimo dużego zróżnicowania na rynku kart graficznych podstawowe elementy są identyczne w każdej karcie:
- procesor graficzny GPU
- pamięć RAM
- konwerter cyfrowo-analogowy RAMDAC
- złącze magistrali
- BIOS karty
- zestaw wyjść (złącz)
- wbudowany akcelerator 3D
Procesor GPU
Nazywany też koprocesorem, gdyż początkowo jego podstawowym zadaniem było odciążenie głównego procesora CPU od obliczeń związanych z przetwarzaniem grafiki 2D oraz 3D (Two/Three Dimensional Graphics).
- Procesor graficzny GPU
- (ang. Graphics Processing Unit, koprocesor graficzny) jest główną jednostką obliczeniową każdej karty graficznej; od jego wydajności w dużej mierze zależy wydajność całego podsystemu graficznego w komputerze.
Współczesne wyrafinowane układy graficzne GPU wiele operacji wykonują wielokrotnie szybciej niż tradycyjne mikroprocesory, dlatego coraz częściej mówimy o nich General Purpose GPU - procesor graficzny do obliczeń ogólnego przeznaczenia.
Pamięć RAM karty graficznej
- Pamięć operacyjna RAM karty graficznej
- (ang. Random Access Memory, pamięć o dostępie swobodnym) pamięć operacyjna stanowiąca przestrzeń roboczą procesora GPU, przechowuje aktualnie przetwarzane dane graficzne.
Od wielkości pamięci RAM karty zależy liczba wyświetlanych kolorów w grafice 2D oraz jakość i rozmiary nanoszonych tekstur w grafice 3D. Równie ważne parametry pamięci:
- częstotliwość taktowania pamięci [MHz], np. 1800 MHz
- szerokość szyny pamięci [bit], która określa ile bitów jednocześnie może przesyłać pamięć, np. 256 bitów
Jeżeli częstotliwości taktowania karty podano jako dwie liczby, to pierwsza wskazuje na taktowanie układu GPU, druga pamięci – np. 700/1800 MHz. Najnowsze karty posiadają pamięć oznaczaną jako GDDR (DDR5 SDRAM).
Układ RAMDAC
- Konwerter cyfrowo-analogowy
- (ang. Random Access Memory Digital-to-Analog Converter) zamienia sygnał cyfrowy generowany przez kartę graficzną na sygnał analogowy (w którym napięcie elektryczne jest proporcjonalne do wartości reprezentowanej liczby cyfrowej) możliwy do wyświetlenia na analogowym monitorze, telewizorze lub rzutniku.
Magistrale kart graficznych
- Magistrala wejścia/wyjścia
- czyli rodzaj złącza na płycie głównej umożliwiający komunikację GPU z pozostałymi komponentami komputera, np. CPU oraz systemową pamięcią RAM.
Kartę graficzną umieścić można w następujących magistralach (zależnie od szybkości przesyłania danych):
- PCI Express - do 16 GB/s
- AGP (ang. Accelerated Graphics Port) - do 2 GB/s
- PCI (ang. Peripheral Component Interconnect) - do 0.5 GB/s
- starsze magistrale: VESA, MCA, ISA
Przepustowość magistral
- PCI - 133 MB/s
- AGP v1.0 1x - 266 MB/s
- AGP v1.0 2x - 533 MB/s
- AGP v2.0 4x - 1066 MB/s
- AGP v3.0 8x - 2133 MB/s
- PCIe v1.0 1x - 250 MB/s
- PCIe v1.0 2x - 500 MB/s
- PCIe v1.0 4x - 1000 MB/s
- PCIe v1.0 8x - 2000 MB/s
- PCIe v1.0 16x - 4000 MB/s
- PCIe v2.0 16x - 8000 MB/s
- PCIe v3.0 16x - 16000 MB/s
BIOS karty graficznej
- BIOS karty graficznej
- (ang. Basic Input/Output System, podstawowy system wejścia/wyjścia) umożliwia działanie karty graficznej zanim zostanie wczytany sustem operacyjny oraz pozwala na wykonywanie instrukcji karty przez oprogramowanie systemowe.
Wyjścia karty graficznej
Złącze analogowe DSUB
Złącze popularne w czasach monitorów CRT - analogowe, posiada 15 pinów. Niepożądane w monitorze LCD, ponieważ zachodzi wówczas dwukrotna konwersja sygnału: zamiana sygnału cyfrowego na analogowy w karcie graficznej oraz zamiana sygnału analogowego na cyfrowy w monitorze. Podwójna konwersja powoduje straty w jakości obrazu i zwiększa podatność na zakłócenia.
Złącze cyfrowe DVI
DVI (ang. Digital Video Interface) - cyfrowy standard przesyłania sygnału wideo, w odmianach DVI-I oraz DVI-A umożliwia także przesyłanie sygnału analogowego. Kabel łączący monitor z komputerem nie powinien być dłuższy niż 5m. Rodzaje złącza DVI:
- DVI-D - obraz prawdziwie cyfrowy, przesyłany między cyfrowym wyjściem karty graficznej a cyfrowym wejściem monitora
- DVI-A - używany do podłączenia nowoczesnej karty graficznej z wyjściem DVI do monitora z wejściem analogowym
- DVI-I - zapewnia możliwość przesyłu sygnału analogowego źródła do analogowego monitora jak również cyfrowego sygnału źródła do cyfrowego monitora
Różnica pomiędzy wejściami typu Single Link a Dual Link polega na zwiększonej dwukrotnie mocy, szybkości i jakości transmisji dla wejść Dual Link. Czy można podłączyć analogową kartę graficzną do cyfrowego monitora? Tak, ale należy użyć elektronicznego konwertera VGA to DVI-D.
Złącze cyfrowe HDMI
Jest to cyfrowy standard przesyłania sygnału audio/wideo umożliwiający transmisję w wysokiej rozdzielczości (ang. High Definition Multimedia Interface) i dźwięku wielokanałowego. Stosowany w odtwarzaczach DVD, Blu-Ray, telewizorach typu LCD i plazmowych oraz konsolach do gier. Maksymalna długość okablowania: 15m
Złącze cyfrowe DisplayPort
Uniwersalny interfejs cyfrowy (zatwierdzony w maju 2006) opracowany przez VESA (ang. Video Electronics Standards Association). Głównym zamierzeniem nowego standardu jest połączenie komputer-monitor lub komputer-system kina domowego (w tym np. projektory, telewizory). DisplayPort już w swojej pierwszej wersji 1.0 osiągnął to, co HDMI udało się osiągnąć dopiero w wersji 1.3b czyli: maksymalna rozdzielczość 2560x1600, 24 bitowa głębia kolorów, maksymalna przepustowość sygnału w granicach około 10 Gb/s. Pełną specyfikację jesteśmy w stanie osiągnąć na kablu o długości 15 metrów, przy dłuższych kablach rozdzielczość zostaje zmniejszona do 1920x1080.
Sterowniki karty graficznej
Często niedoceniany i lekceważony element wyposażenia karty, mający jednak bardzo duży wpływ na wydajność podsystemu graficznego. Sterownik jest optymalizowany pod kątem współpracy z konkretnym układem graficznym GPU. Należy pamiętać o pobraniu ze strony producenta najnowszej wersji sterowników do posiadanej karty graficznej.
Producenci układów graficznych
Interfejsy API
- API
- (ang. Application Programming Interface) biblioteki stanowiące pomost pomiędzy oprogramowaniem multimedialnym a sprzętem typu karta graficzna, karta dźwiękowa. DirectX jest produktem firmy Microsoft, dostępnym dla systemów Windows oraz konsoli XBox. OpenGL to otwarta biblioteka graficzna - jest to zestaw funkcji umożliwiających budowanie złożonych trójwymiarowych scen z podstawowych figur geometrycznych. OpenGL dostępny jest w wielu systemach operacyjnych.
Zestawienie parametrów karty
- rodzaj magistrali, np. PCI Express, AGP
- wielkość i rodzaj pamięci, np. 512 MB DDR4
- szerokość magistrali pamięci, np. 256 bit
- częstotliwość pracy pamięci w grafice 3D, np. 1800 MHz
- częstotliwość pixel shader, np. 1625 MHz
- częstotliwość pracy procesora graficznego, np. 700 Mhz
- częstotliwość pracy układu RAMDAC, np. 400 MHz
- rodzaj wyjść, np. DSUB, DVI, HDMI
- możliwość pracy w trybie SLI lub CrossFire
- zgodność programowa: DirectX, OpenGL, Shader Model
- producent układów graficznych, np. ATI, NVIDIA
Kilka kart graficznych?
- Tryb SLI
- (ang. Scalable Link Interface) rozwiązanie firmy NVIDIA, w którym obraz generowany jest przez co najmniej dwie karty graficzne połączone mostkiem SLI. Aby korzystać z trybu SLI, należy posiadać płytę główną oraz karty graficzne wspierające tą technologię. Rodzaje SLI to: Quad SLI (dwie karty graficzne mające po dwa układy GPU), 3-Way SLI (generowanie obrazu przez 3 karty graficzne) oraz Hybrid SLI (generowanie obrazu przez kartę graficzną w złączu PCIExpress we współpracy z chipsetem graficznym na płycie głównej).
- Tryb CrossFire
- (ang. skrzyżowany ogień) konkurencyjne rozwiązanie firmy ATI. Aby skorzystać z trybu CrossFire należy posiadać płytę główną oraz karty graficzne wspierające technologię. Początkowo karty działały w trybie master/slave, nowe płyty główne pozwalają łączyć karty bez konieczności korzystania z karty master. Karty rozszerzeń również połączone są mostkiem. Rodzaje CrossFire to: CrossFire (generowanie obrazu przez dwie karty graficzne), CrossFireX (generowanie obrazu nawet przez 4 karty graficzne), Hybrid CrossFireX (generowanie obrazu przez kartę graficzną w złączu PCI-E we współpracy z chipsetem graficznym na płycie głównej).
Bufor ramki, potok graficzny
- Bufor ramki
- (ang. frame buffer) jest częścią pamięci RAM karty graficznej przeznaczoną do przechowywania informacji o pojedynczej ramce (klatce) obrazu. W buforze przechowywane są informacje o wartości każdego piksela tworzącego ramkę.
- Potok graficzny
- (ang. graphics pipeline) droga przepływu danych pomiędzy interfejsem karty graficznej a buforem ramki.
Tworzenie grafiki 3D
Najważniejszym komponentem w procesie tworzenia grafiki 3D jest procesor graficzny GPU. Proces tworzenia kolejnych ramek obrazu jest sekwencyjny. Płynność ruchu uzyskuje się przy generowaniu około 30 klatkach na sekundę. W grach komputerowych płynność ruchu uzyskamy przy min. 60 fps. Procesor analizuje dane wejściowe, aby stwierdzić z jakim rodzajem danych wejściowych ma do czynienia:
- z grafiką wektorową (współrzędne wierzchołków)
- grafiką rastrową (piksele)
- kodem programu
Zależnie od rodzaju danych wejściowych, wykorzystywany jest inny rodzaj cieniowania:
- Vertex Shader (cieniowanie wierzchołkowe) - jego zadaniem jest transformacja położenia wierzchołka w wirtualnej przestrzeni 3D i na współrzędne 2D na ekranie. Operuje na takich własnościach wierzchołków jak: położenie, kolor i współrzędne tekstur, ale nie może tworzyć nowych wierzchołków
- Geometry Shader (cieniowanie geometryczne) – pozwala na dodawanie lub usuwanie wierzchołków z siatki wierzchołków (ang. mesh). Może być używane do proceduralnego tworzenia obiektów geometrycznych albo do dodawania objętościowych detali istniejących siatek wierzchołków
- Pixel Shader (cieniowanie pikseli) – odpowiada za wyliczanie koloru pikseli. Direct3D używa terminu pixel shader, a OpenGL fragment shader. Cieniowanie pikseli jest zazwyczaj używane do oświetlenia sceny 3D
- Teksturowanie – proces nakładania bitmap na siatkę mesh obiektu 3D
- Bufor Z
- (ang. Z-buffer) miejsce w pamięci (osobne dla każdego piksela) przeznaczone na zapamiętanie aktualnej wartości współrzędnej Z piksela. Wielkość bufora Z decyduje o precyzji widoczności (obecnie stosuje się Z-bufory 32-bitowe).
- Clipping
- (ang. podcinanie) obiekty znajdujące się poza polem widzenia zostają wyeliminowane ze sceny.
- Culling
- (ang. wybijanie) obiekty zasłonięte przez inne obiekty zostają wyeliminowane ze sceny.
- Renderowanie
- nazywane też obrazowaniem lub prezentacją, obejmuje analizę modelu danej sceny 3D oraz utworzenie na jej podstawie dwuwymiarowego obrazu wyjściowego w formie statycznej lub animacji. Podczas renderowania rozpatrywane są m.in. odbicia, cienie, załamania światła, wpływy atmosfery, efekty wolumetryczne itd. Jest to bardzo czasochłonna operacja. Renderowanie może być przeprowadzane w praktycznie każdym programie do tworzenia grafiki trójwymiarowej, nie będącym wyłącznie programem do modelowania (modelerem, mesherem). Przykładami takich programów są np. 3ds Max, Cinema 4D, LightWave 3D, Blender.
Oświetlenie sceny 3D
- Filtrowanie anizotropowe
- (ang. anisotropic filtering) metoda zapewniająca bardziej realistyczne odwzorowanie powierzchni skośnych, znajdujących się pod dużymi kątami.
- MIP Mapping
- technika teksturowania wykorzystywana w grafice trójwymiarowej, polegająca na wykorzystaniu tektur o niskiej i wysokiej rozdzielczości zależnie od odległości obserwatora od obiektu.
- Antyaliasing
- proces mający na celu zniwelowanie efektu aliasingu. W wypadku grafiki polega to na dodawaniu pikseli do rysunku, które zmniejszają kontrast pomiędzy obiektem a tłem, przez co ten pierwszy wydaje się bardziej gładki (zaokrąglony).
- Bufor matrycowy
- (ang. stencil buffer) bufor przechowujący informacje o pixelach pozostających nieruchomo w scenie 3D lub pozostających w stałym, lecz względnym położeniu wobec jakiegoś obiektu. Pozwala to zmniejszyć obszar renderowania. Przykłady użycia: kokpity w symulatorach, cienie lub efekty postaci w grach.
- Kanał alfa (przenikanie)
- (ang. alpha blending) w grafice komputerowej jest kanałem, który definiuje przezroczyste obszary grafiki. Wartość zerowa oznacza całkowitą przezroczystość, zaś maksymalna - pełne zabarwienie.
Źródła
W przygotowaniu niniejszego wykładu pomogły mi między innymi następujące źródła:
- Urządzenia techniki komputerowej. Podręcznik do nauki zawodu technik informatyk. Helion. Tomasz Kowalski
- Urządzenia techniki komputerowej. WSIP. Tomasz Marciniuk
- Wikipedia
Komentarze
Czy macie jakieś pytania, sugestie, uwagi? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać: kontakt@pasja-informatyki.pl. Dziękujemy za poświęcony czas - to dzięki Wam serwis staje się coraz lepszy!