wmismail Posted August 10, 2008 Share Posted August 10, 2008 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... Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.