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ölgelendirici | Görev |
|---|---|
| Vertex shader | Bir modelin her köşe noktasını işler: uzaydaki konum, yer değiştirme, animasyon |
| Fragment/piksel shader | Her pikselin rengini hesaplar: doku, ışık, yansıma, saydamlık |
| Geometri/tessellation shader | Geometri oluşturur veya inceltir (az üçgenden çok üçgen) |
| Compute shader | GPU’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