Aracılığıyla paylaş


Efektler (Direct3D 10)

DirectX efekti, HLSL yazılmış ifadeler ve efekt çerçevesine özgü bazı söz dizimleri tarafından ayarlanan bir işlem hattı durumu koleksiyonudur. Bir efekti derledikten sonra, işlemek için efekt çerçevesi API'lerini kullanın. Efekt işlevselliği, geometriyi dönüştüren köşe gölgelendiricisi ve düz renk çıkışı veren bir piksel gölgelendiricisi kadar basit bir öğeden birden çok geçiş gerektiren, grafik işlem hattının her aşamasını kullanan ve gölgelendirici durumunu ve programlanabilir gölgelendiricilerle ilişkilendirilmeyen işlem hattı durumunu işleyen bir işleme tekniğine kadar değişebilir.

İlk adım, denetlemek istediğiniz durumu bir efektte düzenlemektir. Buna gölgelendirici durumu (köşe, geometri ve piksel gölgelendiricileri), gölgelendiriciler tarafından kullanılan doku ve örnekleyici durumu ve diğer programlanamayan işlem hattı durumu dahildir. Bellekte metin dizesi olarak bir efekt oluşturabilirsiniz, ancak genellikle boyut, efekt durumunu bir efekt dosyasında (.fx uzantısıyla biten bir metin dosyası) depolamak için kullanışlı olacak kadar büyür. Bir efekti kullanmak için, bunu derlemeniz (HLSL söz dizimini ve efekt çerçevesi söz dizimini denetlemek için), API çağrıları aracılığıyla efekt durumunu başlatmanız ve işleme API'lerini çağırmak için işleme döngünüzü değiştirmeniz gerekir.

Efekt, belirli bir efektin gerektirdiği tüm işleme durumunu tek bir işleme işlevine (teknik olarak adlandırılır) kapsüller. Geçiş, işleme durumunu içeren bir tekniğin alt kümesidir. Birden çok geçiş işleme efekti uygulamak için bir teknik içinde bir veya daha fazla geçiş uygulayın. Örneğin, bir dizi derinlik/kalıp arabelleğiyle bazı geometrileri işlemek istediğinizi ve ardından bunun üzerine bazı spriteler çizmek istediğinizi varsayalım. İlk geçişte geometri işlemeyi ve ikinci geçişte sprite çizimini uygulayabilirsiniz. Efekti işlemek için her iki geçişi de işleme döngünüzde işlemeniz yeterlidir. Bir efektte istediğiniz sayıda teknik uygulayabilirsiniz. Elbette, teknik sayısı ne kadar fazlaysa, etki için derleme süresi de o kadar fazla olur. Bu işlevden yararlanmanın bir yolu, farklı donanımlarda çalışacak şekilde tasarlanmış tekniklerle efektler oluşturmaktır. Bu, bir uygulamanın algılanan donanım özelliklerine göre performansı düzgün bir şekilde düşürmesine olanak tanır.

Direct3D 10 için Programlama Kılavuzu