İçeriğe atla

Piksel gölgelendirici

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.

Bilgisayar grafiklerinde tarayıcı (shader), görüntü yaratımlarını gerçekleştirmek için grafik kaynakları tarafından kullanılan yazılım komutlarıdır. Tarayıcılar 3D uygulamaların, GPU'nun eski sabit iş hattı yerine programlanabilir iş hattını programlayabilmesine olanak tanır. Böylece GPU'nun gelişmiş özelliklerinden daha rahat faydalanılır.

Giriş

Teknik olarak tarayıcı, herhangi bir nesnenin rengini hesaplayan parçadır. GPU'lar geliştikçe OpenGL ve Direct3D gibi büyük grafik kütüphaneleri, kendi API'larında özel tarama fonksiyonları sunmaya başladılar.

Tarayıcı tipleri

  • Tepe tarayıcıları grafik işlemcisine verilen her tepe noktası için bir defa çalıştırılır. Bu işlem, tepe noktasının 3 boyutlu pozisyonun ekranda gözükecek 2 boyutlu koordinatına çevrilmesi için yapılır. Tepe tarayıcısı pozisyon, renk, doku koordinatları gibi özellikler üzerinde işlem yapabilirken yeni bir tepe noktası yaratamaz. Bu tarayıcının çıktısı bir diğer tarayıcıya aktarılır.
  • Geometrik Tarayıcı, herhangi bir ağ üzerindeki tepe noktalarını silebilir veya yenilerini ekler. Geometrik tarayıcılar, var olan ağa hacimsel detay kazandırmak içinde kullanılabilir ki bunu CPU ya yaptırmak ekstra yük getirecektir.
  • Nokta Tarayıcılar her bir noktanın (pixelin) renk değerini hesaplarlar. Grafik iş hattına giden poligonları dolduran ızgara ünitesinden gelir. Nokta tarayıcılar genellikle ışıklandırma efektleri, pütür kaplama (bump mapping) veya ton ayarı için kullanılır.

Basitleştirilmiş grafik işleme birimi işhattı

  • CPU tarayıcı dili ile derlenmiş komutları ve geometri bilgilerini GPU ya yollar.
  • Tepe tarayıcısında geometri hesaplanır ve ışıklandırma hesapları yapılır.
  • Geometrik tarayıcı varsa bazı geometrik değişimler yapılır.
  • Hesaplanan geometrik yapı üçgenlere bölünür.
  • Üçgenler 2×2 pixelden oluşan karelere dönüştürülür.

Paralel işleme

Tarayıcılar, aynı anda, ekrandaki her pixel veya tepe noktası gibi birçok elementi dönüştümek için yazılmıştır. Bu, paralel işleme günümüz GPU'ları çok işlemcili tasarımlarıyla buna olanak tanıyarak bu işlemlerin daha hızlı yapılmasını sağlar.

Tarayıcı programlama

OpenGL 1.5 versiyondan beri C benzeri tarayıcı dilini, başka dıya GLSL'yi içerir. Ayrıca Nvidia tarafından geliştirilen Cg dili (GLSL ile benzer bir sintak kullanır) için de arayüz sunar. Direct3D'de ise tarayıcılar HLSL dili ile programlanır. Ancak tarayıcının karmaşıklığı ve tipi hangi tip Direct3D kullandığınıza bağlı olarak değişir.

Aşağıdaki tablo Direct3D versiyonları arasındaki ilişkiyi gösterir.

Direct3D versiyonuNokta TarayıcıTepe Tarayıcı
8.01.0, 1.11.0, 1.1
8.11.2, 1.3, 1.41.0, 1.1
9.02.02.0
9.0a2_A, 2_B2.x
9.0c3.03.0
10.04.04.0
10.14.14.1
11 (beta)5.05.0

İşlevi

Bir piksel tarayıcı (shader), her pikselin renk ve diğer özelliklerini hesaplayan bir işlemsel çekirdek fonksiyonudur . Her zaman aynı rengi vermek, bir ışık değeri uygulamak, kabartma eşleme , gölgelendirme, yansıma vurguları, yarı saydamlık ve diğer olguları yapmak gibi görevleri paylaşımlarına göre sınıflandırılır. Pikselin derinliğini değiştirebilir (Z-tamponlama için) ya da birden fazla oluşturma hedefi faalse birden fazla renk çıkarabilir. Tek başına bir piksel tarayıcı çok karmaşık efektler üretemez, çünkü sadece bir piksel üzerinde sahne geometrisi veya komşu piksellerin bilgisine sahip olmadan çalışır.

Ayrıca bakınız

Başvuru kaynakları

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Mathematica</span> Hesaplama yazılım programı

Wolfram Mathematica, makine öğrenimi, istatistik, sembolik hesaplama, veri manipülasyonu, ağ analizi, zaman serisi analizine, NLP, optimizasyon, fonksiyonlar ve çeşitli veri türlerinin çizimi, algoritmaların uygulanması, kullanıcı arayüzülerin oluşturulması ve diğer programlama dilinde yazılmış programlarla arayüz oluşturmaya izin veren çeşitli teknik hesaplama alanları için yerleşik kütüphanelere sahip bir yazılım sistemidir. Stephen Wolfram tarafından tasarlanmış ve Champaign, Illinois'deki Wolfram Research tarafından geliştirilmiştir. Wolfram Language, Mathematica'da kullanılan programlama dilidir. Mathematica 1.0, 23 Haziran 1988'de Champaign, Illinois ve Santa Clara, Kaliforniya'da yayınlandı.

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

DirectX, Microsoft'un video oyunları başta olmak üzere çoklu ortam yazılımlarını rahat, hızlı ve uyumlu şekilde hazırlayabilmek için yarattığı bir uygulama programlama arayüzüdür (API). Şu andaki en güncel resmî sürüm DirectX 12'dir. İçerdiği bileşenlerden bazıları şu şekilde özetlenebilir:

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.

Grafik işlemci biriminde genel amaçlı hesaplama ya da sıkça kullanılan İngilizce kısaltmasıyla GPGPU, alışılagelmiş yöntemlerde merkezî işlem birimi (CPU) üzerinde yapılan hesaplamaların, alışılagelmiş yöntemlerde sadece grafik hesaplamalarını yapan bilgisayarın grafik işlemci birimi (GPU) üzerinde yapılmasıdır. Ekrana grafik çizilmesi işleminin doğası gereği, modern grafik işlemcileri çok çekirdeklidir ve yüksek bir paralelliğin açığa çıkartılmasına olanak sağlayabilirler. Grafik işlemcisi üzerinde hesaplama yapılması; paralel doğadaki algoritmalarda çok ciddi performans artışları sağlayabilmektedir. Özellikle heterojen işlem teknikleriyle GPGPU ve diğer platformlar arası işbirliği sağlanıp çok daha etkin programlar yazılabilmektedir.

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.

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.

<span class="mw-page-title-main">Lynx (Web tarayıcısı)</span>

Lynx, grafik arabirimi olmayan Unix, FreeDOS ve benzeri işletim sistemleri için kullanılan, komut satırı tabanlı bir İnternet tarayıcısıdır. Kaynağı açık olup, GNU Genel Kamu Lisansı kapsamında dağıtılmaktadır.

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

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

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

OpenCL,, Apple tarafından 2008 yılında kâr amacı gütmeyen teknoloji şirketleri birliği Khronos Group'a önerilen, kabul gördükten sonra spesifikasyonu pek çok şirketin katkılarıyla hazırlanan heterojen hesaplama platformudur. OpenCL; destekli grafik işlemcileri, genel amaçlı işlemciler ve FPGA ler gibi farklı platformlarda hesaplama yapılmasına olanak sağlar. OpenCL AMD, Intel, NVIDIA ve ARM tarafından desteklenmektedir. Ayrıca OpenCL kullanılarak Sony Playstation cihazlarında kullanılan Cell işlemcilerde de hesaplama yapılabilmektedir.

4A Engine THQ Metro 2033 serilerinde kullanılmak üzere geliştirilen orta ölçekli bir grafik motorudur. Direct3D API 9,10,11,12 OpenGL 3.2 desteğinin yanı sıra NVidia PhysX ve NVidia's 3D Vision desteğide bulunur.

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

Gölgelendirici, bilgisayar grafiklerinde gölgeleme için orijinal olarak kullanılan ancak şimdi çeşitli bilgisayar grafiklerinde çeşitli özel işlevler yerine getiren bir bilgisayar programı türüdür. Özel efektler veya gölgeleme ile ilişkili olmayan video post-processing'leri veya hatta grafiklerle ilgisiz işlevleri yapar.

HP Veer, 9 Şubat 2011'de HP tarafından duyurulan akıllı bir telefon. HP webOS kullanan cihaz, bir Qualcomm Snapdragon işlemcisi kullanıyor ve 2,6 inç ekrana sahiptir. Akıllı telefon, kredi kartı boyutundaki boyutlarıyla dikkat çekti. Cihaz, Palm serisinde Palm Pixi ve daha önceki Palm Centro modellerine göre halef olarak görüldü.

Core Video, macOS tarafından kullanılan video işleme modelidir. Görüntü açma ve kompozisyon için dekompresyon çerçevelerinin bir video kaynağından kalan Quartz teknolojilerine kadar olan süreçlerini birbirine bağlar. Hem QuickTime X hem de QuickTime 7, Core Video'ya bağlıdır.

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.

PHIGS 1980'lerden 1990'ların başlarına kadar kabul görmüş bir uygulama programlama arayüzü (API) standardıdır. Daha sonra OpenGL'de bulunan özelliklerden ve güçten dolayı OpenGL'nin yükselmesine neden olmuştur.

<span class="mw-page-title-main">Yüksek-Seviye Gölgelendirme Dili</span> gölgelendirme dili

Yüksek-Seviye Gölgelendirme Dili, HLSL, uzun adıyla High-Level Shader Language ya da High-Level Shading Language(Yüksek-Seviye Gölgelendirme Dili) Microsoft tarafından gölgelendirme derleme dilini genişletmek için Direct3D 9 API'ı özelinde geliştirilmiş tescilli bir gölgelendirme dilidir. Direct3D 10 ve üzeri için gerekliliği bulunan standart haline gelmiş bir gölgelendirme dilidir.

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

Cel shading veya çizgi gölgelendirme, gölge gradyanı veya renk tonları ve gölgeler yerine daha az gölgeleme rengi kullanarak 3D bilgisayar grafiklerinin düz görünmesini sağlamak için tasarlanmış, fotogerçekçi olmayan bir işleme türüdür. Bir cel shading genellikle bir çizgi roman veya çizgi filmin stilini taklit etmek ve/veya işlemeye karakteristik bir kağıt benzeri doku vermek için kullanılır. Bir görüntüyü eskiz, yağlı boya veya mürekkepli boya gibi gösterebilecek benzer teknikler bulunmaktadır. Adı, geleneksel 2D animasyonda kullanılmak üzere boyanmış şeffaf asetat tabakaları olan cellerden gelmektedir.