Shader Nedir ?
Shader Nedir ?
Oyun tasarımında gün geçtikçe konuları biraz biraz ağırlaştırmaya ve oyun tasarımı ile ilgili oldukça bildiğim veya öğrendiğim bilgileri sizlere aktarmaya çalışıyorum ve son bir iki aydır daha doğrusu üniversitemdeki 2. sınıfın 1. döneminin oyun projesi dersinin finaline başladığım günden bu "shaders" yani "gölgelendiriciler" ile uğraşmaya başladım ve bu gün de sizlere shader (gölgelendirici) nedir gibi soruların cevaplarını vermeye çalışacağım. Biraz uzun bir yazı olabilir şimdiden uyarayım.
Pixel Nedir? Vertex?
Pixel Nedir?
Vertex Nedir?
Shader Nedir?
Shader programlanabilir ekran kartlarının (GPU) piyasaya girmesi ile hayatımıza giren ve ekran kartını vertex ve pixellere istediğimiz şekilde hükmetmesi için yazdığımız programlardır diyebilirim.
Şimdi shaderi bu şekilde tanımlayınca oldukça akıl karıştırıcı oldu ama sizlere şöyle biraz daha açıl halde anlatmaya çalışayım.
Shader dediğimiz şey ekran kartı için yazdığımız program / uygulamalardır diyelim. Bu yazdığımız uygulamalar bizlere oyunlardaki birbirinden güzel efektleri, dokuları oluşturmamızda işimize yaradığı gibi aynı zamanda oyunlarda deniz, lav gibi akışkan maddeleri de oluşturmamıza yarar. Birde bunların yanı sıra objeye gelen ışığın obje üzerinde nasıl bir gölgelendirme yapacağı ve renk ayarları gibi bir çok alanda kullanılabiliyor.
Unity üzerinden basit bir shader eğitimini buraya bırakıyorum, shader ile nasıl su yapılıyor Unity üzerinde görmeniz shaderin ne olduğunu anlamanızda faydalı olacağını düşünüyorum.
Render Pipeline / Graphics Pipeline
Konu konuyu açıyor resmen ama gölgelendiricileri kavramak için aslında bunların hepsinden biraz biraz bilmeniz gerekiyor.
İngilizcesi Render Pipeline veya Graphics Pipeline olan ve Türkçeye Çıktı Boru Hattı veya Grafik Boru Hattı olarak çevrilen 3 boyutlu bir görüntünün / 3 boyutlu ekranın 2 boyutlu ekrana / düzleme dönüştürmesi için hangi adımları gerçekleştirdiğini tanımlayan modeldir.
Açıkçası benim de Render Pipeline ın işleyişi ile ilgili çok fazla bir bilgim olduğunu söyleyemem ancak Unity üzerinde Standart Render Pipeline ı kullandığım zaman URP (Universal Render Pipeline) için yazdığım shader ın çalışmadığını biliyorum.
Buraya hemen bir adet örnek Pipeline atayım.
Shader Tipleri
Pixel (Fragment) Shader (2D)
Vertex Shader (3D)
Shader Nasıl Yazılır ?
- GLSL : C tabanlıdır, OpenGL destekler ve çapraz platform desteği bulunur.
- HLSL : Directx tabanlıdır ve sadece Windows ortamında çalışır.
- CG : Nvidia tarafından geliştirilmiştir HLSL ile aynı sayılır ancak çapraz platform desteği bulunur.
- Direct3D (DirectX)
- Glide
- Mantle (AMD)
- Metal (Apple)
- OpenGL
- OpenGL ES
- Vulkan
Yorum Gönder