Shader nedir?
- Oyun Geliştirme kursu
- İleri seviye
- Ders 1/71
- 4 dk
Shader'in GPU üzerinde yüzeyin nasıl çizileceğini şöylediğini öğrenirsin.
Shader nedir?
Shader (gölgelendirici), 3D bir modelin yüzeyinin ekranda nasıl çizileceğini ve piksellerin hangi renkte görüneceğini belirleyen programdır. İşlemleri ana işlemci (CPU) yerine binlerce çekirdeğe sahip grafik işlemcisinde (GPU) paralel olarak yürütür.
Shader "Custom/MyFirstShader"
{
// GPU uzerinde calisacak kod yapisi
}Işık yansımaları, gölgeler, su dalgalanmaları ve görsel efektlerin tamamı shader kodları ile yönetilir.
Grafik boru hattı ve Materyaller
Bir 3D modelin geometrisinin ekrandaki piksellere dönüştürülme sürecine Render Pipeline (grafik boru hattı) denir. Unity'de shader'lar doğrudan nesneye verilmez; önce bir Material (materyal) içine atanır ve materyal parametreleri saklar.
// Shader materyale atanir, materyal de nesneye baglanir
Shader shader = Shader.Find("Standard");Bu ayrım sayesinde aynı shader kodu farklı renk ve doku ayarlarıyla yüzlerce farklı materyal tarafından paylaşılabilir.
Uygulama Shader çalışma ortamı
Bir Start metodu tanımla. İçinde konsola "Shader GPU uzerinde calisir" yazdıran Debug.Log çağrısını yap.
Başlangıç kodu
using UnityEngine;
public class ShaderInfo : MonoBehaviour
{
// Start metodunu tanimla ve log yazdir
}Örnek çözüm
using UnityEngine;
public class ShaderInfo : MonoBehaviour
{
void Start()
{
Debug.Log("Shader GPU uzerinde calisir");
}
}Beklenen çıktı
Shader GPU uzerinde calisir
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Shader programları bilgisayarın hangi donanım bileşeni üzerinde paralel olarak çalışır?
- CPU (Merkezi İşlem Birimi)
- GPU (Grafik İşlem Birimi) Doğru cevap
- Sabit Disk (Depolama)
- RAM (Bellek)
Açıklama: Shader'lar devasa piksel ve köşe verisini aynı anda işleyebilmek için GPU (Grafik İşlem Birimi) üzerinde paralel çalışır.
2 Shader bulma metodu
Shader shader = Shader.____("Standard");
Shader shader = Shader.Find("Standard");
Açıklama: Unity'de ada göre bir shader referansı almak için Shader.Find metodu kullanılır.
3 Temel shader kavramları
| Kavram | Anlamı |
|---|---|
Shader |
GPU üzerinde çalışan render programı |
GPU |
Paralel grafik hesaplama donanımı |
Render Pipeline |
Geometrinin piksele dönüşüm hattı |
Material |
Shader parametrelerini saklayan varlık |