Texture sıkıştırma neden gereklidir? ASTC, BC ve ETC2 formatları arasındaki fark nedir?

Cevap

PNG/JPEG disk boyutunu küçültür ama GPU bunları doğrudan okuyamaz; yüklenince tam boyutlu ham veriye (RGBA32) açılır. 2048x2048 RGBA32 bir texture mip'lerle yaklaşık 21 MB tutar. GPU texture sıkıştırma formatları ise blok tabanlıdır ve GPU tarafından sıkıştırılmış halde doğrudan örneklenir; böylece hem bellek hem bant genişliği 4–8 kat azalır.

FormatPlatformNot
BC1 (DXT1)PC, konsolRGB, 4 bpp; alfa yok veya 1-bit
BC3 (DXT5)PC, konsolRGBA, 8 bpp
BC5PC, konsolİki kanal; normal map için ideal
BC7PC, konsol (DX11+)Yüksek kaliteli RGBA, 8 bpp
ETC2Android (OpenGL ES 3.0+)RGB/RGBA, ASTC olmayan eski cihazlar için yedek
ASTCModern iOS ve AndroidDeğişken blok boyutu (4x4 ile 12x12); kalite/boyut ayarlanabilir

ASTC'de blok boyutu büyüdükçe bit/piksel düşer: 4x4 = 8 bpp (yüksek kalite), 6x6 ≈ 3.56 bpp (genel kullanım), 8x8 = 2 bpp (uzak veya az önemli içerik). Günümüzde mobilde varsayılan tercih ASTC'dir.

Pratik kurallar:

  • Normal map'ler için özel format/ayar kullanın (BC5 veya ASTC normal map modu); renk texture'ı gibi sıkıştırmak artefakt yaratır.
  • Keskin kenarlı UI ve gradient'larda blok artefaktları görünebilir; kritik UI için daha düşük blok boyutu veya sıkıştırmasız format seçilebilir.
  • Blok formatları için texture boyutları blok boyutunun katı olmalıdır; ikinin kuvveti boyutlar en güvenli seçenektir.
  • Unity'de platform bazlı override'lar (Android/iOS sekmesi), Unreal'da texture group ve compression settings ile yönetilir.
  • Disk/indirme boyutu için ayrıca Crunch veya Basis Universal (KTX2) gibi süper sıkıştırma katmanları kullanılabilir.
  1. Forward ve deferred rendering arasındaki fark nedir? Hangisi ne zaman tercih edilir?ZorGrafik & RenderGame Dev
  2. LOD, frustum culling ve occlusion culling nedir?KolayGrafik & RenderGame Dev
  3. Draw call nedir? Batching teknikleri ile draw call sayısı nasıl azaltılır?OrtaGrafik & RenderGame Dev
  4. Rendering pipeline nasıl işler? Vertex shader ile fragment shader arasındaki fark nedir?OrtaGrafik & RenderGame Dev
  5. Mipmap nedir? Ne gibi faydaları ve maliyetleri vardır?KolayGrafik & RenderGame Dev
  6. Overdraw nedir? Neden performans sorunu yaratır ve nasıl azaltılır?KolayGrafik & RenderGame Dev

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle