GLSL
GLSL, (OpenGL Tarayıcı Dili,GLsLang diye de bilinir) C tabanlı yüksek seviye bir programlama dilidir.OpenGL ARB tarafından,geliştiricilerin grafik işhattına assembly veya donanım-bağımlı bir dil bilmeden direkt erişim sağlaması için yaratılmıştır.
Geçmişi
[değiştir | kaynağı değiştir]Grafik kartlarındaki son gelişmelerle,yaratım işhattında tepe noktası ve parçalama seviyesinde kolaylık sağlamak için birçok özellik eklendi.Bu seviyede programlama parçalama ve tepe noktası tarayıcılarını kullanılarak gerçekleştirilir. Aslında bu başarım tarayıcıları assembly dilinde yazarak sağlandı.OpenGL ARB daha GPU yu daha kolay anlaşılır bir dille programlamak için eski açık standartlarını devam ettirerek OpenGL Tarayıcı Dilini yaratmıştır.
İlk önce OpenGL 1.4 ün bir uzantısı olarak ortaya çıkmış,daha sonra resmi olarak GLSL OpenGL 2.0 ın içine dahil edilmiştir.OpenGL 2.0, 1992 de çıkan OpenGL 1.0 den bu yana ilk büyük revizyondur.
GLSL kullanımının bazı faydaları
- Değişik işletim sistemleri üzerinde platformlar arası uyumluluk(MacOS,Linux,Microsoft Windows)
- OpenGL Tarayıcı dilini destekleyen her grafik kartı üzerinde çalışabilecek kod yazabilmek.
- Her bir grafik kartı üreticisi kendi sürücüsüne GLSL derleyici dahil eder.
Operatörler
[değiştir | kaynağı değiştir]GLSL daha önce C diline aşina olanlara tanıdık operatörler sunarak tarayıcı programlamada rahatlık sunar.İşaretçiler ve Bit operatörleri dışında C ve C++ daki operatörleri içerir.
Fonksiyonlar ve Kontrol Yapıları
[değiştir | kaynağı değiştir]GLSL C dilinde olduğu gibi döngü ve dallanmayı destekler ve if, else, if/else, for, do-while, break, continue gibi yapıları içerir. Kullanıcı tanımlı fonksiyonlar desteklenir ve birçok bilindik fonksiyon hazır olarak gelir.Böylece kart üreticileri bu fonksiyonları donanım seviyesinde optimize edebilirler.Bunlardan bazıları Math kütüphanesindeki exp() fonksiyonu gibi veya daha grafik programlamaya yönelik texture2D() gibidir.
Derleme ve Çalıştırma
[değiştir | kaynağı değiştir]GLSL tarayıcılar tek başlarına çalışabilen uygulamalar değillerdir ve OpenGL API lerini işleten progamlara ihtiyaç duyarlar. API uygulamaları değişik sistemlerde ve değişik dil bağlamları ile mevcuttur.
GLSL tarayıcılar,kart sürücüsüne, OpenGL API lerini kullanan bir program tarafından derlenmesi için geçirilen basit katar kümeleridir.Tarayıcılar bir programdan çıkabilir veya bir yazı dosyasından okunabilir ancak sürücüye mutlacak katar halinde gönderilmelidir. GLSL programlarını derlemek bağlamak ve parametre göndermek için kullanılan API ler 3 OpenGL uzantısı içinde belirlenmiş ve OpenGL nin çekidek parçası haline gelmiştir.Bu API ler şu uzantılar içinde bulunabilir.
Araçlar
[değiştir | kaynağı değiştir]GLSL tarayıcılar onu kullancak uygulamaya enjekte edilmeden önce test edilmelidir.Bu amaç için birçok program mevcuttur.
- RenderMonkey4 Ekim 2006 tarihinde Wayback Machine sitesinde arşivlendi. - ATI tarafından yaratldı.GLSL programlarını yaratmak test ve debug etmek için arayüz sunar.DirectX destekler.Sadec Microsoft Windows üzerinde çalışır]].
- GLSLEditorSample - MacOS üzerinde çalışır.Tarayıcı yaratma ve derlemeye yarar.Debug etmez.Xcode 2.3 ve üzerinin bir arçasıdır.
- Quartz Composer - MacOS üzerinde çalışan sanal programlama ortamıdır.Oluşturma,derleme ve diğer Quartz yamaları ile sanal programlama modeli altında entegrasyonu sağlar.Debug etmez.Ücretsiz dağıtılan Xcode un bir parçasıdır.
- Lumina 9 Mayıs 2008 tarihinde Wayback Machine sitesinde arşivlendi. - Platformdan bağımsız GLSL geliştirme Aracı.Arayüz olarak Qt kullanır.
- Shader Designer22 Ekim 2019 tarihinde Wayback Machine sitesinde arşivlendi. - Kullanımı kolay GLSL IDE si TyphoonLabs ın ürünüdür.Buna rağmen ücretsiz olarak indrilip kullanılabilir.Ayrıca tarayıcı örnekleri ve yeni başlayanlar için dokümanlar içermektedir.
- Demoniak3D 24 Temmuz 2008 tarihinde Wayback Machine sitesinde arşivlendi. - GLSL tarayıcıları çabuk yazıp derleyebileceğiniz bir araç. Demoniak3D XML ve LUA karışımı bir dil kullanır.Gerçek 3B sahneler için oluşturmak için GLSL kullanır.
- Shader Maker - Shader Maker basit ve platformlar arası bir araçtır. Windows, Linux ve Mac OS X üzerinde çalışır.
Kaynakça
[değiştir | kaynağı değiştir]- Rost, Randi J. OpenGL Shading Language. 1st ed. Pearson Education, Inc, 2004. ISBN 0-321-19789-5
- Kessenich, John, & Baldwin, David, & Rost, Randi. The OpenGL Shading Language. Version 1.10.59. 3Dlabs, Inc. Ltd.
Dış bağlantılar
[değiştir | kaynağı değiştir]- Shader Programlama 5 Ağustos 2009 tarihinde Wayback Machine sitesinde arşivlendi.
- Shader Programlama Dilleri 16 Aralık 2009 tarihinde Wayback Machine sitesinde arşivlendi.
- OpenGL Resmi Sayfası26 Şubat 2011 tarihinde Wayback Machine sitesinde arşivlendi.
- Lighthouse3D Ders ve Örnekleri20 Mart 2007 tarihinde Wayback Machine sitesinde arşivlendi.
- glslDevil Açık Kaynak GLSL Hata Ayıklayıcısı
- oZone3D.Net GLSL Dersleri 28 Ağustos 2008 tarihinde Wayback Machine sitesinde arşivlendi.