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.
Not
Windows 10'daki uygulamalar için DirectComposition yerine Windows.UI.Composition API'lerini kullanmanızı öneririz. Daha fazla bilgi için bkz. Görsel katmanını kullanarak masaüstü uygulamanızı modernleştirme.
Bu konu başlığında, Microsoft DirectComposition efektlerinin temelleri açıklanır ve DirectComposition'ın desteklediği efekt türleri açıklanmaktadır.
Bu konu aşağıdaki bölümleri içerir:
- DirectComposition etkisi nedir?
- Opaklık
- 3B perspektif dönüştürme efektleri
- DirectComposition 3D koordinat alanı
- 3B döndürme dönüştürme efekti
- 3B ölçeklendirme dönüştürme efekti
- 3B çeviri dönüştürme efekti
- 3B matris dönüştürme efekti
- 3B dönüşüm efekti grubu
- Efekt nesneleri
- İlgili konular
DirectComposition etkisi nedir?
DirectComposition etkisi, görselin görünümünü bir şekilde değiştirmek için görselin rasterleştirilmesi sırasında uygulanan bir bit eşlem işlemidir.
DirectComposition, bir görsel alt ağacı alıp efekti uygulamadan önce tek bir bit eşlem halinde işleyerek bir efekt oluşturur. Örneğin, 3B perspektif dönüştürme efekti oluşturmak için DirectComposition görsel alt ağacının görüntüsünü oluşturur ve ardından görüntüyü 3B dönüştürme efektinin sonuç matrisine göre dönüştürülen bir 3B düzleme dokular.
DirectComposition aşağıdaki etki türlerini destekler.
| Efekt türü | Açıklama |
|---|---|
| Opaklık | Görselin tamamının opaklığını ayarlar. |
| 3B perspektif dönüştürme | Görsele üç boyutlu (3B) perspektif dönüştürme efekti uygular. |
Not
DirectComposition, 3B stereo içeriğe efekt uygularken özel bir işlem yapmaz. Bu, bir efekt uygulandığında 3B içeriğin bozuk görünebileceği anlamına gelir.
Opak -lık
Opaklık efekti, görsel işlendiğinde görselin tamamına uygulanan opaklık faktörünü ayarlamanıza olanak tanır. Görseldeki tüm piksellere aynı opaklık faktörü uygulandığından alfa maskesinden farklıdır. Opaklık, 0 (tamamen saydam) ile 1 (tamamen opak) arasında bir değer olarak belirtilir.
Opaklık faktörü üst görsellerden alt görsellere uygulanır, ancak iç içe opaklık ayarlarının görünür etkileri tek tek alt görsellerin özellik değerinde gösterilmez. Örneğin, kök görselde 50% (0,5) opaklık varsa ve alt öğelerinden birinin 20% (0,2) opaklığı varsa, o çocuğun net opaklığı 10% (0,1) olarak işlenir, ancak çocuğun Opaklık özelliğinin değeri yine de 0,2 olur.
3B perspektif dönüştürme efektleri
Bu bölümde DirectComposition'ın 3B perspektif dönüştürme efektlerini gerçekleştirmek için kullandığı koordinat alanı açıklanmaktadır. Ayrıca DirectComposition'ın desteklediği 3B perspektif dönüştürme efektlerinin türleri de açıklanmaktadır.
- DirectComposition 3D koordinat alanı
- 3B döndürme dönüştürme efekti
- 3B ölçeklendirme dönüştürme efekti
- 3B çeviri dönüştürme efekti
- 3B matris dönüştürme efekti
- 3B dönüşüm efekti grubu
Not
DirectComposition'da, görsel ağaçtaki birden çok düzeye 3B efektler uygulamak, Microsoft Direct3D gibi tam bir 3B altyapıyla olduğu gibi çalışmaz. Örneğin, tek bir alt görseli olan bir üst görseli düşünün. Alt görsel z yönünde (y ekseni çevresinde) 90 derece ileri doğru döndürülürse, alt görsel kenarı görüntüleyiciyle karşılaşır ve bu nedenle görselin görünür olmamasını bekleriz (bit eşlem gerçek derinliği olmadığından). Üst görsel daha sonra negatif z yönünde (y ekseni çevresinde) 90 derece geri döndürülürse, alt görselin tam olarak görünür hale gelmesini bekleyebiliriz (dönüştürmeler birbirini olumsuzlaştırdığından). Ancak DirectComposition'da durum böyle değildir. Alt görsel üst bit eşlem içinde "düzleştirilmiş" olduğundan görünmez.
DirectComposition 3D koordinat alanı
3B dönüşüm efektleri için DirectComposition koordinat alanı bit eşlem yüzeyinin sol üst köşesindeki başlangıcı (0,0,0) bulur ve pozitif x ekseni değerleri sağa doğru ilerler, pozitif y ekseni değerleri aşağı doğru ilerler ve pozitif z ekseni değerleri çıkış noktasından görüntüleyiciye doğru ilerler. Bu çizimde DirectComposition 3D koordinat alanı gösterilmektedir.
3B döndürme dönüştürme efekti
3B döndürme dönüştürme efekti, belirtilen merkez noktasında (x,y,z] bulunan [x,y,z] döndürme ekseni vektörü hakkında belirtilen açıya göre görseli üç boyutta döndürür. Açı derece cinsinden belirtilir. Varsayılan döndürme ekseni vektöru [0,0,-1], varsayılan merkez noktası ise (0,0,0) şeklindedir.
3B döndürme dönüştürme nesnesi oluşturmak için IDCompositionDevice::CreateRotateTransform3D yöntemini kullanın. yöntemi, nesnenin özelliklerini ayarlamak için kullanabileceğiniz bir IDCompositionRotateTransform3D arabirimi alır.
3B ölçeklendirme dönüştürme etkisi
3B ölçeklendirme dönüştürme efekti, görseli büyütür veya küçültür. Bir görseli merkez noktası (x,y,z) hakkında [x,y,z] yönünde ölçeklendirir. Varsayılan orta nokta (0,0,0).
3B ölçeklendirme dönüştürme nesnesi oluşturmak için IDCompositionDevice::CreateScaleTransform3D yöntemini kullanın. yöntemi, nesnenin özelliklerini ayarlamak için kullanabileceğiniz bir IDCompositionScaleTransform3D arabirimi alır.
3B çeviri dönüştürme etkisi
3B çeviri dönüştürme efekti, görselin [x,y,z] yönündeki konumunu değiştirir.
3B çeviri dönüştürme nesnesi oluşturmak için IDCompositionDevice::CreateTranslateTransform3D yöntemini kullanın. yöntemi, nesnenin özelliklerini ayarlamak için kullanabileceğiniz bir IDCompositionTranslateTransform3D arabirimi alır.
3B matris dönüştürme efekti
IDCompositionMatrixTransform3D arabirimi, kendi 4'e 4 dönüştürme matrisinizi tanımlamanızı ve bir görsele uygulamanızı sağlar. Bu arabirim, diğer DirectComposition 3B dönüştürme efekti arabirimleri aracılığıyla kullanılamayan bir 3B perspektif dönüştürme efekti türü uygulamanız gerekiyorsa kullanışlıdır. Matrisi D3DMATRIX bir yapı doldurup IDCompositionMatrixTransform3D::SetMatrix yöntemine geçirerek tanımlarsınız. Alternatif olarak, IDCompositionMatrixTransform3D::SetMatrixElement yöntemini kullanarak matrisin her öğesini ayarlayabilirsiniz.
3B dönüşüm efekti grubu
IDCompositionDevice::CreateTransform3DGroup, bir görsele grup olarak uygulayabileceğiniz bir 3B dönüştürme efektleri koleksiyonu oluşturur. Dizi, istediğiniz sayıda dönüştürme nesnesi içerebilir ve matris, döndürme, ölçeklendirme ve dönüştürmeleri içerebilir. 3B dönüştürme nesnelerinin koleksiyonu, değeri koleksiyondaki tek tek dönüştürme matrislerinin matris çarpması olan bir dönüşümle sonuçlanır.
Gruptaki bireysel dönüşümlerin sırası önemlidir. Örneğin, önce döndürdükten sonra ölçeklendikten sonra çeviri yaparsanız, önce çevirip, sonra döndürdükten sonra ölçeklendirmekten farklı bir sonuç elde edersiniz. DirectComposition, bir dönüşüm 3B grubu içinde 3B dönüşümleri belirttiğiniz sırayı 2B dönüşümlerde olduğu gibi dikkate alır. Ayrıca 3B perspektif dönüşümleri, geçerli görseldeki tüm 3B dönüşümler uygulandıktan sonra görsel ağacının düzleştirmesine neden olur. Bu, sahnenin mümkün olduğunca 3B'ye yakın göründüğünden emin olmak için yapılır.
Efekt nesneleri
Bir görsele efekt uygulamak için, önce görsel üzerinde üretmek istediğiniz efekt türünü temsil eden bir efekt nesnesinin özelliklerini oluşturmanız ve ayarlamanız gerekir. Ardından, efekt nesnesini görselin Effect özelliğine uygulamanız gerekir.
Efekt nesnesi oluşturmak için, aşağıdaki IDCompositionDevice arabirim yöntemlerinden birini kullanarak istediğiniz efekt türü için bir efekt nesnesi oluşturun. Aşağıdaki yöntemler efekt nesneleri oluşturur:
Önceki yöntemlerin her biri, yeni oluşturulan efekt nesnesinin özelliklerini ayarlamak için kullanabileceğiniz bir arabirim alır. arabirim yöntemlerini kullanarak istediğiniz görsel efekti oluşturmak için özellikleri gerektiği gibi ayarlayın.
Efekt nesnesinin çoğu özelliği animasyonlu olabilir. Belirli bir özelliğe animasyon eklemek için bir animasyon nesnesi oluşturun ve animasyon eklemek istediğiniz özelliğe uygulayın; aksi takdirde, özelliğini istediğiniz efekti üreten statik bir değere ayarlayın. Özellikleri animasyonlandırma hakkında daha fazla bilgi için bkz. animasyon .
Görsele efekt nesnesi uygulamak için IDCompositionVisual::SetEffect yöntemini çağırın. Bir görsele efekt uyguladığınızda, efekt söz konusu görselin kök dizinindeki tüm görsel alt ağacına uygulanır. Bu nedenle, örneğin, bir görselin opaklığını yüzde 50 olarak ayarlarsanız, görsel alt ağacındaki tüm alt görsellerin opaklığı yüzde 50 azaltılır. Aynı efekt nesnesini bir veya daha fazla görsele uygulayabilirsiniz. Bir efekt nesnesini görsellere uyguladıktan sonra özelliklerini değiştirirseniz, tüm görseller değişikliği yansıtacak şekilde yeniden oluşturulur.
Efekt grubu nesnesi kullanarak, bir görsele aynı anda birden çok efekt uygulayabilirsiniz. İlk olarak IDCompositionDevice::CreateEffectGroup çağırarak efekt grubu nesnesini oluşturun ve ardından nesnenin IDCompositionEffectGroup arabirimini kullanarak gruba efektler ekleyin.
İlgili konular