EMZETT.
Giriş yap

Gölgelendiriciler (shader)

Kısaca: Gölgelendirici (shader), ekran kartında çalışan ve geometrinin ile piksellerin nasıl gösterileceğini belirleyen küçük bir programdır: konum, renk, ışık, gölgeler ve yüzey efektleri.

Biraz daha ayrıntılı: Bir ekran kartı, aynı anda binlerce küçük hesaplama yapacak şekilde inşa edilmiştir. Gölgelendiriciler tam olarak bu hesaplamalardır: her köşe noktası veya piksel için aynı program farklı verilerle çalışır. Buna paralel işleme denir.

Ayrıntılı

Önemli türler:

GölgelendiriciGörev
Vertex shaderBir modelin her köşe noktasını işler: uzaydaki konum, yer değiştirme, animasyon
Fragment/piksel shaderHer pikselin rengini hesaplar: doku, ışık, yansıma, saydamlık
Geometri/tessellation shaderGeometri oluşturur veya inceltir (az üçgenden çok üçgen)
Compute shaderGPU’da genel hesaplamalar (fizik, yapay zekâ, görüntü filtreleri)
Işın izleme shader’ıGerçekçi aydınlatma için ışık ışınlarını hesaplama

Grafik ardışık düzenindeki sıra: Model verileri → vertex shader → rasterleştirme (üçgenler piksel olur) → fragment shader → görüntü.

Diller: GLSL (OpenGL), HLSL (DirectX, Unity), WGSL (WebGPU), Metal Shading Language (Apple), SPIR-V (Vulkan). Görsel: Shader Graph (Unity), malzeme düzenleyici (Unreal).

Örnek (GLSL fragment shader):

void main() {
    // dokudan renk, ışığa bağlı olarak karartılmış
    vec3 color = texture(tex, uv).rgb * max(dot(normal, lightDir), 0.0);
    output = vec4(color, 1.0);
}

Kullanım:

  • Aydınlatma, gölgeler, su, duman, deri, saç, sis.
  • Son işleme: bulanıklık (bloom), renk düzeltme, kenar yumuşatma.
  • Sanat stilleri: cel shading (çizgi roman görünümü), piksel shader’ları, hologram efektleri.
  • Yalnızca oyunlar değil: filmler (render shader’ları), hesaplamalar, yapay zekâ.

Maliyet: Karmaşık gölgelendiriciler kare hızını düşürür. İlk başlangıçta “gölgelendiricileri derleme”, oyunların uzun yüklenmesine neden olur (shader önbelleği).

Ayrıca bak: Oyun motoru, Unity, 3D modelleme