Aracılığıyla paylaş


Efektler (Direct3D 9)

Microsoft DirectX etkisi, nesneleri işlemek için köşe ve piksel gölgelendiricilerinin işlem hattı durumuyla tümleştirilmesini sağlar. Efektler, benzersiz işleme koşulları oluşturmak için gölgelendiricileri birleştirmenin bir sonraki mantıksal adımıdır.

Efektler, farklı donanım sürümleri için gölgelendirici yazmanın kullanışlı bir yolunu da sağlar. Farklı ekran kartları farklı işlevleri desteklediğinden, bir uygulama çeşitli cihazlarda çalışacak çeşitli teknikler yazabilir. Bu şekilde, uygulama en son ve en büyük donanım üzerinde çalışıyorsa, uygulama en gelişmiş efekt tekniğini çalıştırabilir. Öte yandan, daha az karmaşık efekt teknikleri, daha az pahalı veya daha az yetenekli donanımlarda çalışacak şekilde otomatik olarak seçilebilir.

Bir etki, köşe işlemesinin ve grafik işlem hattı tarafından gerçekleştirilen piksel işlemenin bir kısmının yerini alabilir. BasicHLSL Örneği'nde köşe gölgelendiricisi ve piksel gölgelendiricisi kullanan bir efekt örneği verilmiştir. Bu örneği alabilir ve DirectX SDK'sından öğrenebilirsiniz. DirectX SDK'sı hakkında bilgi için bkz. DirectX SDK'sı nerede?.

Efektler hakkında daha fazla bilgi için şu konulara bakın:

Efektler ve 3B İşlem Hattı

Aşağıdaki diyagramda işlem hattı gösterilmektedir.

3b işlem hattıdiyagramı

İşlem hattı, giriş verilerini kare arabelleğini dolduran çıkış piksellerine dönüştürür. Giriş verileri nesne alanında köşelerden veya N yamaları, dikdörtgen düzeltme ekleri ve üçgen düzeltme eklerinden oluşturulan daha yüksek sıralı yüzeylerden oluşan nesnelerden gelir. Giriş verileri mozaiklendikten sonra işlem hattı, son piksel renklerini oluşturmadan önce köşe işleme, ilkel işleme ve piksel işleme gerçekleştirir.

Köşe ve piksel işleme sabit işlev işlem hattı tarafından gerçekleştirilebilir veya programlanabilir gölgelendiricilerle uygulanabilir. Giriş verisi döşemesi, ilkel işleme ve veri çıkışları işlem hattı durumu tarafından denetlenmektedir. Tüm bunlar bir etkiyle tümleştirilebilir. Etki, işlem hattının nasıl çalıştığını denetleen durumu ayarlar. Efektler, programlanabilir gölgelendiricilerin yanı sıra sabit işlev durumunu yönetir.

Efektler, etki çalıştırılana kadar cihazı aynı durumda bırakarak durumu kaydedebilir ve geri yükleyebilir. Bir efektin yönetebileceği durum türleri şunlardır:

  • Gölgelendirici durumu. Buna gölgelendirici oluşturma ve silme, gölgelendirici sabitlerini ayarlama, gölgelendirici durumunu ayarlama ve gölgelendiricilerle işleme dahildir.
  • Doku ve örnekleyici durumu. Bu, doku dosyalarını belirtmeyi, doku aşamalarını başlatmayı, örnekleyici nesneleri oluşturmayı ve örnekleyici durumunu ayarlamayı içerir.
  • Diğer işlem hattı durumu. Bu, dönüştürmeleri, aydınlatmayı, malzemeleri ve işleme seçeneklerini ayarlama durumlarını içerir. Bunlar genel veya yerel değişkenler olabilir. Değişkenler, efektin kendisi veya uygulama tarafından ayarlanabilir.

Efektler, teknikler olarak adlandırılan birden çok işleme seçeneği içerir. Her teknik genel değişkenleri, işlem hattı durumunu, dokuyu ve örnekleyici durumunu ve gölgelendirici durumunu kapsüller. İşleme geçişinde tek bir stil uygulanır. Bir veya daha fazla geçiş bir teknikte kapsüllenebilir. Tüm geçişler ve teknikler, efekt kodunun donanım cihazında çalıştırılıp çalıştırılmadığını görmek için doğrulanabilir.

Efektler Kaydetme ve Geri Yükleme Durumu

Efektler durumu yönetir. durum sözcüğü, işlem hattının işleme koşullarını belirtmek için ihtiyaç duyduğu her türlü bilgiyi içerdiğinden burada çok geniş bir şekilde kullanılır. Buna işlem hattının neredeyse tüm işlevsel alanları dahildir.

İşleme seçenekleri teknikler ve geçişlerle denetlenmektedir. Bir uygulama, bir etkin teknik ayarlayarak ve bir veya daha fazla geçişi işleyerek bir etki oluşturur. Bir efektteki tüm işleme, eşleşen bir çift Begin ve End çağrıları içinde gerçekleştirilir. Begin çağrıldığında bir durum engellemesi oluşturulur ve cihaz durumu kaydedilir (aksini belirtmediğiniz sürece). Bir teknik, uygulamanın işlemek için belirttiği geçişleri işledikten sonra, etkin tekniği sonlandırmak için End çağrılır. Etki sistemi, durum bloğunda yakalanan işlem hattı durumunu otomatik olarak geri yükleyerek yanıt verir (bu kaydetme ve geri yükleme işlevini devre dışı bırakmadığınız sürece).

Her biri kendi durum kurulumunu gerektiren çok geçişli işleme dizilerini programlarken, efektler durum değişikliklerini izlemek için gereken temizlik miktarını azaltabilir. Efektler tarafından kaydedilebilecek ve geri yüklenebilen durumlar hakkında daha fazla bilgi için bkz. Efekt Durumları (Direct3D 9).

Efektler Parametreleri Paylaşabilir

Efekt parametreleri, bir efektte bildirilen tüm statik olmayan değişkenlerdir. Bu, genel değişkenleri ve ek açıklamaları içerebilir. Etki parametreleri, paylaşılan anahtar sözcükle parametreler bildirilerek ve ardından efekt havuzuyla oluşturularak farklı efektler arasında paylaşılabilir.

Kopyalanan efektler, kopyalandıkları efektle aynı efekt havuzunu kullanır. Bir efektin kopyalanması, genel değişkenler, teknikler, geçişler ve ek açıklamalar dahil olmak üzere bir efektin tam kopyasını oluşturur.

Direct3D 9 için Programlama Kılavuzu