Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Direct3D 10'da cihaz durumu durum değişikliklerinin maliyetini büyük ölçüde azaltan durum nesneleri halinde gruplandırılır. Birkaç durum nesnesi vardır ve her biri belirli bir işlem hattı aşaması için bir durum kümesi başlatacak şekilde tasarlanmıştır. Her durum nesnesi türünden en fazla 4096 oluşturabilirsiniz.
- Input-Layout State
- Rasterizer Durumu
- Depth-Stencil State
- blend durumu
- Örnekleyici Durumu
- Performansla İlgili Önemli Noktalar
- İlgili konular
Input-Layout Durumu
Bu durum grubu (bkz. D3D10_INPUT_ELEMENT_DESC), giriş derleyicisi aşamasının verileri giriş arabelleklerinden nasıl okuyup köşe gölgelendiricisi tarafından kullanılmak üzere birleştirdiğini belirler. Bu, giriş arabelleğindeki öğe sayısı ve giriş verilerinin imzası gibi durumları içerir. Giriş-derleyici aşaması, ilkelleri bellekten işlem hattına akışla aktarmak olan işlem hattında yeni bir aşamadır.
Input-layout-state nesnesi oluşturmak için bkz. createInputLayout.
Rasterleştirici Durumu
Bu durum grubu (bkz. D3D10_RASTERIZER_DESC), rasterizer aşamasınıbaşlatır. Bu nesne dolgu veya cull modları gibi durumları içerir, kırpma için bir makas dikdörtgeni etkinleştirir ve çok örnekli parametreler ayarlar. Bu aşama, ilkelleri pikseller halinde rasterleştirerek ilkelleri kırpma ve görünüm penceresine eşleme gibi işlemler gerçekleştirir.
Rasterizer-state nesnesi oluşturmak için bkz. createRasterizerState.
Depth-Stencil Durumu
Bu durum grubu (bkz. D3D10_DEPTH_STENCIL_DESC), çıktı birleştirme aşamasının derinlik kalıbı bölümünü başlatır. Daha açık belirtmek gerekirse, bu nesne derinlik ve kalıp testlerini başlatır.
Derinlik-kalıp durumu nesnesi oluşturmak için bkz. CreateDepthStencilState.
Blend Durumu
Bu durum grubu (bkz. D3D10_BLEND_DESC), çıktı birleştirme aşamasınınkarıştırma bölümünü başlatır.
Blend-state nesnesi oluşturmak için bkz. createBlendState.
Örnekleyici Durumu
Bu durum grubu (bkz. D3D10_SAMPLER_DESC) bir örnekleyici nesnesi başlatır. Örnekleyici nesnesi, gölgelendirici aşamaları tarafından bellekteki dokuları filtrelemek için kullanılır.
Direct3D 9 ile Direct3D 10 arasındaki farklar:
- Direct3D 10'da örnekleyici nesnesi artık belirli bir dokuya bağlı değildir, yalnızca ekli kaynaklara göre filtrelemenin nasıl yapılacağını açıklar.
Sampler-state nesnesi oluşturmak için bkz. CreateSamplerState.
PerformansLa İlgili Dikkat Edilmesi Gerekenler
API'yi durum nesnelerini kullanacak şekilde tasarlamak çeşitli performans avantajları sağlar. Bunlar, nesne oluşturma zamanında durumu doğrulamayı, durum nesnelerinin donanımda önbelleğe alınmasını etkinleştirmeyi ve durum ayarı API çağrısı sırasında geçirilen durum miktarını büyük ölçüde azaltmayı (durum yerine durum nesnesine bir tanıtıcı geçirerek) içerir.
Bu performans geliştirmelerini elde etmek için, uygulamanız başlatıldığında, işleme döngünüzden önce durum nesnelerinizi oluşturmanız gerekir. Durum nesneleri sabittir, yani oluşturulduktan sonra bunları değiştiremezsiniz. Bunun yerine onları yok etmeli ve yeniden oluşturmalısınız. Bu kısıtlamayla başa çıkmak için her durum nesnesi türünden en fazla 4096 oluşturabilirsiniz. Örneğin, çeşitli örnekleyici durum bileşimleriyle birkaç örnekleyici nesnesi oluşturabilirsiniz. Daha sonra örnekleyici durumunun değiştirilmesi, nesneye bir tanıtıcı geçiren (örnekleyici durumunun aksine) uygun Küme API'sinin çağrılmasıyla gerçekleştirilir. Bu, çağrı sayısı ve veri miktarı büyük ölçüde azaldığından, durum değiştirme için her işleme çerçevesi sırasındaki ek yük miktarını önemli ölçüde azaltır.
Alternatif olarak, uygulamanız için durum nesnelerinin verimli bir şekilde oluşturulmasını ve yok edilmesini otomatik olarak yönetecek efekt sistemini kullanmayı seçebilirsiniz.
İlgili konular