Plazma sayı 1, sayfa 46

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 46

Bu yazıda basit geçiş (transition) efektlerinden biri olan "fade"den bahsedeceğim. Efekt birden fazla yöntemle yapılabilir. Detaya girmeden yazıda anlatılacak yöntemlere bir bakalım:

1) Frame Buffer ile Blending. (OpenGL ve fixed pipe ile) 2) Render to Texture (OpenGL ve fixed pipe ile) 3) Pixel Shader (Direct3D ve programlanabilir pipe ile)

Görüldüğü gibi herkes için bir şeyler var (sensei için bile hehe :) ). Tutorial popüler grafik API'ları ile tecrübesi olan (ileri seviye bilgi gerekmiyor) coder'lar düşünülerek hazırlandı. Yeri gelmişken söylemek istediğim bir şey var. Yazıda çok miktarda İngilizce kelime (çoğu teknik terim) olabilir. Grafik programlama terminolojisini bilenler için sorun olmaz sanırım ama Türkçeleştirme için ekstra efor sarf etmeyeceğim. Yani gidip de texture map için doku eşlemi falan demeyeceğim ama gereken yerlerde de terimler/kavramlar hakkında gerekli açıklamaları yapacağım.

Birisi Fade in mi dedi??

Ne anlattığımızı detaylıca açıklamanın vakti geldi. Farz edelim bir demo yapıyorsunuz. Sahneler (ya da part'lar mı diyelim..) arası geçişlerin de yumuşak olmasını istiyorsunuz.. Yani ani, kütük gibi geçişler olmayacak. Mesela ekranın yavaşça kararması ya da kararmış bir ekrandan sahnenin yavaş yavaş görünür hale gelmesi gibi şeylerden bahsediyorum. Sanırım yapmak istediğimiz şey anlaşılıyor. Şimdi gerekli tanımları yapalım:

Fade in: Gösterilmek istenen sahnenin yavaş yavaş görünür hale gelmesi. Genellikle siyah ekrandan başlanır ve sahne zamanla görünür hale gelir. Siyah renk zorunluluk değil tabii ki. İstediğiniz renkten başlayabilirsiniz.

Fade out: Sahnenin yavaş yavaş gözden kaybolması durumu. Genellikle siyah renge doğru gidip ekranı karartırız. Siyah dışındaki renklere de gitmek mümkün.

Tamam şimdi bu iki efekti nasıl yapabiliriz ona bakalım.

1) Frame Buffer ile Blending Yöntemi

Bu yöntem için yapılması gerekenleri kısaca bir sıralayalım, sonra detaylarına gireceğiz.

- Sahnenizi normalce çizdirin. - Depth Test'i kapatın.

- Orthographic projeksiyona geçin.

- Alpha Blending'i aktif hale getirin.

- Screen Aligned Quad (Tüm ekranı kaplayan dörtgen) çizdirin. - Alpha Blending'i kapatın.

- Tüm çizdirim işlemlerini bitirin.

Bu yöntem full-screen alpha blending kullanıyor. Önce sahneniz neyse onu çizdiriyorsunuz, ondan sonra orthographic projeksiyon moduna geçip tam ekran bir dörtgen çizdiriyorsunuz. Dörtgeni çizdirirken, dörtgeni oluşturan vertex'lerdeki alpha değerlerini zamanla 0'dan 1'e ya da 1'den 0'a doğru çekiyoruz.

Frame Buffer ile Blending ve Doğru Blending Faktörlerini Seçmek

Yöntemin ismine frame buffer ile blending dedim. Peki nedir frame buffer ile blending?

Klavyeyle gezinmek için ← ve → tuşları.