Contoh Peta Kubus DDS

Untuk peta lingkungan kubik, satu atau beberapa wajah kubus ditulis ke file, menggunakan format yang tidak dikompresi atau terkompresi, dan semua wajah harus berukuran sama. Setiap wajah dapat memiliki mipmap yang ditentukan, meskipun semua wajah harus memiliki jumlah tingkat mipmap yang sama. Jika file berisi peta kubus, DDSCAPS_COMPLEX, DDSCAPS2_CUBEMAP, dan satu atau beberapa DSCAPS2_CUBEMAP_POSITIVEX/Y/Z dan/atau DDSCAPS2_CUBEMAP_NEGATIVEX/Y/Z harus diatur. Wajah ditulis dalam urutan: positif x, negatif x, positif y, negatif y, positif z, negatif z, dengan wajah yang hilang dihilangkan. Setiap wajah ditulis dengan gambar utamanya, diikuti oleh tingkat mipmap apa pun.

Misalnya, peta kubus 256-by-256 dengan wajah x, negatif y, dan z positif, format piksel DXT1, dan semua tingkat mipmap akan berisi yang berikut:

Komponen DDS # Byte
header 128
Gambar utama x positif 256-by-256 32768
Gambar x mipmap positif 128-by-128 8192
Gambar x mipmap positif 64-by-64 2048
Gambar x mipmap positif 32-by-32 512
Gambar x mipmap positif 16 demi 16 128
Gambar x mipmap positif 8-by-8 32
Gambar x mipmap positif 4-by-4 8
Gambar x mipmap positif 2-demi-2 8
Gambar x mipmap positif 1 demi 1 8
ulangi 9 lapisan sebelumnya untuk gambar y mipmap 43704
ulangi 9 lapisan sebelumnya untuk gambar z mipmap 43704

 

Dimulai dengan DirectX 8, peta kubus disimpan dengan semua wajah yang ditentukan.

Peta Kubus DXGI

Peta lingkungan kubik di Direct3D 10.x dan Direct3D 11 setara dengan array tekstur 2D dengan 6 gambar, dan dapat disimpan dalam file DDS seperti itu. Dengan Direct3D 10.1 dan Direct3D 11, perangkat keras juga dapat mendukung array kubus yang merupakan array tekstur 2D dengan kelipatan 6 gambar (6, 12, 18, 24, dll.).

Misalnya, berikut adalah cubemap 256-by-256 dengan tingkat mipmap yang disimpan dalam format BC6H sebagai array tekstur 2D:

Komponen DDS # Byte
header (FourCC dari "DX10") 128
header yang diperluas (format DXGI diatur ke 95 [DXGI_FORMAT_BC6H_UF16], nilai dimensi 3 [D3Dxx_RESOURCE_DIMENSION_TEXTURE2D], ukuran array 6, bendera misc 0x4 [D3Dxx_RESOURCE_MISC_TEXTURECUBE]) 20
256-by-256 array entri 0 (positif x) gambar utama 65536
128-by-128 array entri 0 (positif x) gambar mipmap 16384
64-by-64 array entri 0 (positif x) gambar mipmap 4096
32-by-32 array entri 0 (positif x) gambar mipmap 1024
16-by-16 array entri 0 (positif x) gambar mipmap 256
8-by-8 entri array 0 (positif x) gambar mipmap 64
Gambar mipmap entri array 4-by-4 0 (positif x) 16
Gambar mipmap entri array 2-by-2 0 (positif x) 16
1-by-1 entri array 0 (positif x) gambar mipmap 16
ulangi 9 lapisan sebelumnya untuk entri array 1 (negatif x) gambar mipmap 87408
ulangi 9 lapisan sebelumnya untuk entri array 2 (positif y) gambar mipmap 87408
ulangi 9 lapisan sebelumnya untuk entri array 3 (negatif y) gambar mipmap 87408
ulangi 9 lapisan sebelumnya untuk entri array 4 (positif z) gambar mipmap 87408
ulangi 9 lapisan sebelumnya untuk entri array 5 (negatif z) gambar mipmap 87408

 

Panduan Pemrograman untuk DDS