Karty graficzne, tworzenie grafiki 3D

MZ | 15-04-2017 | 08:07:23

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.

Karta graficzna

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
Budowa karty

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.

GPU

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.
RAMDAC

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
Magistrale

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.
BIOS

Wyjścia karty graficznej

Złącza przykładowej karty

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.

DSUB VGA

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
DVI

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

HDMI

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.

DisplayPort

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

Producenci kart 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.
API

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).
SLI
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).
CrossFire

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
  • Vertex Shader
  • 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
Teksturowanie
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).
Bufor Z
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.
Clipping, culling
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

Źródła światła
Filtrowanie anizotropowe
(ang. anisotropic filtering) metoda zapewniająca bardziej realistyczne odwzorowanie powierzchni skośnych, znajdujących się pod dużymi kątami.
Filtrowanie anizotropowe
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.
MIP Mapping
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).
Antyaliasing
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.
Bufor matrycowy
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.
Kanał alfa

Ź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

Zobacz także

Daj się zaskoczyć! Poniżej wylosowałem dla Ciebie pięć wpisów z całego archiwum bloga:

Komentarze

Disqus
Facebook
Pasja informatyki