Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uygulamaların doku filtrelemesi kullanması gerekmez. Direct3D, genellikle tamsayılar olarak değerlendirilmeyen texel adresini hesaplayıp en yakın tamsayı adresiyle texel rengini kopyalayan şekilde ayarlanabilir. En yakın nokta örnekleme işlemi olarak adlandırılır. En yakın nokta örnekleme, doku boyutunun ekrandaki ilkel görüntünün boyutuna benzer olması gibi olabilir. Değilse, doku büyütülmeli veya küçültülmelidir. Doku boyutlarının temel görüntü boyutuyla eşleşmemesi sonucu görüntü öbekli, tırtıklı veya bulanık olabilir.
Dokunun iki texel arasındaki sınırda örneklendiğinde bazen grafik bozulmalarına neden olabileceğinden, en yakın nokta örneklemesini dikkatli kullanın. Bu geçiş noktası, örneklenen texel'in bir texel'den diğerine geçtiği doku koordinatı (u veya v) boyunca konumdur. Nokta örnekleme kullanıldığında, sistem bir örnek texel veya diğerini seçer ve sınır aşıldığında sonuç bir texel'den bir sonraki texel'e aniden değişebilir. Bu efekt, görüntülenen dokuda istenmeyen grafik yapıtları olarak görünebilir. Doğrusal filtreleme kullanıldığında, ortaya çıkan texel her iki bitişik texelden hesaplanır ve doku dizini sınır boyunca ilerledikçe bunlar arasında karışır.
Bu etki, çok küçük bir dokuyu çok büyük bir çokgene eşlerken görülebilir: genellikle büyütme olarak adlandırılan bir işlem. Örneğin, dama tahtasına benzeyen bir doku kullanıldığında, en yakın nokta örneklemesi ayrı kenarları gösteren daha büyük bir dama tahtasıyla sonuçlanmıştır. Buna karşılık, doğrusal doku filtrelemesi, dama tahtası renklerinin çokgen genelinde sorunsuz bir şekilde değiştiği bir görüntüyle sonuçlanmıştır.
Çoğu durumda, uygulamalar mümkün olan her yerde en yakın nokta örneğinden kaçınarak en iyi sonuçları alır. Günümüzde donanımların çoğu doğrusal filtreleme için iyileştirilmiştir, bu nedenle uygulamanız performansın düşmesine neden olmamalıdır. İstediğiniz etki kesinlikle okunabilir metin karakterlerini görüntülemek için dokuları kullanırken olduğu gibi en yakın nokta örneklemesinin kullanılmasını gerektiriyorsa, uygulamanız texel sınırlarında örneklemeyi önlemek için son derece dikkatli olmalıdır ve bu da istenmeyen etkilere neden olabilir. Aşağıdaki çizimde bu yapıtların nasıl görünebileceği gösterilmektedir.
Grubun sağ üst kısmındaki iki kare, aralarında çapraz uzaklıklar bulunan komşularından farklı görünür. Bunlar gibi grafik yapıtlarını önlemek için en yakın nokta filtreleme için Direct3D doku örnekleme kurallarını biliyor olmanız gerekir. Direct3D, [0,0, 1,0] (0,0'dan 1,0'a kadar, dahil) arasında değişen kayan nokta doku koordinatını [-0,5, n - 0,5] arasında bir tamsayı texel alanı değeriyle eşler; burada n, dokudaki belirli bir boyuttaki texel sayısını ifade eder. Sonuçta elde edilen doku dizini en yakın tamsayıya yuvarlanmış. Bu eşleme, texel sınırlarında örnekleme yanlışlıklarına neden olabilir.
Basit bir örnek için, Sarmalama doku adresleme moduyla çokgenleri işleyen bir uygulama düşünün. Direct3D tarafından kullanılan eşlemeyi kullanarak, u doku dizini 4 texel genişliğinde bir doku için aşağıdaki diyagramda gösterildiği gibi eşlenir.
arasındaki sınırda 0.0 ve 1.0 doku koordinatlarının gösterimidir.
Bu çizim için doku koordinatları 0,0 ve 1,0 tam olarak texel'ler arasındaki sınırdadır. Direct3D'nin değerleri eşlediği yöntemi kullanarak doku koordinatları [ - 0,5, 4 - 0,5] arasında değişir; burada 4, doku genişliğidir. 1,0 doku dizini için, örnek olarak alınan texel, 0 numaralı texel'dir. Ancak doku koordinatı 1,0'dan biraz daha küçükse, örneklenen texel 0 yerine n texel olacaktır.
Bunun etkisi, küçük bir dokuyu tam olarak 0,0 ve 1,0 doku koordinatlarını kullanarak ekran alanına hizalanmış bir üçgende, en yakın nokta filtrelemesi kullanılarak büyütmenin, doku eşlemesinin tekseller arasındaki sınırda örneklendiği piksellerle sonuçlanmasıdır. Doku koordinatlarının hesaplamasında küçük bile olsa herhangi bir yanlışlık, işlenmiş görüntüdeki alanlarda doku haritasının texel sınırlarına karşılık gelen görüntü bozulmalarıyla sonuçlanır.
Kayan nokta doku koordinatlarının kusursuz doğrulukla tamsayı ifadelerine eşlenmesi zor, hesaplama açısından zaman alır ve genellikle gerekli değildir. Çoğu donanım uygulaması, üçgen içindeki her piksel konumunda doku koordinatlarını hesaplamaya yönelik yinelemeli bir yaklaşım kullanır. Yineleme sırasında hatalar eşit bir şekilde biriktiğinden yinelemeli yaklaşımlar bu yanlışlıkları gizleme eğilimindedir.
Direct3D başvuru rasterleştiricisi, her piksel konumunda doku dizinlerini hesaplamaya yönelik bir doğrudan değerlendirme yaklaşımı kullanır. Doğrudan değerlendirme, işlemdeki herhangi bir yanlışlığın daha rastgele bir hata dağılımı sergilediğinden yinelemeli yaklaşımdan farklıdır. Bunun sonucu, başvuru rasterleştiricisi bu işlemi mükemmel doğrulukla gerçekleştirmediğinden sınırlarda oluşan örnekleme hatalarının daha belirgin olmasıdır.
En iyi yaklaşım, yalnızca gerektiğinde en yakın nokta filtrelemesini kullanmaktır. Kullanmanız gerektiğinde, görüntü kusurlarını önlemek için doku koordinatlarını sınır konumlarından biraz kaydırmanız önerilir.
İlgili konular