Alpha Blending nedir?
Bulunduğumuz dünya 3 çeşit objeden oluşur:Saydam,yarı-saydam ve saydam-olmayan objeler
Alpha Blending,yarı-saydam maddelere saydamlık özelliğini kazandırmaya yarayan bir teknolojidir.
Ne işe yarar bu Alpha Blending?
Alpha Blending için 2 tane pixel alıyoruz öncelikle.Birisi zaten arka-tamponda olan pixel diğeri de arka tampona gönderilecek pixel.
Kaynağın piksel rengi = (127,255,0,0); // buradaki 127 %50 saydamlığı gösterir,yani yarı-saydamlığı.Kırmızı(255),Yeşil(0),Mavi(0);
Hedefin piksel rengi= (127,0,0,255); // buda yine 127 %50 saydamlığı gösterir.yukarıdaki gibi.Kırmızı(0),Yeşil(0),Mavi(255);
Yeni rengimiz bu iki rengin Alpha Blending işlemine tabi tutulmasından sonra ortaya çıkacak yeni reng olacaktır.
Yeni Renk = Kaynak * Alpha/max_Alpha + Hedef * (max_Alpha-Alpha) / max_Alpha //fonksiyonu tamamiyle yazdım
Yukarıda yaptığımız renkleri kullanalım
yeni renk = 255 * 127/255 + 255 * (255-127) /127
yeni renk = %50 kırmızı + %100 mavi
yeni renk = Bu iki rengin karışımıdır. (%50 kırmızı ve %100 mavi)
Peki bunu projede nasıl kullanabileceğiz?
çok basit DirectX in bunun için hazır fonksiyon ve özellikleri bulunmaktadır.
Yapacağınız 3 satırlık koddur;
device.RenderState.SourceBlend = Blend.SourceAlpha; //Kaynağa Blend uygula
device.RenderState.DestinationBlend = Blend.InvSourceAlpha; //Hedefe Blend Uygula
device.RenderState.AlphaBlendEnable = true; //Alpha Blend i enable yap.Enable olmazsa yukarıda anlatılanların bir anlamı olmaz...
İyi Günler Dilerim...