holodepth

Three.js · Varlık · KTX2 · Boyut

Doku boyutu & kalite dengesi

3D dünyasında «boyut», yalnızca dosyanın diskte kapladığı yer (KB / MB) değildir; aynı zamanda dokunun VRAM (ekran kartı belleği) üzerindeki baskısıdır. KTX2 ile bu baskıyı yönetirken üç ana değişken vardır: çözünürlük, bitrate ve algoritma (ETC1S / UASTC).

Bu sayfa, üretim hattınızda «daha büyük doku = daha iyi» varsayımını GPU gerçekliğiyle yeniden çerçeveler. Encode araçları ve kanal seçimi için KTX2 encode süreci; iki Basis modunun felsefesi için Basis Universal; konteyner zemini için KTX2 nedir? sayfalarıyla birlikte okunmalıdır.

Çalışma zamanı yolculuğu için Transcoding süreci ve glTF bağlama zemini için Texture binding bağlantılarını da yanınıza alın.

Buradaki bakış açısı «hangi araç» değil, aynı sahne bütçesinde hangi takası seçtiğinizdir: çözünürlük artarken bitrate sabit kalırsa blok artefaktı büyür; bitrate yükselirken çözünürlük sabit kalırsa uzaktaki ince detay yine sınırlı kalır. İkisini birlikte düşünmek, diğer KTX2 derslerindeki teknik ayrıntıları sahne kararına bağlar.

Resolution (çözünürlük) ve bitrate

Geleneksel web geliştirmede çoğu zaman yalnızca çözünürlüğe (ör. 1024×1024) odaklanırız. KTX2 dünyasında ise bitrate — piksel başına düşen veri miktarı — çoğu senaryoda en kritik eksendir.

  • Resolution (çözünürlük): Dokunun fiziksel boyutudur. Çözünürlüğü iki katına çıkarmak (ör. 1K'dan 2K'ya), piksel sayısını ve dolayısıyla bellek kullanımını yaklaşık dört kat artırır.
  • Bitrate (sıkıştırma yoğunluğu): Çözünürlüğü değiştirmeden, her bir piksel bloğunu tanımlamak için ayrılan veri miktarını ifade eder.

Bellek ve bant genişliği hesabında yalnızca taban seviye (base level) değil, mipmap zincirinin tamamı girer: her ek seviye bir öncekinin kabaca dörtte biri kadar alan kaplar; zinciri çıkarmak veya çok yüksek taban seçmek aynı bütçeyi zıt yönde zorlar. Bu yüzden «kaç MB indirildi» tek başına VRAM hikâyesini anlatmaz.

İnteraktif lab: Resolution vs bitrate

Aşağıdaki sahne gerçek KTX2 encoder kullanmaz; prosedürel bir doku üzerinde blok boyutu + renk kuantizasyonu ile ETC1S / UASTC öğretici farkını hissettirir. Disk ve VRAM rakamları kabullü tahmindir — amaç, aynı çözünürlükte düşük bitrate ile yüksek çözünürlük + yüksek kalite arasındaki takası gözle ve sayıyla bağlamaktır. Normal map modunda ışığın kırılması ve renk modunda bantlanma daha kolay seçilir.

Resolution vs bitrate lab · küre + düzlem · Three.js r170 Pedagogical sim
Mod
Çözünürlük
Gelişmiş: bitrate ve doku türü
Bitrate / sıkıştırma (sim)
Doku türü

Rehberli Adım 1: yalnızca üstteki mesaj + «Sonraki»; sahne tam genişlikte. Adım 2: solda yalnızca «Üst-alt» kutusu (isteğe bağlı). Serbest modda çözünürlük, hazır senaryolar ve gelişmiş panel birlikte açılır.

Çözünürlük
Doku türü
Biçim
Disk (tahmini)
VRAM (tahmini)
Sıkıştırma oranı
Kalite (göz + kural)

Nasıl okunur: Varsayılan Rehberli akışta Adım 1 yalnızca üst metin + sahne (~2 sn otomatik uzaklaşma + yavaş dönüş); Adım 2’de sol sütunda «Üst-alt» isteğe bağlı. Serbest modda çözünürlük ve hazır senaryolar önde; bitrate / doku türü gelişmiş panelde. Küre + eğik düzlem aynı materyali paylaşır — dama deseni düzlemde daha okunur. Rakamlar ham RGBA8 referansına göre kabaca; gerçek KTX2 paketiniz araç ve içeriğe göre değişir.

HoloDepth stratejisi

Bazen 2K çözünürlükte düşük bitrate ile üretilmiş bir KTX2 dokusu; 1K çözünürlükte yüksek kaliteli (neredeyse sıkıştırılmamış) bir dokudan daha keskin görünebilir ve VRAM'de daha az yer kaplar. Karar tablosu: önce hedef cihaz ve mesafe, sonra çözünürlük–bitrate çifti.

Ekranda kapladığı alan küçüldükçe aynı doku daha agresif minification ile örneklenir; bu durumda yüksek taban çözünürlük, düşük mipmap seçimi veya dar bitrate birleşince shimmering ve blok hissi öne çıkar. Yakın çekimde kazandığınız çözünürlük, uzak planda her zaman aynı fiyatla dönmez — kamera ve LOD planınız bu sayfanın sessiz ortağıdır.

Görsel kalite: hangi veriye hangi ayar?

KTX2 içinde seçilen modlar (ETC1S ve UASTC) görsel kaliteyi doğrudan etkiler; her doku türü aynı hassasiyeti gerektirmez.

Modların bit düzeyindeki fark Basis Universal sayfasında ele alınır; burada soru şudur: bu kanal hatayı affeder mi, yoksa ışık denklemini bozar mı? Aynı cevap, emissive gibi «gözle yumuşak» haritalar için genelde renk tarafına; ince çizgi veya keskin alpha kenarı için ise sıkça yüzey verisi tarafına yaklaşır.

Albedo / Diffuse (renk) haritaları

Bu haritalar genelde fotoğraf veya boyama tabanlıdır; insan gözü renk geçişlerindeki küçük hataları tolere eder.

Öneri: ETC1S kullanın.
Denge: Quality level / bitrate ayarını kabaca 128–192 bandında tutarak dosya boyutunu yaklaşık %80 oranında küçültebilirsiniz (sahneye göre doğrulama şart).

Yüksek frekanslı desen (ince kumaş, küçük yazı) seçtiğiniz quality bandında hâlâ «kaygan» görünüyorsa ilk hamle çoğu zaman «daha agresif ETC1S» değil; çözünürlüğü bir kademe düşürüp aynı bandı korumaktır — blok boyutu sabit kaldığı için yüksek frekans, pahalı bir taleptir.

Normal ve Roughness (yüzey detayı) haritaları

Bu haritalar «renk» değil, matematiksel veri taşır. Bir piksellik sapma, ışığın yüzeyden yanlış yansımasına ve modelin bloklu veya kirli görünmesine yol açabilir.

Öneri: UASTC kullanın.
Denge: UASTC, matematiksel doğruluğu korur. Özellikle normal map'lerde ETC1S kullanırsanız, yüzeyde garip gölgelenmeler ve banding riski artar.

Şeffaf kesitlerde (alpha cutout, saç teline yakın maske) kenarın matematiği bozulduğunda artefakt tüm sahneye «kirli» yayılır; bu yüzden tabloda alpha için de UASTC önerisi sık görülür. Düz yumuşak alpha gradyanları bazen daha toleranslı olsa da, üretimde tek tip kurala sığınmak genelde daha güvenlidir.

İdeal sıkıştırma «formülü» (benchmark)

Bir dokunun kalitesini ölçmek için SSIM (Structural Similarity Index) gibi metrikler kullanılır. Pratik geliştirici için aşağıdaki tablo hızlı bir referans görevi görür; yüzdeler kabaca VRAM / paket tasarrufu bandını ifade eder, kesin ölçüm sahneye bağlıdır.

SSIM yapısal benzerliği özetler; normal gibi «gözle yanlış okunması kolay» kanallarda sayı iyi çıksa bile sahnede ince hata kalabilir. Otomasyon için metrik + bir referans sahne ekran görüntüsü; son sözü yine gözünüze bırakın.

Özet reçete tablosu

Doku tipi Tavsiye edilen format Kalite kaybı Bellek (VRAM) tasarrufu
Arka plan / uzak nesne ETC1S (düşük kalite profili) Fark edilebilir %90+
Karakter / ana obje ETC1S (yüksek kalite profili) Çok az %80
Normal map / metalik UASTC Yok denecek kadar az %70
Şeffaf (alpha) dokular UASTC Yok denecek kadar az %60

Tablodaki yüzdeler, tipik «ham PNG / açılmış RGBA tampon» ile aynı görsel alanı hedefleyen Basis yolunu kıyaslayan kaba aralıklardır; çözünürlük, kanal sayısı ve zaten düşük bit derinliğinde olan kaynaklar sonucu kaydırır.

Geliştiriciler için «sweet spot» (altın oran)

Holodepth projelerinde aşağıdaki kurallar, performans ile kalite arasında en istikrarlı dengeye yaklaşmanıza yardım eder.

  • 2'nin kuvveti kuralı: Dokular 512, 1024, 2048 gibi 2n kenar uzunluklarında olmalıdır. KTX2'nin blok sıkıştırma yolu bu düzende en verimli çalışır. NPOT (ör. 1000×1000) bazı hatlarda yine çalışır; fakat tam mipmap zinciri, örnekleme ve araç varsayılanları açısından 2n tercihini üretimde «varsayılan doğru» yapar.
  • Kanal paketleme (channel packing): Roughness, Metallic ve Occlusion haritalarını tek bir görüntünün R, G, B kanallarına yerleştirin; bu tek dosyayı UASTC ile KTX2'ye alın. Üç ayrı dosya yerine tek dosyada üç veri taşımış olursunuz. glTF'te bu üçlü genelde doğrusal uzayda yorumlanır; renk haritasıyla aynı «güzel görünsün» sRGB varsayımına düşmemek, bağlama tarafında hatayı erken keser (Texture binding).
  • Mipmap gerekliliği: Kalite dengesinde sık gözden kaçan parçadır. Uzaktaki bir objenin titremesini (shimmering) engellemek için çözünürlüğü hafifçe düşürüp mipmap zincirini mutlaka pakete dahil edin — ayrıntı için KTX2 encode — mipmap notu. Zincir varken bile motor tarafında minification filtresinin mipmap kullanan moda yakın olması gerekir; aksi halde paket doğru olsa bile örnekleme hâlâ pahalı kalır.