İçeriğe atla

OpenGL

OpenGL
Geliştirici(ler)Khronos Group
Güncel sürüm4.6 / 31 Temmuz 2017
Geliştirme durumuAktif
İşletim sistemiPlatform bağımsız
TürAPI
LisansBirden fazla
Resmî sitesiwww.opengl.org

OpenGL (İngilizce: Open Graphics Library, Türkçe: Açık Grafik Kütüphanesi), 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.

1992 yılında ilk taslağı yaratılmış olan bu standart, günümüzde 4.6 sürümüne ulaşmıştır ve 700 üzerinde fonksiyona sahiptir. Çoklu platform desteği içeren uygulamalar ve özellikle de deneysel ve bilimsel araçlarda açık arayla önde ve standart olarak kullanılmakta olan platform OpenGL'dir.

OpenGL'in özellikleri

Taşınabilirdir

Bu kitaplık işletim sisteminden ve işletim sisteminin çalıştığı platformdan bağımsızdır. Nasıl ki ekrana yazı yazmak kullanıcıdan veri almak ANSI C'de işletim sisteminden ve platformdan bağımsız olarak kütüphane tarafından printf() ve scanf() gibi işlevlerle standartlaştırılmış ve hangi işletim sistemiyle çalışırsanız çalışın bu iki işlev aynı işi yapıyorsa, OpenGL kitaplığıda ekrana grafik çizmeyi standartlaştırmıştır. OpenGL sayesinde grafik kartının modeli veya işlemcinin mimarisi gibi donanımsal etkenlerden bağımsız programlama yapılır. Aynı zamanda işletim sisteminden de bağımsız programlama yapılır. Kolay kullanım ve bu "taşınabilirlik" özellikleri nedeniyle OpenGL popüler bir araç olmuştur.

Platform bağımsızdır

OpenGL kullanan bir programı işletim sisteminizde çalıştırmanız için öncelikle işletim sisteminizde programın çalışırken kullanacağı işlevleri içeren kitaplığın bulunması gerekir, bu kitaplıkların genel adı "runtime-library", Türkçesi çalışma anı kitaplığıdır.

OpenGL çalışma anı kitaplığı Linux, Unix, Mac OS, OS/2, Windows 95/98/NT/2000, OPENStep ve BeOS işletim sistemlerinde halihazırda mevcuttur. Windows işletim sistemi ailesinde standart olarak gelir. Yani OpenGL kullanan bir programı çalıştırmak için bir çaba harcamazsınız.

Pencere yöneticisinden bağımsızdır

OpenGL kullanılarak yazılmış programlar, Win32, MacOS ve X-Window pencere yöneticilerinde sorunsuz çalışırlar.

Birçok programlama dilinde kullanılabilir

Ada, C, C++, C# (SharpGL adı verilen sınıflar sayesinde), Fortran, Python, Perl ve Java programlama dilleri kullanılarak OpenGL kitaplığından faydalanılabilir.

Ekran kartı uyumluluk durumları

DirectX VersiyonuShader ModelOpenGL karşılığı
DirectX 11Pixel Shader 5.0OpenGL 4.0
DirectX 10.1Pixel Shader 4.1OpenGL 3.x
DirectX 10Pixel Shader 4.0OpenGL 3.0
DirectX 9cPixel Shader 3.0OpenGL 2.1
DirectX 9Pixel Shader 2.0OpenGL 2.0
DirectX 8.1Pixel Shader 1.3 & 1.4OpenGL 1.x
DirectX 8Pixel Shader 1.1OpenGL 1.4
DirectX 7Pixel Shader 1.0OpenGL 1.2

Kaynakça

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">İşletim sistemi</span> bilgisayar donanım kaynaklarını yöneten yazılım

İşletim sistemi ya da işletim dizgesi, bir bilgisayarın donanım kaynaklarını yöneten ve uygulama yazılımlarına hizmet sağlayan yazılımların bir bütünüdür. İşletim sistemleri, bilgisayarın donanımı ile uygulama yazılımları arasında bir köprü görevi görerek kullanıcıların sistemle etkileşim kurmasını sağlar. Öne çıkan örnekler arasında Microsoft Windows, macOS, GNU/Linux dağıtımları, Android ve iOS yer alır.

<span class="mw-page-title-main">Yazılım</span> bilgisayarın somut olmayan çalıştırılabilir bileşeni

Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik aygıtların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan makine komutlarıdır.

<span class="mw-page-title-main">Ekran görüntüsü</span>

Ekran yakalama görüntüsü, çeşitli programlar vasıtası ile ekranda o andaki görüntünün anlık fotoğrafının çekilmesidir. Görüntü yakalama film ve benzeri hareketli görüntülerden gerçekleştirilebilir. Ancak aynı zamanda ekranın video çıkışını kesen bir kamera veya bir cihaz tarafından yapılan bir yakalama olabilir. Çeşitli programlar vasıtası ile yapılabilir Görüntü o andaki bilgisayar ekranındaki resminin kaydedilmesi için print screen klavye tuşu ile de yapılabilir. Herhangi bir anda bu tuşa basılıp daha sonra Windows işletim sisteminde bulunan paint veya word gibi bir programda resim dosyası olarak düzen yapıştır menüsünden eklenerek kullanılabilir.

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

POSIX, UNIX için "taşınabilir işletim sistemi arabirimi".

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

Enlightenment, basit, hızlı, sade ve kullanışlı bir masaüstü ortamı yaratmak için başlatılan bir projedir. EFL adı verilen pek çok parçadan oluşmuş bir grup kütüphane üzerine inşa edilmiştir.

GLSL, 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.

GLEW, açık kaynak kodlu çapraz platform C/C++ kütüphanesidir. OpenGL uzantılarının (extension) sorgulanması ve yüklenmesine yardım eder. GLEW, hedef platformdaki OpenGL uzantılarını saptamak için verimli çalışma zamanı mekanızmaları sağlar. OpenGL çekirdeği ve uzantı fonksiyonelliği açık bir şekilde tek bir başlık dosyasında tanımlanmıştır.

GLee, açık kaynak kodlu çapraz platform OpenGL uzantı (extension) yükleme kütüphanesi. GLee, OpenGL 3.0 ile birlikte gelen yeni fonksiyonların tamamına ve 399 uzantıya kusursuz destek sağlar. OpenGL Extension kütüphanelerine bağlantıyı, çekirdek fonksiyonları kullanmayı kolaylaştırmak amacıyla geliştirilmiştir.

<span class="mw-page-title-main">Qt (çalışma alanı)</span>

Qt, birden çok platformu destekleyen bir grafiksel kullanıcı arayüzü geliştirme araç takımıdır. Genellikle GUI programları geliştirmek için kullanılsa da gelişmiş kütüphanesi GUI bileşenlerinin dışında birçok araç içermektedir. Qt, en çok KDE masaüstü ortamında, Opera ağ tarayıcısında ve Skype anlık mesajlaşma programlarında kullanılmasıyla bilinir.

Bilgi işlem platformu, bir uygulama yazılımı çalıştırmak için donanım mimarisi ve bir yazılım çerçevesi, yazılım, çeşitli bazı kombinasyon veya sıralamalarını içermektedir. Tipik platformlarda bir bilgisayar mimari, işletim sistemi, programlama dilleri ve ilgili kullanıcı arabirimi içerir.

<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.

SFML (Simple and Fast Multimedia Library), bilgisayar bileşenleri için basit arayüz sağlayan platform bağımsız yazılım geliştirme kütüphanesi. C++ ile nesne yönelimli olarak geliştirilmiştir ve C, D, Java, Python, Ruby, .NET, Go, Rust, OCaml, Euphoria ve Nimrod gibi programlama dilleri için de bağlayıcıları vardır. Android ve iOS için uygulama geliştirebilmeyi sağlayacak deneysel portu SFML'nin 2.2 sürümüyle birlikte gelmiştir.

<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.

Dock, macOS işletim sisteminin grafiksel kullanıcı arayüzünün belirgin bir özelliğidir. Uygulamaları başlatmak ve çalışan uygulamalar arasında geçiş yapmak için kullanılır. Dock ayrıca macOS'ten önceki NextStep ve OpenStep işletim sistemlerinin öne çıkan bir özelliğidir.

<span class="mw-page-title-main">Android yazılımı geliştirme</span>

Android yazılım geliştirmesi Android işletim sistemi için yeni uygulamaların oluşturulduğu süreçtir. Uygulamalar genellikle Android yazılım geliştirme kiti (SDK) kullanılarak Java programlama dilinde geliştirilir; ancak diğer geliştirme ortamları da mevcuttur. Google, Android uygulamaları Kotlin, Java ve C++ dilleri kullanılarak Android yazılım geliştirme kiti (SDK) kullanılarak yazılabilir" ve diğer dilleri kullanmak da mümkün olduğunu belirtiyor. Go, JavaScript, C, C++ veya Assembly gibi Java sanal makinesi (JVM) dışı tüm diller, muhtemelen kısıtlı API desteğiyle araçlar tarafından sağlanabilecek JVM dil kodunun yardımına ihtiyaç duyar.

<span class="mw-page-title-main">Metin tabanlı kullanıcı arayüzü</span> bir metin ekranına çıktı vermeye veya onu kontrol etmeye dayalı arabirim türü

Metin tabanlı kullanıcı arayüzü, metinsel kullanıcı arayüzü veya terminal kullanıcı arabirimi olarak da adlandırılır, grafik kullanıcı arayüzlerinin (GUI) icadından bir süre sonra ortaya çıkan ve onu grafik kullanıcı arayüzünden ayırt etmek için türetilen yeni bir terimdir. TUI'de bilgisayar grafikleri metin kipinde görüntülenir. Gelişmiş bir TUI, GUI'ler gibi tüm ekran alanını kullanabilir ve fare ve diğer girişleri kabul edebilir.

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.

Windows API ya da WinAPI, Microsoft'un Microsoft Windows işletim sistemlerinde bulunan çekirdek uygulama programlama arayüzü kümesidir (API). Windows API adı, genellikle kendi adlarıyla atıfta bulunulan birçok farklı platform uygulamasına atıfta bulunur. Neredeyse tüm Windows programları Windows API ile etkileşime girer. Windows NT işletim sistemi satırlarında, az sayıda Native API'yi kullanır.

mpv (medya oynatıcısı)

mpv, MPlayer, mplayer2 ve FFmpeg tabanlı özgür ve açık kaynaklı bir medya oynatıcı yazılımıdır. Unix benzeri işletim sistemleri ve Microsoft Windows dahil olmak üzere çeşitli işletim sistemlerinde çalışır ve mpv-android adlı bir Android uyarlamasına sahiptir. ARM, PowerPC, x86/IA-32, x86-64 ve MIPS mimarisi üzerinde çalışır yani çapraz platformdur.