CodeBlanks Logo Icon CodeBlanks

Shader nedir?

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

Player.cs
using UnityEngine;

public class ShaderInfo : MonoBehaviour
{
    // Start metodunu tanimla ve log yazdir
}

Örnek çözüm

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

Soru
Shader shader = Shader.____("Standard");
Cevap
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

İleri seviye bölümündeki tüm dersler