FrazPC.pl - Programy - Pogoda - Gry - Hosting


Aktualności Programy Artykuły GSM RTV Board
Intel Pineview | HTC HD2 | Westmere | Profil | Loguj | Stats |


Artykuły



09-02-2010


Technologie: NVIDIA Fermi GF100

Technologie: NVIDIA Fermi GF100

Funkcjonalność i możliwości kart graficznych NVIDIA GF100 Fermi
 
W chwili premiery architektury GF100 znanej też pod kodową nazwą Fermi na naszych łamach przedstawiliśmy relację z odbywającej się podczas targów CES konferencji dotyczącej nowych kości graficznych NVIDII (patrz: http://www.frazpc.pl/artykuly/820/Technologie/Architektura/Fermi/NVIDIA/GF100). W relacji skupiliśmy się wówczas na architekturze. Warto jednak uzupełnić te informacje o opis funkcjonalności i możliwości nowych układów 3D – tym bardziej, że NVIDIA udostępniła już publicznie, w dobrej jakości, materiały i dokumenty ze wspomnianej konferencji.
 
Oczywiście, uczestnicy konferencji Fermi Deep Dive, w tym redakcja FrazPC, dysponowali już wcześniej również tymi materiałami, ale były one spersonalizowane i co ciekawe, w taki sposób, że uniemożliwiały swobodną publikację. Otóż przez wszystkie slajdy w poprzek ciągnął się napis z danymi osobowymi uczestnika konferencji, dlatego nikt praktycznie nie opublikował tych materiałów w Sieci. Niedawno otrzymaliśmy jednak od NVIDII „czyste” PDF-y, oraz dodatkowe materiały, które możemy bez problemu wykorzystać w niniejszym artykule.
 
Dla przypomnienia, GF100 składa się z 512 procesorów strumieniowych, które przez konstruktorów karty nazwane zostały procesorami CUDA. Układy te pogrupowane zostały w 16 bloków Streaming Multiprocessor (SM), które połączono w cztery moduły GPC (Graphics Processing Cluster). Sam układ graficzny wykonany jest w 40 nanometrowym procesie technologicznym, wykorzystano w nim 384-bitową magistralę danych współpracującą z pamięcią GDDR5. Karta zasilana jest dodatkowo dwoma złączami 6 i 8-pinowym, a więc można spodziewać się większego poboru mocy. Nieoficjalnie mówi się o 250 watach, ale przedstawiciele NVIDII nie komentują w ogóle tej informacji – tak samo jak spekulacji na temat częstotliwości pracy układu, która ma podobno wynosić 600-750 MHz. Potwierdziło się natomiast to, że karty GF100 obsługują nowy typ wygładzania CSAA 32x (Coverage Sampled Anti-Aliasing) informacja o trzech wyjściach monitorowych, które podobnie jak w wypadku kart ATI mogą pracować w trybie jednoczesnego „rozciągnięcia” obrazu na trzy monitory. Technologia ta, która jest odpowiednikiem techniki ATI EyeFinity, nosi nazwę 3D Vision Surround.


Fot. 01 – Prezentowana na konferencji GF100 Fermi Deep Dive karta NVIDII z układem Fermi GF100.
© Marcin Bieńkowski


Fot. 02 – System TriSLI z kartami korzystającymi z kości Fermi GF100. Na widocznych na zdjęciu kartach brakuje mostków łączących dodatkowo urządzenia ze sobą.
© Marcin Bieńkowski


Fot. 03 – NVIDIA 3D Vision Surround.
© Marcin Bieńkowski

Geometryczny realizm, czyli teselacja i displacement mapping
 
W udostępnionych dokumentach NVIDII sporo miejsca poświęcono teselacji i technice mapowania wypukłości o nazwie displacement mapping. Obie technologie nie są nowe, założenia tych dwu metod opracowano już w latach 60. ubiegłego wieku, jednak ich obowiązkowej obsługi wymagają obecnie biblioteki graficzne DirectX 11 (patrz: http://www.frazpc.pl/artykuly/727/DirectX/10,/DirectX/101/i/DirectX/11/Biblioteki/graficzne oraz http://www.frazpc.pl/artykuly/755/ATI/Radeon/5870//5850/Technologia).
 
Teselacja (ang. tessellation) to po prostu dzielenie wygenerowanych podczas tworzenia obrazu 3D wielokątów na mniejsze elementy (trójkąty). Dzięki temu zabiegowi wyświetlany na ekranie obiekt 3D lub jego fragment może być znacznie dokładniej narysowany. Podczas przeprowadzanej przez kartę graficzną teselacji powstaje znacznie gęstsza siatka trójkątów (trójwymiarowy szkielet), który pozwala na znacznie bardziej realistyczne odwzorowanie chropowatych powierzchni, nierówności lub zwiększenie gładkości powierzchni obłych. Wyjątkowo dobre rezultaty w realistycznym odwzorowania obiektów uzyskuje się przy połączeniu techniki teselacji i displacement mappingu.


Fot. 04 – Przykład realizacji algorytmu teselacji do wygładzenia powierzchni głowy postaci. Charakterystyczną strukturę skóry, wraz z jej nierównościami i zmarszczkami osiągnięto następnie dzięki zastosowaniu displacement mappingu.
Źródło: ATI


Fot. 05 – Przykład realizacji algorytmu teselacji, a następnie zastosowania displacement mappingu do wygenerowania postaci potwora.
Źródło: NVIDIA

Realizowana sprzętowo teselacja, pod nazwą technologii TruForm, pojawiła się po raz pierwszy w Radeonie 8500 w 2001 roku. Jedną z pierwszych gier wykorzystująca tę technikę była zaś gra „Return to Castel Wolfenstain”.


Fot. 06 – Demo technologiczne „Dolphins” z 2001 roku przedstawiające działanie teselacji i technologii TruForm.
Źródło: ATI


Fot. 07 – Teselacja krajobrazu realizowana na karcie z układem NVIDIA GF100.
Źródło: NVIDIA


Fot. 08 – Przykład efektów 3D uzyskanych dzięki teselacji poszczególnych elementów sceny (skóra smoka, dachówki) realizowana na karcie z układem NVIDIA GF100.
Źródło: NVIDIA

Za automatyczną teselację w kartach z układem graficznych GF100 NVIDII odpowiada silnik teselacyjny o nazwie PolyMorph. Silników tych w Fermim jest 16 – po jednym na każdy z 16 bloków Streaming Multiprocessor. Silniki PolyMorph Engine równolegle realizują obliczenia w ramach graficznego potoku geometrycznego, dzięki czemu wydajność teselacji w GF100 ma być, według NVIDII, do sześciu razy większa niż w wypadku układu RV870 czyli kości Radeon HD 5870. Co ważne, liczba przydzielanych do poszczególnych silników tesalacjnych jest skalowalna i może się zmieniać w zależności od obciążenia zadaniami werteksowymi – stąd w NVIDIA chwali się w swoich materiałach, że dzięki PolyMorph Engine zaimplementowano w kości GF100 pierwszy na świecie skalowalny potok geometryczny.
 
Przejdźmy teraz do displacement mappingu nazywanego też po polsku mapowaniem przemieszczeń. Technika ta zadebiutowała w świecie kart graficznych wraz z premierą układu Matrox Parhelia 512 w 2002 roku. Mapowanie przemieszczeń pozwala na wygenerowanie wypukłości obiektów na scenie 3D na bazie specjalnych tekstur (zwykle przygotowanych w skali szarości) nazywanych mapami przemieszczeń. Mapa przemieszczeń obrazuje po prostu wszystkie nierówności i chropowatości odwzorowywanego obiektu jako zbiór jaśniejszych i ciemniejszych punktów. Te pierwsze odpowiadają miejscom oświetlonym i widocznym dla obserwatora, drugie to reprezentacja cieni i miejsc niewidocznych. Mapa przemieszczeń jest następnie łączona z nakładaną na przedmiot teksturą, co w efekcie daje wrażenie powstania nierówności i wypukłości dzięki naniesieniu na podstawową teksturę z mapy przemieszczeń wspomnianych „cieni i świateł”.


Fot. 09 – Realizacja techniki mapowania przemieszczeń w połączeniu z teselacją.
Źródło: Matrox, NVIDIA


Fot. 10 – Przykład uzyskanego obrazu dzięki zastosowaniu prostej mapy wypukłości
Źródło: NVIDIA


Fot. 11 – Wykorzystanie displacement mappingu w grach. Dzięki tej technice uzyskano tutaj ślady po kulach na metalowych drzwiach.
Źródło: NVIDIA

Zastosowanie teselacji i displacement mappingu do generowania obrazu ma wiele zalet. Przede wszystkim ilość danych potrzebnych do wygenerowania obiektu nie jest duża (co oznacza niskie zużycie pamięci karty graficznej i mniejsze wymagania dotyczące jej przepustowości) oraz łatwo dostosować ją do mocy obliczeniowej wykorzystywanej karty graficznej. Jednak najważniejszą zaletą jest tutaj sprzętowo realizowana skalowalność dokładności odwzorowywania obiektów bez ingerencji ze strony centralnego procesora komputera. Układ graficzny zgodny z DirectX 11 po wcześniejszym określeniu dokładności, czynnik ten to parametr LOD (Level of Details), sam z określoną dokładnością odwzorowuje obiekty bez potrzeby przesyłania dodatkowych danych z systemu. Teselacja i przygotowywanie map przemieszczeń realizowane są w całości przez kartę graficzną – twórca gry nawet nie musi przygotowywać specjalnych algorytmów, a jedynie określa on jakość odwzorowania i przekazuje ten parametr za pośrednictwem API DX 11.


Fot. 12 – Przykład identycznej sceny wygenerowanej przez kartę graficzną z układem GF100 przy zastosowaniu różnych parametrów LOD.
Źródło: NVIDIA

Jakość obrazu
 
Na poprawę jakości (bez straty szybkości) generowanych przez układ GF100 przyczyniają się m.in. dwie techniki opisane w dokumentacji NVIDII – wspomniane wygładzanie CSAA 32x oraz ulepszone fluktuacyjne próbkowanie punktów (jittered sampling), które może być wykorzystywane m.in. przy skalowaniu tekstur, filtrowaniu obrazu, zmniejszaniu wielkości sceny i antyaliasingu. Technologia próbkowania jittered sampling generuje próbki punktów w sposób losowy, ale w taki sposób, że otrzymane wartości są w miarę równomiernie rozłożone w przestrzeni.


Fot. 13 – Wykorzystanie jittered samplingu – tu w teście 3Dmark 2006.
Źródło: NVIDIA

Ponieważ GF100 zgodny jest z bibliotekami DirectX 11, to jego jednostki teksturujące muszą wspierać sprzętowo funkcje Gather4 oraz obsługiwać specjalne formaty tekstur. Funkcja Gather4 pozwala m.in. na wykorzystanie niefiltrowanych bloków tekstur w obliczeniach związanych z filtrowaniem dwuliniowym. Co więcej obliczenia te mogą być realizowane z wyprzedzeniem na podstawie danych otrzymanych z algorytmów przewidujących na kilka kroków do przodu operacje graficzne, które będą za chwilę realizowane w potoku graficznym DX11. W układzie GF100 wykorzystano tę właściwość funkcji Gather4 do „wydobywania” czterech tekseli z matrycy 128x128 punktów przy pomocy jednej „teksturowej” instrukcji. Dzięki temu tworzona jest bardzo szybko losowa, fluktuacyjna maska punktów, przyspieszająca mapowanie cieni (shadow mapping), cieniowanie powierzchni obiektów przestrzennych metodą ambient occlusion oraz realizację algorytmów postprocessingowych, w tym anttyaliasingu.


Fot. 14 – Tworzenie fluktuacyjnej maski (jittered sampling) przy wykorzystaniu zawartej w DX 11 funkcji Gather4.
Źródło: NVIDIA


Fot. 15 – Antyaliasing – różnice i rezultaty przy próbkowaniu 8x i CSAA.
Źródło: NVIDIA

Przejdźmy teraz do wygładzania krawędzi CSAA (Coverage Sampled Anti-Aliasing). Ten typ antyaliasingu zadebiutował w układzie G80 (GeForce 8800). Wygładzanie to polega na wykorzystaniu do określenia parametrów wynikowego punktu dodatkowo próbek koloru oraz informacji z bufora Z. Dzięki temu przejścia tonalne na wygładzanym obrazie są zdecydowanie płynniejsze, a krawędzie w efekcie wydają się znacznie gładsze. Co ważne, przy wykorzystaniu techniki CSAA możliwe jest też antyaliasingowanie obrazów HDR.


Fot. 16 – Szybkość antyaliasingu przy próbkowaniu 8x i CSAA.
Źródło: NVIDIA


Fot. 17 – Porównanie jakości obrazu dla CSAA 16x (badanie 16. punktów otaczających piksel wynikowy – GT200) i CSAA 32x (32 punkty, GF100).
Źródło: NVIDIA

Jeśli chodzi o modyfikacje wygładzania, to, jak pamiętamy, w GeForce’ach z serii 7000 zadebiutował sterowany przezroczystościami tryb wygładzania zawartości tekstur – Transparency Multisample Anti-Aliasing (TMAA). W ten sposób, za pomocą tekstur z nadaną im wartością kanału alpha, wyświetla się w wielu grach m.in. cienkie, liny, przewody, balustrady czy źdźbła trawy. Innymi słowy, metoda TMAA pozwala na pozbycie się artefaktów w generowanym obrazie, jeśli na obiekt nałożona zostanie przezroczysta tekstura. Dzięki temu np. gałęzie drzew czy siatki płotu mają gładkie krawędzie (patrz: http://www.frazpc.pl/artykuly/360/GeForce/7800/GTX/NVIDIA/na/tronie). Teraz w układzie GF100 tryb TMAA wygładzania wewnętrznych krawędzi w teksturach z nadanym im parametrem przezroczystości został ulepszony.


Fot. 18 – Porównanie jakości TMAA.
Źródło: NVIDIA

Obliczenia fizyczne
 
Spory nacisk funkcjonalny konstruktorzy układu Fermi położyli na obliczenia związane z fizyką w grach. Rdzeń GF100 jest w pełni kompatybilny ze wszystkimi obecnie najważniejszymi interfejsami programistycznymi. Programiści gier bez problemu mogą napisać procedury wykonywane następnie przez układ graficzny korzystając z języka C++ albo skorzystać z DirectCompute, PhysX-a lub OpenCL – wszystkie one będą poprawnie działać.
 
Co ważne, poprawiono zarządzanie wątkami. Dzięki technologii, która nazwano GigaThread udało się dziesięciokrotnie zwiększyć szybkość przełączania trybu pracy karty graficznej między trybem przetwarzania grafiki, a trybem wykonywania obliczeń np. związanych z fizyką czy sztuczną inteligencją. Dlatego, jak twierdzi NVIDIA, gry przyszłości będą mogły nie tylko być bardzie złożone pod względem graficznym, ale również wyświetlać większą liczbę obiektów, które będą na siebie oddziaływać, a postacie będą mogły zachowywać się w jeszcze bardziej naturalny sposób.
 
Istotną ciekawostką jest to, że dzięki pełnej obsłudze API DirectCompute z DX 11 przez układ GF100, można na drodze obliczeniowej, a nie graficznej uzyskać efekty postprocessingowe (czyli realizowane już po wygenerowaniu sceny 3D) takie jak rozmycie poruszających się obiektów (motion blur), miękkie cienie (soft shadow), zmiany głębi ostrości oraz operacje cząsteczkowe, a więc wygenerować dym, kurz czy mgłę. Taka obliczeniowa realizacja tych operacji jest według NVIDII do 20 razy szybsza niż w wypadku wykorzystania tradycyjnych metod graficznych.


Fot. 19 – Przykłady wykorzystania „czystej” mocy obliczeniowej karty graficznej GF100 w grach przyszłości.
Źródło: NVIDIA


Fot. 20 – Gra Dark Void wykorzystuje możliwości układu GF100 do obliczeń cząsteczkowych (kurz i efekty rozbicia obiektów za pomocą broni).
Źródło: NVIDIA


Fot. 21 – Efekty cząsteczkowe.
Źródło: NVIDIA

Supersonic Sled
 
Na końcu parę chwil warto poświęcić technologicznemu demu Supersonic Sled. Przygotowane ono zostało po to, aby zaprezentować możliwości układów z serii GF100, a jednocześnie pozwala użytkownikowi analizować szczegółowo wszystkie parametry dotyczące grafiki oraz fizyki poruszających się w demie obiektów. Co ważne, można też obserwować skutki własnych poczynań, które zgodne są z obowiązującymi w świecie realnym prawami fizyki. Co ciekawe, zmieniając lekko parametry nigdy nie otrzymamy, tak jak w realnym świecie, tych samych efektów końcowych.


Fot. 22 – Supersonic Sleed.
Źródło: NVIDIA


Fot. 23 – Realizowane w demie Supersonic Sleed różne rodzaje symulacji efektów fizycznych i zastosowanie nowych technik wykorzystywanych do generowania obrazu.
Źródło: NVIDIA

I na zakończenie chcieliśmy zaprezentować krótki film prezentujący demo Supersonic Sleed - źródło: NVIDIA.

Autor: Marcin Bieńkowski

Komentarze (32)





Podobne Artykuły/Recenzje

18-01-2010 - Technologie: Architektura Fermi - NVIDIA GF100 (22%)
04-01-2010 - Technologie: 32 nanometrowe procesory Intela (8%)
01-10-2009 - GT300 i Fermi - Relacja z konferencji Nvidia GPU Technology Conference (8%)
15-05-2009 - Technologia: Obliczenia prowadzone za pomocą kart graficznych (5%)
23-09-2009 - ATI Radeon 5870 / 5850 - Technologia (5%)
12-03-2010 - Technologia druku komputerowego (5%)
11-03-2009 - RFID - miniaturowy szpieg (3%)
06-07-2009 - INTEL: Czas 32 nanometrów (3%)
24-04-2006 - PureVideo - technologia przyszłości (3%)
18-09-2009 - Produkcja procesorów i półprzewodników - od piasku do procesora (3%)
22-12-2009 - Intel Single-chip Cloud Computer (3%)
12-01-2009 - Technologia vPro - zarządzanie na odległość (3%)
29-05-2009 - Przydatne serwisy i usługi online - Wszystko na chmurce (3%)
01-12-2002 - NVIDIA nForce2 (3%)
10-01-2003 - 3X NVIDIA Geforce4 Ti4200 8X (3%)
02-06-2003 - NVIDIA Sound Storm od A do Z (3%)
13-12-2006 - KONFERENCJA: Action,Galaxy i NVIDIA (3%)
20-03-2009 - NVIDIA ION - idealne połączenie (3%)
08-07-2005 - GeForce 7800 GTX - NVIDIA na tronie (3%)
08-08-2005 - ATI X800GT - NVIDIA 6600GT killer ? (3%)

___________________________
Więcej artykułów



Redakcja serwisu FrazPC.pl nie ponosi odpowiedzialności za ewentualne szkody powstałe
w wyniku użytkowania jakichkolwiek materiałów ukazujących się na łamach FrazPC.pl.
Copyright © FrazPC.pl 1997-2010
| Online: 1868 | Online w dziale: 92 | Odsłony: 609,813,824 | Czas generacji strony: 0.0110 s |