TwojePC.pl © 2001 - 2024
|
|
RECENZJE | Pełna recenzja kart nowej generacji ! |
|
|
|
Pełna recenzja kart nowej generacji ! Autor: Kris | Data: 09/08/04
|
|
Jakość obrazu: Filtrowanie tekstur
Na jakość renderowanego obrazu 3D wpływ ma kwestia filtrowania tekstur. Z założenia, trójwymiarowy obraz ma w jak największym stopniu oddawać rzeczywistość, która nas otacza. Większy realizm wymaga większej mocy obliczeniowej od kart graficznych. Optymalizacja jest w tym przypadku metodą na uzyskanie lepszej jakości obrazu niż wynikałoby to z możliwości wydajnościowych konkretnego układu graficznego. Tekstury pokrywające obiekty znajdujące się w pewnym oddaleniu od punktu obserwacji nie muszą mieć tej samej rozdzielczości co te, które oglądamy z bliska, bo nie zobaczymy różnicy. Wystarczy przygotować kilka wersji danej tekstury i stosować je w zależności od położenie względem obserwatora. Problemem natomiast staje się odwzorowanie styku różnych tekstur, gdyż skokowa różnica ich jakości wygląda nienaturalnie. Najlepiej widać to w ruchomej grafice, gdzie na obrazie tworzy się linia będąca granicą tekstur. Aby korzystać z dobrodziejstw oszczędności mocy układu dzięki przetwarzaniu mniejszych tekstur, a jednocześnie nie powodować zakłóceń w obrazie, opracowano szereg algorytmów, które umożliwiają "rozmycie" styku tekstur, a tym samym pozbycie się efektu ubocznego optymalizacji. Najlepsze efekty daje najbardziej kosztowna metoda filtrowania trzyliniowego (trilinear). Ideą kolejnej optymalizacji jest użycie algorytmu, który jest w stanie wskazać miejsca w generowanej ramce, które nie wymagają najwyższej jakości filtrowania, a tym samym pozwalają na kolejne oszczędności mocy układu graficznego. Niestety nie ma idealnych algorytmów optymalizacyjnych i wielokrotnie zdarza się, że stworzony w ten sposób obraz różni się od tego, który nie ma optymalizacji.
W rozdziale opisującym ustawienia testowe zwróciłem uwagę na fakt pozostawienia w stanie domyślnym ustawień sterownika nVidia w zakresie optymalizacji filtrowania tekstur. W stosunku do kart ATI nie mogłem tego napisać nie dlatego, że producent nie optymalizuje filtrowania, ale dlatego, że nie dał możliwości zmiany tego parametru, bezpośrednio w sterowniku. Osobiście jestem bardzo daleki od piętnowania idei samej optymalizacji. Co najwyżej powinno się zwracać uwagę na fakty nieprawidłowego działania tych algorytmów. Również uważam, że najlepiej aby sam użytkownik mógł decydować o użyciu tego "efektu" i dlatego bardziej podoba mi się podejście nVidia. Powiedzmy, że jest to jedynie kwestia pewnej kultury podejścia do użytkownika. ATI natomiast naraziła się ostatnio (fakt, że głównie testującym sprzęt) stosowaniem nieładnej zagrywki. Do zbadania jakości filtrowania (oraz jakości jego optymalizacji) recenzenci używali specjalnych ustawień silnika 3D, które za pomocą różnych kolorów rozdzielały tekstury o różnej jakości. Coś jak swoisty "kontrast" przy zdjęciach rentgenowskich. Sztuczka polegała na tym, że sterownik reagował na włączenie "kontrastu" wyłączeniem optymalizacji i testujący mógł jedynie badać samą jakość filtrowania zamiast filtrowania wraz z optymalizacją. Innymi słowy nie miał szans na szybkie wykrycie błędów w algorytmie optymalizacyjnym.
Nie należy natomiast podchodzić do kwestii samej optymalizacji z negatywnym nastawieniem. Oczywiście, nie można wykluczyć faktu, że producenci układów, pod płaszczykiem błędów optymalizacji będą świadomie zmniejszali jakość filtrowania, aby osiągnąć wyższy framerate w benchmarkach. Sam raczej nie jestem zwolennikiem tak spiskowej teorii. Generalnie w większości przypadków optymalizacja działa poprawnie i końcowy efekt nie różni się od tego, który byśmy osiągnęli bez niej, a ramki są renderowanej wyraźnie szybciej. Faktem jest również to, że można znaleźć sporo przypadków, gdzie obraz faktycznie jest gorszy. Ja bym jednak tego nie demonizował.
W związku z tym, że są metody aby wyłączyć optymalizację filtrowania również na kartach ATI mógłbym testować karty i bez niej, ale nie robię tego z dwóch powodów. Po pierwsze uważam, że algorytmy optymalizacji służą również (lub przede wszystkim) samym użytkownikom, a po drugie, ani ustawienie sterownika nVidia, ani wpisy do rejestrów ATI, które mają mieć ten sam skutek nie gwarantują całkowitego braku optymalizacji filtrowania. Dlatego wolę pozostawić je włączone.
Oczywiście nic nie stoi na przeszkodzie, aby sprawdzić jaki mają one wpływ na framerate. Przykładowe wyniki testów pokazuje poniższa tabela.
Jak widać różnica potrafi być spora i zależy od konkretnej gry. W testowych przypadkach nie zauważyłem negatywnego wpływu optymalizacji na obraz. Po prostu jej wyłączenie zmniejsza framerate.
Drugą kwestią jest sprawa jakości filtrowania anizotropowego oraz obciążenia układu, jakie on powoduje. Filtrowanie anizotropowe umożliwia dokładniejsze przestawienie tekstur znajdujących się w większym oddaleniu od "obserwatora". Algorytm opiera się na metodzie próbek. Karty ATI oraz GF6 umożliwiają włączenie filtrowania anizotropowego 2/4/8/16x, natomiast GeForceFX 2/4/8x. Warto zwrócić uwagę na to, że od dłuższego czasu stosuje się optymalizowane metody filtrowania, których działanie ma się ograniczać jedynie do obszarów gdzie wystąpi "widzialny" efekt jego działania. Tak jak można wyłączyć (przynajmniej mam taką nadzieję) optymalizację przejść pomiędzy teksturami filtrowanymi anizotropowo, tak nie można ograniczyć "wybiórczego" działania samego efektu. Jest to niezmiernie ważne, bo wystarczy sobie wyobrazić, że filtrowanie anizotropowe x16 (wraz z trzyliniowym) wymaga zastosowania do obliczeń 128-miu próbek. Gdyby nie optymalizacja to liniowy przyrost ilości próbek musiałby powodować liniowy spadek framerate. Nic takiego jednak nie występuje w nowoczesnych układach graficznych.
Im wyższy tryb tym mniejszy jest spadek framerate. Jak widać na przykładzie FarCry algorytm ATI wydaje się nieco wydajniejszy. Trzeba również zdawać sobie sprawę z tego, że dzięki różnym procedurom optymalizacji nie można spodziewać się takiego samego obrazu na różnych kartach. Zawsze będą jakieś różnice.
Najładniej wygląda filtrowanie anizotropowe na kartach GeForceFX (oczywiście kosztem framerate). Nie występuje tu znane zjawisko zaniku filtrowania w niektórych położeniach tekstury. W nowej generacji GeForce nVidia zmieniła nieco algorytm upodabniając go do "dokonań" konkurencji, choć jak pokazują przykłady, nadal w kwestii wydajności efektu palmę pierwszeństwa zachowuje ATI. Natomiast jakość stała się bardzo zbliżona i raczej trudno nam będzie znaleźć większe różnice pomiędzy nimi.
Na koniec, dla zainteresowanych, seria zrzutów z programu generującego obraz testowy poddany efektowi filtrowania anizotropowego (duże zrzuty w pliku .zip).
(kliknij, aby powiększyć)
|
|
|
|
|
|
|
|
|
|