İçeriğe atla

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

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ı

Operatörler

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ı

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

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

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

  • 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

İlgili Araştırma Makaleleri

macOS, Macintosh işletim sistemi ailesinin son sürümüdür ve Apple tarafından Macintosh bilgisayarları için tasarlanmış bir işletim sistemidir.

X3D açık ISO standartlarına sahip, XML tabanlı 3B dosya biçimidir. 3B Verinin tüm uygulamalarda ve ağ uygulamaları üzerinde gerçek zamanlı iletişimini sağlar. Mühendislik, bilimsel görselleştirme, BDT ve mimari, tıbbi görselleştirme, eğitim ve benzeştirim (simülasyon), çokluortam, eğlence, eğitim vb. birçok alanda kullanılabilecek zengin özelliklere sahiptir. Web3D konsorsiyumu tarafından geliştirilmektedir. Sanal Gerçeklik Modelleme Dili'nin (VRML) gelişmiş halidir.

JavaOS Java virtual machine üzerinde çalışan ve Sun Microsystems tarafından geliştirilmiş bir işletim sistemidir. Unix ya da Unix tabanlı işletim sistemlerinin C programlama dilinde yazıldığı gibi JavaOS' de Java programlama dili kullanılarak yazılmıştır.

<span class="mw-page-title-main">OpenGL</span> grafik uygulama geliştirme arabirimi

OpenGL, gelişmiş donanım desteğini kullanarak hem iki hem de üç boyutlu grafikleri ekrana çizmek için kullanılan ücretsiz bir grafik uygulama geliştirme arabirimidir. Windows, Linux, MacOS ve Solaris gibi birçok işletim sisteminde yaygın olarak ve Playstation 3 başta olmak üzere bazı oyun konsollarınca desteklenir. Donanım tarafında ise SGI, ATI, Nvidia veya Intel gibi büyük üreticiler her ekran kartında OpenGL desteği sunar.

Cg Nvidia tarafından Microsoft la yakın işbirliği ile, tepe ve nokta tarayıcıları programlayabilmek için geliştirilen yüksek seviye bir tarayıcı dilidir. Microsoft un HLSL sine benzer. Cg C tabanlı olması ve aynı söz dizilimini kullanmasına rağmen,C nin bazı özellikleri düzenlenmiş, renk ve normal gibi yeni veri tipleri eklenmiştir.

Karesel gölgelendirme anlamına gelen Pixel Shader DirectX 9 ve üzeri oyun grafik kütüphanesinde bulunan grafik işleme komut fonksiyonudur. Yeni nesil olarak tanımlanan birçok oyunda bu özellik şartı aranıldığı için bir önceki nesil ekran görüntü kartları bu özelliği desteklemediği için birçok oyun yazılımı çalışmama durumu yaşanmaktadır.

<span class="mw-page-title-main">Mac OS X Snow Leopard</span> Appleın desktop ve sunucu işletim sistemi, Mac OS Xin yedinci ana sürümüdür.

Mac OS X Snow Leopard veya Mac OS X 10.6 Snow Leopard, Apple'ın desktop ve sunucu işletim sistemi, Mac OS X'in yedinci ana sürümüdür. Apple CEO'su Steve Jobs, Snow Leopard'ı WWDC 'da 9 Haziran 2008 tarihinde duyurdu ve Yazılım Mühendisliğinden Sorumlu Kıdemli Başkan Yardımcısı Bertrand Serlet tarafından geliştiricilere özel olarak gösterildi. İlk genel gösteri, Dünya Çapında Pazarlamadan Sorumlu Kıdemli Başkan Yardımcısı Serlet ve Phil Schiller tarafından, WWDC 2009'da sunulmuştur.

<span class="mw-page-title-main">Unreal Engine</span> video oyunu motoru

Unreal Engine, Epic Games tarafından geliştirilen ve ilk olarak 1998 yılında yayınlanan Unreal isimli birinci şahıs nişancı oyununda kullanılan oyun motoru. Esas olarak birinci şahıs nişancı oyunları için geliştirilmesine karşın, sonraları çeşitli türlerdeki oyunlarda kullanıldı. C++ ile yazılmış kodu sayesinde yüksek derecede taşınabilirliğe sahiptir ve günümüzde birçok oyun geliştirici tarafından kullanılan bir araç haline gelmiştir.

Khronos Group, Inc., 3D grafikler, sanal gerçeklik, artırılmış gerçeklik, paralel hesaplama, görüntü hızlandırma ve makine öğrenimi için telifsiz birlikte çalışabilirlik standartları geliştiren, yayınlayan ve sürdüren 160 kuruluştan oluşan açık, kar amacı gütmeyen, üye odaklı bir konsorsiyumdur. Açık standartlar ve ilgili uygunluk testleri, yazılım uygulamalarının ve ara katman yazılımının, çok çeşitli platformlarda ve cihazlarda dinamik medyanın yazılmasını ve hızlandırılmasını sağlar. Grubun merkezi Beaverton, Oregon'dadır.

<span class="mw-page-title-main">WebGL</span>

WebGL, kâr amacı gütmeyen teknoloji şirketler birliği Khronos Group tarafından yönetilen, web ortamında 3 boyutlu grafik çizimi sağlanmasını amaçlayan bir web standardıdır. OpenGL ES 2.0 üzerine temellendirilmiştir, otomatik hafıza yönetimli JavaScript gibi dillere uyum sağlaması için küçük değişikliklere uğramış olsa da WebGL OpenGL ES'ten çok da farklı değildir. Uyumlu web tarayıcısında herhangi bir eklenti kurulmasını gerektirmeden, HTML5'in Canvas elementi üzerinde 3 boyutlu grafik çizimi yapılmasını mümkün kılmaktadır.

Swift, Apple tarafından iOS ve macOS platformlarına iOS ve Mac uygulamaları geliştirmek için oluşturulan, derlenerek çalışan güçlü ve kullanımı kolay, nesne yönelimli bir programlama dili.

GLFW, temelde ve ilk olarak OpenGL ile kullanılmak üzere geliştirilmiş hafif bir yardımcı kütüphanedir. Programcıya, üzerinde çalışılan işletim sisteminden bağımsız olarak OpenGL ve Vulkan için 'context' ve pencere yaratma, klavye, fare, oyun çubuğu girdi ve çıktılarını yönetme kolaylığı sağlar.

<span class="mw-page-title-main">Metal API</span> IOS,macOS and tvOS grafik render uygulama programlama arayüzüdür

Metal API iOS 8-de tanıtılan düşük seviyeli, düşük-havai donanım hızlandırmalı grafik ve bilgisayar uygulama programlama arayüzüdür (API). Bu, bir API altında OpenGL ve OpenCLe benzer işlevselliğini birleştirir. Metal API IOS-a diğer platformlarda benzer API'lerin performans yararlarından bazılarını getirmek için tasarlanmıştır. Metal, 2 Haziran 2014 yılından beri Apple A7 ya da sonrasını kullanan iOS cihazlarında ve 8 Haziran 2015'ten beri OS X El Capitan çalıştıran Mac'lar üzerinde mevcuttur. Metal daha da işlem shaderi getirerek GPGPU programlama yeteneklerini geliştirdi. Metal C++11 dayalı yeni bir gölgeleme dili kullanır; Bu Clang ve LLVM kullanılarak uygulanır. OS X'da Metal desteği WWDC 2015'te açıklandı.

Vulkan düşük maliyetli ve Çapraz platform 3D grafik ve işlem API-sidir. İlk kez Khronos Group tarafından GDC 2015'te açıklandı. Vulkan API başlangıçta, Khronos tarafından yeni nesil "OpenGL girişimi" veya "OpenGL-in sonrakısı" olarak sevk edildi. Vulkan, AMD'nin Mantle API bileşenleri üzerine türetilmiş ve inşa edilmiştir. Khronos'a, bir vakıf niyetiyle AMD tarafından bağışlanmıştır. OpenGL gibi, Vulkan da yüksek performanslı video oyunu ve interaktif medya gibi, gerçek zamanlı 3D grafik uygulamalara hedeflenir ve Direct3D 12 ve Mantle gibi, daha yüksek performans ve daha düşük CPU kullanımı sunuyor. Vulkanın ayrıca 2D grafik uygulamaları işlemek için yeteneği vardır, ancak genellikle 3D için uygundur. Alt CPU kullanımı yanı sıra, Vulkan da daha Çok çekirdekli işlemciler arasında eser yapabiliyor.

<span class="mw-page-title-main">Instruments (yazılım)</span>

Instruments Xcode 3.0 ve sonraki Xcode sürümlerine entegre edilmiş bir uygulama performans analizörü ve görselleştiricidir. Mac OS X Leopard'a aktarılan ve macOS'un tüm sonraki sürümlerinde bulunan OpenSolaris'ten DTrace izleme çerçevesinin üzerine inşa edilmiştir.

<span class="mw-page-title-main">Xcode</span>

Xcode macOS, iOS, watchOS, tvOS ve visionOS için yazılım geliştirmek için Apple tarafından geliştirilen macOS için entegre bir tümleşik geliştirme ortamıdır. Yazılım geliştirme araçlarını içerir. İlk kez 2003 yılında piyasaya çıkan hizmetin en istikrarlı sürümü, sürüm 8.3.3'tür ve Mac App Store'den macOS Sierra kullanıcıları için ücretsiz olarak sunulmaktadır. Kayıtlı geliştiriciler, Apple Developer web sitesinden paketi önizleme sürümlerini ve önceki sürümlerini indirebilirler. Bununla birlikte, Apple son zamanlarda yazılımın sürüm 9 beta 2'nin beta versiyonunu Apple Developer hesaplarıyla halka açık hale getirdi.

iOS SDK

iOS SDK Apple tarafından geliştirilen bir yazılım geliştirme kitidir. Kit, Apple'ın iOS işletim sisteminde mobil uygulamaların geliştirilmesine olanak tanır.

Cocoa, masaüstü işletim sistemi macOS için Apple'ın yerel nesne yönelimli programlama ve uygulama programlama arayüzüdür (API).

Carbon, Macintosh bilgisayarları çalıştıran işletim sistemi olan Mac OS X için Apple'ın C tabanlı uygulama programlama arayüzlerinden (API) biridir. Carbon, Mac OS 8 ve Mac OS 9 işletim sistemlerinde çalışan programlar için iyi bir geriye dönük uyumluluk sağlamıştır. Geliştiriciler, “klasik” Mac OS ve Macintosh işletim sistemleri yazılımlarını OS X platformuna taşımak için uygulamayı azami çaba harcayarak çok az bir çaba ile kullanabilirler. OpenStep'te ortaya çıkan tamamen farklı Cocoa API sistemidir.

3D grafikler, özellikle video oyunlarında o kadar popüler hale geldi ki, bilgisayar grafiği üretiminin tüm aşamalarında süreçleri kolaylaştırmak için özel API'ler oluşturuldu. Bu API'ler, programcıların donanıma soyut bir şekilde erişmeleri için bir yol sağlarken, herhangi bir belirli grafik kartının özel donanımından yararlanmaya devam ettikleri için bilgisayar grafik donanımı üreticileri için de hayati önemde olduklarını kanıtladılar. İlk 3D grafik çerçevesi, muhtemelen 1977'de ACM tarafından yayınlanan Core idi.