Contoh Tekstur DDS
Untuk tekstur yang tidak dikompresi, gunakan bendera DDSD_PITCH dan DDPF_RGB; untuk tekstur terkompresi, gunakan bendera DDSD_LINEARSIZE dan DDPF_FOURCC. Untuk tekstur mipmapped, gunakan bendera DDSD_MIPMAPCOUNT, DDSCAPS_MIPMAP, dan DDSCAPS_COMPLEX juga serta anggota jumlah mipmap. Jika mipmap dihasilkan, semua tingkat hingga 1 per 1 biasanya ditulis.
Untuk tekstur terkompresi, ukuran setiap gambar tingkat mipmap biasanya seperempat ukuran sebelumnya, dengan minimal 8 (DXT1) atau 16 (DXT2-5) byte (untuk tekstur persegi). Gunakan rumus berikut untuk menghitung ukuran setiap tingkat untuk tekstur non-persegi:
max(1, ( (width + 3) / 4 ) ) x max(1, ( (height + 3) / 4 ) ) x 8(DXT1) or 16(DXT2-5)
Tabel ini mencantumkan jumlah ruang yang diambil oleh setiap lapisan untuk tekstur 256-by-256 R8G8B8, tanpa menggunakan kompresi.
Komponen DDS | # Byte |
---|---|
header | 128 |
Gambar utama 256-by-256 | 196608 |
Gambar 128-by-128 mipmap | 49152 |
Gambar 64-by-64 mipmap | 12288 |
Gambar 32-by-32 mipmap | 3072 |
Gambar 16-by-16 mipmap | 768 |
Gambar 8-by-8 mipmap | 192 |
Gambar 4-by-4 mipmap | 48 |
Gambar 2-by-2 mipmap | 12 |
Gambar mipmap 1 demi 1 | 3 |
Tabel ini mencantumkan jumlah ruang yang diambil oleh setiap lapisan untuk tekstur yang sama menggunakan kompresi (DXT1).
Komponen DDS | # Byte |
---|---|
header | 128 |
Gambar utama 256-by-64 | 8192 |
Gambar 128-demi-32 mipmap | 2048 |
Gambar 64-by-16 mipmap | 512 |
Gambar 32-by-8 mipmap | 128 |
Gambar 16-by-4 mipmap | 32 |
Gambar 8-by-2 mipmap | 16 |
Gambar 4-by-1 mipmap | 8 |
Gambar mipmap 2 demi 1 | 8 |
Gambar mipmap 1 demi 1 | 8 |
Tabel ini mencantumkan jumlah ruang yang diambil oleh setiap lapisan untuk tekstur yang sama menggunakan format kompresi DXGI (dalam hal ini BC3_UNORM) yang oleh karena itu memerlukan header yang diperluas:
Komponen DDS | # Byte |
---|---|
header (FourCC diatur ke "DX10") | 128 |
header yang diperluas (format DXGI diatur ke DXGI_FORMAT_BC3_UNORM) | 20 |
Gambar utama 256-by-64 | 16384 |
Gambar 128-demi-32 mipmap | 4096 |
Gambar 64-by-16 mipmap | 1024 |
Gambar 32-by-8 mipmap | 256 |
Gambar 16-by-4 mipmap | 64 |
Gambar 8-by-2 mipmap | 32 |
Gambar 4-by-1 mipmap | 16 |
Gambar mipmap 2 demi 1 | 16 |
Gambar mipmap 1 demi 1 | 16 |
Topik terkait