TwojePC.pl © 2001 - 2024
|
|
RECENZJE | Recenzja GeForce3, czyli objawienie na miarę Voodoo |
|
|
|
Recenzja GeForce3, czyli objawienie na miarę Voodoo Autor: NICR4M | Data: 06/03/01
| Wszyscy entuzjaści gier zapewne pamiętają jakie zamieszanie wywołała w 1996 roku firma 3Dfx swoim zestawem chipów 3D (PixelFX i TexelFX) o wspólnej nazwie Voodoo. Tak... wycofane już z branży akceleratorów grafiki - 3dfx i jego Voodoo - znane przede wszystkim z popularnej do dziś karty Monster3D (BTW w Polsce nadal synonim akceleratora) firmy Diamond, były krokiem milowym w historii kart graficznych i 'akceleracji 3D dla mas'. Teraz, po pięciu latach zaciętych bojów o lukratywny rynek pecetowej rozrywki, to NVidia dzierży berło lidera. Dzięki układowi o roboczej nazwie NV20 (układ graficzny konsoli XBox i GeForce3 dla PC/MAC) dziś NVidia wyznacza nowe standardy i przyszłe kierunki rozwoju cyfrowej rozrywki. |
|
GeForce3, czyli objawienie na miarę Voodoo
Nie chcę w tym artykule rozkładać NV20 na czynniki pierwsze, jak czynią to zachodnie serwisy typu Tom's Hardware Guide. Mam na celu przedstawienie Wam (z wyjaśnieniem stricte technicznego 'bełkotu') z grubsza tego, czego może się po GF3 spodziewać potencjalny kupiec, czyli zwykły gracz.
Infinite Effects GPU to oficjalna nazwa nowej technologii, którą zrealizowano w postaci GF3. Niezliczone efekty, które można uzyskać zapierają dech w piersiach. Pierwszą myślą po ujrzeniu screenów z dem technologicznych NVidii jest stwierdzenie: TO NIE MOŻLIWE! Sny programistów i grafików 3D stały się rzeczywistością. Połączenie DirectX 8 i GF3 daje im nieskończone możliwości.
57milionów tranzystorów w służbie gracza - tak można krótko określić strukturę wewnętrzną najnowszego GPU NVidii. Spójrzmy, co inżynierowie ukryli w dwa razy większej liczbie tranzystorów, niż posiada GeForce2. Pora na fakty dotyczące użytej technologii. Jeśli nie wiesz, co dokładnie znaczą użyte tu terminy - nie przejmuj się. Poniżej znajdziesz opis, co razem znaczą one dla komputerowego gracza.
- Proces technologiczny: 0.15u
- Liczba tranzystorów: 57 milionów
- Potoki renderowania pikseli: 4
- Ilość tekstur jednocześnie nakładanych na 1 piksel: 2
- Ilość tekstur, jaka może być przypisana dla 1 piksela w jednym przejściu: 4
- Ilość możliwych do wykonania operacji cieniowania w 1 cyklu zegara: 36
- Ilość instrukcji dotyczących wierzchołka w jednym przejściu: 128
- Prędkość rdzenia GPU: 200 MHz
- Prędkość pamięci: 230 MHz DDR (460MHz)
- Ilość pamięci (na kartach referencyjnych): 64MB
- Typy obsługiwanej pamięci: SDR / DDR
- Szerokość magistrali pamięci: 128bitów/256bitów
- Ilość obliczeń na sekundę: 76 GFLOPS (miliardów operacji zmiennoprzecinkowych na sekundę)
Teoretycznie wydajność obliczeniowa GPU (procesora graficznego) przekracza wielokrotnie możliwości najszybszych procesorów typu Athlon/Pentium3/Pentium4. Nie można jednak wyników uzyskiwanych przez CPU (procesor komputera) porównywać do szybkości GPU - dlatego, że obydwa rodzaje procesorów mają inne przeznaczenie. Wszechstronność obliczeniowa GeForce3 jest nieporównywalnie mniejsza, niż uniwersalność normalnego procesora, którego to na razie GPU nie zastąpi.
Nowością nadchodzącą wraz z GeForce3 jest nfiniteFX Engine. Silnik nfiniteFX jest w pełni programowalną jednostką podobną do starszego, nie dającego się programować T&L - oznacza to, że producenci gier mogą tworzyć własne efekty specjalne, których inżynierowie NVidii mogli nawet nigdy nie przewidzieć. Programiści mają pełną swobodę, co do stosowania własnych pomysłów. NVidia wydała nawet darmowe narzędzie służące temu celowi. Każdy właściciel (programista) karty otrzyma "Complete Suite of Developer Tools", czyli zestaw ponad 100 gotowych efektów, rodzajów oświetlenia, i transformacji, które można dowolnie łączyć ze sobą, bądź modyfikować wedle własnych wymagań. Specjalne narzędzie przygotuje nawet gotowy do użycia kod programu, bez konieczności dogłębnej wiedzy o programowaniu GPU. Najprościej mówiąc - w końcu zobaczymy gry takie, jakimi sobie je wyobrażają graficy, bez ograniczeń ze strony technologii. Drugą pozytywną sprawą jest zwiększenie przez NVidię pomocy technicznej - zatrudniono 16 specjalistów znających doskonale możliwości DirectX 8, którzy mają pomóc dostawcom oprogramowania w opanowaniu nfiniteFX Engine.
NfiniteFX Vertex Processor (Vertex Shader) jest częścią GPU odpowiedzialną za przetwarzanie wierzchołków (vertex) tworzących poligony (trójkąty) składające się na siatkowe modele (im więcej trójkątów, tym dokładniejszy jest model 3D). Vertex Shader odpowiada za definiowanie i ruch obiektów (złożonych z trójkątów - poligonów) tworzących scenę. Na trójkąt może być nałożona tekstura (np. obraz cegły, czy drewna), może być określona m.in. przezroczystość, stopień odbicia światła od jego powierzchni, czy w końcu można go dowolnie obracać i transformować w przestrzeni określonej współrzędnymi x, y, z (każdy vertex posiada swoje współrzędne). Upraszczając - Vertex Shader w dużym stopniu odpowiada za wygląd postaci/sceny i ruch w grach. Animatorzy i graficy 3D mają wielką swobodę, gdyż mogą sami definiować sposób w jaki obiekty wyglądają i jak się poruszają. Nawet na pojedynczym poligonie (dla każdej z trzech krawędzi) można zastosować kilka efektów, gdyż każdy vertex ma własne współrzędne i może być niezależnie obrabiany. Np. można upłynnić ruch postaci, przez wstawienie kilku przejść pomiędzy "sztywno" określone klatki animacji. Ile dodatkowych klatek zostanie wstawionych zależeć będzie od mocy procesora w naszym komputerze. Vertex Shader może również wykonywać efekty typu motion blur (kierunkowe rozmycie szybko poruszających się obiektów, np. mijającego nas z naprzeciwka samochodu), efekty soczewkowe (np. widok "rybim okiem") i deformacje proceduralne (np. flaga na wietrze, czy odpowiednie do włożonej siły odkształcenia zbroi po uderzeniu mieczem). Zaprogramowano (oczywiście można dokonać dowolnych modyfikacji) już takie fajerwerki jak bardziej realistyczna niż dotąd mgła, która może mieć dowolny kształt (np. nieregularnej chmury), refrakcja światła przy przejściu przez przezroczyste obiekty (np. szklanka z uginającą światło wodą), rozgrzane powietrze, które swobodnie faluje i rozmywa tło. Nawet tak wymagające obiekty jak włosy na głowie są możliwe do zrealizowania.
Można w tym miejscu zapytać, czy programowalny Vertex Shader jest zgodny z T&L poprzedniej generacji? Otóż NVidia, by zapewnić 100% wsteczną zgodność wstawiła do układu NV20 również silnik T&L znany z GeForce'a 2. Jeśli gra (miejmy nadzieję, że nie jedna ;) ) będzie mogła wykorzystać Vertex Shader, to stary T&L zostanie po prostu pominięty.
NfiniteFX Pixel Processor (Per Pixel Shader) odpowiada za transformacje pojedynczych punktów ekranu (pikseli), które wypełniają powierzchnię poligonów. GeForce3 jest zdolny wykonać do 36 operacji na pikselu w jednym przejściu (cyklu zegarowym), gdy GeForce2 może wykonać w tym czasie "tylko" 7 operacji. Możemy zdefiniować wygląd każdego piksela tworzącego dany obiekt.
Per Pixel Shader pozwala na stworzenie złudzenia większej ilości detali, niż ma to miejsce w rzeczywistości. Pojedynczy poligon może mieć teraz na sobie "fale" i zagłębienia zmieniające się w zależności od kąta padającego światła.
Jeśli mamy już gotowe trójkąty, to możemy na nie nałożyć tekstury. GeForce3 potrafi nałożyć do czterech tekstur na raz. Tym sposobem znowu uzyskujemy liczne możliwości manipulacji wyświetlanym obrazem. Jak wspomniałem, Pixel Shader decyduje o wyglądzie każdego piksela. Możemy np. zastosować naraz efekt nierówności powierzchni (bump mapping) i lustrzanego odbicia otoczenia, a wszystko to bez większego spadku wydajności.
Efekt naturalności, jaki uzyskali programiści w demach przeznaczonych dla GeForce'a3 będzie prawdopodobnie niemożliwy do uzyskania w prawdziwych aplikacjach (grach) z powodu obciążenia CPU innymi rzeczami (fizyka i logika środowiska, sztuczna inteligencja, dźwięk 3D) niż tylko wyświetlanie pojedynczego obiektu. Nic jednak nie stoi na przeszkodzie, byśmy mogli podziwiać np. kameleona, czy Zoltara bardzo dobrze udających rzeczywistość. Oby tylko na demach się nie skończyło.
Super szybki GPU wyświetlający obraz w rozdzielczości 1600x1200 punktów w 32bitowej palecie z prędkością 70 klatek na sekundę potrzebuje super szybkiego dostępu i przepływu danych z/do pamięci umieszczonej na karcie.
Lightspeed Memory Architecture to rozwiązanie na miarę profesjonalnych kart 3D, po raz pierwszy zastosowane w sektorze rozrywkowym. Jeśli uważnie przeczytałeś specyfikacje GeForce'a3, to zauważyłeś, że posiada on 256bitową (dwa razy szerszą, niż posiada GeForce2) magistralę pamięci. Nie jest to jednak tak proste rozwiązanie, jak można to sobie wyobrazić. GF3 posiada cztery kontrolery pamięci, z których każdy ma dostęp do magistrali o szerokości 64bitów. W sumie więc otrzymujemy magistralę o szerokości 256bitów, z tym jednak, że jest ona (dzięki czterem niezależnym kontrolerom) lepiej wykorzystywana. Nie zawsze bowiem GPU potrzebuje paczek danych długich na 256bitów. Często np. do opisu vertex'a wystarczają 64bity danych, więc w jednym cyklu zegara można załadować do czterech porcji takich danych, zamiast jednej (w przypadku pojedynczego, 256bitowego kontrolera pamięci).
Aby jeszcze bardziej zoptymalizować zużycie przepustowości pamięci (w przypadku 460MHz jest to ~7,3 GB/s) zastosowano metodę usuwania powierzchni nie widzianych przez obiektyw kamery (potocznie: hidden surface removal, HSR) - nazwane przez NVidię Z-Occlusion Culling Technology. Zazwyczaj karty graficzne (np. GeForce2) rysują wszystkie obiekty znajdujące się na scenie - nawet te zasłonięte przez inne i niewidoczne dla "kamery". Aby oszczędzić czas i ograniczoną przepustowość szyny danych, stosuje się metodę wykrywania tych ukrytych powierzchni, które następnie pomija się w procesie renderingu (rysowania sceny), oszczędzając tym samym wcześniej marnowaną przepustowość. Również kompresja danych stosowana do przesyłu danych jest bezstratna, choć osiąga stosunek 4:1. Niestety nie znalazłem informacji, czy dotyczy to kompresji wszystkich danych, czy np. tylko tekstur lub geometrii. Wiadomo natomiast, że wszystkie wspomniane metody oszczędzania przepustowości pamięci są czysto sprzętowe (zaimplementowane w logikę GPU), i niewidoczne dla programów działających zarówno w Direct3D, jak też pod OpenGL.
Lightspeed Memory Architecture (być może) oznacza dla graczy koniec problemów z graniem w wysokich rozdzielczościach i w 32bitowym kolorze. Nie będą też potrzebne pamięci szybsze niż 3.8ns (260MHz DDR = 460MHz), dlatego też koszt kart na GF3 powinien dość szybko zmaleć z zapowiadanych 530-700$, do bardziej przystępnego poziomu, gdyż pamięci takie są produkowane w coraz większych ilościach. Niestety przepustowości szyny AGP4X (~1GB/s) nawet nie można przyrównać do wymagań stawianych przez GF3. Zakup karty ze 128MB szybkiej pamięci powinien być rozważony przez każdego gracza myślącego o zabawie z najwyższym komfortem. 64MB instalowane na pierwszych kartach może nie wystarczyć do obsługi ogromnych tekstur, i dużego bufora ramki, choć tutaj zbawienna może się okazać zastosowana po raz pierwszy bezstratna kompresja danych i nowa metoda wykonywania pełnoscenowego antyaliasingu (wygładzania krawędzi), o czym przeczytasz poniżej.
High Resolution Antialiasing (HRAA). Nvidia odchodzi od "pamięciożernej" metody wygładzania krawędzi polegającej na zmniejszaniu obrazu wielkości 1600x1200 pikseli do formatu 800x600, na rzecz metody nazwanej Quincunx. Pozwala ona na uzyskanie efektu takiego samego, jak w wypadku antyaliasingu 4x4, ale przy o połowę mniejszym zużyciu pamięci na karcie. Proces wygładzania krawędzi jest dość trudny do opisania w przystępny sposób i nie obchodzi raczej zwykłego gracza, dlatego też proponuję tylko rzucić okiem na tabelę przedstawiającą jakie oszczędności pamięci daje nowa metoda wykonywania antyaliasingu, jak też wyniki testów Quake3 Arena przeprowadzonych przez NVidię w nowym trybie HRAA.
Czas, by w skrócie opisać pozostałe nowe techniki sprzętowo realizowane przez chip GeForce3 i głośno reklamowane przez NVidię. Wszystkie poniższe technologie są zawarte w ósmej wersji bibliotek DirectX, bowiem w tym przypadku NVidiia ściśle współpracowała z Microsoftem. Krótko mówiąc: wsparcie i standaryzacja (MS) za wiedzę i technologię (NVidia). Sytuacja taka jest też związana z tym, że DirectX 8 jest oficjalnym portem dla programistów konsoli XBox Microsoftu, a układem graficznym nowej zabawki jest układ NVidii oparty o NV20 (prawdopodobnie właśnie ten sam rdzeń, co w GeForce3). Właśnie umiejscowienie GF3 w konsoli (pod nazwą XGPU) daje mi podstawy do wysunięcia przypuszczeń, że żywotność nowych kart będzie znacznie dłuższa, niż ich poprzedników. Być może GF3 wystarczy nam na rok, lub dwa, bez obaw o to, że najnowsza gra nie będzie płynnie działać. Czy tak będzie?... czas pokaże.
High Order Surfaces - pozwala na tworzenie płynnych krzywizn (splines) na podstawie kilku "punktów kontrolnych". Oznacza to, że do stworzenia np. powierzchni wody wraz z falami wystarczy teraz kilkukrotnie mniejsza ilość poligonów, co oszczędza moc obliczeniową GPU i CPU.
Matrix Palette Skinning - przy transformacji obiektów 3D powstają nieprzyjemne (nienaturalne) skoki, gdy np. ręka żołnierza jest wykonana z dwóch wirtualnych "kości" tworzących jej szkielet. GPU potrafi inteligentnie podzielić te dwa elementy na więcej animowanych części - tak, by animacja postaci była bardziej płynna i naturalna.
Deformation of Surfaces (deformacja powierzchni) - po raz pierwszy programiści będą mogli używać (wcześniej bardzo wymagających) dynamicznych deformacji powierzchni. Czyli np. tandem DX8 + GF3 bezproblemowo zrealizuje nam fale na wodzie, bez konieczności wstawiania do komputera 5GHz procesora ;).
Vertex Morphing - wyobraź sobie rybę w wodzie. Jej ciało musi poruszać się w bardzo płynny sposób, by stwarzać złudzenie realności. Funkcja morfowania (płynnego przekształcania) trójwymiarowych siatek uprości pracę animatorów. Do animacji naszej ryby wystarczy teraz tylko kilka wcześniej zdefiniowanych klatek. Vertex Shader wykona resztę pracy, przez stworzenie z nich płynnej animacji.
Fisheye Lens - wcześniej wspomniany efekt "rybiego oka". Cały obraz, lub jego część może być deformowana przez Vertex Shader. Ponieważ maski służące do deformacji mogą być dowolnie definiowane - można uzyskać praktycznie nieskończoną liczbę podobnych efektów.
Large Numbers of Vertex Lights - nowy GPU będzie sprzętowo wspierał (teoretycznie) dowolną liczbę możliwych do przeliczenia przez niego świateł, a nie jak w przypadku poprzedniego GeForce'a jedynie 8 źródeł światła.
Cube Environment Mapping - kubiczne mapowanie środowiska (bardziej realne odbicia środowiska na obiektach) jest znane z poprzedniej generacji GF, lecz tym razem wszelkie obliczenia (również dokładne wyliczenie współrzędnych dla tekstur) samodzielnie wykona GPU.
Setup for Dot-Product Bump Mapping - znów mamy do czynienia z odciążeniem procesora w komputerze. Dające bardzo realistyczne efekty mapowanie wybojów typu "dot-product" będzie w odróżnieniu od DirectX 7 realizowane bez użycia mocy głównego procesora. Pracochłonne obliczenia zostaną wykonane przez GeForce'a3.
Layered Fog - czyli wielowarstwowa mgła. Programiści mogą napisać program dla Vertex Shader'a, który pozwoli małym kosztem (jednie za pomocą GPU) stworzyć realistyczny efekt mgły i dymu unoszących się nad ziemią, dokładnie wypełniających tylko ściśle określony obszar.
Per-Pixel Reflection - ta funkcja dotyczy skomplikowanych obliczeń potrzebnych do dokładnego odwzorowania refleksów światła od nieregularnych powierzchni (np. przy bump mappingu). Prędkość, z jaką potrafi je wykonać GF3 wielokrotnie przekracza możliwości normalnego procesora.
Shiny Bumps - "błyszczące nierówności". Środowiskowe mapowanie wybojów (Environment-mapped Bump Mapping [EMBP]) zostało wprowadzone już w szóstej edycji DirectX. Niestety taki bump mapping nie wyglądał realistycznie przy kilku źródłach światła. Nowe GPU i DirectX 8 realizują podobny do EMBP efekt, który ma nazwę dot3 bump mapping, i wygląda dobrze niezależnie od ilości świateł padających na mapowaną powierzchnię. Oczywiście efekt dot3 bump mapping jest przez GPU realizowany w pełni sprzętowo.
Multisample Rendering - zbiorcza nazwa dla Antyaliasungu (wygładzania krawędzi), efektów głębi ostrości, i motion blur (rozmywanie szybko poruszających się obiektów) - wszystkie te techniki wykorzystują kilka wewnętrznie tworzonych obrazów do stworzenia jednej klatki pokazywanej na monitorze.
Point Sprites or Particles - małe punktowe obiekty i opis sposobu ich zachowania, dzięki którym można stworzyć np. efekt padającego deszczu, śniegu i realistycznego dymu noszą nazwę systemów cząsteczkowych (Particle Systems). Wspierane sprzętowo przez GF3 cząsteczki są w DirectX 8 nazywane punktowymi duszkami (Point Sprites).
Należy wspomnieć, że sterowniki dla kart na GeForce3 zostały zoptymalizowane do pracy z procesorami AMD Athlon (3D-Now!) i Pentium4 (SSE/SSE2), a same karty zostały na ostatnim IDF (Intel Developer Forum) zarekomendowane przez obu producentów procesorów jako konstrukcje wspaniale uzupełniające możliwości ich najwydajniejszych CPU.
Przykłady wcielenia w życie nowych technologii można obejrzeć na stronach internetowych NVidii .
Po wielkiej fali artykułów opisujących GeForce3 od strony technicznej, nadeszła pora na wysyp na razie 'papierowych premier' kart różnych producentów hardware'u.
Zauważcie, że w dwóch przypadkach producenci do chłodzenia układu użyli BlueOrba w trochę "niższej", niż dostępna w sklepach wersji - 57mln tranzystorów NV20 wydziela spore ilości ciepła, co nie zapowiada łatwego zadania chętnym do podkręcania tego potwora. No i niestety znów powraca sprawa "wydolności prądowej" szyny AGP w starszych płytach głównych - ciekawe, że nikt jeszcze się tym nie zainteresował.
Dotychczas ogłoszone zostały:
ELSA Gladiac 920
|
Hercules 3D ProphetIII
|
ASUS V8200
|
Absolute GeForce III
|
MicroStar (MSI) StarForce 822
|
VisionTek GeForce3
|
A tym czasem na GlideUnderground można znaleźć pierwsze plotki na temat NV25 - następcy GF3.
|
|
|
|
|
|
|
|
|
|