This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Defold, otomatik doku (texture) işlemeyi ve görüntü verilerinin sıkıştırılmasını destekler (atlaslarda (Atlas), karo kaynaklarında (Tile sources), küp haritalarında (Cubemaps) ve modeller, GUI vb. için kullanılan bağımsız dokularda).
İki sıkıştırma türü vardır: yazılımla görüntü sıkıştırma ve donanımla doku sıkıştırma.
Yazılımla sıkıştırma (PNG ve JPEG gibi), görüntü kaynaklarının depolama boyutunu azaltır. Bu da son dağıtım paketinin boyutunu küçültür. Ancak görüntü dosyalarının belleğe okunurken açılması gerekir; bu nedenle bir görüntü diskte küçük olsa bile bellekte çok yer kaplayabilir.
Donanımla doku sıkıştırma da görüntü kaynaklarının depolama boyutunu azaltır. Ancak yazılımla sıkıştırmadan farklı olarak, dokuların bellekte kapladığı alanı da azaltır. Bunun nedeni, grafik donanımının sıkıştırılmış dokuları önce açmak zorunda kalmadan doğrudan işleyebilmesidir.
Dokuların işlenmesi, belirli bir doku profili (texture profile) üzerinden yapılandırılır. Bu dosyada, belirli bir platform için dağıtım paketleri oluşturulurken hangi sıkıştırılmış biçimlerin ve türün kullanılması gerektiğini belirten profiller oluşturursunuz. Ardından profiller, eşleşen dosya yol desenleriyle ilişkilendirilir; böylece projenizdeki hangi dosyaların sıkıştırılacağını ve bunun tam olarak nasıl yapılacağını ayrıntılı olarak kontrol edebilirsiniz.
Kullanılabilen tüm donanımla doku sıkıştırma yöntemleri kayıplı olduğundan, doku verilerinizde görüntü kusurları oluşur. Bu kusurlar, kaynak malzemenizin görünümüne ve kullanılan sıkıştırma yöntemine büyük ölçüde bağlıdır. En iyi sonuçları elde etmek için kaynak malzemenizi test etmeniz ve denemeler yapmanız önerilir. Burada Google’dan yardım alabilirsiniz.
Dağıtım paketi arşivlerindeki son doku verilerine (sıkıştırılmış veya ham) hangi yazılımla görüntü sıkıştırma yönteminin uygulanacağını seçebilirsiniz. Defold, Basis Universal ve ASTC sıkıştırma biçimlerini destekler.
Sıkıştırma, yoğun kaynak kullanan ve zaman alan bir işlemdir. Sıkıştırılacak doku görüntülerinin sayısına, seçilen doku biçimlerine ve yazılımla sıkıştırma türüne bağlı olarak çok uzun proje derleme sürelerine yol açabilir.
Basis Universal (kısaca BasisU), görüntüyü bir ara biçime sıkıştırır. Bu biçim, çalışma sırasında geçerli cihazın GPU’suna uygun bir donanım biçimine dönüştürülür. Basis Universal biçimi, yüksek kaliteli ancak kayıplı bir biçimdir. Oyun arşivinde saklanan dosyaların boyutunu daha da küçültmek için tüm görüntüler ayrıca LZ4 kullanılarak sıkıştırılır.
ASTC, ARM tarafından geliştirilmiş ve Khronos Group tarafından standartlaştırılmış esnek ve verimli bir doku sıkıştırma biçimidir. Çok çeşitli blok boyutları ve bit hızları sunarak geliştiricilerin görüntü kalitesiyle bellek kullanımını etkili biçimde dengelemesini sağlar. ASTC, 4×4 ile 12×12 teksel (texel) arasında değişen çeşitli blok boyutlarını destekler; bunlar teksel başına 8 bitten 0,89 bite kadar değişen bit hızlarına karşılık gelir. Bu esneklik, doku kalitesiyle depolama gereksinimleri arasındaki dengenin ayrıntılı olarak kontrol edilmesini sağlar.
ASTC, 4×4 ile 12×12 teksel arasında değişen çeşitli blok boyutlarını destekler; bunlar teksel başına 8 bitten 0,89 bite kadar değişen bit hızlarına karşılık gelir. Bu esneklik, doku kalitesiyle depolama gereksinimleri arasındaki dengenin ayrıntılı olarak kontrol edilmesini sağlar. Aşağıdaki tabloda desteklenen blok boyutları ve bunlara karşılık gelen bit hızları gösterilmektedir:
| Blok boyutu (genişlik x yükseklik) | Piksel başına bit |
|---|---|
| 4x4 | 8.00 |
| 5x4 | 6.40 |
| 5x5 | 5.12 |
| 6x5 | 4.27 |
| 6x6 | 3.56 |
| 8x5 | 3.20 |
| 8x6 | 2.67 |
| 10x5 | 2.56 |
| 10x6 | 2.13 |
| 8x8 | 2.00 |
| 10x8 | 1.60 |
| 10x10 | 1.28 |
| 12x10 | 1.07 |
| 12x12 | 0.89 |
ASTC çok iyi sonuçlar verse de tüm grafik kartları tarafından desteklenmez. Üreticiye göre desteklenen cihazların kısa bir listesi şöyledir:
| GPU üreticisi | Destek |
|---|---|
| ARM (Mali) | OpenGL ES 3.2 veya Vulkan desteği olan tüm ARM Mali GPU’ları ASTC’yi destekler. |
| Qualcomm (Adreno) | OpenGL ES 3.2 veya Vulkan desteği olan Adreno GPU’ları ASTC’yi destekler. |
| Apple | A8 çipinden itibaren Apple GPU’ları ASTC’yi destekler. |
| NVIDIA | ASTC desteği çoğunlukla mobil GPU’lar içindir (ör. Tegra tabanlı çipler). |
| AMD (Radeon) | Vulkan desteği olan AMD GPU’ları genellikle ASTC’yi yazılım aracılığıyla destekler. |
| Intel (tümleşik) | Modern Intel GPU’larında ASTC yazılım aracılığıyla desteklenir. |
Her proje, dokuları sıkıştırırken kullanılan yapılandırmayı içeren belirli bir .texture_profiles dosyası içerir. Varsayılan olarak bu dosya builtins/graphics/default.texture_profiles dosyasıdır ve her doku kaynağını, donanımla doku sıkıştırma kullanmadan RGBA ve varsayılan ZLib dosya sıkıştırmasını kullanan bir profille eşleştiren yapılandırmaya sahiptir.
Doku sıkıştırma eklemek için:


Doku profillerinin kullanımını düzenleyici tercihlerinden açıp kapatabilirsiniz. File ▸ Preferences... seçeneğini seçin. General sekmesinde Enable texture profiles adlı bir onay kutusu bulunur.

Doku profilleri dosyasının Path Settings bölümü, yol desenlerinin bir listesini ve yolla eşleşen kaynaklar işlenirken hangi profile değerinin kullanılacağını içerir. Yollar, “Ant Glob” desenleri olarak ifade edilir (ayrıntılar için belgelere bakın). Desenler şu joker karakterlerle ifade edilebilir:
*sprite*.png, sprite.png, sprite1.png ve sprite_with_a_long_name.png dosyalarıyla eşleşir.?sprite?.png, sprite1.png ve spriteA.png dosyalarıyla eşleşir ancak sprite.png veya sprite_with_a_long_name.png ile eşleşmez.**/gui/**, /gui dizinindeki ve tüm alt dizinlerindeki bütün dosyalarla eşleşir.
Bu örnekte iki yol deseni ve bunlara karşılık gelen profiller bulunur.
/gui/**/*.atlas/gui dizinindeki veya alt dizinlerinden herhangi birindeki tüm .atlas dosyaları “gui_atlas” profiline göre işlenir./**/*.atlasDaha genel yolun en sona yerleştirildiğine dikkat edin. Eşleştirme algoritması yukarıdan aşağıya çalışır. Kaynak yoluyla eşleşen ilk girdi kullanılır. Listenin daha aşağısındaki eşleşen bir yol ifadesi hiçbir zaman ilk eşleşmeyi geçersiz kılmaz. Yollar ters sırada yerleştirilmiş olsaydı, /gui dizinindekiler dahil her atlas “atlas” profiliyle işlenirdi.
Profil dosyasındaki hiçbir yolla eşleşmeyen doku kaynakları derlenir ve 2’nin en yakın kuvvetine ölçeklenir; bunun dışında değiştirilmeden bırakılır.
Doku profilleri dosyasının profiles bölümü, adlandırılmış profillerin bir listesini içerir. Her profil bir veya daha fazla platforms öğesi içerir ve her platform bir özellik listesiyle tanımlanır.

OS_ID_GENERIC tüm platformlarla, OS_ID_WINDOWS Windows hedefli dağıtım paketleriyle, OS_ID_IOS iOS dağıtım paketleriyle eşleşir; diğerleri de aynı şekilde çalışır. OS_ID_GENERIC belirtilirse tüm platformlar için dahil edileceğine dikkat edin.İki yol ayarı aynı dosyayla eşleşirse ve yol farklı platformlara sahip farklı profiller kullanıyorsa her iki profil de kullanılır ve iki doku oluşturulur.
Bir profile eklenen her Formats öğesi şu özelliklere sahiptir:
| Hazır ayar | Not |
|---|---|
LOW |
En hızlı sıkıştırma. Düşük görüntü kalitesi |
MEDIUM |
Varsayılan sıkıştırma. En iyi görüntü kalitesi |
HIGH |
En yavaş sıkıştırma. Daha küçük dosya boyutu |
HIGHEST |
Yavaş sıkıştırma. En küçük dosya boyutu |
uncompressed sıkıştırıcısının yalnızca uncompressed adlı bir hazır ayarı vardır; bu, dokulara sıkıştırma uygulanmayacağı anlamına gelir.
Kullanılabilen sıkıştırıcıların listesi için Sıkıştırıcılar bölümüne bakın.
Grafik donanımı dokuları, farklı kanal sayıları ve bit derinlikleriyle sıkıştırılmamış veya kayıplı sıkıştırılmış verilere dönüştürülebilir. Donanımla sıkıştırmanın sabit olması, görüntünün içeriğinden bağımsız olarak ortaya çıkan görüntünün sabit bir boyutta olacağı anlamına gelir. Bu nedenle sıkıştırma sırasındaki kalite kaybı, özgün dokunun içeriğine bağlıdır.
Basis Universal sıkıştırmasının başka bir biçime dönüştürülmesi cihazın GPU yeteneklerine bağlı olduğundan, Basis Universal sıkıştırmasıyla kullanılması önerilen biçimler şu genel biçimlerdir:
TEXTURE_FORMAT_RGB, TEXTURE_FORMAT_RGBA, TEXTURE_FORMAT_RGB_16BPP, TEXTURE_FORMAT_RGBA_16BPP, TEXTURE_FORMAT_LUMINANCE ve TEXTURE_FORMAT_LUMINANCE_ALPHA.
Basis Universal biçim dönüştürücüsü, ASTC4x4, BCx, ETC2, ETC1 ve PVRTC1 gibi birçok çıktı biçimini destekler.
Aşağıdaki kayıplı sıkıştırma biçimleri şu anda desteklenmektedir:
| Biçim | Sıkıştırma | Ayrıntılar |
|---|---|---|
TEXTURE_FORMAT_RGB |
yok | 3 kanallı renk. Alfa atılır |
TEXTURE_FORMAT_RGBA |
yok | 3 kanallı renk ve tam alfa. |
TEXTURE_FORMAT_RGB_16BPP |
yok | 3 kanallı renk. 5+6+5 bit. |
TEXTURE_FORMAT_RGBA_16BPP |
yok | 3 kanallı renk ve tam alfa. 4+4+4+4 bit. |
TEXTURE_FORMAT_LUMINANCE |
yok | 1 kanallı gri tonlama, alfa yok. RGB kanalları çarpılarak tek kanala dönüştürülür. Alfa atılır. |
TEXTURE_FORMAT_LUMINANCE_ALPHA |
yok | 1 kanallı gri tonlama ve tam alfa. RGB kanalları çarpılarak tek kanala dönüştürülür. |
ASTC için kanal sayısı her zaman 4’tür (RGB + alfa) ve blok sıkıştırmasının boyutunu biçimin kendisi belirler. Bu biçimlerin yalnızca bir ASTC sıkıştırıcısıyla uyumlu olduğunu unutmayın; diğer tüm birleşimler derleme hatasına yol açar.
TEXTURE_FORMAT_RGBA_ASTC_4X4
TEXTURE_FORMAT_RGBA_ASTC_5X4
TEXTURE_FORMAT_RGBA_ASTC_5X5
TEXTURE_FORMAT_RGBA_ASTC_6X5
TEXTURE_FORMAT_RGBA_ASTC_6X6
TEXTURE_FORMAT_RGBA_ASTC_8X5
TEXTURE_FORMAT_RGBA_ASTC_8X6
TEXTURE_FORMAT_RGBA_ASTC_8X8
TEXTURE_FORMAT_RGBA_ASTC_10X5
TEXTURE_FORMAT_RGBA_ASTC_10X6
TEXTURE_FORMAT_RGBA_ASTC_10X8
TEXTURE_FORMAT_RGBA_ASTC_10X10
TEXTURE_FORMAT_RGBA_ASTC_12X10
TEXTURE_FORMAT_RGBA_ASTC_12X12
Aşağıdaki doku sıkıştırıcıları varsayılan olarak desteklenir. Doku dosyası belleğe yüklendiğinde verilerin sıkıştırması açılır.
| Ad | Biçimler | Not |
|---|---|---|
Uncompressed |
Tüm biçimler | Sıkıştırma uygulanmaz. Varsayılan. |
BasisU |
Tüm RGB/RGBA biçimleri | Basis Universal yüksek kaliteli, kayıplı sıkıştırma. Daha düşük kalite düzeyi, daha küçük boyut sağlar. |
ASTC |
Tüm ASTC biçimleri | ASTC kayıplı sıkıştırma. Daha düşük kalite düzeyi, daha küçük boyut sağlar. |
Defold, doku sıkıştırma hattında kurulabilir sıkıştırıcıları destekler. Bu, WEBP veya tamamen özel bir yöntem gibi bir doku sıkıştırma algoritmasının bir eklenti içinde uygulanmasını mümkün kılar.
Çıktının daha iyi anlaşılması için aşağıda bir örnek verilmiştir. Görüntü kalitesinin, sıkıştırma süresinin ve sıkıştırılmış boyutun her zaman girdi görüntüsüne bağlı olduğunu ve değişebileceğini unutmayın.
Temel görüntü (1024x512):

| Hazır ayar | Sıkıştırma süresi | Göreli süre |
|---|---|---|
LOW |
0m0.143s | 0.5x |
MEDIUM |
0m0.294s | 1.0x |
HIGH |
0m1.764s | 6.0x |
HIGHEST |
0m1.109s | 3.8x |
Karşılaştırma, basisu aracı kullanılarak (PSNR ölçülerek) yapılır.
100 dB, sinyal kaybı olmadığı anlamına gelir (yani özgün görüntüyle aynıdır).
| Hazır ayar | Sinyal |
|---|---|
LOW |
Max: 34 Mean: 0.470 RMS: 1.088 PSNR: 47.399 dB |
MEDIUM |
Max: 35 Mean: 0.439 RMS: 1.061 PSNR: 47.620 dB |
HIGH |
Max: 37 Mean: 0.898 RMS: 1.606 PSNR: 44.018 dB |
HIGHEST |
Max: 51 Mean: 1.298 RMS: 2.478 PSNR: 40.249 dB |
Özgün dosya boyutu 1572882 bayttır.
| Hazır ayar | Dosya boyutları | Oran |
|---|---|---|
LOW |
357225 | 22.71 % |
MEDIUM |
365548 | 23.24 % |
HIGH |
277186 | 17.62 % |
HIGHEST |
254380 | 16.17 % |
Ortaya çıkan görüntüler aşağıdadır (basisu aracı kullanılarak ASTC kodlamasından elde edilmiştir).
LOW

MEDIUM

HIGH

HIGHEST
