Performans & optimizasyon · Platform & kalite
Asset Sıkıştırma & LOD: Byte Gümrüğü
Kare bütçesi ve işlemci tarafı netleştikten sonra kalan büyük kalem çoğu zaman verinin kendisidir. Bu sayfa asset'i üç vergili bir gümrük olarak anlatır: indirme, decode, VRAM · LOD ise mesafeye göre hangi pasaportun geçerli olduğunu yazar. CPU / GPU dilimi kimin yediğini teşhis etti; burada ne kadar veri, ne zaman, hangi kalitede vardır.
Holodepth bu yaprağı THREE.LOD API turu veya Draco encode
parametre lab'ı olarak yazmaz. Bakış açısı: sıkıştırma dosyayı küçültür
ama decode ve bazen kalite vergisi keser; LOD runtime'da üçgen ve draw
yükünü düşürür ama pop ve bellek çoğaltması riski taşır. Draco, KTX2,
meshopt ve benzeri araçların derinliği Three.js asset / Draco izleğinde;
mesafe adaptasyonunun uygulama rehberi
LOD sistemi
yaprağındadır.
Sayfayı bitirdiğinizde şu cümleyi kurabilmelisiniz: «Asset üç vergi öder: network, decode, VRAM. Sıkıştırma boyutu değil takas yazar. LOD mesafe diplomasisidir; seviye politikası ticket'tadır. Texture ve mesh ayrı kalemdir. İlk yükleme ile steady-state ayrılır. Draco/LOD API'leri motor izleğindedir. Performans grubu burada kapanır.»
Bu sayfanın sınırı · komşu konularla ayrım
Bu sayfa PLATFORM performansında asset boyutu / sıkıştırma / LOD diplomasisini anlatır:
- Üç vergi: network · decode · bellek
- Sıkıştırma takası · texture vs mesh kalemi
- LOD politika · pop ve bütçe ilişkisi
- İlk yük vs steady · üç payload profili
Bilinçli olarak dışarıda bırakılan konular:
- Kare ms SLA / jank → FPS mantığı
- CPU/GPU bound teşhisi → CPU / GPU
- THREE.LOD, mesafe bandı uygulama → LOD sistemi
- Draco encode/decode parametreleri → Three.js Draco grubu
- glTF buffer / image şema → format izleği
Kısa ayrım: Bu sayfa «veri gümrüğü nasıl yazılır?» · LOD sistemi «Three'de seviye nasıl kurulur?» · Draco «mesh nasıl sıkışır / açılır?» · FPS / CPU-GPU «kare ve işlemci tarafı».
Üç vergi: indirme, decode, VRAM
Holodepth asset maliyetini tek «MB» satırına indirmez. Üç ayrı gümrük vardır:
- Network: kullanıcıya inen bayt (TTFB + transfer; mobilde özellikle acıtır)
- Decode / inflate: sıkıştırmayı açma, parse, GPU'ya hazırlama (CPU spike üreticisi)
- Bellek / VRAM: çalışırken tutulan ham veya GPU yüzeyi (sıkıştırılmış dosya ≠ GPU'daki boyut)
«Draco ile 2 MB oldu» yalnızca birinci vergiyi övmüş olabilir; decode ana iş parçacığını 40 ms kilitleyebilir, açılmış mesh yine yüzlerce MB VRAM isteyebilir. Ticket üç kalemi ayırır.
Küçük dosya, ucuz kare demek değildir.
Sıkıştırma: boyut değil, takas
Sıkıştırma (mesh, texture, audio) her zaman «daha iyi» değildir. Holodepth takas dilini dayatır:
- Kazanç: daha az network, bazen daha hızlı ilk paint
- Bedel: decode CPU, kalite kaybı, karmaşık pipeline, küçük asset'te ters etki
- İstisna: zaten küçük veya bir kez yüklenecek hero dışı prop'ta agresif preset
Draco / meshopt / KTX2 seçimi motor ve format sayfalarında çözülür; burada kural: sıkıştırmayı açmadan önce «hangi vergiyi düşürüyorum, hangisini yükseltiyorum?» yazılır. Decode'u frame bütçesine gömmek FPS ve CPU/GPU yapraklarındaki spike yasasını çiğner.
Texture kalemi ≠ mesh kalemi
Birçok «ağır model» şikâyeti aslında texture VRAM'idir; birçok «yavaş yükleme» mesh decode'udur. Holodepth iki kalemi ayırır:
- Texture: çözünürlük, mip, format (GPU-compressed vs PNG/JPEG), atlas vs ayrı dosya, gereksiz 4K hero
- Mesh: üçgen sayısı, attribute seti, morph/skin fazlalığı, sıkıştırma türü
Aynı ticket'ta «asset optimize» tek satır yetmez: texture tavanı (ör. hero 2K, thumb 512) ve mesh tavanı (ör. LOD0 40k tri) ayrı yazılır. Painter / DCC çıkış disiplinleri modeling tools izleğindedir; burada runtime bütçe dilimidir.
LOD: mesafe diplomasisi
LOD, «uzakken çirkin mesh» değil: kameraya göre hangi kalite pasaportunun geçerli olduğudur. Holodepth politika alanları:
- Kaç seviye (LOD0…n) ve her seviyede tri / material sadeleştirme
- Geçiş mesafeleri (veya ekran kapsama yüzdesi)
- Histerezis: ileri-geri zıplamayı kesen bant
- Pop kabul limiti: görünür sıçrama yasak / yumuşak çapraz
THREE.LOD ve pratik kurulum
LOD sistemi
yaprağındadır. Bu sayfa politikayı ticket diline çevirir: seviye yoksa
«uzaklarda da LOD0» sessiz GPU vergisidir.
LOD ve kare bütçesi: ne zaman?
LOD her sahnede zorunlu değildir. Holodepth karar kapısı:
- LOD haklı: çok nesne, geniş derinlik, kamera gezer, uzak kümeler GPU'yu yer
- LOD ertelenir: tek hero prop, sabit kamera, zaten düşük tri, maliyet üretimde
- LOD yetmez: asıl sorun texture VRAM veya CPU draw setup ise önce o taraf (CPU/GPU teşhisi)
Seviye çoğaltmak belleği de çoğaltabilir (her LOD ayrı mesh). «Üç LOD = üç kat VRAM» tuzağı ticket'ta görünür olmalıdır; bazen share material + sadeleştirilmiş geometry yeter.
İlk yük ≠ steady-state
FPS yaprağı yükleme spike'ını ayrı yazmayı istedi. Asset gümrüğünde bu iki fazdir:
- İlk yük: kritik path (görünen LOD, düşük texture), lazy geri kalan; decode worker / zamanlama
- Steady-state: streaming, LOD geçişleri, cache hit; network seyrek, VRAM tavanı sabit
«Her şeyi başta Draco + 4K» hem network'ü hem decode'u hem VRAM'ı aynı anda cezalandırır. Holodepth: critical path paketi ayrı isimlenir (adlandırma sözleşmesi ile hizalı token'lar faydalıdır).
İlk saniye ile onuncu dakika aynı faturayı ödemez.
VRAM yanılsaması
Diskteki WebP/JPEG boyutu GPU'daki RGBA/mip zincirine eşit değildir. GPU-compressed formatlar (cihaz destekliyorsa) üçüncü vergiyi düşürür; aksi halde «küçük indirme, şişkin VRAM» klasikdir.
Holodepth mobil / düşük VRAM hedefinde texture tavanını cihaz zarfına bağlar (WebXR yetenek zarfının kuzeni). «Masaüstünde güzel» otomatik mobil pasaportu değildir.
Üç payload profili
Ticket diline yapışan üç veri yoğunluğu:
-
01 · Payload
Vitrin hafif
- Network
- Küçük critical path
- LOD
- 1–2 seviye veya tek hero
- Risk
- 4K texture alışkanlığı
-
02 · Payload
Sahne kalabalık
- Network
- Sıkıştır + lazy
- LOD
- Politika yazılı · histerezis
- Risk
- Her prop'a LOD0
-
03 · Payload
Mobil VRAM sıkı
- Network
- Küçük + GPU format tercihi
- LOD
- Erken düş · texture tavanı
- Risk
- Decode spike'ı frame'de
Holodepth perspektifleri
Üç vergili defter
Network kazanıp decode veya VRAM'de kaybetmek başarı değildir. Üç satır birlikte okunur.
LOD politika, API notu değil
Seviye ve mesafe yazılmadan LOD eklemek dekoratir.
Texture / mesh ayrımı
Tek «asset ağır» teşhisi yanlış tarafta kesmeye yol açar.
Teşhis maddeleri
- Payload profili seçili mi?
- Network / decode / VRAM kalemleri ayrı mı ölçüldü?
- Sıkıştırma hangi vergiyi düşürüp hangisini yükseltiyor?
- Texture ve mesh tavanları yazılı mı?
- LOD seviyeleri ve geçiş politikası var mı (veya bilinçli yok mu)?
- Critical path ile lazy set ayrıldı mı?
- Decode frame / ana iş parçacığı spike'ı yaratıyor mu?
- Draco/LOD uygulama detayı motor sayfalarına mı bırakıldı?
Holodepth içgörüsü
«Modeli sıkıştırdık, hâlâ ağır» cümlesi çoğu zaman gümrük kalemini karıştırmaktır. Holodepth: önce hangi vergiyi ödüyorsunuz onu adlandırın; sonra aracı seçin.
Grup kapanışı: nereye dönülür?
Performans & optimizasyon PLATFORM izleği bu yaprakla kapanır: kare SLA → işlemci tarafı → veri gümrüğü. Pratik dönüş kapıları:
- Kare bütçesi → FPS mantığı
- Taraf teşhisi → CPU / GPU
- LOD uygulama → LOD sistemi
- Mesh sıkıştırma derinliği → Three.js Draco grubu
- XR çift vergi → Stereo & gecikme