holodepth

Three.js · Doku ve UV

Doku (texture) temelleri: 2B veriden 3B yüzeye

Bir doku yalnızca bir görüntü dosyası değil; yüzeydeki her örnekleme noktasının ışıkla nasıl konuşacağını taşıyan veri matrisidir.

Üç boyutlu grafikte doku, GPU belleğine yüklenen ve fragment shader tarafından işlenen bir bilgidir; Three.js bu matrisi normalize edilmiş doku koordinatları ile yüzeye izdüşürür.

Bağlam: Environment & HDRI, Materyal girişi, Sahne (Scene) · ortam atamaları.

Doku rolü: hızlı karşılaştırma

Rol Three.js tarafı (örnek) Bu sayfada odak
Renk taşıyan doku map, renk kanalı Renk uzayı · sRGB
Matematik / veri dokusu normalMap, roughnessMap vb. Doğrusal veri
Ortam yansıması scene.environment · PMREM Environment · PMREM (kurulum); burada dosya / texel düşüncesi

Doku (texture) nedir?

Teknik olarak bir doku, GPU belleğine yüklenen ve parça boyayıcıda örneklenen bir bitmap verisidir. Aynı görüntü dosyası sahneye iki kez bağlanabilir; önemli olan hangi materyal kanalına ve hangi renk uzayına bağlandığıdır — aşağıdaki alt başlıklar bu ayrımı sabitler.

Texels (texture elements)

Ekranda en küçük birim genelde piksel iken, doku tarafındaki karşılığı texeldir. Yüzey boyanırken üç boyutlu uzaydaki örnek noktalar ile doku üzerindeki texel’lar eşleştirilir; UV bu eşlemenin adres defteridir (bölüm 5).

Boyut ve bellek (2× çözünürlük ≈ 4× maliyet)

Doku maliyeti genelde doğrusal değil, karesel ölçeklenir. Çözünürlüğü iki katına çıkardığınızda (ör. 1024→2048), örneklenen texel sayısı ve VRAM kullanımı kabaca dört kat artar. Aynı kural gölge haritası mapSize ve ortam HDRI çözünürlüğü için de düşünülür (Shadow map · mapSize, Environment · çözünürlük).

NPOT (Non-Power-of-Two)

Modern WebGL ortamlarında kare olmayan (2’nin kuvveti olmayan) boyutlar çoğu zaman desteklenir; “otomatik bozulma” beklentisi eskiye göre daha azdır. Buna rağmen NPOT dokularda mipmap üretimi ve repeat (tekrar) gibi modlarda ek kısıtlarla karşılaşabilirsiniz — dokuyu üretirken boyutu bilinçli seçin.

Üretimde güvenli varsayılan: mümkünse 2’nin kuvveti kenar uzunluğu ve doku atlaslarında tutarlı padding; böylece mipmap ve filtre zinciri öngörülebilir kalır.

Color space ve aydınlatma matematiği

Doku renk uzayı ayarı, sahnedeki ışığın “doğru” görünmesi için en kritik adımlardan biridir. PBR hesapları doğrusal uzayda yürür; ekrana basmadan önce tone mapping ve çıktı profili devreye girer (Environment · tone mapping).

SRGBColorSpace / sRGB

Renk içeren dokular (map, diffuse vb.) için uygundur; gamma düzeltmesi ile renklerin ekranda beklenen görünmesini hedefler. Bu kanal “sanatçı girdisi” olarak düşünülür: gözle seçilen renkler, kullanıcı arayüzüyle uyumlu kalmalıdır.

NoColorSpace (doğrusal / linear)

Veri taşıyan dokular (normal, metalness, roughness vb.) için kullanılır. Bu kanallar “renk” değil matematiksel katsayıdır; yanlışlıkla sRGB uygulanırsa aydınlatma hesapları bozulur, yüzey hatalı görünür.

Pratik ayırıcı soru: «Bu doku bir fotografik renk mi, yoksa yön / oran / maske verisi mi?» — ikincisinde doğrusal bırakmak varsayılan güvenli yoldur.

Filtreleme ve anisotropic filtering

Dokuya yaklaştığınızda veya uzaklaştığınızda aradaki değerleri GPU’nun nasıl doldurduğu filtreleme ile belirlenir. Filtre seçimi hem estetik (keskin pixel art hissi) hem örnekleme hatası (titreme) tarafını etkiler; mipmap ile birlikte düşünülür.

Magnification & minification

Doku büyütülürken veya küçültülürken Nearest (keskin, piksel hissi) veya Linear (yumuşak) seçilir. Yakın çekimde normal haritasında Nearest bazen istenmeyen basamak üretir; çoğu PBR yüzeyinde Linear varsayılanı daha güvenlidir.

Anisotropic filtering

Yüzeye düşük açıyla bakıldığında (ör. uzayıp giden zemin) yönsel bulanıklığı azaltır; kaliteyi belirgin artırır fakat GPU maliyeti vardır. Mobil ve düşük segmentte üst sınırı kısarak ölçmek, çözünürlüğü şişirmekten çoğu zaman daha iyi bir ilk adımdır.

Mipmapping: uzaklık verimliliği

Mipmapping, dokunun farklı çözünürlüklerdeki (1024, 512, 256, …) ön-üretilmiş kopyalarının tutulmasıdır. Bellekte ek katman tutar; karşılığında uzak örneklemelerde daha stabil bir frekans profili elde edilir.

Neden gerekli?

Uzaktaki nesnelerde yüksek çözünürlüklü doku kullanmak aliasing (titreme) üretebilir. Mipmap zinciri, kameraya uzaklığa uygun alt çözünürlüğü seçerek hem iş yükünü makul tutar hem de moiré etkisini azaltmaya yardım eder.

Ortam haritası tarafında benzer düşünce PMREM ön filtresinde de vardır (Environment · PMREM); burada odak klasik 2B doku dosyalarındaki mip zinciridir.

Doku koordinatları (0 ile 1 arası)

Doku dünyasında piksellerle değil, normalize edilmiş U ve V ile konuşuruz (yaygın adı UV). Bu soyutlama, aynı materyalin farklı çözünürlükteki dosyaları arasında taşınabilirlik sağlar.

Normalize sistem

Sol alt köşe yaklaşık olarak (0, 0), sağ üst köşe (1, 1) kabul edilir. Bu sayede doku çözünürlüğünü değiştirseniz bile (512’den 2048’e) koordinat aralığı aynı kalır; harita yüzeye tutarlı oturur.

Kesim dikişleri, texel taşması ve tiling gibi konular bir sonraki adımda UV mapping mantığı sayfasında açılır; bu bölüm yalnızca 0–1 aralığını sabitler.

HoloDepth: başlangıç checkpoint’i

Özet

Doku temelleri, profesyonel sahne kurmanın ilk katmanıdır. En iyi doku, tek başına en yüksek çözünürlük olan değil; sahne ihtiyacına göre optimize edilmiş ve doğru renk uzayına sahip olandır.

HoloDepth kural özeti

  • Renk dokusu mu?sRGB / renk uzayı: SRGBColorSpace (bölüm 2).
  • Veri dokusu mu? (normal / metal vb.) → doğrusal (NoColorSpace) (bölüm 2).
  • Uzaktan titreme mi?Mipmap ve anisotropy kontrolü (4, 3).
  • FPS mi düşüyor? Çözünürlüğü yarıya indirmek bellek ve örnekleme yükünü kabaca ¼ oranında azaltır (VRAM kuralı).

Sahne ve materyal hattı

Doku kararları yalnızca materyalde bitmez: scene.environment, sis ve arka plan ile aynı sahne «görünürlük sözleşmesi»ni paylaşır (Sahne · temel metotlar). Bu yüzden renk uzayı düzeltmesini yaptıktan sonra hâlâ düz görünüyorsa önce ortam ve pozlama zincirini kontrol edin.

Sonraki durak: Bu iki boyutlu örtünün üç boyutlu formlara nasıl «giydirildiğini» anlatan UV mapping mantığı.