Three.js · Işık ve materyaller · Gölgeler
Işığa özel gölgeler: ışığın karakteri, kameranın gölgesi
Gölgenin davranışını belirleyen şey çoğu zaman ışığın türünden çok, arkasındaki görünmez gölge kamerası modelidir.
Three.js’te her ışık kaynağının gölge üretme biçimi, o ışığın arkasında çalışan Shadow Camera tipine göre belirlenir. Unutmayın: gölgenin karakteri yalnızca ışığın kendisinden değil; hangi projeksiyon ve frustum ile derinlik toplandığından gelir.
Bağlam: Gölge girişi, Shadow map, Shadow pass süreci, DirectionalLight.
DirectionalLight: paralel alanın hakimi
Güneş gibi uzak ve yönlü kaynakları simüle eden bu ışık, gölge üretimi için OrthographicCamera kullanır.
Karakteristik: Işınlar paraleldir; gölge, objeden uzaklaştıkça “perspektif bozulması” yaşamaz — mesafe hissi daha çok harita çözünürlüğü ve sahne ölçeğiyle ilgilidir.
Kapsama alanı: Bu kamera sahnenin tamamını değil, sizin tanımladığınız sabit bir dünya kutusu (frustum) içini görür. Objeniz bu kutunun dışına çıkarsa gölgesi anında kesilir.
Kritik not
Kamera veya sahne hareket ettikçe, piksellerin dünya koordinatlarıyla hizalanması değişebilir; bu da gölge kenarlarında titreme (shimmering) üretebilir. İleri seviyede bu sorun genellikle CSM (Cascaded Shadow Maps) ile ele alınır.
Pratikte kutu ve titreme
Ortografik kutu daraldıkça aynı mapSize daha ince bir dünya dilimine yayılır;
bu hem keskinlik hem de performans için iyidir
(Shadow map ·
frustum).
Kamera veya nesne hareketinde kenar shimmer artıyorsa önce kutuyu
sabitleme stratejisini, sonra CSM gibi ileri bölünmeleri düşünün.
SpotLight: perspektif ve odak
Bir el feneri gibi konik yayılan bu ışık, gölge üretimi için PerspectiveCamera kullanır.
Karakteristik: Işık tek noktadan açıyla yayıldığı için gölgelerde derinlik (perspektif) etkisi oluşur; mesafe arttıkça gölge alanı büyür.
FOV uyumu: shadow.camera.fov değeri,
SpotLight’ın kendi angle değeriyle uyumlu olmalıdır.
Three.js bunu çoğu zaman otomatik eşler; manuel müdahalede uyumsuzluk olursa ışığın
vurduğu ama gölgenin oluşmadığı bölgeler (görsel artefakt) görebilirsiniz.
Sahne kurulumu: konik ve gölge kamerası
Spot, hem ışık hem gölge için hedef ve açı dilimini paylaşır; ışığın
menzili ile gölge kameranın far değerlerinin uyumsuz kalması «ışık var ama
gölge yok» bölgeleri üretir. Detaylı API ve sahne örnekleri için
SpotLight
sayfasına dönün; bu bölüm yalnızca perspektif gölge kamerası fikrini sabitler.
PointLight: çok yönlü maliyet
Her yöne ışık saçan PointLight, tek bir yöne bakan kamera yerine altı yöne ayrı derinlik pass’i (küp haritası yüzleri) üretir.
Performans uyarısı: Bir gölge üreten PointLight, kabaca 6 adet SpotLight yüküne denk düşebilir. Gerçek zamanlı profesyonel sahnelerde gölge üreten PointLight sayısı çoğu zaman 1–2 ile sınırlandırılır.
Ayrıntı: Shadow pass ve 6× maliyet.
Nokta ışığı: gerçekten gölge şart mı?
Ortam aydınlatması veya küçük lamba için önce gölgesiz nokta ışığı, gölgeyi ise yönsel veya spot ile «taşımak» çoğu web sahnesinde daha sürdürülebilir bir FPS profili verir. Gölge açık nokta ışığı kullanacaksanız performans hiyerarşisinde bu seçimin listenin başına yazıldığını unutmayın.
Gölge yumuşaklığı hakkındaki yanılgılar
Fiziksel dünyada gölge, objeden uzaklaştıkça doğal olarak dağılır (penumbra). Standart shadow mapping ile bu otomatik olmaz.
Mesafe bazlı yumuşama yok
Standart Three.js gölgeleri, mesafe arttıkça kendiliğinden yumuşamaz. Bu davranış ancak PCSS (Percentage Closer Soft Shadows) gibi ileri tekniklerle yaklaşık olarak simüle edilir.
shadow.radius ne işe yarar?
shadow.radius gerçek dünyadaki “ışık kaynağı boyutu” penumbra’sı değildir;
çoğu senaryoda ekran uzayında uygulanan bulanıklık / filtre genişliği ile
ilişkilidir. PCFSoftShadowMap kullanıldığında etkisi motor tarafından
sınırlandırılabilir.
Filtre türü ayrı, ışık geometrisi ayrı
Özet karşılaştırma
| Işık türü | Kamera modeli | Maliyet | Öne çıkan |
|---|---|---|---|
| Directional | Orthographic | Tek render (stabil) | Sabit kapsama ve paralel ışınlar |
| Spot | Perspective | Perspektif (orta) | Mesafe ile büyüyen gölge alanı |
| Point | Küp (6× persp.) | 6 render (en pahalı) | Her yöne eşzamanlı derinlik |
Tablo kamera geometrisi özetidir; harita çözünürlüğü ve filtre seçimi Shadow map · gölge türleri ile birleştirildiğinde üretim kararı çıkar. Bias ve acne düzlemi ayrı sayfada toplanmıştır.
HoloDepth final notu ve checklist
HoloDepth final notu
Gölge ayarlarını yaparken her zaman ışığın arkasındaki görünmez kamerayı hayal edin. Gölge kamerasını doğru konum ve frustum ile yerleştirirseniz, düşük çözünürlükte bile daha tutarlı sonuç ve daha iyi performans dengesi elde edersiniz.
Checklist
- DirectionalLight: Frustum’u (alanı) gereğinden geniş tutma — mümkün olduğunca daralt.
- SpotLight:
shadow.camera.fovile ışığınangleuyumunu kontrol et. - PointLight: Kendine sor: “Buna gerçekten ihtiyacım var mı?” — gölge açıksa maliyet çarpanı yüksektir.
Haritayı elle hissettirmek
Bu sayfa kavramları sabitler; kötü ayarda acne ve titremeyi bir arada görmek için Shadow Playground ve ardından performans checklist ile üretim turunu tamamlayın.