Przejdź do zawartości

Filtrowanie trójliniowe

Z Wikipedii, wolnej encyklopedii

Filtrowanie trójliniowe (ang. trilinear filtering) – technika poprawy jakości tekstur w trójwymiarowej grafice komputerowej, polegająca na zamazywaniu granic pomiędzy mipmapami poprzez interpolację kolejnych poziomów mipmapy. Jest to tak naprawdę rozszerzenie filtrowania dwuliniowego.

Technika powyższa nie stanowi idealnego rozwiązania dla rysowania tekstur obserwowanych pod dużymi kątami, jest jednak często stosowana ze względu na swoją wydajność. Znacznie lepsze rezultaty wizualne przynosi filtrowanie anizotropowe.

W grafice komputerowej teksturowane obiekty często umiejscowione są w ten sposób, że ich część znajduje się blisko obserwatora, zaś część w oddali. Przykładami mogą być tutaj teksturowane powierzchnie reprezentujące np. ziemię w symulatorach lotu. W powyższych przypadkach wymaga się, aby tekstura była odpowiednio wyświetlana zarówno dla jej fragmentów znajdujących się bliżej obserwatora, jak i dla tych bardziej oddalonych – aby połączone były ze sobą cechy filtrowania dwuliniowego z mipmapami (różnymi poziomami szczegółowości). Rozwiązaniem tego problem w grafice komputerowej jest użycie filtrowania trójliniowego.

Filtrowanie dwuliniowe (po lewej) i trójliniowym (po prawej). Strzałki pokazują miejsca widocznych przejść pomiędzy poziomami szczegółowości mipmap

Opis metody

[edytuj | edytuj kod]

W filtrowaniu dwuliniowym wartości kolorów tekstury obliczane są na podstawie interpolacji dwuliniowej pomiędzy najbliższymi czterema punktami tekstury zwanymi tekslami. Dzięki tej operacji uzyskuje się uśrednione wartości tekstury pomiędzy jej dyskretnymi punktami. Technika ta daje dobre rezultaty przy teksturach wyświetlanych w dużym powiększeniu.

Dla tekstur, które znajdują się w pewnej odległości od obserwatora, pojawia się problem aliasingu. Polega on na tym, że tekstury znajdujące się w zbyt dużej odległości są zbyt szczegółowe, przez co próba wyświetlenia ich w przestrzeni ekranu daje niepożądane efekty. Aby zapobiec powyższemu, stosuje się różne poziomy szczegółowości tekstury w zależności od odległości – tzw. mipmapy. Na podstawie danej tekstury, z użyciem filtrów dolnoprzepustowych, tworzy się szereg tekstur o mniejszych rozdzielczościach (wartość każdego nowego teksla jest średnią ważoną z odpowiednich teksli wyższego poziomu szczegółowości).

Filtrowanie trójliniowe polega na interpolacji pomiędzy czterema najbliższymi tekslami (podobnie jak przy filtrowaniu dwuliniowym) jednocześnie na dwóch poziomach szczegółowości, a następnie interpolacji liniowej pomiędzy dwoma uzyskanymi wartościami (z dwóch poziomów szczegółowości), w zależności od odległości od obserwatora. Z użyciem powyższych technik, wyświetlanie kolejnych poziomów szczegółowości następuje płynnie, bez widocznych przejść pomiędzy poszczególnymi mipmapami.

W kartach graficznych 3D filtrowanie trójliniowe jest aktualnie wspomagane sprzętowo i jest szeroko stosowane zwłaszcza w grach komputerowych. Jednak przy dużych kątach obserwacji tekstury efekty filtrowania trójliniowego dla ludzkiego oka wyglądają sztuczne, dlatego jest ono zastępowanie przez filtrowanie anizotropowe.

Zobacz też

[edytuj | edytuj kod]

Bibliografia

[edytuj | edytuj kod]
  • Foley J.D., Van Dam A., Feiner S.K., Hughes J.F., Phillips R.L.: Introduction to Computer Graphics, Addison-Wesley Longman Publishing Co. Inc., 1994.
  • http://developer.nvidia.com