Wolna encyklopedia
Filtrowanie trójliniowe to technika poprawy jakości tekstur w trójwymiarowej grafice komputerowej, polegająca na zamazywaniu granic pomiędzy mipmapami, poprzez interpolację pomiędzy kolejnymi poziomami mipmapy. Jest to tak naprawdę rozszerzenie filtrowania dwuliniowego.
Technika powyższa nie stanowi idealnego rozwiązania dla rysowania tekstur pod dużymi kątami, jest jednak często stosowana ze względu na swoją wydajność.
Opis
W filtrowaniu biliniowym wartości tekstury były obliczane na podstawie interpolacji biliniowej pomiędzy najbliższymi czterema punktami w teksturze - tekslami. Dzięki tej operacji można było uzyskać uśrednione wartości tekstury pomiędzy jej dyskretnymi punktami. Technika ta dawała dobre rezultaty dla tekstur wyświetlanych w dużym powiększeniu.
Dla tekstur, które znajdowały się w pewnej odległości od obserwatora, pojawia się problem aliasingu - 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 zadanej tekstury tworzy się szereg tekstur o mniejszych rozdzielczościach z użyciem filtrów dolnoprzepustowych (wartość każdego teksla jest średnią ważoną z odpowiednich teksli z wyższego poziomu szczegółowości).
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ładem 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). Aby rozwiązać powyższy problem w grafice komputerowej stosuje się filtrowanie trójliniowe.
Filtrowanie trójliniowe polega na interpolacji pomiędzy najbliższymi tekslami jednocześnie na dwóch poziomach szczegółowości (podobnie jak przy filtrowaniu dwuliniowym), 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 dzisiejszych kartach graficznych 3D filtrowanie trójliniowe jest wspomagane sprzętowo i jest szeroko stosowane zwłaszcza w grach komputerowych. Warto zauważyć, iż powyższa metoda nie jest doskonała i przy dużych kątach efekty filtrowania wydają się być sztuczne dla ludzkiego oka - dużo lepszą techniką jest filtrowanie anizotropowe.
Zobacz też
Bibliografia
- 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