Gölgelendirici Programları – Analizi Yaptırma Fiyatları – Yazılım Analizi Örnekleri – Ücretli Analizi Yaptırma – Ücretli Yazılım Yaptırma

info@akademidelisi.com * 0 (312) 276 75 93 * Her bölümden, Ödev Yazdırma, Proje Yaptırma, Tez Yazdırma, Rapor Yazdırma, Makale Yazdırma, Araştırma Yazdırma, Tez Önerisi Yazdırma talepleriniz için iletişim adreslerini kullanın. Makale YAZDIRMA siteleri, Parayla makale YAZDIRMA, Seo makale fiyatları, Sayfa başı yazı yazma ücreti, İngilizce makale yazdırma, Akademik makale YAZDIRMA, Makale Fiyatları 2022, Makale yazma, Blog Yazdırma, Blog Yazdırmak İstiyorum

Gölgelendirici Programları – Analizi Yaptırma Fiyatları – Yazılım Analizi Örnekleri – Ücretli Analizi Yaptırma – Ücretli Yazılım Yaptırma

12 Nisan 2023 En çok indirilen programlar Windows programlar 0
Otomatik Test Teknikleri

Gölgelendiricileri Derleme

Artık temel köşe ve parça gölgelendiricilerin nasıl yazılacağını bildiğimize göre, bunları nasıl kullanacağımızı bilmemiz gerekiyor. İlk adım, gölgelendiricileri oluşturmaktır. Bu, aşağıdaki gibi glCreateShader işlev çağrısı kullanılarak yapılır.

glCreateShader işlevi, oluşturulmakta olan gölgelendirici türünü tanımlayan tek bir bağımsız değişken alır. Bu, GL_VERTEX_SHADER veya GL_FRAGMENT_SHADER olmalıdır. Dönüş değeri, daha sonra eksiksiz bir gölgelendirici programı oluşturmak için kullanılacak bir tanıtıcıdır.

glShaderSource işlevi dört bağımsız değişken alır. İlk argüman, glCreateShader aracılığıyla oluşturulan gölgelendiricinin tanıtıcısıdır. Üçüncü argüman, gölgelendirici için kaynak kodunu oluşturan bir dizi diziye işaretçidir, ikinci argüman ise dizinin boyutunu verir.

Örneğimizde, tüm kaynak kodunu tek bir dizeden geçirdiğimize dikkat edin, bu nedenle boyut değerimiz 1’dir. Dördüncü ve son argüman, kaynak dizideki her dizenin uzunluğunu veren bir tamsayılar dizisine işaretçidir ve bu nedenle kaynak dizi ile aynı boyutta olmalıdır. Bizim durumumuzda NULL kullanıyoruz, bu da dizgelerin boş olarak sonlandırıldığı anlamına geliyor.

Gölgelendiricileri Bağlama

Gölgelendiriciler derlendiğine göre, bir gölgelendirici programı oluşturmak için bunları birbirine bağlamamız gerekiyor. İlk adım aşağıdaki gibi bir shader programı oluşturmaktır. glCreateProgram işlevi hiçbir bağımsız değişken almaz ve yalnızca gölgelendirici programına bir tanıtıcı döndürür. Bu tutamaç sonraki çağrılarda kullanılacaktır.

glAttachShader işlevi iki bağımsız değişken alır. Birincisi program tutamacıdır ve ikincisi, köşe gölgelendiricisi veya parça gölgelendiricisi olan gölgelendirici tutamacıdır.

Tek bir gölgelendiricinin programa yalnızca bir kez eklenmesi gerekirken, her birinden yalnızca birinin “ana” işlevi olduğu sürece, bir programa birden çok köşe ve/veya parça gölgelendirici ekleyebilirsiniz. Bu, bir dizi ayrı ayrı derlenmiş gölgelendirici “parçalarından” bir program oluşturmanıza olanak tanır.

Bazı grafik sürücülerinin, işlev ve değişken referanslarını çözmeyi kolaylaştırmak için gölgelendirici kodunun derlenmesini bağlantı aşamasına kadar erteleyebileceğini unutmayın; bu nedenle, derleme türü hatalarının (örn. gölgelendirici programı.

Gölgelendiricileri Yürütme

Gölgelendirici programları, bir ilkel (nokta, çizgi veya üçgen) çizerek yürütülür. Vertex shader, primitifi tanımlayan her bir vertex için bir kez çalıştırılacaktır. Bunu, glVertex’e her çağrı yaptığınızda, mevcut OpenGL Durumunun yakalandığını ve vertex shader’ın çalıştırıldığını düşünebilirsiniz.

Bir ilkel için tüm köşeler tanımlandıktan sonra, OpenGL ilkel derlemeyi, ardından kırpmayı ve ardından rasterleştirmeyi gerçekleştirecektir. Oluşturma penceresine düşen her parça veya piksel için parça gölgelendirici yürütülür.

Çoğu modern grafik kartının, derinlik arabelleğe alma etkinleştirilmişse (genellikle durum böyledir) erken Z reddi gerçekleştirdiğini unutmayın. Bu, parça gölgelendiricinin, derinlik değeri parçanın son çerçeve arabelleği işlemleri sırasında reddedilmesine neden olan herhangi bir parça için yürütülmeyeceği anlamına gelir.

Gölgelendiricimizi kullanmak istediğimiz ilkel çizimi yapmadan önce, gölgelendiriciyi kullanmak için OpenGL’yi yapılandırmalıyız. Bu, aşağıdaki gibi glUseProgram işlevi aracılığıyla yapılır.

Sonuç, oldukça iki boyutlu görünen kırmızı bir çaydanlıktır. Bir anlık görüntü gösterilir. Daha sonra biraz aydınlatma ekleyerek bunu iyileştirmeye bakacağız. Ama önce, OpenGL gölgelendirme dilinin birkaç özelliğini daha tanıtmamız gerekiyor.


Windows programlar
En çok indirilen programlar
TV programlar
Bilgisayarda olması gereken programlar
Öğrenci Bilgisayarında olması Gereken programlar
PC programlar
Faydalı programlar
Bilgisayarı güzelleştiren programlar


Değişen Değişkenler

Değişen bir değişken, çokgen boyunca interpole edilen özel bir değişkendir. Vertex shader, değişen değişkenin değerini ayarlar.
her köşede bir kez. Donanım daha sonra değeri ilkel boyunca enterpolasyon yapacak ve parça gölgelendirici enterpolasyonlu değeri okuyabilir.

Bu, doku koordinatlarını ve normal vektörleri enterpolasyon yapmak için kullanılabilir. Örneğin, bir çokgen boyunca her köşede sağlanan bir rengi düzgün bir şekilde karıştırmak istediğimizi varsayalım. Köşe gölgelendiricimizi aşağıdaki gibi kurabiliriz.

Bu vertex shader, dilin bir parçası olarak tanımlanan ve glColor işlev çağrısı kullanılarak programımızda ayarlanabilen gl_Color öznitelik değişkenini kullanır. Karşılık gelen fragman gölgelendiricisi aşağıdaki gibidir. Bunun sonucunu gösterir. Aslında bu, üçgeni herhangi bir gölgelendirici olmadan işlerseniz elde edeceğiniz sonucun aynısıdır.

Tek tip değişkenler, programınızdan gölgelendiricilere ek bilgi iletmek için kullanılabilir. Nitelik değişkenlerinden farklı olarak, tek tip bir değişkenin değeri, bir ilkeldeki her tepe noktası için sabittir. Aşağıdaki parça gölgelendiriciyi göz önünde bulundurun.

glGetUniformLocation işlevi, adlandırılmış tek tip değişken için bir tanıtıcı elde etmek için kullanılır. İlk bağımsız değişken, glCreateProgram’dan döndürülen program tanıtıcısıdır. İkinci argüman, değişkenin adıdır.

Değişken için bir tanıtıcınız olduğunda, değişken için bir değer ayarlamak üzere glUniform işlev ailesi kullanılabilir. Spesifik işlev çağrısı, değişkenin türüne bağlıdır. Bu durumda, glUniform1f bir skaler kayan nokta değeri ayarlamak için kullanılır, ancak diğer işlevler arasında skaler tamsayılar için glUniform1i ve vec2 değerleri için glUniform2f bulunur.

Gölgelendiricimizin yerleşik doku koordinat dizisi gl_TexCoord’u da kullandığını unutmayın. glTexCoord işlev çağrısını kullanarak çağıran kodumuzda doku koordinatlarını sağladığımızda bu dizi bizim için otomatik olarak doldurulacaktır.

Dokuları Kullanma

Doku eşleme, gölgelendiricilerde çok önemli bir özelliktir ve çok çeşitli efektler elde etmek için kullanılabilir. Sabit işlevsellik ardışık düzeninde, dokular genellikle sınırlı sayıda mod veya seçenek kullanılarak çokgen bir yüzeye uygulanan iki boyutlu resimler olarak düşünülür.

Bir gölgelendiricide, birçok uygulama için doku değerlerini kullanmakta özgürüz. Doğrudan bir poligon yüzeyine uygulanabilirler veya daha karmaşık algoritmalar için önceden hesaplanmış arama değerleri olarak kullanılabilirler.

Bir parça gölgelendiriciden bir dokuya erişmek için bir örnekleyici kullanılır. Aşağıdaki basit parça gölgelendirici, bir dokuyu doğrudan işlenmekte olan çokgenin yüzeyine sarar.

texture2D işlevi, bir doku araması gerçekleştirmek için kullanılan yerleşik bir işlevdir. Bağımsız değişken olarak bir örnekleyici ve bir doku koordinatı alır ve doku parçasını verilen koordinatta döndürür. Örnekleyicinin tek tip bir değişken olarak bildirildiğine dikkat edin; programımızdan yapılandırmamız gerektiği anlamına gelir.

GL_TEXTURE0’ın aktif olduğunu varsayarak, doku koordinatlarını uygun bir şekilde sağlayan bol bir çaydanlık çiziyoruz.

yazar avatarı
akademi22 akademi22

 

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir