Pixel Bender gölgelendiricilerinin temelleri

Flash Player 10 ve üstü, Adobe AIR 1.5 ve üstü

Adobe Pixel Bender, görüntü içeriğini oluşturmak veya işlemek için kullanılan bir programlama dilidir. Pixel Bender'ı kullanarak gölgelendirici olarak da adlandırılan bir çekirdek oluşturursunuz. Gölgelendirici, görüntü piksellerinin her birinde ayrı ayrı çalıştırılan tek bir işlevi tanımlar. İşleve yapılan her çağrının sonucu, görüntüde o piksel koordinatındaki çıktı rengidir. İşlemi özelleştirmek için girdi görüntüleri ve parametre değerleri belirtilebilir. Gölgelendiricinin tek bir çalıştırmasında girdi ve parametre değerleri sabittir. Değişen tek şey, rengi işlev çağrısının sonucu olan pikselin koordinatıdır.

Mümkün olduğunca, paralel olarak birden çok çıktı piksel koordinatı için gölgelendirici işlevi çağrılır. Bu da gölgelendirici performansını artırır ve yüksek performanslı işleme sağlar.

ActionScript'te bir gölgelendirici kullanılarak üç efekt türü kolayca oluşturulabilir.

  • çizim dolgusu

  • harmanlama modu

  • filtre

Gölgelendirici, bağımsız modda da çalıştırılabilir. Bağımsız mod kullanılarak, tasarlanan kullanımı önceden belirtilmeden gölgelendiricinin sonucuna doğrudan erişilir. Görüntü verisi veya ikili veri ya da sayı verisi olarak sonuca erişilebilir. Verinin görüntü verisi olması gerekmez. Bu şekilde, gölgelendiriciye girdi olarak bir veri kümesi verebilirsiniz. Gölgelendirici verileri işler ve siz de gölgelendiricinin döndürdüğü sonuç verilerine erişebilirsiniz.

Flash Player 10 ve Adobe AIR 1.5'ten itibaren Pixel Bender desteği mevcuttur. Pixel Bender karışımları, filtreleri ve dolguları GPU işlemesi altında desteklenmez. Mobil aygıtlarda, Pixel Bender gölgelendiricileri işlemcinin görüntü oluşturma işlemi altında çalışmaz. Ancak, performans masaüstü bilgisayardakiyle aynı düzeyde değildir. Birçok gölgelendirici programı yalnızca saniye başına birkaç kare şeklinde yürütülür.

Önemli kavramlar ve terimler

Aşağıdaki başvuru listesi Pixel Bender gölgelendiricileri kullanırken ve oluştururken karşılaşacağınız önemli terimleri içerir:

Çekirdek
Pixel Bender için çekirdek, gölgelendirici ile aynı şeydir. Pixel Bender'ı kullanarak kodunuz, bir görüntünün piksellerinin her birinde ayrı ayrı çalışan tek bir işlevi tanımlayan bir çekirdeği tanımlar.

Pixel Bender bayt kodu
Pixel Bender çekirdeği derlendiğinde, Pixel Bender bayt koduna dönüştürülür. Bayt kodu çalışma zamanında erişilir ve çalıştırılır.

Pixel Bender dili
Pixel Bender çekirdeği oluşturmak için kullanılan programlama dili.

Pixel Bender Araç Kiti
Pixel Bender kaynak kodundan bir Pixel Bender bayt kodu oluşturmak için kullanılan uygulama. Araç kiti, Pixel Bender kaynak kodunu yazmanıza, test etmenize ve derlemenize olanak sağlar.

Shader
Bu belgenin amaçları doğrultusunda gölgelendirici, Pixel Bender dilinde yazılmış bir işlevler kümesidir. Gölgelendiricinin kodu bir görsel efekt oluşturur veya bir hesaplama gerçekleştirir. Her iki durumda da, gölgelendirici bir veri kümesi döndürür (genellikle görüntünün pikselleri). Gölgelendirici her bir veri noktasında aynı işlemi gerçekleştirir, tek fark çıktı pikselinin koordinatlarıdır. Gölgelendirici ActionScript'te yazılı değildir. Pixel Bender dilinde yazılır ve Pixel Bender bayt koduna derlenir. Derleme zamanında bir SWF dosyasına gömülebilir veya çalışma zamanında harici dosya olarak yüklenebilir. Her iki durumda da, Shader nesnesinin oluşturulmasıyla ve söz konusu nesnenin gölgelendirici bayt koduna bağlanmasıyla buna erişilebilir.

Gölgelendirici girdisi
Hesaplamalarında kullanılmak üzere bir gölgelendiriciye sağlanan ve genellikle bitmap görüntü verisi olan karmaşık bir girdi. Gölgelendiricide tanımlanan her girdi değişkeni için gölgelendiricinin çalıştırmasının tamamına yönelik tek bir değer (başka bir deyişle, tek bir görüntü veya ikili veri kümesi) kullanılır.

Gölgelendirici parametresi
Hesaplamalarında kullanılmak üzere bir gölgelendiriciye sağlanan tek bir değer (veya sınırlı değerler kümesi). Her parametre değeri tek bir gölgelendirici çalıştırması için tanımlanır ve gölgelendirici çalıştırması boyunca aynı değer kullanılır.

Kod örnekleriyle çalışma

Sağlanan örnek kod listelerini test etmek isteyebilirsiniz. Kodu test etmek kodu çalıştırıp oluşan SWF'deki sonuçları incelemeyi içerir. Tüm örnekler, gölgelendirici efektini kullanan veya gölgelendirici efekti tarafından değiştirilen çizim API'sini kullanarak içerik oluşturur.

Örnek kod listelerinin çoğu iki bölümden oluşur. Birinci bölüm, örnekte kullanılan gölgelendiricinin Pixel Bender kaynak kodudur. Kaynak kodu Pixel Bender bayt koduna derlemek için öncelikle Pixel Bender Araç Kitini kullanmanız gerekir. Pixel Bender bayt kodu dosyasını oluşturmak için bu adımları izleyin:

  1. Adobe Pixel Bender Araç Kiti'ni açın. Gerekirse, Oluştur menüsünden "Flash Player uyarı ve hatalarını açın" seçeneğini belirleyin.

  2. Pixel Bender kod listesini kopyalayın ve Pixel Bender Araç Kiti'nin kod düzenleyici bölmesine yapıştırın.

  3. Dosya menüsünden "Flash Player için çekirdek filtresini dışa aktar" seçeneğini belirleyin.

  4. Pixel Bender bayt kodu dosyasını Flash belgesiyle aynı dizine kaydedin. Dosya adının, örnek açıklamasında belirtilen adla eşleşmesi gerekir.

Her örneğin ActionScript bölümü, sınıf dosyası olarak yazılır. Flash Professional’da örneği test etmek için:

  1. Boş bir Flash belgesi oluşturun ve bu belgeyi bilgisayarınıza kaydedin.

  2. Yeni bir ActionScript dosyası oluşturun ve bu dosyayı Flash belgesiyle aynı dizine kaydedin. Dosyanın adı ile, kod listesindeki sınıf adının eşleşmesi gerekir. Örneğin, kod listesi, MyApplication adında bir sınıfı tanımlıyorsa, ActionScript dosyasını kaydetmek için MyApplication.as adını kullanın.

  3. Kod listesini ActionScript dosyasına kopyalayın ve dosyayı kaydedin.

  4. Belgenin Özellik denetçisini etkinleştirmek için, Flash belgesinde Sahne Alanı'nın boş bir bölümünü veya çalışma alanını tıklatın.

  5. Özellik denetçisinde Belge Sınıfı alanına, metinden kopyaladığınız ActionScript sınıfının adını girin.

  6. Kontrol Et > Filmi Test Et komutunu kullanarak programı çalıştırın

    Önizleme penceresinde, örneğin sonuçlarını göreceksiniz.

Örnek kod listelemelerini sınamak için kullanılan bu teknikler ActionScript Örnekleri Nasıl Kullanılır? bölümünde ayrıntılı bir şekilde bulunabilir.