Karıştırma Fonksiyonları – Analizi Yaptırma Fiyatları – Yazılım Analizi Örnekleri – Ücretli Analizi Yaptırma – Ücretli Yazılım Yaptırma
Karıştırma Fonksiyonları
• Şeffaflık, kenar yumuşatma ve sis elde etmek için OpenGL harmanlamayı anlayın
• Görüntüleri doğrudan işlemek veya doku eşlemek için kullanın
• OpenGL doku eşleme programlarını anlama
İki renk bileşeni Iλ1 ve Iλ2 verildiğinde, iki değerin karışımı, ikisi arasında bir enterpolasyondur. Şeffaflık harmanlanarak elde edilir. İki saydam çokgen verildiğinde, her piksel rengi, izdüşüm çizgisi boyunca iki çokgen üzerindeki karşılık gelen noktaların bir karışımıdır.
OpenGL’de, harmanlama olmadan, tarama dönüştürme sırasında her piksel çerçeve arabelleğindeki karşılık gelen değerin üzerine yazacaktır. Buna karşılık, karıştırma etkinleştirildiğinde, geçerli piksel renk bileşeni (yani kaynak Iλ1), halihazırda çerçeve arabelleğinde (yani hedef Iλ2) bulunan karşılık gelen piksel renk bileşeniyle karıştırılır.
Karıştırma faktörlerine şu fonksiyon tarafından karar verilir: glBlendFunc(B1, B2) burada B1 ve B2, sırasıyla B1 ve B2’nin nasıl hesaplanacağını belirtmek için önceden tanımlanmış sabitlerdir.
Doğrudan bir renk belirttiğimizde veya aydınlatmada bir malzeme özelliği belirttiğimizde artık alfa değerini de belirtiyor ve kullanıyoruz. Örnekte malzeme özelliklerini belirttiğimizde malzemenin saydamlık özelliğini temsil etmesi için A=0.3 seçiyoruz. Burada A=0.0 seçersek malzeme tamamen saydamdır. A=1.0 ise malzeme opaktır.
Karıştırma Faktörleri
Örnek, özel bir durum olarak alfa karıştırma faktörünü seçer. OpenGL, kaynak veya hedef karıştırma faktörlerinin glBlendFunc() aracılığıyla nasıl hesaplanacağını belirtmek için daha fazla sabit sağlar.
Karıştırma faktörlerini ve diğer parametreleri nasıl seçtiğimize bağlı olarak, daha sonra tartışılacak olan farklı şeffaflık, kenar yumuşatma ve sis efektleri elde edebiliriz.
OpenGL harmanlama, kırılmayan şeffaflık sağlar. Harmanlanmış noktalar, izdüşüm çizgisi boyuncadır. Yani saydam yüzeylerden geçen ışık ışını bükülmez.
Geometrik ve optik özellikleri dikkate alması gereken kırılma şeffaflığı, önemli ölçüde daha fazla zaman alır. Kırılma şeffaflığı genellikle ışın izleme ile entegre edilir.
Şeffaflık ve Gizli Yüzey Kaldırma
Birden çok saydam katmana sahipsek, bu katmanların harmanlanma sırası önemli olduğundan, karıştırma yoluyla doğru saydamlığı elde etmek oldukça karmaşıktır. Equatio’da olduğu gibi, iki çokgenin çizim sırasını değiştirirsek kaynak ve hedef parametreleri değişir.
Yüzeylerde karşılık gelen şeffaf noktaları bakış noktasına olan mesafelerine göre karıştırmak istiyoruz. Ancak bu, zaman ve hafıza gereksinimleri nedeniyle yapmaktan kaçındığımız farklı yüzeylerdeki tüm noktalar için mesafelerin takibini gerektirir.
OpenGL’de derinlik tamponunu (z-buffer) etkinleştirirsek, gizlenmiş çokgenler karıştırma için kullanılmayabilir. Bu sorunun önüne geçmek için ise şeffaf çokgenler çizerek, derinlik ara belleğini salt okunur yapabiliriz. Ayrıca, önce opak nesneleri çizmeli ve sonra etkinleştirmeliyiz.
Bu, saydam çokgenlerin derinlik değerlerinin opak çokgenler tarafından belirlenen değerlerle karşılaştırılmasına ve karıştırma faktörlerinin saydam çokgenler tarafından belirtilmesine neden olur. As, glDepthMask(GL_FALSE) derinlik arabelleğini salt okunur hale getirirken, glDepthMask(GL_TRUE) normal derinlik arabelleği işlemini geri yükler.
pl/sql function kullanımı
Oracle CONCAT Kullanımı
Oracle SQL Fonksiyonlar
Oracle LAG fonksiyonu
Oracle ROWNUM Kullanımı
Oracle ,’MONTH Kullanımı
Oracle virgülden sonra 2 hane
Oracle belli bir karakterden sonrasını alma
Kenar Yumuşatma
OpenGL’de kenar yumuşatma, harmanlama ile elde edilebilir. glEnable() öğesini GL_POINT_SMOOTH, GL_LINE_SMOOTH veya GL_POLYGON_SMOOTH ile çağırırsanız, OpenGL noktayı, çizgiyi veya çokgen kenarını belirtilen nokta boyutu veya çizgi genişliği ile kaplayan piksel karesinin kesrine dayalı olarak bir kapsam değeri hesaplar ve pikselin hesaplanan kapsama değerine göre alfa değeri.
Piksel rengini zaten çerçeve arabelleğinde bulunan karşılık gelen piksel rengiyle karıştırmak için elde edilen alfa değerini kullanarak kenar yumuşatma elde edebilirsiniz. Yöntem, tartışılan ağırlıksız alan örnekleme yöntemiyle aynıdır. Sistemde daha hızlı veya daha yavaş ancak daha kaliteli bir örnekleme algoritması seçmek için glHint()’i bile kullanabilirsiniz.
Sis
Sis, atmosferin işlenen piksel ile göz arasındaki etkisidir ve buna derinlik ipucu veya atmosfer zayıflama etkisi denir. Sis de harmanlanarak elde edilir.
Burada f sis faktörüdür, Iλ1 gelen piksel bileşenidir ve Iλf sis rengidir. OpenGL’de sis faktörü ve sis rengi glFog*() ile belirtilir. Sis rengi, arka plan rengiyle aynı veya farklı olabilir.
Sis faktörü f, görüş noktasından nesne üzerindeki piksele olan mesafeye (z) bağlıdır. Sis modunu GL_EXP (Denklem 100), GL_EXP2 (Denklem 101) veya GL_LINEAR olarak belirtirsek farklı denklemler seçebiliriz.
Denklemde z baştan sona değişirken f 1’den 0’a değişir. Denklem 99’a göre son piksel rengi gelen nesne piksel renginden sis rengine değişecektir. Sis hesaplamalarının piksel başına mı (GL_NICEST) yoksa köşe başına mı (GL_FASTEST) veya sistemde ne varsa (GL_DONT_CARE) olduğunu belirtmek için GL_FOG_HINT’e glHint() sağlayabiliriz.
Görüntüler
3B modelleri oluşturma ve tarama dönüştürmeyi tartıştık. Sonuç, çerçeve arabelleğinde saklanan bir görüntü veya bir RGBA dizisidir.
OpenGL, dönüştürme, görüntüleme, gizli yüzey kaldırma, aydınlatma ve diğer grafik manipülasyonlarından geçmek yerine, çerçeve arabelleğindeki görüntü verilerini doğrudan işleyen bazı temel işlevler sağlar: glReadPixels(), çerçeve arabelleğinden dikdörtgen bir piksel dizisini okur. (ana bilgisayar) belleği, glDrawPixels() bellekten çerçeve arabelleğine dikdörtgen bir piksel dizisi yazar, glBitmap() ana bellekten çerçeve arabelleğine tek bir bitmap (bir ikili görüntü) yazar, vb.
glRasterPos*() işlevi, sistemin okumaya veya yazmaya başladığı geçerli tarama konumunu (x, y, z, w) belirtir. Ancak (x, y, z, w) konumu, bir 3B modelde bir tepe noktası olarak dönüştürme boru hattından geçer.
Bellekte saklanan görüntü verileri, sırasıyla her bir pikselin (R+G+B) toplam yoğunluğundan veya RGBA bileşenlerinden oluşabilir.
Görüntü verileri bellekten çerçeve arabelleğine veya çerçeve arabelleğinden belleğe aktarılırken, OpenGL üzerinde birkaç işlem gerçekleştirebilir. Ayrıca, veri depolamak için belirli biçimler vardır. Belirli donanım türlerinde gerekli olan veya daha verimli olan bellektir.
Verilerin bellekten çerçeve arabelleğine veya çerçeve arabelleğinden belleğe paketten nasıl çıkarılacağına ilişkin piksel depolama modunu ayarlamak için glPixelStore*() öğesini kullanırız. Örnek, bir dosyadan bir görüntüyü okur ve görüntüyü doğrudan 3B oluşturmanın arka planı olarak çerçeve arabelleğine çizer.
'MONTH Kullanımı Oracle Oracle belli bir karakterden sonrasını alma Oracle CONCAT Kullanımı Oracle LAG fonksiyonu Oracle ROWNUM Kullanımı Oracle SQL Fonksiyonlar Oracle virgülden sonra 2 hane pl/sql function kullanımı