anasayfa / blog / grafik
Yayın: 24 Ocak 2026 9 dk okuma grafik
Stilize aydınlatma: cel shading'in ötesinde

Stilize aydınlatma: cel shading'in ötesinde

Bantlı gölge herkesin bildiği ilk adım. Asıl karakter, rim ışığı ve gölge renginin nasıl seçildiğinde saklı.

Bantlama yeterli değil

Toon shader denince akla ilk gelen, ışık yoğunluğunu birkaç basamağa yuvarlamaktır. Bu tek başına ucuz bir görünüm verir; sahneniz çizgi film gibi değil, düşük kaliteli gibi durur.

Fark yaratan şey, o basamakların hangi renklere gittiğidir. Gölgeyi siyaha değil, ışığın tamamlayıcı rengine doğru kaydırdığınızda sahne birden "sanat yönetimi olan" bir şeye dönüşür.

Rim ışığı silueti kurtarır

Stilize sahnelerde nesneler arka planda kaybolmaya meyillidir çünkü gölgelendirme detayı azdır. Kenar ışığı bu yüzden dekoratif değil, işlevsel bir araçtır.

Rim gücünü kamera mesafesine göre ölçeklerseniz, uzaktaki nesneler aşırı parlamaz. Küçük bir çarpan büyük bir fark yaratır.

Maliyeti ölçün

Stilize shader'lar "ucuzdur" varsayımı yanlıştır. Çok katmanlı rim, outline ve custom gölge hesabı, PBR'den pahalıya çıkabilir.

Her shader varyantını RenderDoc ile ölçüyorum ve dokümantasyona GPU maliyetini yazıyorum. Sanat ekibi bütçeyi görebildiğinde daha iyi kararlar veriyor.

ToonLit.hlsl
half3 ToonShade(half3 albedo, half3 N, half3 L, half3 lightColor) { half ndl = dot(N, L) * 0.5h + 0.5h; half band = floor(ndl * _Steps) / _Steps; half rim = pow(1.0h - saturate(dot(N, _ViewDir)), _RimPower); return albedo * lightColor * band + _RimColor * rim; }
hlslToonLit.hlsl

Tutarlılık her şeydir

Sahnedeki tüm materyaller aynı aydınlatma modelini paylaşmalı. Tek bir PBR nesne, stilize bir sahnenin bütünlüğünü bozar.

Bu yüzden paylaşılan bir aydınlatma fonksiyonu yazıp tüm shader'ların onu çağırmasını sağlıyorum. Model değişince tüm sahne birlikte değişiyor.

← Tüm yazılar