Speküler Özellik – Analizi Yaptırma Fiyatları – Yazılım Analizi Örnekleri – Ücretli Analizi Yaptırma – Ücretli Yazılım Yaptırma
Speküler Özellik
Dönen bir küpün yanı sıra yörüngede dönen üç ışık kaynağı oluşturacağız. Bu örnekte, RenderScene ve RenderLight olmak üzere iki teknik kullanıyoruz. İlk teknik, aydınlatma efektini merkez küp üzerinde oluşturmaktır. İkinci teknik, ışık kaynaklarını temsil eden tek renkli küpler oluşturmaktır.
Merkez küpü işleme kodu, önceki örneklerdeki işleme koduyla hemen hemen aynıdır. Tek fark, dizinlenmiş ilkelleri çizmek için DrawIndexed() yöntemini kullanıyor olmamızdır.
Köşelere endeksler kullanmak, ilkel çizimde tekrar eden köşeleri kaydeder. Her dizin, köşe arabelleğinde bir köşeye atıfta bulunur. DrawIndexed() yöntemi, IndexCount, StartIndexLocation ve BaseVertexLocation olmak üzere üç parametreyi kabul eder. IndexCount, çizilecek indekslerin sayısıdır. StartIndexLocation, ilk dizinin başlangıcıdır. BaseVertexLocaton, ilk köşenin indeksidir. Küpü işlemek için kullanılan kod aşağıdadır.
Kırmızı, yeşil ve mavi renklerde üç ışığımız var. Işık kaynaklarını oluşturmak için, ışık kaynağı küpleri için yeni köşeler oluşturmak yerine merkez küp için aynı geometriyi kullanıyoruz. Farklı konumlarda farklı boyutlarda küpler çizmek için öteleme ve ölçekleme matrislerini hesaplıyoruz. Işık konumlarını ışık yönlerine göre hesaplıyoruz.
Ardından merkez küpü dönüştürmek ve ölçeklendirmek için D3DXMatrixTranslation() yöntemini ve D3DXMatrixScaling() yöntemini çağırıyoruz. Her ışık için, çeviri ve ölçeklendirmeyi yansıtacak şekilde dünya projeksiyon matrisini güncelliyoruz. Ayrıca grafik ardışık düzenine kırmızı, yeşil ve mavi ışık renkleri göndeririz. Son olarak, ışık kaynaklarını tek renkli küçük küpler olarak işlemek için ikinci teknik olan g_pD3D10TechniqueRenderLight’ı kullanıyoruz.
Gölgelendiricilerde Aydınlatma
Şimdi Example02.fx efekt dosyasını açıklayacağız. Gerçek piksel aydınlatması, gölgelendiriciler kullanılarak dosyada yapılır. Vertex shader girdisi, vertex pozisyonunu ve normali içerir.
Köşe gölgelendiricide, grafik boru hattında daha fazla işlem yapmak üzere köşe konumunu dönüştürmek için dünya, görünüm ve projeksiyon matrislerini kullanırız. Aydınlatma yapmak için, tepe konumu ve normali de, dünya dönüşümünden sonra ancak görünüm dönüşümünden önce basitçe tepe konumu ve normal olan dünya uzayına dönüştürüyoruz.
Tepe noktası dünya konumunu ve normali piksel gölgelendiriciye geçirmek için TEXCOORD0 ve TEXCOORD1 kullanıyoruz. Gölgelendirici giriş yapıları ve köşe gölgelendirici aşağıda listelenmiştir.
Yönlü Piksel Aydınlatma
Yönlü piksel aydınlatma, aydınlatma kaynağının sonsuzda sabit bir yön olduğunu varsayar. Direct3D işlem hattı, piksel normalleri oluşturmak için köşe gölgelendiricisinden köşe normallerini otomatik olarak enterpolasyon yapar. Piksel gölgelendiricide, nihai aydınlatma sonucu için tüm ışık kaynaklarının dağınık bileşenlerini bir araya getiriyoruz.
Yukarıdaki kodda, dot() işlevi, HLSL’nin içsel bir işlevidir. İşlev, iki giriş vektörünün iç çarpımını hesaplar. Saturate() işlevi, HLSL’nin başka bir içsel işlevidir. Giriş değerini 0 ila 1 aralığına sıkıştırır.
Speküler Mikroskopi
Speküler mikroskopi parametreleri
Speküler ne demek
Speküler Özellikli Yönlü Piksel Işığı
Işık yönü ile yüzey normali arasındaki kosinüs 0’dan büyükse aynasal bileşeni hesaplarız.
Yukarıdaki kodda, Reflect() işlevi, giren bir ışın yönü ve bir yüzey normali kullanarak bir yansıma vektörü döndüren gerçek bir HLSL işlevidir. pow() işlevi ayrıca, belirtilen değeri belirtilen güce yükseltilmiş olarak döndüren içsel bir işlevdir.
Direct3D’de yansıma vektörü, R = L–2N(L-N) formülü kullanılarak hesaplanır, dolayısıyla yansıma vektörünü hesaplamak için ters ışık yönünü kullanırız. Son olarak, nihai aydınlatma efektini oluşturmak için yansıma bileşenini dağınık bileşene ekliyoruz. Bir anlık görüntü gösterilir.
Nokta Piksel Aydınlatma
Burada ışık kaynağının dünya uzayında bir konumda yerel olduğunu varsayıyoruz. Nokta ışık yoğunluğunu hesaplamak için her piksel için ışık yönünü hesaplıyoruz. Piksel gölgelendiricide, geçerli piksel için ışık yönünü depolamak üzere yerel lightDir değişkenini kullanırız.
Yerel ışık yönü, ışık konumundan pikselin dünya alanı konumuna kadar olan vektördür. Ayrıca, ışık kaynağı zayıflama hesaplamaları için geçerli pikselden her bir ışık kaynağına olan mesafeyi dist yerel değişkeninde saklarız.
Burada k0 sabit zayıflamadır, k1 doğrusal zayıflamadır, k2 ikinci dereceden zayıflamadır ve d ışık kaynağı konumundan piksele olan mesafedir. Piksel gölgelendiricide zayıflama parametrelerini aşağıdaki gibi tanımlarız.
Çalışma zamanında farklı zayıflama parametreleri kullanmak mümkündür. Bunu yapmak için zayıflama parametreleri için daha fazla genel değişken eklememiz ve çalışma zamanında ardışık düzene farklı değerler iletmemiz gerekir. Son olarak, noktasal aydınlatma için her bir ışık kaynağının dağınık rengine zayıflamayı çarpıyoruz. Nokta piksel aydınlatmasının anlık görüntüsü gösterilir.
Speküler ile Nokta Piksel Aydınlatma
Yönlü aydınlatmaya benzer şekilde, aynasal bileşeni, ışık yansıma vektörü ile göze bakan vektör arasındaki kosinüsü temel alarak hesaplarız. Speküler bileşeni hesaplamak için global değişken g_lightDirections yerine yerel ışık yönü değişkeni lightDir’i kullanırız.
Spot Piksel Aydınlatma
Nokta aydınlatma ile karşılaştırıldığında, bir spot aydınlatmanın üç yeni özelliği vardır: ışık konisinin eksenini temsil eden bir spot yönü; koninin bir açısı; ve ışık yoğunluğunun merkezden koninin duvarlarına doğru nasıl azaldığını ölçen bir azalma oranı. Spot aydınlatma elde etmek için nokta piksel aydınlatma programına aşağıdaki kodu ekliyoruz.
Spot aydınlatmada, g_lightDirections global değişkeni spot ışık yönlerini saklar. Spot yönü ile yerel ışık yönü arasındaki açının kosinüsünü hesaplıyoruz.
Ardından, spot ışık kesme etkisini simüle etmek için içsel bir işlev olan smoothstep()’i çağırırız. Bu işlev, bir aralığı ve belirtilen bir değeri kabul eder. Değer, aralığın alt sınırından küçükse işlev 0 döndürür. Değer, aralığın üst sınırından büyükse işlev 1 döndürür.
Alt sınır ve üst sınırı (0.665, 0.67) olarak ayarladık. Speküler bileşeni ekleme kodu, nokta ışığındakiyle aynıdır.
Son olarak, nihai aydınlatma efekti için dağınık ve aynasal bileşenleri ekliyoruz.
Yarımküre Piksel Aydınlatma
Yarımküre aydınlatmasının ardındaki fikir, aydınlatmayı iki yarımküre olarak modellememizdir. Üst yarımküre ışık kaynağı tarafından aydınlatılır. Alt yarım küre, sanal bir ışık kaynağı ile aydınlatılır. Yüzeydeki herhangi bir noktadaki aydınlatmayı hesaplamak için, o noktada alınan aydınlatmanın integralini hesaplamamız gerekir.
Speküler Mikroskopi Speküler mikroskopi parametreleri Speküler ne demek