Aşağıdaki resim, bir arka planın üstünde nokta örnekleme ile oluşturulan iki sprite göstermektedir:
- Sol kafatasına herhangi bir döndürme / ölçekleme uygulanmaz, bu nedenle her piksel arka planla mükemmel şekilde eşleşir.
- Sağ kafatası döndürülür / ölçeklendirilir ve bu da artık eksene hizalanmayan daha büyük piksellerle sonuçlanır .
Dönüştürülen hareketli grafiği, sahnenin geri kalanıyla aynı boyutta eksene hizalanmış piksellerle sağda oluşturacak bir piksel gölgelendiricisini nasıl geliştirebilirim?
Bu, sprite ölçeklendirmesinin Monkey Island gibi eski oyunlarda nasıl uygulandığı ile ilgili olabilir, çünkü elde etmeye çalıştığım etki bu, ancak rotasyon eklendi.
Düzenle
KaoD'un önerilerine göre, sorunu bir post-süreç olarak ele almaya çalıştım. En kolay yaklaşım, önce ayrı bir oluşturma hedefine (istenen piksel boyutuyla eşleşecek şekilde altörnek olarak) dönüştürülmek ve daha sonra ikinci kez oluşturulurken yükseltmekti. Yukarıdaki şartlarımı ele aldı.
İlk yapmayı denedim Linear -> Point
ve sonuç şuydu:
Bozulma yok ama sonuç bulanık görünüyor ve vurgu renklerinin çoğunu kaybediyor. Benim düşünceme göre, ihtiyacım olan retro görünümü kırıyor.
İkinci kez denedim Point -> Point
ve sonuç şuydu:
Bozulmaya rağmen hareket halindeyken durağan bir görüntü olarak daha iyi görünse de, bu benim ihtiyaçlarım için yeterince iyi olabilir.
Göstermek için, YouTube pikselleri filtrelemesine rağmen, efektin bir videosu:
Ancak, birisinin hareket ederken bozulma miktarını azaltırken daha net bir görünüm sağlayan daha iyi bir örnekleme çözümü bulması durumunda soruyu birkaç gün daha açık bırakacağım.
SpriteBatch
Anında mod kullanmamı gerektirir, bu yüzden zahmete değmez. Bununla gideceğim :)