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.
Işık kaynağının yönlendirilmiş ışık konisi ile sınırlı olduğu yansıtıcı bir yüzey gibi görünen bir görüntü oluşturmak için spot-specular aydınlatma efektini kullanın. Bu efekt, alfa kanalını yükseklik haritası olarak kullanır ve görüntüyü nokta ışık kaynağıyla aydınlatabilir.
Çıktı bitmap'inin rengi, Phong aydınlatma modelinin yansıma bileşenine göre ışık rengi, ışık konumu, koninin yönü ve yüzey geometrisinin bir sonucudur. Belirtik aydınlatmalı her piksel için alfa kanalı çıkışı, bu piksel için kırmızı, yeşil ve mavi kanal çıkışlarının maksimum değeridir.
Bu etki için CLSID CLSID_D2D1SpotSpecular.
Örnek resim
Buradaki örnekte spot-specular aydınlatma efektinin giriş ve çıkış görüntüleri gösterilmektedir.
Ayna ışığı, belirli bir yönde yansıtılan ışığı ifade eder.
Efekt, son çıkış piksel değerlerini hesaplamak için buradaki denklemleri kullanır:
Çıktı piksel denklemlerini
nerede
Değişken tanımları.
Spot ışık kaynağı
Spot ışık kaynağı, konideki ışığı belirli bir yönde yayar ve koninin dışına ışık yaymaz.
Spot ışık kaynağı, Işık Vektörü L ve Yarı Vektör H'yi nokta-benekli etkisiyle aynı şekilde hesaplar.
Efekt, ışık rengini, Lr, Lg, Lb'yi, ışık kaynağının konumunun bir fonksiyonu olarak burada gösterilen denklemlerle hesaplar.
Spot ışık kaynağıdenklemi
Vektör şu denklemlerle tanımlanır:
Vektör şu denklemlerle tanımlanır:
denklem
Efekt özellikleri
Görünen ad ve dizin numaralandırması | Açıklama |
---|---|
Işık Pozisyonu D2D1_SPOTSPECULAR_PROP_LIGHT_POSITION (Işığın Pozisyonu) |
Nokta ışık kaynağının ışık konumu. Bu özellik, (x, y, z) şeklinde tanımlanan bir D2D1_VECTOR_3F'dir. Birimler cihazdan bağımsız piksellerde (DIP) ve ilişkisizdir. Türü D2D1_VECTOR_3F. Varsayılan değer: {0.0f, 0.0f, 0.0f}. |
PointsAt D2D1_SPOTSPECULAR_PROP_POINTS_AT |
Spot ışığın odaklandığı yer. Özellik, (x, y, z) bileşenleriyle bir D2D1_VECTOR_3F olarak sağlanır. Birimler DIP cinsindedir ve değerler sınırsızdır. Türü D2D1_VECTOR_3F. Varsayılan değer: {0.0f, 0.0f, 0.0f}. |
Odak D2D1_SPOTSPECULAR_PROP_FOCUS |
Spot ışığın odağı. Bu özellik birimsizdir ve 0 ile 200 arasında tanımlanır. Tür FLOAT'dır. Varsayılan değer 1,0f'dir. |
LimitingConeAngle D2D1_SPOT_SPECULAR_PROP_SINIRLAYICI_KONİ_AÇISI |
Işığın yansıtıldığı bölgeyi kısıtlayan koni açısı. Koninin dışına ışık yansıtılmaz. Sınırlayıcı koni açısı, spot ışık ekseni (LightPosition ile PointsAt özellikleri arasındaki eksen) ile spot ışık konisi arasındaki açıdır. Bu özellik derece cinsinden tanımlanır ve 0 ile 90 derece arasında olmalıdır. Tür FLOAT'dır. Varsayılan değer 90,0f'dir. |
SpecularExponent D2D1_SPOTSPECULAR_PROP_SPECULAR_EXPONENT |
Phong aydınlatma denklemindeki spektrüel terimin üssü. Daha büyük bir değer daha yansıtıcı bir yüzeye karşılık gelir. Bu değer birimsizdir ve 1,0 ile 128 arasında olmalıdır. Tür FLOAT'dır. Varsayılan değer 1,0f'dir. |
SpecularConstant D2D1_SPOTSPECULAR_PROP_SPECULAR_CONSTANT |
Benekli yansımanın gelen ışığa oranı. Değer birimsizdir ve 0 ile 10.000 arasında olmalıdır. Tür FLOAT'dır. Varsayılan değer 1,0f'dir. |
SurfaceScale D2D1_SPOTSPECULAR_PROP_SURFACE_SCALE |
Yükseklik haritası oluşturmak için Z yönündeki ölçek faktörü. Değer birimsizdir ve 0 ile 10.000 arasında olmalıdır. Tür FLOAT'dır. Varsayılan değer 1,0f'dir. |
Renk D2D1_SPOTSPECULAR_PROP_COLOR |
Gelen ışığın rengi. Bu özellik Vektör 3 (R, G, B) olarak sunulur ve LR, LG, LBhesaplamak için kullanılır. Türü D2D1_VECTOR_3F. Varsayılan değer: {1.0f, 1.0f, 1.0f}. |
ÇekirdekBirimUzunluğu D2D1_SPOTSPECULAR_PROP_KERNEL_UNIT_LENGTH |
X ve Y yönünde normal yüzey oluşturmak için kullanılan Sobel çekirdeğindeki bir öğenin boyutu. Bu özellik, Sobel gradyanındaki dx ve dy değerlerine eşlenir. Bu özellik bir D2D1_VECTOR_2F (Çekirdek Birimi Uzunluğu X, Çekirdek Birimi Uzunluğu Y) ve (DIPs/Çekirdek Birimi) içerisinde tanımlanmıştır. Etkisi, bit eşlemi çekirdek öğelerinin boyutuyla eşleşecek şekilde ölçeklendirmek için bilinear ilişkilendirme kullanır. Türü D2D1_VECTOR_2F. Varsayılan değer: {1.0f, 1.0f}. |
Ölçek Modu D2D1_SPOTSPECULAR_PROP_SCALE_MODE |
Efektin görüntüyü ilgili çekirdek birimi uzunluğuna ölçeklendirmek için kullandığı ilişkilendirme modu. Kalite ve hız olarak değişen altı ölçek modu vardır. Daha fazla bilgi için bkz. Ölçeklendirme modları. Türü D2D1_SPOTSPECULAR_SCALE_MODE. Varsayılan değer D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR. |
Ölçek modları
Sayım | Açıklama |
---|---|
D2D1_SPOTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR | En yakın tek noktayı örnekler ve bunu kullanır. Bu mod daha az işlem süresi kullanır, ancak en düşük kaliteli görüntüyü görüntüler. |
D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR | Dört noktalı örnek ve doğrusal ilişkilendirme kullanır. Bu mod, en yakın komşuya göre daha yüksek kaliteli bir görüntü oluşturur. |
D2D1_SPOTSPECULAR_SCALE_MODE_CUBIC | İlişkilendirme için 16 örnek kübik çekirdek kullanır. Bu mod en fazla işlem süresini kullanır, ancak daha yüksek kaliteli bir görüntü oluşturur. |
D2D1_SPOTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR | Kenar yumuşatma için tek bir piksel içinde 4 doğrusal örnek kullanır. Bu mod, birkaç piksel içeren görüntülerde küçük miktarlarda ölçeği küçültmek için iyidir. |
D2D1_SPOTSPECULAR_SCALE_MODE_ANISOTROPIC | Bitmapın dönüştürülmüş şekline göre bir modeli örneklemek için anizotropik filtrelemeyi kullanır. |
D2D1_SPOTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC | Dönüştürme matrisinde aşağı ölçeklendirme söz konusuysa görüntüyü önceden aşağı ölçeklendirmek için değişken boyutlu yüksek kaliteli kübik çekirdek kullanır. Ardından son çıkış için küp ilişkilendirme modunu kullanır. |
Not
Mod seçmezseniz efekt varsayılan olarak D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR olur.
Gereksinimler
Gereksinim | Değer |
---|---|
Desteklenen en düşük istemci | Windows 7 için Windows 8 ve Platform Güncelleştirmesi [masaüstü uygulamaları | Windows Mağazası uygulamaları] |
Desteklenen en düşük sunucu | Windows 7 için Windows 8 ve Platform Güncelleştirmesi [masaüstü uygulamaları | Windows Mağazası uygulamaları] |
Üstbilgi | d2d1effects.h |
Kütüphane | d2d1.lib, dxguid.lib |