Anisotropic Filtering Nedir?

In Makale by Kaan Arslan2 Comments

Oyunların grafik ayarlarında karşımıza çıkan Anisotropic, Bilinear ve Trilinear filtrelerinin nasıl çalıştığına göz atıyoruz.

Doku filtreleme, grafik dokusunun 3D model üzerinde nasıl görüntüleneceğini belirleyen bir teknolojidir. 3D modeli, farklı açı ve mesafelerden görüntülediğimiz zaman, grafik dokusu üzerinde bulunan pikseller her zaman doğru şekilde konum alamayabiliyor. Dolayısıyla görüntüde bulanıklık fark edilebiliyor.

Anti-Aliasing’e benzer çalışma yordamıyla, doku üzerinde bulunan piksel noktaları tespit edilip, etrafındaki piksellerden birkaç renk örneği alındıktan sonra elde edilen piksellerin renk ortalaması alınarak yeniden yapılandırıldığında görüntü filtrelenmiş ve daha berrak bir grafik deneyimi elde edilmiş oluyor. Bilinen en basit doku filtreleme yöntemi ”Bilinear Filtering” olarak adlandırılıyor.

mipmapping-doku-filtreleme

Bilinear ile filtrelenmiş The Vanishing of Ethan Carter’dan bir görüntü. Mipmap işleminin nerede başladığı açıkça ortada.

Bir diğer problemimiz de Mipmap işlemi. Hemen açıklamaya başlayalım. Yukarıdaki resimde asfalt yolun bize en yakın kısmını ele alalım. Yoldaki detaylar ve çatlaklar oldukça belirgin, gerçekçi bir şekilde görüntüleniyor. Ancak yolun ufuk çizgisine yakın, bitiş noktasına baktığımızda sadece birkaç piksel görebiliyoruz ve görüntü, yüksek çözünürlüklü bir dokuya ait olamayacak kadar bulanık. Mipmap işlemi, görüntünün bize en yakın kısımlarını öncelikle filtreleyerek, görüntünün bize uzak kısımlarında daha az filtreleme işlemi uyguluyor. Bu durum düşük çözünürlük kullanan kullanıcıların işine yarıyor. Çünkü Mipmap, uzaktaki nesnelerin detayını azaltılarak performans hedefleniyor.

Mipmap geçişleri grafiklerin gerçekçi etkisini baltaladığı için bir kısım kullanıcılar bu geçişleri apaçık bir şekilde görmek istemiyor. Bu noktada Trilinear Filtering devreye giriyor. Trilinear, Bilinear Filterin’e göre daha gerçekçi ve net Mipmap geçişi sağlıyor.

Anisotropic Filtering

anisotropic-filtering-nedir

Trilinear gerçekten de görüntüyü iyileştirmede katkı sağlıyor fakat yeterli değil. Zira görüntü halen belirgin şekilde bulanık. İşte tam bu noktada dokuların kalitesini önemli ölçüde iyileştiren ve bunu çoğu görüntü açısından yapabilen Anisotropic Filtering devreye giriyor.

Durumu daha iyi kavramak için örnek üzerinden gidelim. Bir pencere ve ardındaki bir duvarı düşünelim. Pencereden süzülen güneş ışınları pencerenin karşısındaki duvara yansıyor. Duvarda, pencerenin kare şeklindeki gölgelerini ve güneş ışınlarını görebiliyoruz. Bu duvarı tam karşıdan Trilinear ve Bilinear filtrelediğimizde her şey net ve detaylı bir şekilde görünüyor. Fakat duvarı biraz eğdiğimizi hayal edersek neler olacağını düşünelim.

Trilinear ve Bilinear’ın Mipmap geçişlerini, dolayısıyla duvarın uzak kısımlarını bulanık ve detaydan yoksun bir biçimde görmeye başlarız. Çünkü bahsettiğimiz üzere bu iki filtreleme teknolojisi performansı iyileştirmek amacıyla uzaktaki nesnelerin görüntü kalitesini düşürüyor. Fakat hayal ettiğimiz eğik duvarı Anisotropic filtreyle taratmaya başlarsak her şey oldukça net ve berrak görüntülenmeye başlıyor. Çünkü Anisotropic filtre, Mipmap’ı tek bir bütün halinde ele aldığından, görüntüye farklı açılardan baksak dahi herhangi bir Mipmap geçişi söz konusu olmuyor. Dolayısıyla elde ettiğimiz görüntü Trilinear ve Bilinear’ın aksine her görüş açısında aynı kalite ve berraklığa sahip oluyor.

Peki Anisotropic Filtering Numaraları Ne Anlama Geliyor?

Anisotropic Filtering’in seçenekleri 2x, 4x, 8x ve 16x şeklinde karşımıza çıkıyor. 1’den 16’ya değin olan bu rakamları Mipmap’ın taranacağı maksimum açı yüksekliği olarak tanımlanıyor. Filtrelenecek dokunun maksimum açı değeri, rakamlar arasındaki farkı belirliyor. Örneğin 4x AF’yi seçtiğimizde filtrelenecek açı, 2x’e göre iki kat daha fazla taranıyor. Fakat iki kat daha fazla taramasına rağmen, performans optimizasyonunu göz önünde bulundurularak 4x AF’de yapılan taramalarda, 2x’in ulaşabileceği görüş alanının ötesine geçilmiyor.

Performans

Bilinear ve Trilinear Filtering’e göre Anisotropic Filtering donanımınızı daha fazla kullanıyor. Fakat performansa olan etkisi, Anti-Aliasing kadar fazla değil. Örneğin BioShock Infinite’in Benchmark aracında 16x Anisotropic Filtering ve Bilinear Filtering arasındaki fark sadece 6 FPS. Yüksek doku detaylarının kötü bir filtrelemeyle hiçbir manasının kalmadığını düşünürsek, 6 FPS gayet cüzi bir miktar. Aşağıdaki resimde de göreceğiniz üzere, elde edilen görüntü kalitesi arasında dağlar kadar fark var.

bilinear-anisotropic-filtering-farkı