Oyunlarda gördüğümüz grafiklerin güzelliği eminim çoğumuzu etkiliyordur ve nasıl yapıldığını merak ediyoruzdur.
Bende bu yazımda sizlere Shader’lar ile nasıl yapıldığını anlatacağım:
Shader, özetle bir pixelin veya vertexin özelliklerini tanımlamaya yarayan ekran kartı(GPU) programcıklarıdır. Daha da basitleştirirsek bilgisayara bir pixeli nasıl ekrana çizdireceğini anlatan basit GPU programlarıdır.
Tanımımdaki vertexin ne olduğu ile ilgili kafanız karışmış olabilir, bu yüzden şimdi de kısaca vertexi tanımlayalım.
Vertex: 2 boyutlu veya 3 boyutlu boşluktaki bir noktayı temsil eder, Vertex o noktanın pozisyon, renk, textcoord(o noktanın herhangi bir texture daki pozisyonu) gibi niteliklerini tanımlar, kısaca Vertex grafiksel bir noktayı temsil eder.
Graphics Pipeline, GPU’nun 3 boyutlu sahneyi 2 boyutlu bir ekrana çizdirebilmek için uyguladığı bir dizi işleme denir.Bu işleme girdi olarak gelen öğeler:
Bu başlıktan bahsetme sebepim Vertex‘lerin kullanım yerini size açıklamaktı 😊.
Shader dediğimiz GPU programcıkları Graphics API‘leri ile geliştirilir, API nin tanımından da yola çıkarak Graphics API‘leri ekran kartımızın driverında bulunan hazır fonksiyonları yani işlevleri kullanarak ekran kartımızla etkileşime girmemize yarıyor (API: uygulama programlama arayüzü).
Kullandığınız Graphics API‘nin dilini kullanarak yazdığınız script(kod dosyası), o Graphics API‘nin GPU driver’ı tarafından implement edilmiş derleyicisi tarafından derlenip bir Shader haline getirilir,
bu sayede Shader yazabilirsiniz.
(NOT: Graphics API olarak yazmamın sebepi API kısaltmasını türkçe olarak yazmak istememem 😊.)
Bilindik Graphics API‘leri:
Size tavsiyem eğer çoklu platform bir oyun motoru veya oyun gibi Shader kullanan uygulamalar yapacaksanız platforma göre ve o platformdaki performansına göre çoklu API’ler kullanmanız (tabi sizi zorlayacağını düşünmüyorsanız).
-Mesela Windows için DirectX kullanmanız daha iyi olur.
Verilen pixelin renk, alfa kanalı, z-depth gibi niteliklerini işlemeye ve tanımlamaya yarayan Shader tipidir. Pixel Shader‘ını pixeller için bir filtre gibi düşünebilirsiniz. Tek başına bir Pixel Shader çok karmaşık effectler ortaya çıkaramaz çünkü sadece bir pixel üzerinde, diğer pixellerin bilgisine sahip olmadan çalışır.
Fragment Shader örneği: Fotoğraf filtereleri bir örnek olabilir mesela.
Vertex Shader ise Graphics Pipeline‘nin kullandığı Vertex‘ler ile ilgili nitelikleri işlemeye ve tanımlamaya yarar, mesela Vertex‘lerin pozisyonları ,textcoordları, renkleri gibi.
Vertex Shader örneği: Eğer minecraft gibi oyunlar oynamışsanız oradaki çimenlerin sallanışını sağlamak için Vertex Shader tipi kullanılır.
Resim’de Vertex Shader 3D nesneyi çizmek için gerekli, Fragment Shader ise 3D nesnenin deseninin renkleri için, ışık efekti için…
ShaderToy adlı web sitesinde opengl ile yazdığınız Shader‘ları deneyebilir, başkalarının yazdığı Shader‘ları inceleyebilir veya deneyebilirsiniz.
Günümüzde, dünya genelinde su kaynakları giderek azalıyor ve su krizi giderek artan bir endişe kaynağı…
Web kameraları, günümüzde hemen hemen her bilgisayarın ayrılmaz bir parçası haline gelmiştir. Uzaktan çalışma, eğitim…
Günümüzde teknolojinin ilerlemesiyle birlikte evlerimizde bulunan birçok cihaz internete bağlanabilmekte ve bu durum hayatımızı kolaylaştıran…
Günümüzün dijital çağında, hemen hemen her sektörde yazılımın rolü büyük bir önem taşımaktadır. Peki, yazılım…
Günümüzde, çevre sorunları ve sürdürülebilirlik, küresel ölçekte giderek artan bir önem kazanmaktadır. Yeşil teknoloji, bu…
Geleceğin ulaşım teknolojileri, sadece daha hızlı ve daha verimli taşımacılık sağlamakla kalmıyor, aynı zamanda çevre…
This website uses cookies.
View Comments
Müthiş olmuş epic post
Okuduğunuz için çok teşekkürler
Çok Güzel Olmuş Ellerine Sağlık Herşeyi Çok İsteyerek Ve Ayrıntılarına Kadar Anlatmışsın <3
Okuduğunuz için çok teşekkürler
Rica Ederim
Ellerinize sağlık hocam konuyu en güzel şekilde açıklamışsınız :)
Okuduğunuz için çok teşekkürler
Müthiş yine döktürmüşsünüz efe bey
Eline sağlık güzel bir Türkçe kaynak olmuş.