Örnek sorular
Gfx Textures Sampling CompressionZorluk 1
Bir tekstür ekranda kaynak çözünürlüğüne göre çok daha küçük gösterildiğinde (minification), yüksek frekanslı detay kareler arasında parıldayabilir ya da moiré deseni oluşturabilir. Tam olarak bunu önlemek için tekstürü birden çok çözünürlükte önceden filtreleyen teknik hangisidir?
- aSupersampling
- bMipmapping✓
- cAnisotropic filtering
- dAtlas paketleme
Açıklama:Mipmapping, bir tekstürün art arda yarı boyutlu ve önceden filtrelenmiş kopyalarından bir zincir üretir. Minification sırasında GPU tam çözünürlük yerine uygun küçüklükteki bir seviyeyi örnekler; yüksek frekanslı detay zaten ortalanmış olduğundan parıldamaya dönüşemez.
Gfx Textures Sampling CompressionZorluk 2
Bir tekstürün taban seviyesinin üzerine, 1x1'e kadar tam bir mip zinciri ekleniyor. Bu zincir, sadece taban seviyeye kıyasla toplam belleği yaklaşık ne kadar artırır?
- aYaklaşık %100
- bYaklaşık %50
- cYaklaşık %33✓
- dYaklaşık %10
Açıklama:Her mip seviyesi bir üstündekinin 1/4'ü kadar teksel içerir, dolayısıyla toplam bellek taban (1 + 1/4 + 1/16 + ...) = taban 4/3'tür. Taban seviyenin ötesindeki kuyruk, taban boyutunun yaklaşık üçte biri, yani yaklaşık %33 fazladır.
Gfx Textures Sampling CompressionZorluk 2
GPU, bir fragment için hangi mip seviyesinin örnekleneceğine karar verirken öncelikli olarak hangi büyüklüğe bakar?
- aUV koordinatlarının ekran pikseli başına ne hızla değiştiği✓
- bKameradan yüzeye olan dünya-uzayı mesafesi
- cTekstür dosyasının diskteki bayt cinsinden boyutu
- dFragment shader'daki komut sayısı
Açıklama:Mip seviyesi (LOD), UV koordinatlarının komşu ekran pikselleri arasında ne hızla değiştiğinden türetilir: hızlı değişim tekstürün minify edildiği, yani küçük bir mip seçilmesi gerektiği anlamına gelir; yavaş değişim ise doğal boyuta yakın olunduğunu gösterir. Dünya-uzayı mesafesi bununla ilişkilidir ama donanımın fiilen ölçtüğü büyüklük bu değildir.
Gfx Textures Sampling CompressionZorluk 2
Uzaktaki, yoğun detaylı bir zemin tekstürü kamera hareket ettikçe belirgin biçimde parıldıyor ve titriyor, oysa aynı tekstürün yakın yüzeylerdeki hâli sorunsuz görünüyor. En olası neden nedir?
- aTekstürün wrap modu repeat yerine clamp-to-edge olarak ayarlanmış
- bTekstür, sıkıştırılmamış yerine blok-sıkıştırılmış bir format kullanıyor
- cTaban mip seviyesinin çözünürlüğü çok yüksek
- dMip zinciri yok, ya da sampler minification için onu kullanmıyor✓
Açıklama:Aynı tekstürün yakında sorunsuz göründüğü ama uzakta parıldadığı/titrediği durum, minification aliasing'in klasik belirtisidir: mip zinciri yoksa (ya da sampler onu kullanmıyorsa) GPU, tekstür ekranda çok daha az piksel kaplasa bile tam çözünürlükten point/bilinear örnekleme yapmak zorunda kalır ve yüksek frekanslı detay karadan kareye alias olur.
Gfx Textures Sampling CompressionZorluk 2
// pseudo host-taraflı sampler kurulumu
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
// GL_TEXTURE_MAG_FILTER dokunulmadan GL varsayılanında bırakılıyor
Bu tekstür magnify edildiğinde (doğal çözünürlüğünden daha yakından görüntülendiğinde) fiilen hangi filtre uygulanır?
- aMinification filtresiyle aynı olan GL_LINEAR_MIPMAP_LINEAR
- bEn yakın mip seviyesi seçilir ve GL_NEAREST ile örneklenir
- cMagnification'ın varsayılan filtresi olan GL_LINEAR✓
- dHiçbir filtreleme uygulanmaz, ham tekseller gösterilir
Açıklama:GL_TEXTURE_MIN_FILTER ile GL_TEXTURE_MAG_FILTER birbirinden bağımsız state'lerdir ve mipmap modları yalnızca minification tarafında bulunur. Kod yalnızca min filtreyi ayarlıyor, dolayısıyla magnification kendi varsayılanı olan GL_LINEAR'a döner.
Gfx Textures Sampling CompressionZorluk 3
Bir zemin tekstürü çok eğik/sıyırma açısıyla görüntülendiğinde, mipmap zinciri ve trilinear filtreleme doğru kurulmuş olsa bile olması gerekenden belirgin biçimde daha bulanık görünüyor. Bunu düzeltmek için özel olarak tasarlanmış özellik hangisidir?
- aAnisotropic filtering✓
- bDaha yüksek taban tekstür çözünürlüğü
- cDaha küçük ayak izli blok sıkıştırma
- dDaha yakın near clip plane
Açıklama:Standart mip seçimi, minification oranının her yönde aynı olduğunu varsayar; oysa çok eğik bir yüzey ekranın bir yönünde diğerinden çok daha fazla minify edilir. Tek bir izotropik mip seviyesi seçmek, daha az minify edilen yönü gereksiz yere bulanıklaştırır. Anisotropic filtering, uzamış bu ayak izi boyunca birden çok örnek alarak o yönü keskin tutar.